跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Linux使用及技巧
  4. Linux每日一讲---ps不能用来作图

Linux每日一讲---ps不能用来作图

已定时 已固定 已锁定 已移动 Linux使用及技巧
2 帖子 1 发布者 12.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • digitalsatoriD 离线
    digitalsatoriD 离线
    digitalsatori 管理员
    写于 最后由 编辑
    #1

    ==此帖欢迎转载,转载请注明出处==
    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]]

    【上海先安科技】(tony AT openerp.cn)

    1 条回复 最后回复
    0

    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组