Linux进程管理命令备忘
一.管道命令 | |
1.cut | |
cut -d '分隔符' -f fields | |
eg: | |
cut -d ':' -f 5 把标准输入数据按照 : 来分割开,取出第5个字段 | |
cut -d ':' -f 5-10 把标准输入数据按照 : 来分割开,取出第5个字段到第十个字段 | |
cut -d ':' -f 5,10 把标准输入数据按照 : 来分割开,取出第5个字段和第10个字段 | |
cut -c 字符范围 | |
2.grep | |
grep 'root' 取出有root的行 | |
grep -v 'root' 取出不含root的行 | |
3.sort | |
sort 把条目从第一个字母开始按照asc码排序 | |
-r 反向排序 | |
-t 分隔符,默认以Tab键分割 | |
-k 使用哪一个区间来排序 | |
-n 使用纯数字来排序 | |
-f 排序时候,忽略大小写 | |
-b 排序时候,忽略最前面的空格部分 | |
4.wc | |
wc 列出 字数,行数,字符数 | |
-c 字符数 | |
-l 行数 | |
二.字符转换命令 | |
1.tr | |
tr [-ds] SET1 ... | |
-d 删除信息中的SET1这个字符串 | |
-s 替换掉重复的字符串 | |
eg: | |
tr [a-z] [A-Z] 把所有的小写字母换成大写的 | |
tr -d '\r' 删除掉信息中的DOS断行字符 | |
2.col | |
col [-xb] | |
-x 将tab键换成对等的空格键 | |
-b 在信息中有反斜杠(/),仅仅保留反斜杠后面接的那个字符 | |
3.join | |
join [-ti12] file1 file2 | |
-t join默认以空格符分割字段,也可以自己指定 | |
-i 忽略大小写差异 | |
-1 -2 表示第一个,第二个分别要用哪个字段来分析 | |
4.paste | |
paste [-d] file1 file2 把两个文件对应行粘贴在一起 | |
-d 默认以tab键分割 | |
- 若file部分写成 - ,则表示 标准输入的数据 | |
5.expand | |
expand [-t] file 将tab键转化为空格 | |
-t 后面接数字,表示一个tab键转化为多少个空格 | |
三.进程管理命令 | |
1.jobs | |
jobs [-lsr] | |
-l 查看所有(被中断的和放在后台正在运行的)的后台进程 | |
-s 查看中断的,放在后台的进程 | |
2.fg 将后台程序拿到前台来执行 | |
fg %jobnumber | |
eg: | |
fg 默认取出那个 + 的工作 | |
fg %2 指定取出 jobnumber 为 2 的工作 | |
3.bg 将后台中断的程序继续在后台运行 | |
4.kill | |
kill -signal PID | %jobnumber | |
kill -l 小写字母 l ,列出目前kill能使用的信号(signal), 不同的数字代表不同信号,代表接下来的工作以不同的工作方式进行 | |
signal: | |
-1 HUP 重新读取一次参数的配置文件 | |
-2 INT 代表与由键盘输入 crtl+c 同样的操作 | |
-9 KILL 立刻强制删除一个工作 | |
-15 TERM 以正常方式完成这个工作 | |
-17 STOP 暂停一个进程(相当于ctrl+z) | |
eg: | |
kill -9 %2 强制删除一个 PID 编号为 2 的工作 | |
注意: kill -9 通常是用在删除一个不正常的工作, 而 kill -15 通常用来以正常步骤结束一个工作(15也是一个默认值) | |
5.ps 选取当前时间点的进程状况 | |
ps aux 查看系统所有进程数据 | |
ps -l 仅仅查看自己bash相关的进程 | |
ps -axjf 查看进程树 | |
如果在某个进程的CMD参数后面跟着 <default> ,该进程就是僵尸进程 | |
6.pstree 以进程树的形式列出进程 | |
pstree [-A|U] [-up] | |
-A 进程树之间以ASCII字符来连接 | |
-U 进程树之间以utf-8字符来连接 | |
-p 同时列出每个进程的PID | |
-u 列出user | |
7.top 动态查看进程变化 | |
top [-d 数字] | top [-bnp] | |
-d 接秒数,默认5秒 | |
-b 以批次的方式执行top,还有更多的参数可以使用 | |
通常搭配数据流重定向来将批处理的结果输出成文件 | |
-n 与 -b 搭配,表示需要进行几次 top 的输出结果 | |
-p 指定某个 PID 来进行监测 | |
在执行 top 的过程中,可以使用的按键命令 | |
? 显示在top中可以输入的按键命令 | |
P 以CPU使用的资源情况排序 | |
M 以内存的使用情况排序 | |
T 以CPU使用时间积累来排序 | |
q 离开 | |
r 重新给某个PID的 nice (进程优先级相关)设定一个值 | |
k 重新给某个PID的 signal 设定一个值 | |
eg: | |
当我们想遏制某个高消耗资源的时候,可以先使用P找出该资源的PID, 在使用r修改nice值,降低它的优先级(设置一个大一点的数) | |
8.killall 以命令名称的方式(而非PID)来管理和杀死进程 | |
killall [-iIe] [-signal] [command name] | |
eg: | |
killall -9 httpd 杀死所有以httpd启动的命令 | |
killall -1 syslog | |
9.nice 和 renice | |
new PRI = old PRI + NI | |
1.nice 有正负,范围 -20 ~ 19 | |
2.root 随意调整(-20 ~ 19)任意进程nice值, 普通账号只能调整自己的,并且 (0~19) | |
3.普通账号对于nice只能往高调,比如原本nice=5, 调的时候只能大于5 | |
4.最终的 new PRI 还会受到 kernel 的动态调整 | |
nice [-n 数字] command | |
eg: | |
nice -n -5 vi & root用户给一个新值 -5 ,用于执行 vi 并查看该线程 | |
renice [数字] PID | |
常常配合 ps -l 一起使用 | |
四.系统资源命令 | |
1.free | |
free [-k | -m | -g] 查看内存状态,分别以 kb,mb,gb 显示 | |
2.uname | |
uname -asrmpi | |
-a 列出所有系统相关的信息 | |
-s 内核名称 | |
-r 内核版本 | |
-m 硬件名称 | |
-p cpu类型 | |
-i 硬件平台 | |
3.uptime 系统启动时间和工作负载 | |
4.netstat 跟踪网络 | |
netstat [-atunlp] | |
-a 列出系统所有的连接,监听,Socket数据 | |
-t tcp数据包的数据 | |
-u udp | |
-l listen(监听)的服务 | |
-n 以端口号来显示,不列出进程的服务名称 | |
-p 列出进程的PID | |
eg: | |
netstat -tlnp 找出目前系统上正在监听的网络连接及其PID | |
5.dmesg 分析内核产生的信息 | |
dmesg 读出存储在内存的保护区段中的内核产生的信息, 该保护区段记录着内核从开机检测到系统运行的产生的所有信息 | |
由于信息太多,常常使用 dmesg | more 快速查看 | |
6.vmstat 检测系统资源变化 | |
vmstat [-a] [延迟 [总计检测次数]] cpu/内存等信息 | |
vmstat [-fs] 内存相关 | |
vmstat [-s 单位] 设置显示数据的单位 | |
vmstat [-d] 磁盘相关 | |
vmstat [-p 分区] 磁盘相关 | |
-a 使用inactive/active(活跃与否)替代buffer/cache的内存输出信息 | |
-f 开机到目前为止的系统复制的进程数 | |
-d 列出磁盘读写总量统计表 | |
-p 后面列处分区,可以显示该分区的读写总量统计表 | |
-s 将一些事件(开机到目前为止)导致的内存变化情况列表说明 | |
eg: | |
vmstat 1 3 统计目前 cpu 状态,每秒一次,共计3次 | |
vmstat -d 系统上面所有的磁盘读写状态 |