Linux(入门基础):93---查看系统资源(free、uname、uptime、netstat、dmesg、vmstat)

一、free命令

1.功能

  • 查看当前内存/交换分区等的使用量

2.命令格式

  • free  [-b/-k/-m/-g/-h]  [-t] [-s -n -c -N]

相关参数与选项

  • -b:以Bytes显示容量(默认选项)
  • -k:以KBytes显示容量(默认选项)
  • -m:以MBytes显示容量(默认选项)
  • -g:以GBytes显示容量(默认选项)
  • -h:系统自己指定单位
  • -t:在输出的最终结果,显示物理内存与swap的总量
  • -s:可以让系统不断刷新显示数据,对于系统查看挺有效
  • -n:
  • -c:与-s同时处理,让free列出几次的意思
  • -N:

3.演示案例

  • 案例一:显示目前系统的内存容量
  • Mem:当前的内存
  • Swap:当前内存的交换分区

  • total/used/free:总量和使用掉的容量以及剩余的容量
  • share/buffers/cached:已经被使用的量当中,用来作为缓冲以及缓存的

某些文件被频繁的读取时,就会放在内存中,而不是存放在硬盘中,这样可以加快系统的读取性能

二、uname命令

1.功能

  • 查看当前系统与内核的信息等

2.命令格式

  • uname  [选项]

相关参数与选项

  • -a:显示系统所有的信息,包括下面选项的所有信息
  • -s:显示系统内核名称
  • -r:显示内核的版本
  • -m:本系统的硬件架构,例如:i686、x86-64
  • -p:CPU的类型,与-m差不多
  • -i:硬件的平台(x86)

3.演示案例

  • 案例:查看内核的信息

  • Linux:内核名称
  • dongshao:主机名
  • 4.4.0-31-generic:内核的版本
  • Wed Jul 13 01:07:32:内核版本建立的日期
  • x86_64 x86_64 x86_64:硬件架构平台等信息

三、uptime命令

1.功能

  • 显示目前的系统时间、系统启动的时间、以及平均负载的情况
  • 与top命令显示的第一排的信息是一模一样的

2.演示案例

  • 当前的时间(14:52:10)。
  • 开机到现在的时间(up 8 min)
  • 系统登录的人数(user)
  • load average:系统分别在1、5、15分钟内平均任务负载,值越小负载越小,大于1说明你的系统任务过于频繁

四、netstat命令

1.功能

  • 这个命令经常被用在网络监控方面
  • 显示的信息会被分为两个部分:一部分是网络相关的部分,一部分是与socket进程相关的部分(非网络)

2.命令格式

  • netstat  [选项]

相关参数与选项

  • -a:将目前系统上所有连接、监听、socket信息都列出来
  • -t:列出tcp网络封包的信息
  • -u:列出udp网络封包的信息
  • -n:不以进程的服务名称,以端口号来显示
  • -l:列出目前正在网络监听的服务
  • -p: 列出该网络服务的进程PID

3.提示

  • 你的主机上面到底开了多少个网络服务,与你的网路服务类型无关,而与产生你这个服务的相应的程序有关,程序也是一个进程。例如,你的Linux提供www服务,那么在你的主机上一定要有一个程序来提供这个www服务才行。所以你想要关闭一个网络服务,就关闭该程序所触发的那个进程就行了

4.演示案例

  • 案例一:显示网络相关的信息与进程信息

  • Active Internet connections (w/o servers)下面的是与网络连接有关的信息
Proto 网络的封包协议,主要为TCP和UDP
Recv-Q 非由用户进程连接到此socket的复制的总Bytes数
Send-Q 非由远程主机传送过来的acknowledged总Bytes数
Local Address 本地端的IP:port
Foreign Address 远程主机的IP:port
State 连接状态,主要有:建立(ESTABLISED)、监听(LISTEN)
  • Active UNIX domain sockets (w/o servers)下面是不同的进程的信息(Linux可以接收到不同进程发过来的信息,这就是Linux上面的socket文件,sokcet文件可以沟通两个进程之间的信息,因此进程可以获取对方传过来的数据),上表中socket文件的输出字段如下
Proto 一般就是unix
RefCnt 连接到此socket的进程数量
Flags 连接的标识
Type socket存取的类型。主要有确定连接的STREAM与不需要确定的DGRAM两种
State 若为CONNECTED则表示多个进程之间已经建立连接
I-Node  
Path

连接到此socket的相关进程的路径,或是相关数据的输出路径

第二张图中:那些/tmp/.xx下面的数据,就是X Windows图形界面的相关进程,而PATH指向的就是这些进程要交换数据的socket文件

  •  案例二:列出系统上已在监听的网络连接以及PID

  • 除了可以列出监听网络的界面和状态之外,最后一栏还列出了此网络服务进程的PID和进程的名称
  • 案例三:例如,我们想把上面的那个0 0.0.0.0:59577网络服务关闭的话,可以使用下面的方法(不过这是个非正规的方法,正规的方法查看后面文章的介绍)
  • kill  -9  944
  • killall  -9  dhclient

五、dmesg命令

1.功能

  • 分析内核产生的信息
  • 在你的系统启动时,内核会去检测系统的硬件,你的某些硬件到底有没有被识别,就与这个时候的检测有关。但是这些检测的过程就是你系统启动时,屏幕上显示的信息
  • 不管系统启动还是运行的时候,只要是内核产生的信息,都会被记录到内存的某个保护区域内,dmesg就是读取这个区域内的内容

2.演示案例

  • 案例一:读取内核启动的启动,信息太多,配合more使用

  • 案例二:查找系统启动的时候,硬盘的相关信息

dmesg | grep -i vda

六、vmstat命令

1.功能

2.命令格式

  • vmstat  -a  ==>查看CPU/内存等信息
  • vmstat  -fs  ==>查看内存相关的信息
  • vmstat  -S  单位  ==>设置显示数据的单位
  • vmstat  -d  ==>与磁盘有关的信息
  • vmstat -p  分区  ==>与磁盘有关

相关参数与选项

  • -a:使用inactive/active(活动与否)替换buffer/cache的内存输出信息
  • -f:开机到目前为止,系统复制(fork)的进程数
  • -s:将一些事件(启动至目前为止)导致的内存变化情况列表说明
  • -S:后面可以接单位,让显示的数据有单位,例如:K/M替换Bytes
  • -d:列出磁盘的读写总量统计表
  • -p:后面列出分区,可显示该分区的读写总量统计表

3.演示案例

  • 案例一:统计目前主机CPU状态,每秒一次,共计三次

  • procs:进程字段的项目
r 等待运行中的进程数量
b 不可被唤醒的进程数量
  • memory:内存字段的项目(这一段是与free命令相同的)
swpd 虚拟内存被使用的容量
free 未被使用的内存容量
buff 用于缓冲存储器
cache 用于高速缓存
  • swap:内存交换分区的项目(如果si/so的数值太大,表示内存中的数据常常得在磁盘与内存之间传输,系统性能就很差)
si 由磁盘中将进程取出的容量
so 由于内存不足而将没用到的进程写入到磁盘的swap的容量
  • io:磁盘读写的项目(这部分的值越高,代表系统的I/O越忙碌)
bi 由磁盘读入的区块数量
bo 写入到磁盘中的区块数量
  • system:系统的项目(这两个数值越大,代表系统与外接设备的沟通越频繁。包括磁盘、网卡等)
in 每秒被中断的进程次数
cs 每秒执行的事件切换次数
  • cpu:CPU的项目
us 非内核层的CPU使用状态
sy 内核层所使用的CPU状态
id 闲置的状态
wa 等待I/O所耗费的CPU状态
st 被虚拟机(virtual machine)所使用的CPU状态(2.6.11以后才支持)
  •  案例二:查看磁盘的读写状态

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/88374951