CentOS Linux 常用命令整理( yum 工具、网络、硬盘 I / O 、其他,更新于 2018 年 8 月 21 日)

更多 CentOS Linux 常用命令整理请点击这里

yum 工具:

( 1 )下载并安装一个 rpm 包:

[root@host ~]# yum -y install [package]

( 2 )安装一个 rpm 包,使用你自己的软件仓库解决所有依赖关系:

[root@host ~]# yum localinstall [package.rpm]

( 3 )更新当前系统中安装的所有 rpm 包:

[root@host ~]# yum -y update

( 4 )更新一个 rpm 包:

[root@host ~]# yum update [package]

( 5 )删除一个 rpm 包:

[root@host ~]# yum remove [package]

( 6 )列出当前系统中安装的所有包:

[root@host ~]# yum list

( 7 )在 rpm 仓库中搜寻软件包:

[root@host ~]# yum search [package]

( 8 )清除缓存目录(/var/cache/yum)下的软件包:

[root@host ~]# yum clean [package]

( 9 )删除所有头文件:

[root@host ~]# yum clean headers

( 10 )删除所有缓存的包和头文件:

[root@host ~]# yum clean all

网络:

( 1 )显示网卡的 IP 地址:

[root@host ~]# ip add        (或 # ip address,或 # ip address show )

示例:

[root@host ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:16:xx:58:00:yy brd ff:ff:ff:ff:ff:ff
    inet 124.xxx.yyy.zzz/24 brd 124.xxx.yyy.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:16:xx:6f:d3:yy brd ff:ff:ff:ff:ff:ff
    inet 172.16.xxx.yyy/16 brd 172.16.255.255 scope global eth1

( 2 )显示一个以太网卡的配置:

[root@host ~]# ifconfig eth0

示例:

[root@host ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:16:xx:58:00:yy  
          inet addr:124.xxx.yyy.zzz  Bcast:124.xxx.yyy.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12460525288 errors:0 dropped:0 overruns:0 frame:0
          TX packets:144344143 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:762899561520 (710.5 GiB)  TX bytes:157684164540 (146.8 GiB)

( 3 )查看当前网卡速率:

[root@host ~]# iptraf-ng -d eth0      (按 q 退出)

iptraf 命令安装步骤:

[root@host ~]# yum -y install gcc glibc ncurses
[root@host ~]# yum -y update gcc glibc ncurses

[root@host ~]# yum -y install iptraf
[root@host ~]# yum -y update iptraf

示例:

iptraf 命令示例
iptraf 命令示例

( 4 )持续监控网卡信息:

[root@host ~]# watch ifconfig        (按 Ctrl + C 退出)

示例:

[root@host ~]# watch ifconfig
Every 2.0s: ifconfig                                     Thu Nov  9 11:41:52 2017

eth0    Link encap:Ethernet  HWaddr 00:16:xx:58:00:yy
        inet addr:124.xxx.yyy.zzz  Bcast:124.xxx.yyy.255  Mask:255.255.255.0
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:12460573960 errors:0 dropped:0 overruns:0 frame:0
        TX packets:144344822 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:762902544430 (710.5 GiB)  TX bytes:157684821501 (146.8 GiB)

eth1    Link encap:Ethernet  HWaddr 00:16:xx:6F:D3:yy
        inet addr:172.16.xxx.yyy  Bcast:172.16.255.255  Mask:255.255.0.0
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:216305174560 errors:0 dropped:0 overruns:0 frame:0
        TX packets:131812567017 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:137815408326838 (125.3 TiB)  TX bytes:101346089293722 (92.1 TiB)

lo      Link encap:Local Loopback
        inet addr:127.0.0.1  Mask:255.0.0.0
        UP LOOPBACK RUNNING  MTU:16436  Metric:1
        RX packets:118475949545 errors:0 dropped:0 overruns:0 frame:0
        TX packets:118475949545 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
        RX bytes:254495749822484 (231.4 TiB)  TX bytes:254495749822484 (231.4 TiB)

( 5 )配置网卡的 IP 地址:

[root@host ~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0

( 6 )禁用 ‘ eth0 ‘ 网络设备:

[root@host ~]# ifdown eth0

( 7 )启用 ‘ eth0 ‘ 网络设备:

[root@host ~]# ifup eth0

( 8 )显示一个无线网卡的配置:

[root@host ~]# iwconfig eth1

( 9 )显示无线网络:

[root@host ~]# iwlist scan

硬盘 I / O :

( 1 )查看整块硬盘的 I / O 使用情况:

[root@host ~]# iostat -x 1 10

参数解释:

  • -c 参数:可以用来输出部分 CPU 状态信息;
  • -k 参数:某些使用 block 为单位的列强制使用 Kilobytes 为单位;
  • -d 参数:显示设备(磁盘)使用状态;
  • -x 参数:输出更多详细信息;
  • 1 :表示采样的间隔,单位是秒;
  • 10 :表示采样的次数。

示例:

[root@host ~]# iostat -x 1 2
Linux 3.10.0-862.11.6.el7.x86_64 (localhost.localdomain)        08/21/2018      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.19    0.00    0.36    0.01    0.00   99.43

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.05    1.14    0.28    47.23    10.23    81.07     0.00    0.61    0.58    0.72   0.34   0.05
sdb               0.00     0.00    0.02    0.00     0.37     0.00    38.86     0.00    0.14    0.14    0.00   0.08   0.00
sdc               0.00     0.00    0.02    0.00     0.37     0.00    38.86     0.00    0.18    0.18    0.00   0.13   0.00
dm-0              0.00     0.00    0.89    0.32    42.19     9.87    85.53     0.00    0.72    0.70    0.79   0.37   0.04
dm-1              0.00     0.00    0.02    0.00     0.38     0.00    47.40     0.00    0.19    0.19    0.00   0.10   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

[root@host ~]#

输出解释:

  1. rrqm/s :每秒这个设备相关的读取请求有多少被 Merge 了(当系统调用需要读取数据的时候,VFS 将请求发到各个 FS ,如果 FS 发现不同的读取请求读取的是相同 Block 的数据,FS 会将这个请求合并 Merge );
  2. wrqm/s :每秒这个设备相关的写入请求有多少被 Merge 了;
  3. rsec/s :每秒读取的扇区数;
  4. wsec/s :每秒写入的扇区数;
  5. r/s :The number of read requests that were issued to the device per second ;
  6. w/s :The number of write requests that were issued to the device per second ;
  7. await :每一个 IO 请求的处理的平均时间(单位是毫秒),这里可以理解为 IO 的响应时间,一般系统 IO 响应时间应该低于 5 ms ,如果大于 10 ms 就比较大了;
  8. %util :在统计时间内所有处理 IO 时间,除以总共统计时间;例如,如果统计间隔 1 秒,该设备有 0.8 秒在处理 IO ,而 0.2 秒闲置,那么该设备的 %util = 0.8 / 1 = 80 % ,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是 100 % 表示设备已经接近满负荷运行了(当然如果是多磁盘,即使 %util 是 100 % ,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

iostat 命令安装步骤:

[root@host ~]# yum install -y sysstat

( 2 )查看当前各个进程的 I / O 使用情况:

[root@host ~]# iotop     (按 q 退出)

示例:

[root@host ~]# iotop
Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                       
  2045 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.02 % [kworker/0:2]
  1024 be/4 polkitd     0.00 B/s    0.00 B/s  0.00 %  0.00 % polkitd --no-debug
     1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 22
     2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
     3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
     5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
     7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
     8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
     9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
    10 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [lru-add-drain]
    11 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kdevtmpfs]
    14 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
    15 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khungtaskd]
    16 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [writeback]
    17 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kintegrityd]
    18 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bioset]
    19 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bioset]
    20 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bioset]

iotop 命令安装步骤:

[root@host ~]# yum install -y iotop

其他:

( 1 )切换到 root 权限(与 su 有区别):

[root@host ~]# su -

( 2 )关机:

[root@host ~]# shutdown -h now

或者

[root@host ~]# init 0

( 3 )重启:

[root@host ~]# shutdown -r now

或者

[root@host ~]# reboot

或者

[root@host ~]# init 6

( 4 )罗列使用 CPU 资源最多的 Linux 任务:

[root@host ~]# top        (按 q 退出)

示例:

[root@host ~]# top
top - 11:49:29 up 1449 days, 13:52,  1 user,  load average: 3.22, 2.76, 2.77
Tasks: 144 total,   1 running, 139 sleeping,   0 stopped,   4 zombie
Cpu(s): 19.5%us,  4.2%sy,  0.0%ni, 65.6%id,  0.2%wa,  4.7%hi,  6.0%si,  0.0%st
Mem:   4044100k total,  4006724k used,    37376k free,    26124k buffers
Swap:  2096440k total,   646544k used,  1449896k free,   730348k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 8560 root      24   0 2836m 2.5g  10m S 38.2 63.9   1324:18 java
 2505 nobody    15   0 50232  22m 1552 S  6.0  0.6 909:30.01 nginx
 2503 nobody    15   0 51476  23m 1552 S  5.3  0.6 913:59.80 nginx
 2506 nobody    15   0 50732  22m 1544 S  4.3  0.6 909:17.16 nginx
 2509 nobody    15   0 50792  22m 1544 S  3.7  0.6 907:10.55 nginx
 2507 nobody    15   0 51008  22m 1544 S  2.0  0.6 912:27.41 nginx
12818 root      15   0 10860 1056  768 R  0.7  0.0   0:00.04 top
 8112 root      22   0  191m 7816 1832 S  0.3  0.2  24:53.32 python

( 5 )查看进程 XXX 是否存在:

[root@host ~]# ps -ef | grep XXX

示例:

[root@host ~]# ps -ef | grep nginx
root      4672 17804  0 23:49 pts/0    00:00:00 grep nginx
root     25456     1  0 20:40 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody   25457 25456  0 20:40 ?        00:00:25 nginx: worker process                                          
nobody   25458 25456  0 20:40 ?        00:00:25 nginx: worker process                                          
nobody   25459 25456  0 20:40 ?        00:00:31 nginx: worker process                                          
nobody   25461 25456  0 20:40 ?        00:00:26 nginx: worker process                                          
[root@host ~]#

ps -ef 命令是可以查看进程上次启动的时间的(如上所示,进程上次启动的时间是今天的 20 点 40 分),但下面这条命令显示得会更直观一点。

( 6 )查看某个进程上次启动的时间:

[root@host ~]# ps -p 进程号 -o lstart

示例:

[root@host ~]# ps -p 25456 -o lstart    # 25456 是进程号,具体如上例所示
                 STARTED
Tue Sep 18 20:40:56 2018
[root@host ~]#

( 7 )以树状图显示程序:

[root@host ~]# pstree

示例:

[root@host ~]# pstree
init─┬─acpid
     ├─atd
     ├─auditd─┬─audispd───{audispd}
     │        └─{auditd}
     ├─automount───4*[{automount}]
     ├─avahi-daemon───avahi-daemon
     ├─crond
     ├─dbus-daemon
     ├─events/0
     ├─events/1
     ├─funcd───funcd
     ├─gpm
     ├─hald───hald-runner─┬─hald-addon-acpi
     │                    ├─hald-addon-keyb
     │                    └─hald-addon-stor
     ......

( 8 )查看参考手册(例如 ping 命令):

[root@host ~]# man ping

( 9 )修改密码:

[root@host ~]# passwd

( 10 )显示磁盘的使用情况:

[root@host ~]# df -h

示例:

[root@host ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2             9.7G  5.5G  3.8G  60% /
/dev/hda3              47G   22G   23G  50% /www
/dev/hda1             190M   18M  163M  10% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm

( 11 )显示磁盘的 inode 使用情况:

[root@host ~]# df -i

示例:

[root@host ~]# df -i
Filesystem            Inodes   IUsed    IFree IUse% Mounted on
/dev/hda2            2621440  106496  2514944    5% /
/dev/hda3           12537888    2640 12535248    1% /www
/dev/hda1              50200      41    50159    1% /boot
tmpfs                 505512       1   505511    1% /dev/shm
注释:

一、inode 是什么?

理解 inode,要从文件储存说起:文件储存在硬盘上,硬盘的最小存储单位叫做 ” 扇区 “( Sector )。每个扇区储存 512 字节(相当于 0.5 KB )。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个 ” 块 “( block )。这种由多个扇区组成的 ” 块 “,是文件存取的最小单位。” 块 ” 的大小,最常见的是 4 KB ,即连续八个 sector 组成一个 block 。

文件数据都储存在 ” 块 ” 中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做 inode ,中文译名为 ” 索引节点 ” 。

二、inode 的内容:

inode 包含文件的元信息,具体来说有以下内容:

  • 文件的字节数;
  • 文件拥有者的 User ID ;
  • 文件的 Group ID ;
  • 文件的读、写、执行权限;
  • 文件的时间戳,共有三个:ctime 指 inode 上一次变动的时间,mtime 指文件内容上一次变动的时间,atime 指文件上一次打开的时间;
  • 链接数,即有多少文件名指向这个 inode ;
  • 文件数据 block 的位置。

( 12 )显示前一个月,当前月以及下一个月的月历:

[root@host ~]# cal -3

示例:

[root@host ~]# cal -3
    October 2017         November 2017         December 2017    
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7            1  2  3  4                  1  2
 8  9 10 11 12 13 14   5  6  7  8  9 10 11   3  4  5  6  7  8  9
15 16 17 18 19 20 21  12 13 14 15 16 17 18  10 11 12 13 14 15 16
22 23 24 25 26 27 28  19 20 21 22 23 24 25  17 18 19 20 21 22 23
29 30 31              26 27 28 29 30        24 25 26 27 28 29 30
                                            31

( 13 )显示指定月,年的月历:

[root@host ~]# cal 10 1988

示例:

[root@host ~]# cal 10 1988
    October 1988    
Su Mo Tu We Th Fr Sa
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

( 14 )把一相对于 1970-01-01 00:00 的秒数转换成时间:

[root@host ~]# date --date '1970-01-01 UTC 1427888888 seconds'

示例:

[root@host ~]# date --date '1970-01-01 UTC 1427888888 seconds'
Wed Apr  1 19:48:08 CST 2015
打赏作者
这里是 “ CCIE 工程师社区 ” 官方的捐款通道,您是否可以考虑请我们喝杯咖啡呢?

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

Was this article helpful?

Related Articles

Leave A Comment?

This site uses Akismet to reduce spam. Learn how your comment data is processed.