SECTION 3 ps、top、kill、killall、mount、unmount、df、du、sort、grep、gzip、tar

1. ps

ps显示此时进程信息,参数包括三种类型:

Unix风格参数,加-,从贝尔实验室开发的AT&T Unix系统原有的ps命令继承而来,-ef
BSD风格参数,参数前不加-,伯克利软件发行版(BSD)是加州大学伯克利分校开发的一个Unix版本,aux
GNU风格参数,加–,GNU开发人员改进中加入的一些参数,–forest

常用Unix风格参数
ps -ef,系统上所有进程的信息,
UID,PID,PPID,C(进程生命周期中的CPU利用率),STIME,TTY,TIME,CMD

ps -l,长格式输出
F S(进程状态:O正在运行,S休眠,R可运行,正等待运行,Z僵化(进程结束,但父进程已不存在),T停止) PRI(进程优先级,数字越大优先级越低) NI(谦让度)ADDR(内城内存地址)SZ WCHAN

常用BSD风格参数
ps aux,系统上所有进程信息,类似-ef,
VSZ(进程在内存中的大小)STAT(双字节状态码,s该进程是控制进程,l该进程是多线程的,+运行在前台,L该进程有页面锁定在内存中)

# ps aux |more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 4772 564 ? S Sep22 0:03 init [3]
root 2 0.0 0.0 0 0 ? S Sep22 0:03 [migration/0]
root 3 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S Sep22 0:02 [migration/1]
root 5 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/1]
root 6 0.0 0.0 0 0 ? Ss+ Sep22 0:02 [migration/2]
root 7 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/2]
root 8 0.0 0.0 0 0 ? S Sep22 0:00 [migration/3]
root 9 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/3]
root 10 0.0 0.0 0 0 ? S< Sep22 0:00 [migration/4]

上述各位解释:

  1. USER 进程的属主;
  2. PID 进程的ID;
  3. PPID 父进程;
  4. %CPU 进程占用的CPU百分比;
  5. %MEM 占用内存的百分比;
  6. NI 进程的NICE值,数值大,表示较少占用CPU时间;
  7. VSZ 进程使用的虚拟內存量(KB);
  8. RSS 该进程占用的固定內存量(KB)(驻留中页的数量);
  9. TTY 该进程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。若为pts/0等,则表示由网络连接主机进程
  10. STAT 进程状态;
  11. START 該進程被觸發启动时间;
  12. TIME 該进程實際使用CPU運行的时间;
  13. COMMAND 命令的名称和参数;

STAT狀態位常見的狀態字符

D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换 (从内核2.6开始无效);
X 死掉的进程 (基本很少見);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);

  • 位于后台的进程组;

常用GNU风格参数
ps --forest,显示进程层级信息

2. top

top显示实时进程信息

top命令输出信息包含两部分内容:
第一部分为统计信息,包含五行数据信息;第二部分为详细信息,显示了各个进程的详细信息。

top - 10:17:29 up 8 days, 59 min,  1 user,  load average: 0.15, 0.10, 0.07
Tasks: 313 total,   1 running, 312 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.4 us,  0.2 sy,  0.0 ni, 99.1 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7881524 total,  4377420 free,  1417364 used,  2086740 buff/cache
KiB Swap:  8126460 total,  8126460 free,        0 used.  6139048 avail Mem

第一行:任务队列信息,同 uptime 命令的执行结果

输出信息说明
19:47:24当前时间
up 8 days, 59 min系统运行时间
1 users当前登录用户数
load average: 0.00, 0.01, 0.05系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行,Tasks — 任务(进程)
Tasks: 182 total, 1 running, 181 sleeping, 0 stopped, 0 zombie
182个进程(任务),其中有1个处于运行状态,181个处于睡眠状态,没有停止的进程,没有僵尸进程

第三行,cpu状态信息%Cpu(s)

输出信息说明
0.4 us用户进程(user)占用CPU的0.4%
0.2 sy系统进程(system)占用CPU的0.2%
0.0 ni用户进程没有改变过优先级的进程,所以user nice值为0.0%
99.1 id99.1%的CPU处于空闲状态(idle)
0.2 waIO等待占用CPU的百分比为0.2%
0.0 hi硬件请求终端时间(hardware interrupt)占CPU的0.0%
0.0 si软终端请求时间占CPU的0.3%
0.0 stst代表steal 越低越好(虚拟机占用cpu情况)

第四行,内存状态

KIB Mem说明
1035244k total内存总量为1035244k
537528k used已使用的内存总量为537528k
497716k free497716k为空闲内存总量
25816k buff/cache25816k用作内核缓存的内存总量。

第五行,swap交换分区信息

KiB Swap说明
8126460 total交换分区总量为8126460k
8126460 free空闲交换分区总量为8126460k
0 used使用的交换分区总量为0k
6141012 avail Mem还可以给其他的程序使用的内存,avail Mem = free + buff/cache 还可以使用的空间

备注,关于内存

可用内存=free + buffer + cached
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,
第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。
纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

第七行以下:各进程(任务)的状态监控

名称说明
PID进程id
USER进程所有者
PR进程优先级
NInice值。负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kbS
S进程状态,D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND进程名称(命令名/命令行)

详解

VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存 1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存 1、除了自身进程的共享内存,也包括其他进程的共享内存 2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式:RES – SHR 4、swap out后,它将会降下来
DATA: 1、数据占用的内存。如果top没有显示,按f键可以显示出来。2、真正的该程序要求的数据空间,是真正在运行中要使用的。

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:

s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出
tops – 改变画面更新周期

常用命令说明

Ctrl+L:擦除并且重写屏幕
K:终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i:忽略闲置和僵死进程。这是一个开关式命令。
q:退出程序
r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S:切换到累计模式。
s:改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F:从当前显示中添加或者删除项目。
o或者O:改变显示项目的顺序
l:切换显示平均负载和启动时间信息。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据驻留内存大小进行排序。
P:根据CPU使用百分比大小进行排序。
T:根据时间/累计时间进行排序。
W:将当前设置写入~/.toprc文件中。

3. kill、killall、mount、unmount、df、du、sort、grep、gzip、tar

kill向进程发送信号,kill -signal PID,常用-9,无条件强制终止,kill -s SIGNAL PID,支持向进程发送非数字信号
killall可以通过进程名结束进程,支持通配符,killall http*
mount查看当前系统挂载信息。mount -t type device mount_point,挂载设备,例如挂载u盘,
mount -t vfat /dev/sdb1 /mnt/udisk
-r只读,-w可写(默认)
umount卸载设备
umount [mount_point | device]
df查看设备磁盘空间使用情况,df -h(易读)
du显示特定目录的磁盘使用情况,-c显示所有已列出文件总大小,-h易读,-s:显示总大小
sort排序,-n按数字排序,-M按月排序,-r反序,-k和-t组合,-t指定字段分割符,-k指定排序字段,例如:
sort -t ':' -k 3 -n /etc/passwd
grep在文件中搜索数据,grep [option] pattern [file],-v反向搜索,-n显示行号,-c匹配行数,-e指定模式(可指定多个,grep -e t -e f -e b tofboy)
gzip压缩工具,zcat压缩包查看工具,gunzip解压工具,压缩完成会删除原文件
tar归档数据,tar function [options] obj1 obj2 ...
功能命令:-A(将一个tar追加到另一个tar中),-c创建归档,-r(追加文件到已有tar末尾),-x从tar中提取文件
选项参数:-C dir切换到指定目录,-f file输出结果到文件,-p保留所有文件权限,-v显示过程,-z使用gzip压缩,-j使用bzip2压缩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值