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]]
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login