部分常用Shell命令已整理在Linux常用命令博文中,下面做些补充。
1、 less/more:分屏显示文件
2、 grep:显示含有关键字的行
3、 diff:比较两个文件。若两个都为文本文件则会输出两个文件不同的文本,若无差异则不会输出;若两个都为目录则会输出两个目录内文件的差异。diff命令通常用于查看两个补丁文件的异同从而进行软件的版本控制工作。
4、 file:判定文件类型
5、 echo:显示文本
6、 date:显示/设置系统时间与日期
-d 字符串:显示指定字符串的时间而不是“现在时间”
-R:以RFC2822格式输出
-s 时间:设定指定的时间。
7、whereis:查看命令存储位置/源码存储位置/帮助文档存储位置
-b:只显示命令存储位置
-s:只显示源码存储位置
-m:只显示帮助文档存储位置
8、ps:报告当前进程信息
-A或-e:报告所有进程
a:显示现行终端下的所有程序(包括其他用户)
x:不区分终端,显示所有程序
u:使用用户为主的格式
f:用树形结构显示
常用ps axu来显示所有进程信息,再配合grep和管道去查看特定进程信息。
使用ps显示进程信息,显示出的信息的表头信息分别为:
USER:进程所有者
PID:进程id号
PPID:父进程id号
PGID:进程组id号
SID:会话id号
TTY:进程相关的终端
CPU:占用CPU百分比
MEM:占用内存百分比
STAT:进程状态。有以下几种形式:
S:休眠
D:无法中断的休眠(例如某些负责IO的进程)
R:运行中
T:停止
Z:僵死
<:优先级高
N:优先级低
s:进程领导者,在该进程下有子进程
l:多进程的
+:后台进程组
TIME:进程消耗CPU的时间
COMMAND:命令行参数
9、top:实时监视当前进程
-pPID:监视指定进程号的进程。可以有多个PID
与ps命令不同,top命令显示的进程信息会进行实时刷新,通常通过top命令得出当前的CPU和内存负载情况。
10、df:报告文件系统占用空间情况
-a:显示全部文件系统
-h:方便阅读模式(即转换为1G=1024M,1M=1024K的模式)
-i:显示inode信息
-t文件系统类型:只显示选定文件系统
11、du:显示磁盘空间的使用情况
-h:方便阅读模式(即转换为1G=1024M,1M=1024K的模式)
-a:显示目录以及目录下其他子目录和子文件占用磁盘空间大小
-s:只显示目录,不显示目录下其他子目录和子文件占用磁盘空间大小
12、kill:杀死指定进程(需指定进程ID)
-9:强行杀死
-HUP进程名:改为指定进程名
kill命令经常与ps命令一起使用,用于杀死已经死锁或需要终止的进程。
//实际上,kill命令的真正含义是向进程发送一个信号。有关kill的用法将会在进程间通信的课程中详细学习
13、chmod:改变文件的文件权限
用法:chmod 文件权限码 文件名。例如chmod 0775 hello.c
14、chown:改变文件所有者或文件组
用法:chown 用户名:组名 文件名。例如chownroot:root hello.c
15、pwd:显示当前的绝对路径
16、ln:创建文件的链接
-s:创建符号链接(软链接)。若此选项缺省则认为创建的是硬链接。
17、who:显示目前登陆系统的用户信息
whoam i 或 -m:显示当前用户名
-H:显示表头信息
18、man;获取命令或程序的说明文档
对于同一个命令或程序,man命令可能拥有多个章节。这时我们可以在man命令后面添加对应的数字信息来查看更多信息。例如,输入man 1 printf和man 3 printf可以得到printf在不同章节的说明文档。
1:Shell标准命令说明
2:系统调用说明
3:常用库函数说明(一般为C库函数)
4:特殊文件说明(一般为/dev下的设备)
5:文件格式说明(例如/etc/passwd)