查看linux 系统情况,查看Linux系统运行状态

  • Post author:
  • Post category:linux


在Windows上有个强大的工具”任务管理器”,你可以通过它查询系统CPU,内存,网络,进程等各种状态信息。对于Linux系统,特别是当你只有命令行界面时,该如何查询这些信息呢?本文会介绍一系列Linux命令来查看系统当前运行状态。

目录

1. CPU使用状态

查看CPU信息: /proc/cpuinfo

$ cat /proc/cpuinfo

统计CPU使用状态: mpstat [OPTION] [INTERVAL]

该命令需安装”sysstat”工具包。

$ mpstat -P ALL # 列出每个CPU的信息

2. 内存使用状态

查看内存信息: /proc/meminfo

$ cat /proc/meminfo

统计已用和空闲的内存: free [OPTION]

$ free -h

常用参数:

-h: 高可读性输出,使用K, M, G等单位

-s n: 每隔n秒刷新,持续输出

统计CPU,内存及虚拟内存使用状态: vmstat [OPTION] [INTERVAL]

$ vmstat 5 # 每隔5秒刷新

输出中”swpd”指虚拟内存使用大小,”free”指空闲物理内存大小,”us”指用户CPU时间,”sy”指系统CPU时间,”id”指空闲CPU时间。

常用参数:

-s: 表格统计输出,内容类似”/proc/meminfo”

3. 进程状态

列出进程信息: ps [OPTION]

$ ps -ef | grep apache | grep –v grep # 查看apache进程

$ ps aux

输出中第二列显示的是进程ID,可用此ID配合”kill”命令来关闭进程。

常用参数:

-ef: 标准格式输出

aux: BSD格式输出

显示进程树信息: pstree [OPTION]

$ pstree # 以树形结构显示进程之间的依赖关系,包括子进程信息

显示每个进程的内存映射信息: pmap [OPTION] [PID]

$ pmap -x 954 # 以扩展格式显示ID为954的进程的内存状态

动态显示进程列表: top [OPTION]

相当强大的命令,类似于Windows下的”任务管理器”。动态显示各进程的CPU和内存占有率,进程优先级,占用物理内存大小等。默认设置每3秒钟刷新一次,按CPU占有率降序排列。

$ top

常用参数:

-d n: 每n秒刷新一次

-i: 忽略空闲进程

“top“模式下的交互:

空格: 手动刷新

h: 帮助信息

k: 输入进程ID关闭进程

i: 忽略空闲进程

s: 修改刷新间隔

M: 按内存占有率降序排列

P: 按CPU占有率降序排列

q: 退出”top”模式

查看特定进程详细信息: /proc/[PID]/

$ cat /proc/3561/status # 显示进程ID为3651的进程运行详细信息

$ cat /proc/3561/statm # 显示进程ID为3651的进程内存使用状况

$ cat /proc/3561/cmdline # 显示进程ID为3651的进程启动命令

4. 网络状态

查看网络接口信息: ifconfig

“ifconfig”的功能不仅仅是查看信息,还可以配置网络接口。这里只介绍其查询功能。

$ ifconfig

从输出中找到你的网卡(比如eth0),其中”inet addr:“就是IP地址,”Mask:“就是子网掩码,”HWaddr”就是网卡Mac地址。

如果系统上没有安装此命令,可执行以下命令(Ubuntu上)安装ifconfig

$ sudo apt-get install net-tools

另外,像CentOS系统这样默认不带ifconfig的,可以用ip addr命令来查本地IP。

查看网络连接,端口,监听等信息: netstat [OPTION]

$ netstat -a | grep 27017 # 查看27017端口使用情况

$ netstat -nr # 查看默认网关

常用参数

-a: 显示所有选项

-l: 只列出有在监听的服务状态

-r: 显示路由信息,路由表

-i: 显示所有网络接口

-t: 只显示tcp相关网络接口

查看Socket信息: ss [OPTION]

功能同”netstat”很类似

$ ss -t -a # 显示当前所有TCP Socket连接

5. 磁盘使用状态

查看磁盘空间使用状态: df [OPTION]

$ df -h

常用参数:

-h: 高可读性输出,使用K, M, G等单位

-BM: 以M为单位输出,也可以换成K, G

-T: 显示文件系统类型信息

查看指定目录下各子目录及文件的大小: du [OPTION] [DIR]

$ du -a /home/user/

$ du -s # 统计当前目录

常用参数:

-h: 高可读性输出,使用K, M, G等单位

-s: 显示指定目录占有空间总和,不循环显示子目录

统计CPU及IO操作信息: iostat [OPTION] [INTERVAL]

该命令需安装”sysstat”工具包。

$ iostat -kx # 显示IO详细信息,并以k字节为单位

$ iostat -d # 显示设备IO信息

$ iostat -p ALL # 显示每个设备IO信息

6. 其他信息查询

统计系统活动状况报告: sar [OPTION] [INTERVAL]

强大的命令,全面的系统性能监控和分析工具。该命令需安装”sysstat”工具包。

$ sar -u 5 10 # 显示CPU状态,每个5秒刷新一次,刷新10次后停止

常用参数:

-A:显示所有报告的总和

-u:显示CPU使用情况的统计信息

-r:显示内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息

-d:显示每一个块设备的活动信息

-R:显示内存页面的统计信息

-w:显示系统交换活动信息

列出系统中所有当前打开着的文件或进程: lsof [OPTION]

$ lsof | grep ld-2.19.so # 列出哪些进程在使用指定的库文件

$ sudo lsof -i :80 # 列出80端口现在运行什么程序,Ubuntu上需用sudo执行

显示主机信息: uname [OPTION]

$ uname -a

常用参数:

-n: 显示主机名

-r: 显示内核版本

-i: 显示硬件平台,如x86_64

-a: 显示所有信息

查看当前用户登录信息: who [OPTION]

$ who

常用参数:

-b: 显示上次系统启动时间

-r: 显示当前Linux的运行级别

列出以往用户登录信息: last -n

显示最近n次登录

$ last -5 # 显示最近5次登录信息

查看主机名: hostname

作用同”uname -n”

$ hostname

查看当前主机的外部IP地址

$ curl ifconfig.me

查看系统运行时间: uptime

统计系统从启动到现在运行了多久。

$ uptime -p # 简洁显示

查看当前用户名: whoami

$ whoami

以上是常用的Linux系统运行状态查询及监控命令。另外,Linux上还有个很强大的命令,就是”man”。如果你想更详细的了解各命令的使用方法,参数详解等,你可以通过man [COMMAND]来查询。本文就无需做深入的讲解了。