第四章 更多的bash shell命令
本帖最后由 冷月nuanyang 于 2022-8-18 20:59 编辑4.1 监测程序
Linux系统管理员面临的最复杂的任务之一就是跟踪运行在系统中的程序——尤其是现在图形化桌面集成了大量的应用来生成一个完整的桌面环境。系统中总是运行着大量的程序。
4.1.1 探查进程
当程序运行在系统上时,我们称之为进程(process)想监测这些进程,需要熟悉ps命令的用法。ps命令好比工具中的瑞士军刀,它能输出运行在系统上的所有程序的许多信息
默认情况下,ps命令并不会提供那么多的信息
默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户 的进程。上例的基本输出中显示了程序的进程ID(Process ID,PID)它们运行在那个终端(TTY)以及进程已用的CPU时间
Linux系统中使用GNU ps命令支持3中不同类型的命令行参数
①Unix风格的参数,前面加单破折线
②BSD风格参数,前面不加破折线
③GNU风格长参数,前面加双破折线
1.Unix风格的参数
Unix风格的参数是从贝尔实验室开发的AT&TUnix系统上原有的ps命令继承下来的如
使用ps命令的关键不在于记住所有可用的参数而在于记住最有用的那些参数。大多数Linux系统管理员都有直接的一组参数,它们会牢牢记住这些用来提取有用的进程信息的参数,如果你想查看系统上运行的所有进程,可用-ef参数组合(ps命令允许你像这样把参数组合在一起)
Linux系统上运行了很多进程。-e参数指定显示所有运行在系统上的进程,-f参数则扩展了输出,这些扩展的列包含了有用的信息
①UID:启动这些进程的用户
②PID:进程的进程ID
③PPID:父进程的进程号(如果该进程是由另一个进程启动的)
④C:进程生命周期中CPU的利用率
⑤STIME:进程启动时系统时间
⑥TTY:进程启动时的终端设备
⑦TIME:运行进程需要的累计CPU时间
⑧CMD:启动程序的名称
输出了合理数量的信息,这也是大多下系统管理员希望看到的。如果想要获得更多的信息,可采用-l参数,它会产生一个长格式输出
注意使用了-l参数之后多出的那些列
①F:内核分配给进程的系统标记
②S:进程状态(O代表在运行;S代表在休眠;R代表可运行,正等待运行,Z代表僵化,进程已结束但父进程已不存在,T代表停止)
③PRI:进程优先级(越大的数字代表越低的优先级)
④NI:谦让度值用来参与决定优先级
⑤ADDR:进程的内存地址
⑥SZ:假如进程被换出,所需交换空间的大致大小
⑦WCHAN:进程休眠的内核函数地址
2.BSD风格的参数
BSD版的ps命令参数如
在使用BSD参数时,ps命令会自动改变输出以模仿BSD格式如
其中大部分的输入列表跟使用Unix风格参数时输出是一样的,只有一小部分不同
①VSZ:进程在内存中的大小,以千字节(KB)为单位
②RSS:进程在未换出时占用的物理内存
③STAT:代表当前进程状态的双字符状态码
许多系统管理员都喜欢BSD风格的l参数。它能输出更详细的进程状态码(STAT列),双字符状态码能比Unix风格输出的单字符状态码更清楚地表示进程的当前状态
第一个字符采用了和Unix风格S列相同的值,表明进程实在休眠、运行还是等待。第二个参数进一步说明进程的状态
①<:该进程运行在高优先级上
②N:该进程运行在低优先级上
③L:该进程又页面锁定在内存中
④S:该进程是控制进程
⑤L:该进程是多线程的
⑥+:该进程运行在前台
3.GNU长参数
GNU长参数中--forest参数,会显示进程的层级信息
————————————————————————————————————————————————
4.1.2 实时监测进程
https://www.chncert.cn/forum.php?mod=viewthread&tid=741&fromuid=1016784
页:
[1]