【Linux命令与工具】系统资源查看——free、uname、dmesg以及netstat

free:查看内存的使用情况

用法:

  free [-b|-k|-m|-g] [-t]

参数:

  -b: 直接输入free时,显示的单位是KB我们可以使用b(bytes), m(MB), k(KB), g(GB) 来显示单位。

  -t: 在输出的最终结果中显示物理内存与swap的总量。

常见用法:

  【Linux命令与工具】系统资源查看——free、uname、dmesg以及netstat

  Mem: 物理内存(1983MB);

  Swap: 虚拟内存(1021MB);

  total:总量;

  used:已被使用的量;

  free:剩余可用的量;

uname: 查看与内核相关的信息

参数:

  -a, --all: 所有系统相关的信息,包括下面的数据都会被列出来

  -s, --kernel-name: 系统内核名称

  -n, --nodename: 打印网络节点主机名

  -r, --kernel-release: 内核的版本

  -m: 本系统的硬件名称,例如i686或x86_64等;

  -p: CPU的类型,与-m类似,只是显示的是CPU的类型

  -i: 硬件的平台(ix86)

  -o, --operating-system: 打印操作系统

dmesg:显示内核开机的信息

  dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看(print or control the kernel ring buffer)。开机信息亦保存在/var/log/dmesg的文件里。某些硬件设备(比如七号信令卡、语音卡之类)在安装的时候,通常会安装驱动程序(内核模块),会打印一些信息,就可以通过dmesg命令来查看。

  因为dmesg命令输出的东西有点多,通常与less/more/tail/grep等命令配合使用。

  #输出所有的内核开机时的信息

  dmesg | more

  #查找开机时候硬盘相关的信息

  dmesg | grep -i hd

  #查看开始时网卡的信息

  dmesg | grep -i eth

netstat:跟踪网络

  netstat的输出分为两大部分,分别是网络与系统自己的进程相关性部分。

用法:

  netstat -[atunlp]

参数:

  -a: 将目前系统上所有的链接、监听、Socket数据都列出来;

  -t:列出tcp网络数据包的数据;

  -u:列出udp网络数据包的数据;

  -n:不列出进程的服务名称,以端口号(port number)来显示;

  -l:列出目前正在网络监听(listen)的服务;

  -p:列出该网络服务的进程PID。

【Linux命令与工具】系统资源查看——free、uname、dmesg以及netstat

在上面的结果中,显示了两个部分:

  (1)Active Internet connections(w/o servers) :表示网络的连接

    Proto:网络的数据包协议,主要分为TCP与UDP数据包。

    Recv-Q:非由用户进程连接到此socket的复制的总字节数;

    Send-Q:非由远程主机传送过来的acknowledeged总字节数;

    LocalAddress:本地的IP端口情况;

    ForeignAddress:远程主机的IP端口情况

    State:连接状态,主要有建立(ESTABLISED)及监听(LISTEN).

  (2)Active UNIX domain sockets(w/o servers): 表示本机上进程间通信的相关的部分

    除了网络上的连接之外,其实Linux系统上面的进程是可以接受不同进程所发送来的信息,那就是Linux上面的(socket file)。socket file可以沟通两个进程之间的信息,因此进程可以取得对方传送过来的数据。由于有socket file,因此类似X Window这种需要网络连接的软件,目前新版的distribution就以socket来进行窗口界面的联机通信了。上面的socket file输出文件字段有:

    Proto:一般就是unix;

    RefCnt:连接到此socket的进程数量

    Flags:连接的标识;

    Type:socket访问的类型。主要有确认连接的STREAM与不需确认的DGARM两种;

    State:若为CONNECTED表示多个进程之间已经建立连接;

    Path:连接到此socket的相关程序的路径,或者是相关数据输出的路径。

参考文献:

  1. 《鸟哥的Linux私房菜》基础学习篇(第三版)  人民邮电出版社  17.3.4

上一篇:Delphi-TScreen表示应用程序运行时屏幕的状态


下一篇:线段树—Lazy_Tag