linux系统的基本命令的使用心得,linux基本命令总结

sina

基本命令分类简介:

查看Linux内核版本:

cat /proc/version//第一种

uname -a           //第二种

uname -r           //第三种

查看Linux操作系统版本:

lsb_relase -a//第一种

cat  /etc/issue//第二种

开关机:

//重启的三种方式

init 6    、 reboot  、 shutdown -r now

//关机的三种方式

init 0 、 halt 、 shutdown -h now

(1)磁盘管理

dd:读取,转换并输出数据。dd可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。

df:显示磁盘的相关信息。df可显示磁盘的文件系统与使用情形。

du:显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘空间。

fdisk:磁盘分区。fdisk是用来磁盘分区的程序,它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。

format:格式化磁盘,最好是对未格式化的磁盘使用

free:显示内存状态。free会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段、内核使用的buffer等。

mount:挂载文件系统。

umount:卸除文件系统。umount可卸除目前挂在Linux目录中的文件系统。

(2)进程管理

crontab:设置计时器,cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:

Minute Hour Day Month DayOFWeek Command

kill:删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

nohup:该命令可以在你退出账户或关闭终端之后继续运行想应的进程。

ps:报告程序状况。ps是用来报告程序执行状况的指令,您可以搭配kill指令随时中断,删除不必要的程序。

renice:调整优先权。renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20--19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。

top:实时显示系统中各个进程的资源的占用情况,类似于windows的任务管理器。

who:显示目前登入系统的用户信息。单独执行who指令会列出登入帐号,使用的 终端机,登入时间以及从何处登入或正在使用哪个X显示器。

(3)文件管理

basename:从文件名中去掉路径和扩展名

cat:把档案串连接后传到基本输出(屏幕或加 > filename 到另一个档案)

cd:切换目录。cd指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。

chgrp:变更文件或目录的所属群组

chmod:变更文件或目录的权限

chown:变更文件或目录的拥有者或所属群组

comm:比较两个已排过序的文件。这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3行显示:第1行仅是在第1个文件中出现过的列,第2行是仅在第2个文件中出现过的列,第3行则是在第1与第2个文件里都出现过的列。若给予的文件名称为"-",则comm指令会从标准输入设备读取数据。

cp:复制文件或目录。cp指令用在复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息。

cut:cut -cnum1-num2 filename显示每行从开头算起 num1 到 num2 的文字。

diff:比较文件的差异。 diff以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

dir:列出的信息 (默认为目前的目录)。

dos2unix:将一个DOS格式的文件转换为UNIX格式的文件。主要差别在换行符。

egrep:在文件内查找指定的字符串。

fgrep:查找文件里符合条件的字符串。本指令相当于执行grep指令加上参数"-F"

file:辨识该文件的类型。

find:查找文件或目录。find指令用于查找符合条件的文件,任何位于参数之前的字符串都将被视为欲查找的目录。

grep:查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。

head:显示文件的前几行(默认10行)。

less:less 命令的功能几乎和 more 命令一样,也是用来按页显示文件,不同之处在于 less 命令在显示文件时允许用户既可以向前又可以向后翻阅文件。同时因为 less 并未在一开始就读入整个档案,因此在遇上大型档案的开启时,会比一般的文书编辑器(如 vi)来的快速。

ln:连接文件或目录。 ln指令用在连接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息。

locate:查找文件。 locate指令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样式条件的文件或目录。

ls:执行ls指令可列出目录的内容,包括文件和子目录的名称。

mkdir:mkdir可建立目录并同时设置目录的权限。

more:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

mv:mv可移动文件或目录,或是更改文件或目录的名称。

od:od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。

pwd:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

rename:文件批量改名。

rm:删除文件或目录。执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。

rmdir:当有空目录要删除时,可使用rmdir指令。

sed:sed可依照script的指令,来处理、编辑文本文件。

sort:sort可针对文本文件的内容,以行为单位来排序。

tail:查看文件的后N行,有实时监控的功能。

touch:使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间。

uniq:检查及删除文本文件中重复出现的行列。

unix2dos:将UNIX格式的文件转化为DOS格式。

vdir:列举目录内容,功能同 ls -lb

vi:文本编辑。

wc:利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。

(4)网络管理

curl:Curl是Linux下一个很强大的http命令行工具,其功能十分强大,支持断点续传。

finger:它会去查找,并显示指定帐号的用户相关信息,包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

FTP:它是ARPANet的标准文件传输协议

ifconfig:ifconfig可设置网络设备的状态,或是显示目前的设置。如果提示找不到命令,可用/sbin/ifconfig。

ip:一个强大的网络配置工具,它能够替代一些传统的网络管理工具。例如:ifconfig、route等。

netstat:显示网络状态

nslookup:它的功能是查询一台机器的IP地址和其对应的域名。使用权限所有用户。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。

ping:执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

rcp:远端复制文件或目录。rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。

route:oute表示手工产生、修改和查看路由表。

tcpdump:可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员。(抓包)

telnet:执行telnet指令开启终端机阶段作业,并登入远端主机。

traceroute:显示数据包到主机间的路径。

(5)系统管理

cal:日历命令,可以显示当月日历、当年日历、指定月份年份的日历等。

chsh:更换登入系统时使用的shell。

clear:清除终端显示。

date:显示或设置系统时间与日期。

echo:将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

ethtool:用于查询及设置网卡参数的命令。

getconf:将系统配置变量值写入标准输出。

groupadd:添加群组。

groupdel:删除群组。需要从系统上删除群组时,可用groupdel指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

groupmod:更改群组识别码或名称。

id:显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。

init:是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。

内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。

内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。

ipcs:显示进程间通信信息。

mesg:设置终端机的写入权限。

passwd:让用户可以更改自己的密码,而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

rpm:管理套件。

service:启动、停止、重启服务

setup:一个设置公用程序,提供图形界面的操作方式。在setup中可设置7类的选项:

1.登陆认证方式

2.键盘组态设置

3.鼠标组态设置

4.开机时所要启动的系统服务

5.声卡组态设置

6.时区设置

7.X Windows组态设置

su:变更用户身份。

sync:将内存缓冲区内的数据写入磁盘。在Linux系统中,当数据需要存入磁盘时,通常会先放到缓冲区内,等到适当的时刻再写入磁盘,如此可提高系统的执行效率。

uptime:是用来查询linux系统负载的,可以显示

1 当前时间

2 系统已运行时间。

3 在线用户数

4 最近1分钟、5分钟、15分钟系统的平均负载。

useradd:用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

userdel:删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。

usermod:修改用户帐号。

vmstat:Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

wall:可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall指令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。

write:可传递信息给另一位登入系统的用户,当输入完毕后,键入EOF表示信息结束,write指令就会将信息传给对方。如果接收信息的用户不只登入本地主机一次,你可以指定接收信息的终端机编号。

(6)压缩管理

bunzip2:是.bz2文件的解压缩程序。bunzip2实际上是bzip2的符号连接,执行bunzip2与bzip2 -d的效果相同。

bzip2:是.bz2文件的压缩程序。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

cpio/tar:备份文件。

gunzip:解压文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为".gz"。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

gzip:gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

split:将文件切成较小的文件,预设每1000行会切成一个小文件。

unzip:解压缩.zip压缩文件。

zgrep:这个命令的功能是在压缩文件中寻找匹配的正则表达式,用法和grep命令相同,只不过操作的对象是压缩文件。如果用户想看看在某个压缩文件中有没有某一句话,便可用zgrep命令。

zip:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。

eg:打包:tar cvf mylib.tar bill.c fred.c

解包:tar xvf mylib.tar

压缩:gzip mylib.tar

解压:gzip -d mylib.tar.gz

GUN版压缩:tar zcvf mylib.tgz bill.c fred.c

GUN版解压:tar zxvf mylib.tgz

有关网络的基本命令详解:

1、tcpdump:经典的网络抓包工具,类似于Wireshark。

2、lsof(list open life):列出当前系统打开的文件描述符的工具。

lsof -i 显示所有打开的socket文件描述符

lsof -p 显示指定进程打开的所有文件描述符

用此工具显示的结果有下几项:COMMAND:执行程序使用的终端命令

PID:文件描述符所属进程的PID

USER:拥有文件描述符的用户的用户名

FD:文件描述符的描述。第一种:cwd(进程的工作目录),rtd(用户的根目录),txt(进程运行的程序代码),mem(直接映射到内存中的文件);第二种:数字+访问权限,访问权限有r(可读)、w(可写)和u(可读可写),0u(标准输入),1u(标准输出),2u(标准错误),3u(处于listen状态的监听socket),4u(epoll内和事件表对应的文件描述符)

TYPE:文件描述符的类。DIR(目录)、REG(普通文件)、CHR(字符设备文件)、IPV4(IPV4类型的socket文件描述符)、0000(未知类型)。

DEVICE:文所属设备。8,3(机器上的程序文件和动态库)

SIZE/OFF:若是"0t"|"ox",表示是个偏移值

NODE:文件的i节点号(除过socket显示为"TCP")

NAME:文件的名字

3、nc:快速搭建网络连接的工具,可以用来调试客户端或服务器端的程序(类似于telnet)。

nc -l 以服务器方式运行(注:nc命令默认以客户端方式运行)

nc -u 使用UDP协议(注:默认是传输层的TCP协议)

4、strace:测试服务器的工具。他跟踪程序运行过程中执行的系统调用和接收到的信号,并将系统调用名、参数、返回值和信号名输出到标准输出或者指定的文件。

strace -c 统计每个系统调用执行的时间、执行次数、出错次数

strace -f 跟踪由fork调用生成的子进程

strace -e 后可跟以下几种情况:a(trace=set 只跟踪指定的系统调用。set可以是open,close,read,write);

b(trace=file 只跟踪与文件操作相关的系统调用);

c(trace=process 只跟踪与进程控制相关的系统调用);

d(trace=network 只跟踪与网络相关的系统调用);

e(trace=signal 只跟踪与信号相关的系统调用);

f(trace=ipc 只跟踪与进程间通信相关的系统调用)

5、netstat:网络信息统计工具,打印本地网卡接口上的全部链接、路由表信息(没有route功能输出的信息丰富)、网卡接口信息(没有ifcofig功能输出的信息丰富)。其输出结果包含以下6个字段:Proto(协议名)

Recv-Q(socket内核中接收缓冲区中尚未被应用程序读取的数据量)

Send-Q(未被对方确认的数据量)

Local Address(本端的IP地址和端口号)

Foreign Address(对方的IP地址和端口号)

State(socket的状态,对于UDP,此段显示空;而对于面向连接的协议,此段的State包括ESTABLISHED等状态图中的描述状态)

6、vmstat(virtual memory statistics):实时输出系统的各种资源的使用情况(eg:进程信息、内存使用、cpu使用率、I/O使用情况)其输出结果有以下6个字段:procs(进程信息,r表示待运行的进程数目;b表示处于不可中断睡眠状态的进程数目)

memory(内存信息,swpd表示虚拟内存的使用数量,free空闲内存的使用数量,buff作为buff cache(从磁盘读入的数据可能被保持在此)的内存数量,cache作为page cache(代写入磁盘的数据首先被放到此,然后由磁盘中断程序写入磁盘)的内存      数量)

swap(交换分区(虚拟内存)的使用信息),各项的单位都是KB/s。si表示数据由磁盘交换至内存的速率,so表示数据由内存交换至磁盘的速率(注:若so和si经常发生变化,则说明内存不足))

io(设备的使用信息,单位是block/s,bi表示从块设备读入块的速率,bo表示向块设备写入块的速率)

system(系统信息,in表示每秒发生的中断次数,cs表示每秒发生的上下文切换次数)

cpu(CPU使用信息,us表示系统所有进程运行在用户空间的时间占cpu总运行时间的比例,sy表示系统所有进程运行在内核空间的时间占cpu总运行时间的比例,id表示cpu处于空闲状态的时间占cpu总运行时间的比例,wa表示cpu等待I/O事件的时间占cpu总运行时间的比例)注:使用iostat命获得更多磁盘使用情况,使用mpstat获得更多cpu使用情况。

7、ifstat(interface statistics):简单的网络流量监测工具,它的每条输出都以KB/s为单位显示各网卡接口上接收和发送数据的速率。用这个命令可以大概估计各个时段服务器的总输入、输出流量。

ifstat -a 监测系统上得所有网卡接口

ifstat -i 指定要监测的网卡接口

8、mpstat(multi-processor statistics):实时监测多处理器系统上每一个CPU的使用情况。它和vmstat一样,输出的第一次结果是自系统启动以来的平均结果。

其得到的结果有以下几项:

CPU(0表示第一个CPU,1表示第二个CPU,all则表示这两个CPU数据的平均值)、

%usr(除了nice值为负的进程,系统上其它进程运行在用户空间的时间占cpu总运行时间的比例)、

%nice(nice值为负的进程运行在用户空间的时间占cpu总运行时间的比例)、

%sys(系统上所有进程运行在内核空间的时间占cpu总运行时间的比例,不包括硬件和软件中断消耗的cpu时间)、

%iowait(cpu等待磁盘操作的时间占cpu总运行时间的比例)、

%irq(cpu处理硬件中断的时间占cpu总运行时间的比例)、

%softcpu(cpu处理软件中断的时间占cpu总运行时间的比例)、

%steal(steal时间(一个虚拟CPU等待超级管理员处理另一个虚拟CPU的时间)占cpu总运行时间的比例))、

%guest(运行虚拟cpu的时间占cpu总运行时间的比例)、

%idle(系统空闲的时间占CPU总运行时间的比例)

调试程序的有关命令:

在终端输入:gcc -o my my.c -g

启动调试:gdb my.c

在终端可选择输入以下命令:

l 显示代码      r 运行   c 继续运行     p+变量名  查看变量值    ptype 显示变量的数据类型

s 进入函数       finish 退出函数

b+行号  加断点     info break 显示断点信息  delete b N删除编号为N的断点   clean +行号 清除某一行的断点

n 单步执行      bt显示调用栈的相关信息    q 退出

gdb调试多进程

gdb  attach  4183  将子进程4183附加到gdb调试器

gdb  set follow-fork-mode mode(parent/child)  选择程序在执行fork调用后,是继续调试父进程还是子进程

gdb调试多线程

info thread显示当前可调式的所有线程,ID前有*代表当前被调试的线程

thread ID 调试目标ID指定的线程

set scheduler-locking off(默认,所有线程都可继续执行)

on(只有当前被调试的线程会继续执行)

step(单步执行时,当前线程会执行)

makefile的有关命令

在终端输入:vi makefile

库文件的有关命令

/lib系统库文件    /usr/lib  用户库文件

静态库:libxx.a   链接时加载(若要用到,每个程序都要一份拷贝)

1)先将所有的.c文件都编译成.o文件

2)ar crv libfoo.a bill.o fred.o

gcc -o program program.o libfoo.a 或者  gcc -o program program.o -L . -lfoo

共享库(动态库):libxx.so 运行时加载

gcc -shared  -fPIC a.c b.c -o libtest.so

将动态库拷贝到/usr/lib下    cp  libtest.so  /usr/lib

gcc -o main main.c -ltest

------------------end--------------

----------若有不足欢迎提出----------------------------------------

你可能感兴趣的:(linux系统的基本命令的使用心得,linux基本命令总结)