绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Linux 综合性命令及解析
2022-07-14 15:46:48


来自:入门小站

一、top – 实时显示系统运行状态

top 命令的功能是用于实时显示系统运行状态,包含处理器、内存、服务、进程等重要资源信息。运维工程师们常常会把 top 命令比作是 “加强版的 Windows 任务管理器”,因为除了能看到常规的服务进程信息以外,还能够对处理器和内存的负载情况一目了然,实时感知系统全局的运行状态,非常适合作为接手服务器后执行的条命令。
动态查看进程信息,并且可以查看到系统负载,内存,CPU 等使用情况。
语法格式
top [参数]
常用参数
参数
解析


-d <秒>
改变显示的更新速度
-c
切换显示模式,更详细的显示路径及命令
-s
安全模式,不允许交互式指令
-i
不显示任何闲置或僵死的行程
-n
设定显示的总次数,完成后将会自动退出
-b
批处理模式,不进行交互式显示
参考实例
以默认格式显示系统运行信息:
[root@root ~]# top
top - 02:48:56 up 20 min,  1 user,  load average: 0.00, 0.00, 0.04
Tasks: 432 total,   1 running, 431 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 s
MiB Mem :   1966.1 total,    172.1 free,   1339.3 used,    454.7 buff/cache
MiB Swap:   2048.0 total,   2033.5 free,     14.5 used.    443.4 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                
  2848 root      20   0  177712  28820   7700 S   6.2   1.4   0:01.31 sssd_kcm                   
     1 root      20   0  244748  14180   9052 S   0.0   0.7   0:01.10 systemd                    
     2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd  
………………省略部分输出信息………………
以默认格式显示系统运行信息,但提供完整的进程路径及名称:
[root@root ~]# top -c
以批处理模式显示程序信息:
[root@root ~]# top -b
设定每隔 5 秒刷新一次信息:
[root@root ~]# top -c -d 5
设定总显示次数为 3 回,随后自动退出命令:
[root@root ~]# top -n 5
字段解析
  • load average: 0.00, 0.01, 0.05
  • 系统 1 分钟,5 分钟,15 分钟平均负载
  • %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  • us 用户态 CPU
  • sy 内核态 CPU
  • ni 优先级
  • id 空闲的 CPU
  • wa 等待输入输出设备的 CPU
  • hi 硬中断
  • si 软中断
  • st 虚拟化占用 CPU 资源
  • KiB Mem : 995896 total, 487280 free, 121580 used, 387036 buff/cache
  • total 总内存空间
  • free 空闲内存
  • used 已使用内存
  • buff 写缓冲 解决空间问题
  • cache 读缓存 解决速率问题
推荐使用
top
&& 
top -c

二、htop – 互动的进程查看器

htop 是 linux 系统中的一个互动的进程查看器,一个文本模式的应用程序 (在控制台或者 X 终端中),需要 ncurses。htop 比较人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
  htop 相比较 top 的优势有可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行、在启动上比 top 更快、杀进程时不需要输入进程号、支持鼠标选中操作、top 已不再维护。
  htop 相当于 top 的升级版,监控界面是彩色的。
语法格式
htop [参数]
常用参数
非交互式是直接输入命令的时候加上参数,而交互式是 htop 进入监测后使用的。
非交互式参数
参数
解析


-C
使用单色配色方案
-d
设置更新的延迟, 单位是 10 微秒
-s 用户
纵列排序
-u 用户
只显示一个指定用户的进程
-p 用户
只显示给用户
-h
打印此命令帮助
-v
打印版本信息
交互式参数
参数
解析


space
标记一个进程
U
取消所有标记
l
显示进程打来的文件
u
显示特定用户
M
按照内存排序
P
按照 CPU 排序
T
按在线时长排序
直接输入数字
查找对应的 PID 进程
参考实例
启动 htop:
[root@root ~]# htop
以单色模式启动 htop:
[root@root ~]# htop -C
设置显示更新的延迟为 3 秒:
[root@root ~]# htop -d 3
显示一个给定的用户的进程:
[root@root ~]# htop -u linuxcool_user





良许花了一个半月的时间研发了一门 Linux 命令课程,欢迎购买学习!

课程特色:

  1. 详细总结 150 个高频使用命令,学完可应对工作中 95% 命令需求;
  2. 答疑群提供无限次答疑服务,答疑群氛围很好;
  3. 总时长超 10 小时,媲美大课时长。
长按下方卡片购买



强烈推荐一位腾讯大佬录制的 Shell 实战案例课程(已获授权):

  1. 大佬在腾讯工作 6 年,在大厂工作十几年,经验丰富;
  2. 大佬根据自己在大厂工作经验总结了 100 个案例,超级实用!
  3. 学完这 100 个案例,肯定对自己的 Shell 编程有很大的提升;
  4. 答疑群提供无限次答疑服务,答疑群氛围很好。
长按下方卡片购买



三、vmstat – 显示虚拟内存状态

vmstat 命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O 等系统整体运行状态。
语法格式
vmstat [参数]
&&
vmstat [参数] [时间间隔] [执行次数]
常用参数
参数
解析


-a
显示活动内页
-f
显示启动后创建的进程总数
-m
显示 slab 信息
-n
头信息仅显示一次
-s
以表格方式显示事件计数器和内存状态
-d
报告磁盘状态
-p
显示指定的硬盘分区状态
-S
输出信息的单位
参考实例
显示活动内页:
[root@root ~]# vmstat -a
显示启动后创建的进程总数:
[root@root ~]# vmstat -f
显示 slab 信息:
[root@root ~]# vmstat -m
头信息仅显示一次:
[root@root ~]# vmstat -n
以表格方式显示事件计数器和内存状态:
[root@root  ~]# vmstat -s
显示指定的硬盘分区状态:
[root@root ~]# vmstat -p /dev/sda1
指定状态信息刷新的时间间隔为 1 秒:
[root@root ~]# vmstat 1
指定状态信息刷新的时间间隔为 2 秒刷新 3 次:
[root@root ~]# vmstat 2 3
字段解析
[root@root ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0  35896 445256    520 487496  271 2091   622  2119  129  127  1  1 97  0  0
1.procs
  • r 表示等待执行的任务数,当一段时间内这个数值一直超过 CPU 数说明当前系统出现 CPU 瓶颈;
  • b 表示等待 IO 的进程数量。
2.memory
  • swpd 虚拟内存已使用的大小,如果大于 0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器;
  • free 空闲的物理内存的大小;
  • buff Linux/Unix 系统是用来存储,目录里面有什么内容,权限等的缓存;
  • cache 直接用来记忆我们打开的文件, 给文件做缓冲。
3.swap
  • si 每秒从磁盘读入虚拟内存的大小,如果这个值大于 0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉;
  • so 每秒虚拟内存写入磁盘的大小,如果这个值大于 0,同上。
4.io
  • bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是 1024byte;
  • bo 块设备每秒发送的块数量,例如我们读取文件,bo 就要大于 0。bi 和 bo 一般都要接近 0,不然就是 IO 过于频繁,需要调整。
5.system
  • in 每秒中断数,包括时钟中断;
  • cs 表示每秒上下文切换;
  • 这两个值越大,会看到由内核消耗的 cpu 时间会越多。
6.cpu
  • us 用户 CPU 时间;
  • sy 系统 CPU 时间,如果太高,表示系统调用时间长,例如是 IO 操作频繁;
  • id 空闲 CPU 时间,一般来说,id + us + sy = 100, 一般我认为 id 是空闲 CPU 使用率,us 是用户 CPU 使用率,sy 是系统 CPU 使用率;
  • wa 等待 IO CPU 时间;
  • st 等待 IO CPU 时间。

四、dstat – 全能系统信息统计工具

dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,是一个全能系统信息统计工具。与 sysstat 相比,dstat 拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且 dstat 支持即时刷新,譬如输入 dstat 3 即每三秒收集一次,但新的数据都会每秒刷新显示。和 sysstat 相同的是,dstat 也可以收集指定的性能资源,譬如 dstat -c 即显示 CPU 的使用情况。
语法格式
dstat [参数]
常用参数
参数
解析


-c
显示 CPU 系统占用,用户占用,空闲,等待,中断,软件中断等信息
-d
显示磁盘读写数据大小
-n
显示网络状态
-l
显示系统负载情况
-m
显示内存使用情况
-g
显示页面使用情况
-p
显示进程状态
-s
显示交换分区使用情况
-r
I/O 请求情况
-y
系统状态
–ipc
显示 ipc 消息队列,信号等信息
–socket
用来显示 tcp udp 端口状态
参考实例
分别显示 cpu、disk、net、page、system 信息:
[root@root ~]# dstat
每三秒收集一次 cpu、disk、net、page、system 信息 :
[root@root ~]# dstat 3
显示 CPU 系统占用,用户占用,空闲,等待,中断,软件中断等信息 :
[root@root ~]# dstat -c
显示磁盘读写数据大小 :
[root@root ~]# dstat -d
显示网络状态:
[root@root ~]# dstat -n

五、glances – 高层次的多子系统概览

Glances 是一个相对比较新的系统监控工具,用 Python 编写的,使用 psutil 库从系统获取信息。可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系统空间利用率、挂载的设备、所有活动进程以及消耗资源多的进程。Glances 有很多有趣的选项。它的主要特性之一是可以在配置文件中设置阀值(careful 小心、warning 警告、critical 致命),然后它会用不同颜色显示信息以表明系统的瓶颈。
语法格式
glances [参数]
常用参数
参数
解析


-b
显示网络连接速度 Byte/ 秒
-s
设置 glances 运行模式为服务器
-B
绑定服务器端 IP 地址或者主机名称
-c
连接 glances 服务器端
-t
设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767
参考实例
192.168.10.2 主机启动 glances 服务:
[root@root ~]# glances -s -B 192.168.10.2 &
从另一台主机查看 192.168.10.2 主机的系统负载状态:
[root@root ~]# glances -c 192.168.10.2
显示网络连接速度 Byte/ 秒:
[root@root ~]# glances -b
设置屏幕刷新的时间间隔为 6 秒:
[root@root ~]# glances -t 6

六、sar – 系统运行状态统计

sar 命令是 Linux 下系统运行状态统计工具,它将指定的操作系统状态计、数器显示到标准输出设备。
sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等
语法格式
sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
常用参数
参数
解析


-A
所有报告的总和
-R
显示内存状态
-b
显示 I/O 和传递速率的统计信息
-B
显示换页状态
-d
输出每一块磁盘的使用信息
-e
设置显示报告的结束时间
-f
从制定的文件读取报告
-i
设置状态信息刷新的间隔时间
-P
报告每个 CPU 的状态
-u
输出 cpu 使用情况和统计信息
-v
显示索引节点、文件和其他内核表的状态
-w
显示交换分区的状态
-x
显示给定进程的装
-r
报告内存利用率的统计信息
参考实例
使用 - R 参数显示内存信息:
[root@root ~]# sar -R
使用 - b 参数显示 I/O 速率:
[root@root ~]# sar -b
使用 - u 参数显示 CPU 利用率:
[root@root ~]# sar -u
使用 - d 参数查看每块磁盘的使用信息
[root@root ~]# sar -d
使用 - i 参数和 - f 参数设置状态信息 1 秒刷新一次并记录 5 次
[root@root ~]# sar -i 1 -f 5




分享好友

分享这个小栈给你的朋友们,一起进步吧。

Linux技术精选专区
创建时间:2020-07-08 10:30:23
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • dapan
    专家
戳我,来吐槽~