天天看點

《Linux Shell腳本攻略》 筆記 第九章:程序管理

第九章:程序管理

1、列印程序

[root@localhost program_test]# ps -e | head
  PID TTY          TIME CMD
    1 ?        00:00:03 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 migration/0
    6 ?        00:00:00 watchdog/0
    7 ?        00:00:00 events/0
    8 ?        00:00:00 cgroup
    9 ?        00:00:00 khelper           

2、top 占用CPU最多的程序清單

[root@localhost program_test]# top
top - 23:45:17 up  1:12,  5 users,  load average: 0.00, 0.00, 0.00
Tasks: 153 total,   1 running, 143 sleeping,   9 stopped,   0 zombie
Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.3%hi,  0.0%si,  0.0%st
Mem:   1030528k total,   377184k used,   653344k free,    32588k buffers
Swap:  2064376k total,        0k used,  2064376k free,   170968k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                  
4429 root      20   0  2704 1140  880 R  0.7  0.1   0:00.12 top                                                                                                      
   21 root      20   0     0    0    0 S  0.3  0.0   0:01.63 ata_sff/0                                                                                                
2462 yy       20   0 73100  23m  18m S  0.3  2.3   0:12.11 vmtoolsd                                                                                                 
    1 root      20   0  2900 1436 1212 S  0.0  0.1   0:03.10 init                 

3、列出占CPU最多的程序

[root@localhost program_test]# ps -eo comm,pcpu --sort -pcpu | head
COMMAND         %CPU
Xorg             0.5
vmtoolsd         0.2
vmtoolsd         0.2
init             0.0
kthreadd         0.0
migration/0      0.0
ksoftirqd/0      0.0
migration/0      0.0
watchdog/0       0.0           

4、列印出bash進度對應的pid

[root@localhost program_test]# ps -C bash -o pid=
2624
2650
2696
2732
2759
3842

//與下面的指令等價
[root@localhost program_test]# ps -aux | grep bash | awk 'BEGIN { FS=" " }  $11=="bash" { print $2 }'
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
2624
2650
2759           

5、列舉出用的信号:

[root@localhost program_test]# kill -l
1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2           

6、常用信号

1)SIGHUP 1 --對控制程序和終端進行挂起檢測;

2)SIGINT  2--按下Ctrl+C發送信号

3)SIGKILL 9-- 強殺程序

4)SIGTERM 15--預設用于終止程序

5)SIGTSTP 20--按下Ctrl+Z發送信号

7、通過程序名殺死程序

[yy@localhost ~]$ killall -9 su
su: no process killed           

8、捕獲并響應信号測試 trap

[root@localhost ~]$ cat singlehandle.sh | sed '/^$/d'
#!/bin/bash
function handler()
{
        echo Hey, received signal : SIGINT
}
echo My Process ID is $$
trap 'handler' SIGINT
while true;
do 
sleep 1
done           

9、

which //找到某個指令的位置

whereis   //不僅傳回指令的路徑,還列印出對應指令手冊的位置

file         //确定檔案類型

whatis    //輸出作為參數指令的簡短資訊

uptime   //系統可運作程序總量的平均值

10、

hostname //擷取主機名
//擷取分區資訊
**[yy@localhost ~]$ cat /proc/partitions**
major minor  #blocks  name

   8        0   20971520 sda
   8        1     307200 sda1
   8        2   18598912 sda2
   8        3    2064384 sda3           

作者:銘毅天下

轉載請标明出處,原文位址:

http://blog.csdn.net/laoyang360/article/details/42364921

繼續閱讀