您的位置:首页 > 运维架构 > Shell

第四章 更多bash shell命令一

2011-08-19 22:41 337 查看
[align=left]Key words 进程查看 :ps top 监控磁盘空间:mount、df、du 操作数据文件 sort grep Linux文件压缩工具:bzip2 compresse gzip zip[/align]
[align=left] [/align]
[align=left]4.1.1进程查看[/align]
[align=left] ps默认情况下只显示属于当前用户正在当前终端中运行的程序[/align]
[align=left][root@localhost ~]# ps[/align]
[align=left] PID TTY TIME CMD[/align]
[align=left] 4026 pts/0 00:00:00 bash[/align]
[align=left] 4793 pts/0 00:00:00 ps[/align]
[align=left] ps本身提供的信息很少,但它有很多参数,可以实现强大的功能[/align]
[align=left]linux中使用的GNU ps命令支持3种不同的命令行参数:[/align]
[align=left] 1、Unix类型参数,前面有一短划线[/align]
[align=left] 2、BSD类型参数,前面没有短划线[/align]
[align=left] 3、GNU长参数,前面有双短划线[/align]
[align=left] [/align]
[align=left]unix类型常用参数:[/align]
[align=left] ps -e/A 显示所有进程[/align]
[align=left] -f 显示完整的格式列表[/align]
[align=left] -l 显示长列表[/align]
[align=left]ps -ef 是最常用最有用的[/align]
[align=left]例:[/align]
[align=left][root@localhost ~]# ps -ef[/align]
[align=left]UID PID PPID C STIME TTY TIME CMD[/align]
[align=left]root 1 0 0 20:35 ? 00:00:07 init [5] [/align]
[align=left]root 2 1 0 20:35 ? 00:00:00 [migration/0][/align]
[align=left]root 3 1 0 20:35 ? 00:00:00 [ksoftirqd/0][/align]
[align=left]root 4 1 0 20:35 ? 00:00:00 [watchdog/0][/align]
[align=left]root 5 1 0 20:35 ? 00:00:00 [migration/1][/align]
[align=left]root 6 1 0 20:35 ? 00:00:00 [ksoftirqd/1][/align]
[align=left]root 7 1 0 20:35 ? 00:00:00 [watchdog/1][/align]
[align=left]。。。。。。[/align]
[align=left]UID :负责启动进程的用户[/align]
[align=left]PID :进程ID[/align]
[align=left]PPID:父进程ID[/align]
[align=left]C :进程存续期的处理器利用率[/align]
[align=left]STIME :进程启动时的系统时间[/align]
[align=left]TTY:进程从中启动的终端[/align]
[align=left]TIME:运行进程所需的累积CPU时间[/align]
[align=left]CMD:启动程序的名称[/align]
[align=left][root@localhost ~]# ps -el 若希望查看更多的信息,可以l参数[/align]
[align=left]F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD[/align]
[align=left]4 S 0 1 0 0 78 0 - 518 - ? 00:00:07 init[/align]
[align=left]1 S 0 2 1 0 -40 - - 0 migrat ? 00:00:00 migration/0[/align]
[align=left]1 S 0 3 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0[/align]
[align=left]5 S 0 4 1 0 -40 - - 0 watchd ? 00:00:00 watchdog/0[/align]
[align=left]1 S 0 5 1 0 -40 - - 0 migrat ? 00:00:00 migration/1[/align]
[align=left]1 S 0 6 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/1[/align]
[align=left]5 S 0 7 1 0 -40 - - 0 watchd ? 00:00:00 watchdog/1[/align]
[align=left]F:内核分配给进程的系统标记[/align]
[align=left]s :进程的状态(O=在处理器上运行; S=睡眠 ; R=可运行,等待运行 ; Z=死进程,进程以[/align]
[align=left] 终止但父进程不可用 ; T=进程已停止)[/align]
[align=left]PRI:进程的优先级,数字越大优先级越低[/align]
[align=left]NI :nice value 用于判断优先级[/align]
[align=left]ADDR:进程的内存地址[/align]
[align=left]SZ:换出进程大致需要的交换空间[/align]
[align=left]WCHAN:进程睡眠时所在的内核函数的地址[/align]
[align=left] [/align]
[align=left]BSD类型参数:[/align]
[align=left]与Unix类型参数有许多相同之处,最常用的是l 参数[/align]
[align=left][root@localhost ~]# ps l[/align]
[align=left]F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND[/align]
[align=left]4 0 3483 1 17 0 1664 452 - Ss+ tty1 0:00 /sbin/mingetty t[/align]
[align=left]4 0 3484 1 18 0 1664 452 - Ss+ tty2 0:00 /sbin/mingetty t[/align]
[align=left]4 0 3485 1 18 0 1664 448 - Ss+ tty3 0:00 /sbin/mingetty t[/align]
[align=left]4 0 3486 1 19 0 1664 448 - Ss+ tty4 0:00 /sbin/mingetty t[/align]
[align=left]4 0 3487 1 20 0 1664 448 - Ss+ tty5 0:00 /sbin/mingetty t[/align]
[align=left]4 0 3488 1 21 0 1664 452 - Ss+ tty6 0:00 /sbin/mingetty t[/align]
[align=left]4 0 3590 3586 15 0 18372 10400 - Rs+ tty7 0:29 /usr/bin/Xorg :0[/align]
[align=left]0 0 4026 4022 15 0 4912 1520 wait Ss pts/0 0:00 bash[/align]
[align=left]4 0 6055 4026 17 0 4456 844 - R+ pts/0 0:00 ps l[/align]
[align=left]不同的地方是[/align]
[align=left]VSZ :进程在内存中的大小,以KB为单位[/align]
[align=left]RSS:进程使用过且未被换成的物理内存[/align]
[align=left]STAT:由两个字符组成的状态码,表示当前进程的状态,第一个字符与Unix类型的S输出列的值相同[/align]
[align=left] ,第二个字符进一步定义进程的状态:[/align]
[align=left]< : 进程正以高优先级运行[/align]
[align=left]N :进程正以低优先级运行[/align]
[align=left]L:进程在内存中存在锁定页面[/align]
[align=left]s:进程是会话的领导者[/align]
[align=left]l:进程是多线程的[/align]
[align=left]+:进程正在前台运行[/align]
[align=left] [/align]
[align=left]4.1.2实时进程监控[/align]
[align=left] ps只能显示特定时间点的信息,而top命令可以实时显示进程信息,例如在内存中换进换出的进程趋[/align]
[align=left] 势、负载值等。[/align]
[align=left][root@localhost ~]# top[/align]
[align=left]top - 22:32:40 up 1:57, 2 users, load average: 0.07, 0.02, 0.00[/align]
[align=left]Tasks: 95 total, 2 running, 93 sleeping, 0 stopped, 0 zombie[/align]
[align=left]Cpu(s): 3.1%us, 2.9%sy, 0.0%ni, 93.8%id, 0.0%wa, 0.1%hi, 0.0%si, 0.0%st[/align]
[align=left]Mem: 1035064k total, 331236k used, 703828k free, 87928k buffers[/align]
[align=left]Swap: 2097144k total, 0k used, 2097144k free, 145676k cached[/align]
[align=left] [/align]
[align=left] PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND [/align]
[align=left] 3590 root 15 0 35356 9.9m 5820 S 7.1 1.0 0:36.91 Xorg [/align]
[align=left] 4022 root 15 0 100m 17m 10m R 4.1 1.7 0:08.06 gnome-terminal [/align]
[align=left] 3733 root 15 0 39848 11m 7664 S 0.3 1.1 0:01.06 metacity [/align]
[align=left] 3828 root 15 0 16904 4080 3188 S 0.3 0.4 0:01.71 gnome-screensav [/align]
[align=left] 6867 root 18 0 2300 1080 836 R 0.3 0.1 0:00.14 top [/align]
[align=left] 1 root 18 0 2072 660 568 S 0.0 0.1 0:07.19 init [/align]
[align=left] 2 root RT -5 0 0 0 S 0.0 0.0 0:00.35 migration/0 [/align]
[align=left] 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 [/align]
[align=left] 4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 [/align]
[align=left]。。。。。。[/align]
[align=left]第一行:当前时间 系统已正常运行的时间 登录的用户数量 系统平均负载[/align]
[align=left] 平均负载包括三个值,分别是1分钟平均负载、5分钟平均负载、15分钟平均负载。值越高则系统负[/align]
[align=left]载越大,短期活动使1分钟平均负载值冲高是常见的,但是15分钟平均负载值处于高位则表示系统可能[/align]
[align=left]遇到了麻烦。平均负载值依赖于在系统的硬件配置和其中运行的程序,这个值对不同的系统有不同的影[/align]
[align=left]响,但一般来说,如果平均负载值高于2则表示系统趋于繁忙。[/align]
[align=left]第二行:一般进程信息:有多少进程在运行、睡眠、已停止、僵死(已经运行完毕,但父进程未响应)[/align]
[align=left]第三行:CPU的一般信息[/align]
[align=left]第四第五行:系统内存状态[/align]
[align=left]剩下的信息跟PS命令的输出相似。[/align]
[align=left]默认情况下,top会根据%CPU的值对程序进行排序,但可以在top运行其中按下互交式命令改变[/align]
[align=left]程序行为[/align]
[align=left]b 启用表中重要数据用粗体显示[/align]
[align=left]z 显示颜色[/align]
[align=left]l 在单个CPU与symmetric Muutiprocessor(SMP)状态之间切换[/align]
[align=left]F 选择对进程进行排序的字段[/align]
[align=left]m 切换MEM和SWAP信息行显示[/align]
[align=left]k 杀死特定进程[/align]
[align=left]q 退出top命令[/align]
[align=left]d/s 更改更新时间(默认为3秒)[/align]
[align=left]u 显示特定用户的进程[/align]
[align=left]w 将当前设置写入配置文件[/align]
[align=left]。。。。。。[/align]
[align=left] [/align]
[align=left]4.1.3停止进程——需要root用户或进程所有者[/align]
[align=left] Linux沿用了Unix中的进程间通信方法,在Linux中,各种进程使用信号相互通信,进程信号是进程可[/align]
[align=left]以识别的预定义信息,进程可以选择忽略它或作出响应,大多数精心编写的应用程序都能接收标准Unix[/align]
[align=left]进程信号,并对此作出响应。[/align]
[align=left] Linux进程信号:[/align]

[align=left]信号[/align]
[align=left]名称[/align]
[align=left]描述[/align]
[align=left]1[/align]
[align=left]HUP[/align]
[align=left]挂起[/align]
[align=left]2[/align]
[align=left]INT[/align]
[align=left]中断[/align]
[align=left]3[/align]
[align=left]QUIT[/align]
[align=left]停止运行[/align]
[align=left]9[/align]
[align=left]KILL[/align]
[align=left]强制终止[/align]
[align=left]11[/align]
[align=left]SEGV[/align]
[align=left]段违例[/align]
[align=left]15[/align]
[align=left]TERM[/align]
[align=left]条件终止[/align]
[align=left]17[/align]
[align=left]STOP[/align]
[align=left]强制停止但未终止[/align]
[align=left]18[/align]
[align=left]TSTP[/align]
[align=left]停止或暂停,但仍继续在后台运行[/align]
[align=left]19[/align]
[align=left]CONT[/align]
[align=left]STOP或TSTP之后恢复执行[/align]
[align=left] kill 和killall 命令可以向运行中的进程发送进程信号[/align]
[align=left]kill 命令根据PID将信号发送给相关进程,默认情况下kill命令向进程发送TERM(15)信号友好地通知[/align]
[align=left]进程停止运行,但当进程失控时很可能忽略该请求。当需要执行强制措施时可以通过使用参数-s 来指定[/align]
[align=left]其他信号(名称或信号编号)[/align]
[align=left]例:[/align]
[align=left][root@localhost ~]# kill 4302[/align]
[align=left][root@localhost ~]# kill -s 9 4302[/align]
[align=left][root@localhost ~]# kill -2 4532[/align]
[align=left][root@localhost ~]# kill QUIT 4597[/align]
[align=left][/align]
[align=left] killall可以根据进程名称来停止进程,还允许使用通配符,对处理出错的系统非常有用。但使用时务必小心,否则很容易导致意外停止重要的系统进程,使文件系统受损。[/align]
[align=left][root@localhost ~]# killall gnome-terminal[/align]本文出自 “吖one的学习笔记” 博客,请务必保留此出处http://oneliting.blog.51cto.com/1043925/643458
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: