Linux每日一讲---ps不能用来作图
-
==此帖欢迎转载,转载请注明出处==
Linux的命令提供了比图形操作方式更多的灵活性,要真正掌握Linux操作必须熟悉一些基本命令的运用。
从今天开始,我以每天一篇的方式与大家一起来学习Linux的应用。
今天我们要了解的是ps (只能这样写,不能因为你习惯大声说话就大写成PS),使用它的目的是选择性的显示出系统中的进程信息。其实ps应该就是Process Snapshot(进程快照)的缩写,而不是那个目前很时髦的恶作剧工具PhotoShop(当然不仅仅是用来恶作剧啦)。
要显示进程信息干嘛?什么是进程?——不要以为提问会让你变傻,实际上有个古代傻子叫苏格拉底的只会提问,我们现在却称之为哲人。不过提问是要有技巧的,这个我们以后讨论。
进程就是系统中程序运行的实例。程序我能理解,为什么非要弄个实例出来呢?因为比如Notepad.exe这个windows的写字板程序,我们可以运行它比如3次,系统中就有三个写字板程序。我们可以分别在这三个程序中编辑不同的文字,他们互不影响。这三个运行的程序就是Notepad.exe的三个实例,也是3个进程。我们如何区分呢,他们都是NotePad呀?在系统中每个进程都有一个PID(Process ID,就是进程标识号),每个PID都不同,我们以此来区分。如果你在使用windows, 你可以同时按下CTRL+SHIFT+ESC启动任务管理器并切到进程页面就能看到进程长什么样了。如果你进入“查看”菜单,点击“选择列”命令,你就可以选择看到更多的进程信息,比如勾选PID,CPU时间等等。但是这里要说明一下,ps并不等同于windows任务管理程序中的进程管理。请记得ps只是一个我们运行ps程序瞬间的系统的进程的快照(Snapshot),是静态的。“我早说windows要比linux高级啦,我们的是动态的,你们还去学那个傻乎乎的Linux。”--这老兄看起来挺聪明,他知道挺多所以基本不提问。其实几乎每一个windows的应用都会有Linux/Unix的一个对应项,反之则不一定。top就是这样的一个对应的命令,我们以后再介绍。好了我们现在在Linux的终端窗口里输入这个看来很鸟的家伙。“什么是终端窗口”(My God!, 好了现在介绍提问技巧一:网上有个很好的老师叫Google,拜托先问他,其实这真是个好问题,以后有时间介绍)
ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps当不带任何选项使用ps命令时,该命令默认选择与当前用户及当前终端相关的所有进程,显示PID(进程标识号),TTY(终端窗口号),TIME(CPU使用时间),CMD(执行程序名)
其实ps有很多很多的开关选项。全部记住他们是完全没有必要的,我们只要了解几个常用的就好,或者只要记住ps这个命令。至于选项可以问Linux里的一个好男人 man, 比如: man ps
就可以获得ps的详细解释。(其实这里man并不是男人的意思,是Manual的缩写,指linux手册)。现列几个常用命令如下:[color=#333333] 1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u 以用户为主的格式来显示程序状况。
13)ps x 显示所有程序,不以终端机来区分。
ps aux 是最常用的,它使用了上述的a,u,x三个选项的组合(网上有很多人将其错误的写为ps -aux, 当然结果和ps aux是一样的,但是会有一个警告,想要了解为什么会有这个警告,Be a man, 使用man ps查询。)
[/color][color=#cccccc][color=black][/color][/color][color=#cccccc][color=black]ps aux[/color][/color]
[color=#cccccc][color=#000000][/color]
[color=black]USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND[/color]
[color=black]root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3][/color]
[color=black]root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd][/color]
[color=black]root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod][/color]
[color=black]root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]除了之前ps默认情况下的几个显示项,上面命令又多显示了几项,现总结说明一下:
[/color][/color][color=#cccccc][color=black]USER][/color]
[color=#cccccc][color=black]START][/color]
最后来回答ps查看进程做什么用这个问题。ps可以让你变得很酷。当某个进程启动不正常,系统运行很慢,或中毒时,你可以鸟鸟的ps一下,把那些跑动的进程全亮出来。然后抓出破坏分子,将他杀掉。对了就是杀进程。我们明天就来学习这个让人很爽的命令:kill,杀,杀,杀,呵呵。[[i] 本帖最后由 digitalsatori 于 2007-11-30 09:01 编辑 [/i]]