linux命令ps -ef | grep 查找信息
(Global Regular Expression Print)查找的意思,使用的权限是所有的用户,它是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来。但是会显示了 grep进程的本身,有的人会认为这就是自己想要的 进程,结果用 kill -9 PID 时提示进程号不存在.......进程号一直的变的那个进程是 grep进程本身(橙色标注)5344 -->5384 -->
格式: ps -ef | grep 查找信息
ps: 将某个进程显示出来
grep:(Global Regular Expression Print)查找的意思,使用的权限是所有的用户,它是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来
|:管道命名,指的是 ps 命令和 grep 命令同时执行(可以把它看做是一个连接的作用)
-e:显示所有进程
-f:全格式
比如

1. 具体的字段含义如下:
UID:用户ID,指的是程序被该UID所拥有,但输出的是用户名,比如上述输出的是root 用户
PID:进程的ID,该程序的ID
PPID:父进程ID,上级父程序的ID
C:该进程占用CPU的百分比
STIME:进程启动到现在的时间
TTY:登入者的终端机位置,该进程在哪个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
TIME:使用掉的CPU时间
CMD:启动进程的命令和参数
2. grep进程本身
通常在使用 ps命令后 用管道连接 查询特定进程会显示 grep进程本身。比如以下截图中的第三行,后缀一般是:grep --color=auto XXX

有时候查询结果其实 都是没有对应这个进程。但是会显示了 grep进程的本身,有的人会认为这就是自己想要的 进程,结果用 kill -9 PID 时提示进程号不存在.......

如何判断该进程是否是 grep进程本身? 看下方指令,你就会明白了。
进程号一直的变的那个进程是 grep进程本身(橙色标注)5344 -->5384 --> 5422
正常进程号,比如redis的PID不会变。(绿色标注)9717 -->9717 -->9717

3. 如何过滤掉grep进程本身的输出:
方法 一:在进程名 任何一个字母上添加 [ ]

因为字母加上 [ ] 后,
此时 grep进程的参数是 grep --color=auto [r]edis(注意看和上方代码框中深蓝标记的区别!!!)
而 grep [r]edis 正则表达式 匹配的是 'redis' 这个字符串,
因此这个 grep [r]edis 正则表达式 并不能匹配到 ' [r]edis' 这个字符串。(也就是grep的进程)
所以自然不会出现grep进程本身。
方法二: 在进程 后面 加 | grep -v grep
-v 参数含义为:不包括
更多推荐


所有评论(0)