Linux三个命令:ps,grep,tail
2018-11-07 本文已影响2人
Sui_Xin
本文首发于我的个人博客Suixin's Blog
原文: https://suixinblog.cn/2018/10/ps-grep-tail.html 作者: Suixin
这几天在服务器上跑Python的几个程序,因为运行时间较长,所以涉及到后台运行的问题,顺便也深入了解了一下Linux的几个命令。
ps
ps
命令用来显示当前的进程。是Process Status的缩写。如果需要动态的显示进程,可以使用top
命令。
ps
常用参数
-
-A
,-e
:列出所有的进程; -
aux
:列出所有使用者的详细进程(最常用); -
u
:指定用户的进程; -
r
:列出正在运行的程序; -
T
:当前终端的所有进程。
输出列的含义

上图中的各列分别代表:
- USER:进程拥有者;
- PID:进程的ID;
- %CPU:CPU占用率;
- %MEM:内存占用率;
- VSE:该进程使用掉的虚拟内存量 (Kbytes);
- RSS:该进程占用的固定的内存量 (Kbytes);
- TTY:该进程是在那个终端机上面运作。若与终端机无关,则显示
?
;tty1-tty6
是本机上面的登入者程序;pts/0
等等则表示为由网络连接进主机的程序; - STAT:该程序目前的状态。
-
R
:正在执行; -
S
:睡眠状态。在等待某个条件的形成或接受到信号; -
D
:不可中断。收到信号不唤醒和不可运行,进程必须等待直到有中断发生; -
T
:终止。进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行; -
Z
:僵死。进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放; -
<
:高优先级进程; -
N
:低优先级进程; -
s
:进程的领导者(在它之下有子进程); -
l
:多进程,克隆线程; -
+
:位于后台的进程组。
-
- START:进程启动时间和日期;
- TIME:进程使用的总cpu时间;
- COMMAND:正在执行的命令行命令。
grep
grep
命令用于查找文件里符合条件的字符串。
使用格式:grep [option] pattern file
grep常用参数
-
i
:忽略大小写; -
r
:递归的查找(当查找一个目录而不是文件时必须加上); -
v
:反向查找。显示不包含匹配文本的行; -
*py
:在file
处可直接指定文件后缀。
注:pattern
可使用正则表达式。
例子
在当前目录的后缀为.py
的文件中查找import

在目录
/code
中递归地查找import

在当前目录文件名包含
t
的文件中查找不包含=
的内容
tail
用于查看文件的内容,有一个常用的参数-f
常用于查阅正在改变的日志文件。
使用格式:tail [parameter] file
tail常用参数
-
-f
:循环读取。对于正在修改的文件比较有用(如日志文件); -
-n
:显示文件最后几行; -
-s
:与-f
合用,表示在每次循环间隙几秒。
组合使用
最经典的用法:使用Linux
的终端中的管道符号|
[1]在进程中查找,如ps aux|grep python
;
实现按照进程的CPU占用率/内存占用率排序:ps aux --sort -pcpu
或ps aux --sort -pmem
;
只输出少量信息(按enter
查看更多):ps aux --sort -pcpu|less
参考
http://www.runoob.com/linux
http://www.cnblogs.com/peida
https://www.jianshu.com/p/e1abfb1d9e8d
-
用法:
command1 | command2
,它的功能是把第一个命令command 1
执行的结果作为command 2
的输入传给command 2
↩