第四章更多bashshell命令一

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

信号
名称
描述
1
HUP
挂起
2
INT
中断
3
QUIT
停止运行
9
KILL
强制终止
11
SEGV
段违例
15
TERM
条件终止
17
STOP
强制停止但未终止
18
TSTP
停止或暂停,但仍继续在后台运行
19
CONT
STOP或TSTP之后恢复执行

成都创新互联公司从2013年开始,先为保靖等服务建站,保靖等地企业,进行企业商务咨询服务。为保靖企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

     kill 和killall 命令可以向运行中的进程发送进程信号
kill命令根据PID将信号发送给相关进程,默认情况下kill命令向进程发送TERM(15)信号友好地通知
进程停止运行,但当进程失控时很可能忽略该请求。当需要执行强制措施时可以通过使用参数-s 来指定
其他信号(名称或信号编号)
例:
[root@localhost ~]# kill 4302
[root@localhost ~]# kill -s 9 4302
[root@localhost ~]# kill -2 4532
[root@localhost ~]# kill QUIT 4597
 
   killall可以根据进程名称来停止进程,还允许使用通配符,对处理出错的系统非常有用。但使用时务必小心,否则很容易导致意外停止重要的系统进程,使文件系统受损。
[root@localhost ~]# killall gnome-terminal

分享文章:第四章更多bashshell命令一
文章分享:http://myzitong.com/article/gsosei.html