资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top

1、du:查看目录或文件使用磁盘空间的大小

[root@localhost ~]# du [选项] [目录或文件名]

选项:

  • -a : 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
  • -b : 输出的结果以bytes为单位
  • -c : 只计算目录的总用量
  • -h :使用习惯单位显示磁盘占用量,如KB、MB
  • -s : 统计总占用量,而不列出子目录和子文件的占用量
1.1>命令: du -sh /etc/
[root@root network-scripts]# du -sh /etc/
38M	/etc/
1.2>命令: du -s
[root@root ~]# du -s
182824	.
1.2>命令: du -c /etc/lvm/
[root@root ~]# du -c /etc/lvm/
4	/etc/lvm/archive
8	/etc/lvm/cache
4	/etc/lvm/backup
64	/etc/lvm/
64	总用量

2、df:查看硬盘分区空间使用情况

[root@localhost ~]# df [选项] [参数]

参数:

  • -h : 以1024进制进行单位换算
  • -H :以1000进制进行单位换算
  • -t :指定显示分区的类型
  • -i : 显示分区的inode使用情况
2.1> 命令:df
[root@root ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       20158332 3674192  15460140  20% /
tmpfs             953788     224    953564   1% /dev/shm
/dev/sda1        1007896   46552    910144   5% /boot
/dev/sda3       10079084  154860   9412224   2% /home
/dev/sda5        5039616  141084   4642532   3% /opt
/dev/sr0         3762278 3762278         0 100% /media/RHEL_6.5 x86_64 Disc 1
/dev/sr0         3762278 3762278         0 100% /mnt
2.2> 命令:df -t ext4

列出文件系统为ext4的分区

[root@root ~]# df -t ext4
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       20158332 3674192  15460140  20% /
/dev/sda1        1007896   46552    910144   5% /boot
/dev/sda3       10079084  154860   9412224   2% /home
/dev/sda5        5039616  141084   4642532   3% /opt
2.3>命令: df -h
[root@root network-scripts]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        20G  3.6G   15G  20% /
tmpfs           932M  224K  932M   1% /dev/shm
/dev/sda1       985M   46M  889M   5% /boot
/dev/sda3       9.7G  152M  9.0G   2% /home
/dev/sda5       4.9G  138M  4.5G   3% /opt
/dev/sr0        3.6G  3.6G     0 100% /media/RHEL_6.5 x86_64 Disc 1
/dev/sr0        3.6G  3.6G     0 100% /mnt

3、free:查看内存使用情况

[root@localhost ~]# free [选项] [分区]

参数:

  • -m : 以1024KB=1M计算
  • -g : 以1024MB=1G计算
3.1> 命令:free
[root@root ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1862        826       1036          0         72        259
-/+ buffers/cache:        494       1368
Swap:         4095          0       4095

4、ps命令——查看系统中所有进程

4.1>查看系统中所有进程

[root@root ~]# ps -le
#查看系统中所有进程,使用Linux标准命令格式

[root@root ~]# ps aux
#查看系统中所有进程,使用BSD(Unix)操作系统格式
#-a:查看所有前台进程;-x:查看所有后台进程;-u:显示这个进程是有哪个用户产生

参数:
资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第1张图片资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第2张图片

[root@root aide]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
raaoot        1  0.0  0.0  19364  1268 ?        Ss   09:02   0:01 /sbin/init
raaoot        2  0.0  0.0      0     0 ?        S    09:02   0:00 [kthreadd]
raaoot        3  0.0  0.0      0     0 ?        S    09:02   0:01 [migration/0]
raaoot        4  0.0  0.0      0     0 ?        S    09:02   0:00 [ksoftirqd/0]
raaoot        5  0.0  0.0      0     0 ?        S    09:02   0:00 [migration/0]
raaoot        6  0.0  0.0      0     0 ?        S    09:02   0:00 [watchdog/0]
raaoot        7  0.0  0.0      0     0 ?        S    09:02   0:00 [migration/1]
raaoot        8  0.0  0.0      0     0 ?        S    09:02   0:00 [migration/1]
raaoot        9  0.0  0.0      0     0 ?        S    09:02   0:00 [ksoftirqd/1]
raaoot       10  0.1  0.0      0     0 ?        S    09:02   0:54 [watchdog/1]
raaoot       11  0.0  0.0      0     0 ?        S    09:02   0:03 [events/0]
raaoot       12  0.0  0.0      0     0 ?        S    09:02   0:23 [events/1]

示例:[root@root ~]# ps aux

4.1> 查看系统占用内存最高进程的TOP5

命令:[root@root ~]# ps aux | sort -rn -k4 | head -5 | awk '{print $4,$11}'

[root@root ~]# ps aux | sort -rn -k4 | head -5 | awk '{print $4,$11}'
1.8 /usr/bin/Xorg
1.3 python
1.3 gnome-screensaver
1.2 nautilus
1.1 /usr/bin/gnote
4.2> 查看系统占用 CPU 最高的进程的 TOP5
[root@root ~]# ps aux | sort -rn -k3 | sed '/%CPU/d' | head -5 | awk '{print $3,$11}'
2.0 ps
1.0 /usr/libexec/rtkit-daemon
0.4 /usr/bin/Xorg
0.1 /usr/bin/gnome-terminal
0.1 /usr/bin/pulseaudio
4.3> 生成新报表

[root@root ~]# ps -o pid,pcpu,nice,comm

[root@root ~]# ps -o pid,pcpu,nice,comm
   PID %CPU  NI COMMAND
  5101  0.0   0 bash
 15620  0.0   0 ps
4.4> 生成新的进程表

[root@root ~]# ps -axef -o comm,pid,nice,pcpu

[root@root ~]# ps -axef -o comm,pid,nice,pcpu
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
COMMAND            PID  NI %CPU
kthreadd             2   0  0.0
 \_ migration/0      3   -  0.0
 \_ ksoftirqd/0      4   0  0.0
... ...

5、pstree:查看进程树

[root@localhost ~]# pstree [参数]

参数:

  • -u : 在进程名旁显示进程所属的用户名
  • *-p : 在进程名旁显示 PID *
  • -a :显示命令的详细信息

显示如下:

资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第3张图片

资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第4张图片

6、lsof:显示进程所打开的文件

[root@localhost ~]# lsof [选项]

[root@root ~]# lsof | more -10
COMMAND     PID      USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAM
E
init          1      root  cwd       DIR                8,2      4096          2 /
init          1      root  rtd       DIR                8,2      4096          2 /
init          1      root  txt       REG                8,2    150352     391882 /sb
in/init
init          1      root  mem       REG                8,2     65928     391712 /li
b64/libnss_files-2.12.so
init          1      root  mem       REG                8,2   1926800     404367 /li
b64/libc-2.12.so
--More--

lsof 输出各列信息的意义如下:

  • COMMAND :进程的名称
  • PID :进程标识符
  • USER :进程所有者
  • FD :文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
  • DEVICE :指定磁盘的名称
  • SIZE :文件的大小
  • NODE :索引节点(文件在磁盘上的标识)
  • NAME :打开文件的确切名称
6.1> 查看指定文件相关的进程信息,即找出此文件的进程

[root@root ~]# lsof /bin/bash

[root@root ~]# lsof /bin/bash
COMMAND  PID USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
bash    5101 root txt    REG    8,2   938832 652850 /bin/bash

7、uptime:显示系统不间断运行时间及 1,5,15分钟负载

[root@root ~]# uptime [ 选项 ]

系统平均负载是指在特定时间间隔内运行队列中的平均进程数。

[root@root ~]# uptime
 23:12:03 up  6:49,  2 users,  load average: 0.05, 0.01, 0.00

8、kill:对进程进行控制

特点:

  • kill不仅仅可以杀掉进程,而且还可以最进程实现暂停,继续;
  • kill的操作对象是PID
  • kill对进程的操作实际是对PID发信号
  • 如果杀死父进程,那么子进程也将被杀掉。
8.1> [root@root ~]# kill -l

#查看可用的进程号,总共64 个

[root@root aide]# 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
63) SIGRTMAX-1	64) SIGRTMAX	

常用的进程号:
资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第5张图片

8.2> [root@root ~]# kill [ 信号 ] PID

不管是Linux或者Windows系统中做进程管理,遇到不认识的进程最好先百度一下这个进程是干嘛的,切记,不要直接将它黑掉,有可能黑的你自己,系统奔溃了。

示例说明:

[root@root ~]# kill -1 22345
#重启进程

[root@root ~]# kill -9 22368
#强制杀死进程

示例如下:以apach作为实验

[root@root aide]# pstree -p | grep httpd
        |-httpd(25483)-+-httpd(25486)
        |              |-httpd(25487)
        |              |-httpd(25488)
        |              |-httpd(25489)
        |              |-httpd(25490)
        |              |-httpd(25491)
        |              |-httpd(25492)
        |              `-httpd(25493)
#显示所有的httpd的父进程和子进程
[root@root aide]# kill -9 25491
#彻底杀死-httpd(25491)的进程
[root@root aide]# pstree -p |grep httpd
        |-httpd(25483)-+-httpd(25486)
        |              |-httpd(25487)
        |              |-httpd(25488)
        |              |-httpd(25489)
        |              |-httpd(25490)
        |              |-httpd(25492)
        |              `-httpd(25493)
#发现-httpd(25491)的进程已经被杀死
[root@root aide]# kill -1 25483
#重启httpd的这个父进程,即重启httpd服务
[root@root aide]# pstree -p |grep httpd
        |-httpd(25483)-+-httpd(25708)
        |              |-httpd(25709)
        |              |-httpd(25710)
        |              |-httpd(25711)
        |              |-httpd(25712)
        |              |-httpd(25713)
        |              |-httpd(25714)
        |              `-httpd(25715)
#虽然httpd子进程的进程号变了,可能是重启的原因吧

9、killall:按照进程名杀死进程

killall [选项] [信号] 进程名

  • #信号选项和kill是通用的。如-9,就是强制杀死
  • killall命令后面跟的是进程名

选项:

  • -i : 交互式,询问是否要杀死某个进程
  • -I : 忽略进程名的大小写

示例如下:

[root@root aide]# pstree -p |grep httpd
        |-httpd(25483)-+-httpd(25708)
        |              |-httpd(25709)
        |              |-httpd(25710)
        |              |-httpd(25711)
        |              |-httpd(25712)
        |              |-httpd(25713)
        |              |-httpd(25714)
        |              `-httpd(25715)
[root@root aide]# killall -9 httpd
[root@root aide]# pstree -p |grep httpd
[root@root aide]# 
#可以发现apach被彻底杀死

9.1> killall bash

10、前后台调度

10.1> 程序在后台运行 1

方法一:commands &
-& 符号为 commands 在后台运行

方法二:bg commands
-bg 命令为 commands 在后台运行

[root@root ~]# vim test.txt &
[1] 19477
#将test.txt &程序转到后台,PID为19477。第1个转后台的程序
[root@root ~]# vim test1.txt &
[2] 19544
将test1.txt &程序转到后台,PID为19544。第2个转后台的程序
10.3> 查看后台任务

jobs

[root@root ~]# jobs
[1]   Stopped                 vim test.txt
[2]   Stopped                 vim test1.txt
[3]-  Stopped                 vim test4.txt
[4]+  Stopped                 vim test1.com
10.4> 根据 jobs 命令的后台任务序号调回前台

fg 1
-fg 为前台命令

[root@root ~]# jobs
[1]   Stopped                 vim test.txt
[2]   Stopped                 vim test1.txt
[3]-  Stopped                 vim test4.txt
[4]+  Stopped                 vim test1.com
[root@root ~]# fg 2
vim test1.txt
[root@root ~]# jobs
[1]   Stopped                 vim test.txt
[3]-  Stopped                 vim test4.txt
[4]+  Stopped                 vim test1.com
#
10.5> 如果程序被挂起 (^z), 也可以让任务恢复并在后台运行

jobs
bg 1

[root@root ~]# jobs
[1]   Stopped                 vim test.txt
[3]   Stopped                 vim test4.txt
[4]   Stopped                 vim test1.com
[5]   Stopped                 vim aa.txt
[6]-  Stopped                 vim aabb.txt
[7]+  Stopped                 vim aabbcc.txt
[root@root ~]# bg 5
[5] vim aa.txt &
[5]+  Stopped                 vim aa.txt
[root@root ~]# jobs
[1]   Stopped                 vim test.txt
[3]   Stopped                 vim test4.txt
[4]   Stopped                 vim test1.com
[5]+  Stopped                 vim aa.txt
[6]   Stopped                 vim aabb.txt
[7]-  Stopped                 vim aabbcc.txt

11、优先级:

1)Linux 可以动态修改进程的优先级,以确保某个进程都可以得到更多 / 更少的运行资源。
2)在 Linux 中进程的优先级从最低 19 到最高-20
3)优先级具有继承性。子进程会从父进程处获得优先级指数。

 	nice:在程序启动时直接赋予相关进程的优先级
 
	语法格式 :
		nice [ 优先级 ] 命令

	例如:
		service  vsftpd  start
		ps -axef -o comm,nice | grep vsftpd(查看vsftpd进程的nice值)

		service  vsftpd  stop
		nice  -19  service  vsftpd  start
		ps -axef -o comm,nice | grep vsftpd(再次查看vsftpd进程的nice值)

	 renice:对现有进程重新赋予优先级

	语法格式 :
		renice [ 优先级 ] PID
	例如 :
		更改 PID:2794 优先级为最低优先级:renice 19 2794
		
		更改 PID:2794 优先级为最高优先级:renice -20 2794
11.1> 创建一个优先级为-18的进程:
[root@root ~]# nice -18 vim zhangsan.txt
11.2> 查看优先级
[root@root home]# ps ax -o nice,comm | grep vim
  0 vim
  0 vim
  0 vim
  0 vim
  0 vim
  0 vim
11.3> 将上面的优先级为其中一个0优先级的vim进程修改为-5
[root@root home]# ps ax -o pid,nice,comm | grep vim
 19477   0 vim
 19677   0 vim
 19815   0 vim
 20170   0 vim
 20173   0 vim
 20174   0 vim
[root@root home]# renice -5 19815
19815: old priority 0, new priority -5
[root@root home]# ps ax -o pid,nice,comm | grep vim
 19477   0 vim
 19677   0 vim
 19815  -5 vim
 20170   0 vim
 20173   0 vim
 20174   0 vim

12、top:查看系统健康状态

资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第6张图片注意:如果要按内存的使用率排序:shift + M ;如果要按CPU的使用率排序:shift + P ;如果要PID排序:shift + N;
资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第7张图片
关于以上命令执行结果的解释:

  • 第一行信息为任务队列信息

资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第8张图片

  • 第二行为进程信息
    资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第9张图片注意:zombie:为僵尸进程,意思是指这个进程正在终止但是环没有终止完全。

  • 第三行为CPU信息
    资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第10张图片

  • 第四行为物理内存信息
    资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第11张图片

  • 第五行为交换分区(swap)信息
    资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top_第12张图片

你可能感兴趣的:(资源管理命令——du、df、free、ps、pstree、lsof、uptime、kill、killall、前后台调度、优先级(nice、renice)、top)