显示进程
ps:显示系统执行的进程
语法:
ps <选项> <参数>
选项:
-a # 显示所有终端机下执行的程序,除了阶段作业领导者之外。
a # 显示现行终端机下的所有程序,包括其他用户的程序。
-A # 显示所有程序。
-c # 显示CLS和PRI栏位。
c # 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称> # 指定执行指令的名称,并列出该指令的程序的状况。
-d # 显示所有程序,但不包括阶段作业领导者的程序。
-e # 此选项的效果和指定"A"选项相同。
e # 列出程序时,显示每个程序所使用的环境变量。
-f # 显示UID,PPIP,C与STIME栏位。
f # 用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称> # 此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g # 显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码> # 列出属于该群组的程序的状况,也可使用群组名称来指定。
h # 不显示标题列。
-H # 显示树状结构,表示程序间的相互关系。
-j或j # 采用工作控制的格式显示程序状况。
-l或l # 采用详细的格式来显示程序状况。
L # 列出栏位的相关信息。
-m或m # 显示所有的执行绪。
n # 以数字来表示USER和WCHAN栏位。
-N # 显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码> # 指定程序识别码,并列出该程序的状况。
p<程序识别码> # 此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r # 只列出现行终端机正在执行中的程序。
-s<阶段作业> # 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s # 采用程序信号的格式显示程序状况。
S # 列出程序时,包括已中断的子程序资料。
-t<终端机编号> # 指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号> # 此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T # 显示现行终端机下的所有程序。
-u<用户识别码> # 此选项的效果和指定"-U"选项相同。
u # 以用户为主的格式来显示程序状况。
-U<用户识别码> # 列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称> # 列出属于该用户的程序的状况。
v # 采用虚拟内存的格式显示程序状况。
-w或w # 采用宽阔的格式来显示程序状况。
x # 显示所有程序,不以终端机来区分。
X # 采用旧式的Linux i386登陆格式显示程序状况。
-y # 配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
--cols<每列字符数> # 设置每列的最大字符数。
--headers # 重复显示标题列。
--info # 显示排错信息。
--lines<显示列数> # 设置显示画面的列数。
实例:
ps -u root # 显示root进程用户信息
ps -aux | grep sshd # 查询显示sshd的进程信息
ps -ef | more # 以全格式显示当前所有的进程,分页显示
进程列表说明:
USER # 用户名
PID # 进程号
%CPU # 进程占用CPU的百分比
%MEM # 进程占用物理内存的百分比
VSZ # 进程占用的虚拟内存大小(单位:KB)
RSS # 进程占用的物理内存大小(单位:KB)
TTY # 终端名称
STAT # 进程状态(S:睡眠;s:该进程是回话的先导进程;N:低优先级的进程;<:高优先级的进程;R:正在运行;D:短期等待;Z:僵死进程;T:暂停执行...)
START # 进程的启动时间
TIME # 进程使用CPU的总时间
COMMAND # 启动进程所用的命令和参数
pstree:以树状形式展示进程
语法:
pstree <选项>
选项:
-a # 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
-c # 不使用精简标示法
-G # 使用VT100终端机的列绘图字符
-h # 列出树状图时,特别标明现在执行的程序
-l # 采用长列格式显示树状图
-n # 用程序识别码排序。预设是以程序名称来排序
-p # 显示进程PID
-u # 显示进程所属用户
-U # 使用UTF-8列绘图字符
参数:
进程名称 # 指定要杀死的进程名称。
实例:
pstree -p # 显示当前所有进程的进程号和进程id
top:动态监控,动态显示系统执行的进程
语法:
top <选项> <参数>
选项:
-b # 以批处理模式操作
-c # 显示完整的治命令
-d # 屏幕刷新间隔时间
-I # 忽略失效过程
-s # 保密模式
-S # 累积模式
-i<时间> # 设置间隔时间
-u<用户名> # 指定用户名
-p<进程号> # 指定进程
-n<次数> # 循环显示的次数
实例:
top # 显示进程信息
top -d 5 # 每5秒刷新一次进程信息
top -p 139 # 显示进程号为139的进程信息
top -n 10 # 显示更新10次后退出
进入top界面后的操作:
c # 显示完整的命令名
d # 修改刷新时间
h # 显示帮助画面,给出一些简短的命令总结说明
k # 指定要杀死的进程
u # 显示指定用户相关进程
P # 按CPU使用排序
M # 按内存使用排序
F # 排序(进入新的界面,并选择排序的目标字段)
R # 顺序或逆序
H # 显示线程
Z # 以多色彩显示top
l/t/m # toggle/load/cpu/内存信息
1 # 显示多CPU的信息(多核机器上查看每个CPU的使用率)
W # 保存当前top的配置
top说明:
top - 11:52:15 up 6:14, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 347 total, 2 running, 345 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.3 us, 15.8 sy, 0.0 ni, 78.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1001336 total, 119236 free, 137632 used, 744468 buff/cache
KiB Swap: 2097148 total, 2095644 free, 1504 used. 651196 avail Mem
# 说明
top - 11:52:15 # 当前系统时间
6:14 # 运行时间
2 user # 当前登录用户数
load average: 0.00, 0.01, 0.05 # 系统负载均衡,(0.00+0.01+0.05)/3 > 0.7,大于0.7系统就会有点卡
Tasks: 347 total # 总进程数
2 running # 正在运行的进程数
345 sleeping # 睡眠的进程数
0 stopped # 停止的进程数
0 zombie # 僵死的进程数
%Cpu(s): 5.3 us # 用户空间占用CPU百分比
15.8 sy # 系统空间占用CPU百分比
0.0 ni # 用户进程空间内改变过优先级的进程占用CPU百分比
78.9 id # CPU处在空闲状态百分比
0.0 wa # IO等待所占用的CPU百分比
0.0 hi # 硬件中断占用CPU百分比
0.0 si # 软件中断占用CPU百分比
0.0 st # 丢失时间占用CPU百分比
KiB Mem : 1001336 total # 物理内存总量
119236 free # 空闲内存总量
137632 used # 使用的物理内存总量
KiB Swap: 2097148 total # 交换区总量
2095644 free # 空闲交换区总量
1504 used # 使用的交换区总量
终止进程
kill:使用进程ID杀死进程
语法:
kill <选项> <参数>
选项:
-a # 当处理当前进程时,不限制命令名和进程号的对应关系
-l <信息编号> # 若不加<信息编号>选项,则-l参数会列出全部的信息名称
-p # 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s <信息名称或编号> # 指定要送出的信息
-u # 指定用户
参数:
进程或作业识别号 # 指定要删除的进程或作业。
实例:
kill -l # 列出所有信号名称
kill -KILL 1234 # 强制杀死进程ID为1234的进程
kill -9 1234 # 强制杀死进程ID为1234的进程
kill -u tom # 杀死指定用户所有进程
kill -9 $(ps -ef | grep tom) # 杀死指定用户所有进程
常用信号说明:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + )
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
killall:使用进程名称杀死进程
语法:
killall <选项> <参数>
选项:
-e # 对长名称进行精确匹配
-l # 忽略大小写的不同
-p # 杀死进程所属的进程组
-i # 交互式杀死进程,杀死进程前需要进行确认
-l # 打印所有已知信号列表
-q # 如果没有进程被杀死。则不输出任何信息
-r # 使用正规表达式匹配要杀死的进程名称
-s # 用指定的进程号代替默认信号“SIGTERM”
-u # 杀死指定用户的进程
参数:
进程名称 # 指定要杀死的进程名称
实例:
killall vi # 杀死所有同名进程