一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)

引言

Linux系统是一个强大而灵活的操作系统,能够帮助我们高效地管理计算机资源。但是,对于初次接触Linux的用户来说,如何快速获取和理解系统的运行状态信息呢?别担心,这篇文章将带你一文掌握Linux系统信息查看命令,包括CPU、内存、进程、网口、磁盘、硬件等方面。无论你是初学者还是经验丰富的系统管理员,都可以通过这篇文章了解到各种实用的Linux命令,从而更好地管理和监控你的Linux系统。

注:本文内容较长,建议当做参考手册进行查阅,或者结合目录快速定位到感兴趣的内容

在接下来的内容中,将逐一介绍如何使用lscpu、cat /proc/cpuinfo、free、vmstat、cat /proc/meminfo、ps、top、htop、pmap、pstree、ifconfig、ip、netstat、nmcli、/sys/class/net目录、/proc/net/dev文件、df、du、fdisk、lsblk、lshw、lspci、lsusb等命令来获取和理解Linux系统的信息。这些命令将帮助你深入了解系统的运行状态,以便进行相应的调整和优化。

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)_第1张图片

一、查看CPU信息

1.1 lscpu

lscpu命令是一个非常方便的工具,可以帮助我们快速了解系统的CPU信息,例如其支持的64位架构、字节顺序等。

下面是一个示例输出:

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  2
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               58
Model name:          Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz

在上述输出结果中,有一些值得注意的关键信息:

信息 说明
Architecture CPU的架构类型,x86_64代表64位的x86架构
CPU op-mode(s) CPU支持的操作模式,32-bit和64-bit表示CPU既可以运行在32位模式下,也可以运行在64位模式下
Byte Order 系统的字节序,Little Endian表示小端序
CPU(s) 系统中可用的CPU核心数
On-line CPU(s) list 当前在线的CPU核心列表
Thread(s) per core 每个CPU核心支持的线程数,如果值为1表示不支持超线程技术
Core(s) per socket 每个CPU插座上的核心数
Socket(s) 系统中的CPU插座数
NUMA node(s) 系统中的NUMA节点数,NUMA是一种内存访问技术,将内存分为不同的节点,每个节点上的内存访问延迟不同
Vendor ID CPU的制造商ID,GenuineIntel表示制造商是Intel
CPU family CPU的家族编号
Model CPU的型号编号
Model name CPU的型号名称

通过这些信息,我们可以了解到系统的CPU架构、核心数、线程数等关键信息,这对于系统性能评估、并行程序设计等方面都有非常重要的意义

除此之外,lscpu命令还可以提供其他一些有用的信息,例如CPU的缓存信息、频率信息等。如果要查看更详细的信息,可以使用lscpu命令的-a选项,例如:

lscpu -a

这个命令将显示更详细的CPU信息,包括每个核心的频率、缓存信息等。

1.2 cat /proc/cpuinfo

/proc/cpuinfo 是一个在Linux系统下的虚拟文件,它包含了有关中央处理器(CPU)的详细信息。通过查看和分析这个文件,可以得到CPU的各种参数和性能数据。

以下是一些常见的查看和分析 /proc/cpuinfo 的方法:

  1. 查看物理CPU的个数
    cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc –l

  2. 查看逻辑CPU的个数
    cat /proc/cpuinfo |grep "processor"|wc –l

  3. 查看CPU是几核
    cat /proc/cpuinfo |grep "cores"|uniq

  4. 查看CPU的主频
    cat /proc/cpuinfo |grep MHz|uniq

  5. 查看CPU的型号和名称
    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

  6. 查看CPU的运行模式
    getconf LONG_BIT

    这条命令会显示出系统的长模式位数(即CPU的运行模式)。如果结果是64,那么说明CPU支持64位计算。

  7. 查看CPU是否支持64位计算
    cat /proc/cpuinfo | grep flags | grep ' lm ' | wc –l

    “lm”(即long mode)的行。如果结果大于0,那么说明CPU支持64位计算。

1.3 hwinfo --cpu

hwinfo是一个用于显示系统硬件信息的命令行工具,它可以提供关于各种设备的详细信息,包括CPU、内存、磁盘、网络适配器等。hwinfo工具提供了非常详细的硬件信息,可以帮助用户更好地了解系统的硬件配置。这对于系统性能评估、故障排查、硬件升级等方面都非常有帮助。相比其他类似的工具,如lspcilshwhwinfo可以提供更详细的信息,而且不需要学习专用的语法和命令。

--cpu选项用于指定要显示CPU的信息。当运行hwinfo --cpu命令时,hwinfo会读取系统的硬件信息并显示与CPU相关的详细信息。这些信息可能包括CPU的型号名称、核心数、线程数、时钟速度、缓存大小等。具体输出内容可能会因系统和硬件的不同而有所差异。

下面是一个示例输出:

03: CPU
  [0000]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  [0001]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  [0002]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  [0003]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  [0004]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  [0005]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  [0006]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
  [0007]: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz

在这个示例中,hwinfo --cpu命令显示了系统中安装的CPU的详细信息。可以看到,该系统中有8个CPU核心,每个核心都是Intel Core i7-8700,时钟速度为3.2GHz。此外,还可以看到每个核心的索引号(从0到7)。

1.4 小结

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)_第2张图片

二、查看内存信息

2.1 free

free命令是Linux系统中的一个非常实用的命令,它提供了关于系统RAM,交换空间,以及内核缓冲区使用情况的详细信息,可以帮助用户快速了解系统的内存使用情况,以便及时进行相应的调整和优化。

下面是一个示例输出:

total        used        free      shared  buff/cache   available
Mem:          8020400     1564640     3631520       101240     2824240     5873728
Swap:         1048572       10936     1037636

在上面的示例中,free命令的输出被分为了几个部分。下面是每一部分的解释:

列名 描述
total 系统总的RAM大小
used 已经被系统或者应用程序使用的RAM大小
free 完全未被使用的RAM大小
shared 被多个进程共享的内存大小
buff/cache 被内核用于缓冲和缓存的内存大小,可以被快速回收,被视为可用内存
available 在不进行交换的情况下,可以被应用程序使用的内存大小

Swap行,显示了交换空间的相关信息:

列名 描述
total 系统上总的交换空间大小
used 已经被使用的交换空间大小
free 还未被使用的交换空间大小

free命令还可以接受一些选项来改变它的行为:

  • -b: 以字节为单位显示内存使用情况。
  • -k: 以KB为单位显示内存使用情况。
  • -m: 以MB为单位显示内存使用情况。
  • -g: 以GB为单位显示内存使用情况。
  • -h: 以人类可读的格式显示内存使用情况(例如,使用KB,MB,GB等单位)。
  • -s N: 每N秒更新一次内存使用情况。这可以让用户看到内存使用情况的实时变化。
  • -c N: 更新N次后停止。这个选项通常和-s选项一起使用。
  • -V: 显示版本信息。

例如,如果你想以MB为单位查看内存使用情况,并且每5秒更新一次,你可以使用下面的命令:

free -m -s 5

除了上述介绍的选项外,free命令还有其他一些选项可以提供更详细的信息。下面是几个常用的选项:

  • -t: 显示总的内存和交换空间大小。
  • -l: 显示低内存和高内存区域的统计信息。
  • -o: 显示旧的内存和交换空间统计信息。
  • -p: 显示每个内存区域的详细信息,包括物理内存、文件系统缓存、SLAB等。

这些选项可以根据需求进行组合使用,以满足不同的查看需求。

  • 需要注意的是,free命令显示的内存使用情况是基于系统当前的状态,因此在使用该命令时需要确保系统处于稳定状态,否则可能会得到不准确的结果。
  • 另外,free命令只能显示系统的整体内存使用情况,无法提供关于每个进程或应用程序的内存使用情况。如果需要查看每个进程或应用程序的内存使用情况,可以使用其他工具如tophtopps等。

2.2 vmstat

vmstat命令是一个非常实用的Linux命令,它可以提供关于虚拟内存、进程、系统等方面的统计信息,其中包括内存使用情况。

下面是使用vmstat命令查看内存使用情况的方法:

  1. 打开终端或命令行界面。
  2. 输入vmstat命令并按下回车键。这将显示一份系统统计信息,其中包括内存使用情况。

vmstat命令的输出信息中,有几个关键指标可以用来评估内存使用情况:

指标 描述
memory 显示总的内存(RAM)大小、已用内存、空闲内存、缓冲区和缓存的大小,以及可用内存的数量
swap 显示总的交换空间大小、已用交换空间、空闲交换空间,以及被缓存的交换空间大小
si 表示每秒从交换空间读入内存的数据量
so 表示每秒从内存写入交换空间的数据量
bi 表示每秒从块设备读入的数据量
bo 表示每秒写入块设备的数据量

除了直接输入vmstat命令查看一次统计信息外,还可以使用以下选项来定制输出或持续监控内存使用情况:

  • -a:显示活跃和非活跃内存。
  • -f:显示从系统启动至今的fork数量。
  • -m:显示slabinfo。
  • -n:只在开始时显示一次各字段名称。
  • -s:显示内存相关统计信息及多种系统活动数量。
  • -d:显示磁盘活动统计信息。
  • -p diskpartition:显示指定磁盘分区的IO统计信息。
  • -V:显示版本信息。

此外,还可以在后面加上时间间隔和次数,来持续监控内存使用情况,例如:

vmstat 1 5

这将每秒钟更新一次统计信息,总共更新5次。

2.3 cat /proc/meminfo

/proc/meminfo文件是一个特殊的文件,它包含了系统的内存使用情况。可以通过读取该文件来获取内存使用情况的详细信息。

下面是使用/proc/meminfo文件查看内存使用情况的方法:

  1. 打开终端或命令行界面。

  2. 输入以下命令来查看/proc/meminfo文件的内容:

    cat /proc/meminfo
    

    这将显示一份详细的内存使用情况统计信息。

指标 描述
MemTotal 总的内存(RAM)大小
MemFree 完全未被使用的内存大小
MemAvailable 在不进行交换的情况下,可以被应用程序使用的内存大小
Buffers 被内核用于缓冲区的内存大小
Cached 被内核用于缓存的内存大小
SwapCached 被缓存的交换空间大小
Active 活跃的内存大小,即最近被使用过的内存
Inactive 非活跃的内存大小,即很长时间没有被使用过的内存
Active(anon) 活跃的匿名内存大小,即没有被映射到文件的内存
Inactive(anon) 非活跃的匿名内存大小
Active(file) 活跃的文件缓存大小
Inactive(file) 非活跃的文件缓存大小
Unevictable 不能被回收的内存大小
Mlocked 被锁定的内存大小
SwapTotal 总的交换空间大小
SwapFree 未被使用的交换空间大小
Dirty 等待被写回到磁盘的内存大小
Writeback 正在被写回到磁盘的内存大小
AnonPages 未被映射到文件的页面数量
Mapped 被映射到文件的页面数量
Shmem 被多个进程共享的内存大小
Slab 内核数据结构缓存的大小
SReclaimable 可回收的Slab内存大小
SUnreclaim 不可回收的Slab内存大小
KernelStack 内核栈的大小
PageTables 管理页面表的内存大小
NFS_Unstable 不稳定的NFS文件缓存大小
Bounce 用于块设备的bounce buffer内存大小
WritebackTmp 临时写回缓冲区的内存大小
CommitLimit 系统可以使用的最大内存和交换空间总和
Committed_AS 当前已经分配的内存和交换空间总和
VmallocTotal 可以vmalloc的内存空间大小
VmallocUsed 已经被使用的vmalloc内存空间大小
VmallocChunk 最大的连续未使用的vmalloc内存空间大小

这些指标提供了关于内存使用情况的详细信息,用户可以根据需要来查看和理解这些指标的含义。

需要注意的是,/proc/meminfo文件中提供的信息是基于系统当前的状态,因此在使用时需要确保系统处于稳定状态,否则可能会得到不准确的结果。

2.4 小结

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)_第3张图片

三、查看进程信息

3.1 ps

ps命令是Linux系统中用来查看进程信息的常用命令之一。通过ps命令,用户可以查看当前正在运行的所有进程的详细信息,包括进程ID、进程名称、运行时间、CPU占用率、内存占用等,以便更好地管理和监控Linux系统的运行状况。

下面是一个示例输出:

PID TTY          TIME CMD
 1 ?        00:00:00 systemd
 2 ?        00:00:00 kthreadd
 3 ?        00:00:00 ksoftirqd/0
 5 ?        00:00:00 kworker/0:0H
 7 ?        00:00:08 rcu_sched

ps命令的基本语法如下:

ps [options]

其中,[options]是可选的参数,可以用来定制输出或筛选进程信息。以下是一些常用的选项:

  • -e:显示所有进程信息,包括其他用户的进程。
  • -f:显示完整的进程信息,包括命令行参数等。
  • -l:使用长格式输出,显示更多详细信息。
  • -u user:显示指定用户的进程信息。
  • -p pid:显示指定进程ID的进程信息。
  • -t:显示线程信息,而不只是进程信息。
  • -o field:自定义输出格式,指定要显示的字段。
  1. 显示所有进程的完整信息

    ps -ef
    

    这将显示所有进程的详细信息,包括进程ID、进程名称、运行时间、CPU占用率、内存占用等。

  2. 查看指定用户的进程信息

    ps -u username
    

    username替换为要查看的用户名即可。

  3. 查看指定进程ID的进程信息

    ps -p pid
    

    pid替换为要查看的进程ID即可。

  4. 自定义输出格式

    ps -eo pid,ppid,cmd
    

    这将显示进程ID、父进程ID和命令行。可以通过添加或删除字段来自定义输出格式。

除了基本用法外,ps命令还支持一些高级用法,例如结合管道和其他命令来筛选或处理进程信息。

  1. 查找CPU占用率最高的进程

    ps aux | sort -k3 -r | head -n 5
    

    这将使用aux选项显示所有进程的详细信息,并通过管道将其传递给sort命令进行排序,按照CPU占用率的倒数排序(即最高的CPU占用率排在最前面),然后使用head命令只显示前5行。这样可以快速找到CPU占用率最高的进程。

3.2 top

top命令是Linux系统中用来动态显示进程信息的实用程序。它通过交互式的方式显示系统的状态和进程活动,包括CPU使用率、内存占用、负载平均值等关键指标,以及每个进程的详细信息。

下面详细介绍如何使用top命令查看Linux系统的进程信息:

  1. 打开终端或命令行界面。
  2. 输入top命令并按下回车键。这将启动top程序并显示系统的摘要信息,包括系统时间、运行时间、登录用户数、系统负载等。
  3. 等待几秒钟,top会自动刷新并显示最新的进程信息,包括进程ID、进程名称、CPU占用率、内存占用等。默认情况下,top会按照CPU占用率的高低对进程进行排序,CPU占用率最高的进程将排在最前面。
  4. 按下键盘上的q键或Ctrl+C,可以退出top程序。

top程序中,可以通过按下不同的键来进行交互操作,例如:

按键 功能描述
空格键 立即刷新进程信息
k 键 杀死指定进程。在top程序中,按下k键后会提示输入要杀死的进程ID,输入完毕后按下回车键即可。
r 键 修改进程的优先级。在top程序中,按下r键后会提示输入要修改优先级的进程ID和新的优先级值,输入完毕后按下回车键即可。
f 键 进入字段管理模式,可以自定义要显示的进程字段和顺序。在字段管理模式中,可以使用上下箭头选择要显示的字段,按下空格键将该字段添加到显示列表中,按下回车键确认修改并退出字段管理模式。
o 键 进入排序模式,可以自定义进程的排序方式。在排序模式中,可以使用上下箭头选择要排序的字段,按下回车键确认修改并退出排序模式。
h 键或 ? 键 显示帮助信息,可以查看top程序支持的所有交互操作。

除了默认的显示模式外,top还提供了一些高级选项,可以通过命令行参数或配置文件来进行定制。例如,

  • 可以使用-b选项将top切换到批处理模式,将输出重定向到文件中;
  • 可以使用-n选项指定每次刷新的时间间隔;
  • 可以使用-p选项指定要监控的进程ID等。

这些选项可以在需要高级功能时进行配置。

3.3 htop

htop命令是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses库支持。与Linux传统的top相比,htop更加人性化。它可以让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

htop命令的界面中,可以看到各个进程的详细信息,包括进程ID、用户、CPU和内存使用率、进程状态等。此外,htop还支持多种操作,例如:

  1. 使用上下光标键选择进程。
  2. F7F8改变进程的优先级。
  3. F9杀死选定的进程。
  4. F10退出htop

除了基本的进程查看和操作外,htop还提供了一些高级功能,例如:

功能 描述
过滤进程 htop允许用户根据进程名称、用户名、PID等条件过滤进程列表,方便查找特定进程。
自定义列 用户可以根据自己的需求自定义进程列表中的列,例如添加或删除某些列。
批量操作 htop支持对多个进程进行批量操作,例如改变优先级、杀死进程等。
保存和加载配置 用户可以保存自己的htop配置,并在下次启动时加载,方便长期使用。

需要注意的是,htop不是系统默认安装的,所以需要额外安装。安装方法可以参考操作系统的文档或者在线教程。

3.4 pmap

pmap命令用于报告进程的内存映射关系,是Linux调试及运维一个很好的工具。实际上,pmap是一个Sun OS上的命令,Linux仅支持其有限的功能。在Linux系统中,可以使用pmap命令查看一个或多个进程的内存状态,其报告进程的地址空间和内存状态信息,对查看完整的进程地址空间很有帮助。

语法:

pmap[options]pid[...]

选项:

  • -x--extended:显示扩展格式。
  • -d--device:显示设备格式。
  • -q--quiet:不显示header和footer行。
  • -A--range low,high:将给定范围内的结果限制为低地址和高地址范围。low和high参数是用逗号分隔的单个字符串。
  • -X:显示比-x选项更多的详细信息。注意:格式根据/proc/PID/smaps更改。
  • -XX:显示内核提供的一切。
  • -p--show-path:在映射列中显示文件的完整路径。
  • -c--read-rc:读取默认配置。
  • -C--read-rc-from file:从文件file中读取配置。
  • -n--create-rc:创建新的默认配置。
  • -N--create-rc-to file:创建新的配置,并保存到文件。
  • -h--help:显示帮助信息并退出。
  • -V--version:显示版本信息并退出。

参数:进程PID(可接多个参数)

要查看单一进程的内存状态,可以使用如下命令:

pmap<pid>

其中,是要查看内存状态的进程的PID。执行该命令后,会显示进程的内存映射信息,包括地址范围、权限、映射类型等。例如:

$ pmap 5969
5969:/usr/share/typora/Typora README.md
000031590000000048K rw--- [ anon ]
000031590000c000208K ----- [ anon ]
00003159000400004K rw--- [ anon ]
00003159000410004K ----- [ anon ]
000031590004200064K r-x-- [ anon ]
...
00007fc4383b800028K rw--- libepoxy.so.0.0.0
00007fc4383bf00016K r---- libcairo-gobject.so.2.11600.0
00007fc4383c30008K r-x-- libcairo-gobject.so.2.11600.0
00007fc4383c50008K r---- libcairo-gobject.so.2.11600.0

这个输出显示了进程5969的内存映射。每一行都代表一个不同的内存区域,并给出了该区域的起始地址、大小、权限(如读、写、执行)、映射类型(如匿名映射或文件映射),以及映射到的文件(如果有)。

  • 这里的“anon”表示匿名映射,即没有映射到任何文件的内存区域。这些区域通常用于存储堆、栈和动态分配的内存。

  • “rw-”表示该内存区域可读可写,“r-x”表示可读可执行,而“-----”表示该区域当前不可访问。

  • 对于文件映射,会显示文件的路径。例如,“libepoxy.so.0.0.0”是一个动态链接库文件,它被映射到了进程的地址空间中。

注意,pmap命令只能由具有足够权限的用户(通常是root用户)运行。如果你没有足够的权限,可能会收到“Operation not permitted”的错误消息。

3.5 pstree

pstree命令是一个在Linux系统中用来查看进程信息的命令,其名称来自于英文词组"Process tree"的缩写。该命令的主要功能是以树状图的形式显示系统中的进程信息,这使得管理员可以更好地理解进程之间的关系。

在Linux系统中,常用的ps命令可以查看进程的状态信息,但是它无法清晰地显示出进程之间的依赖关系,即哪个进程是父进程,哪个进程是子进程pstree命令恰好可以弥补这个不足。

pstree命令的基本格式如下:

pstree [options] [pid | user]

其中,[pid | user]参数是用来指定要查看的进程ID或用户名。如果不指定该参数,pstree命令将会显示整个系统的进程树。

pstree命令的常用选项包括:

  • -p:显示每个进程的PID。
  • -u:显示每个进程的用户名。
  • -T:显示每个进程的终端名称。
  • -s:使用信号名称代替信号编号。
  1. 查看系统中所有进程的PID和用户名

    pstree -pu
    
  2. 查看某个特定进程的子进程信息

    pstree -p [pid]
    

    其中,[pid]是要查看的进程的PID。

3.6 /proc文件系统

/proc文件系统是Linux系统中的一个虚拟文件系统,它主要用于提供有关系统和进程的信息。在/proc文件系统中,每个进程都有一个与其PID(进程ID)相对应的目录。通过查看这些目录中的文件,可以获取有关进程的详细信息。

以下是使用/proc文件系统查看Linux系统进程信息的一些常见方法和文件:

文件/目录 描述
/proc/[pid] 每个进程的主要目录,其中[pid]是该进程的PID。包含与进程相关的文件和目录,如cmdlinecwdenvironexefdmapsmemrootstatstatus等。
/proc/[pid]/cmdline 包含进程的完整命令行,即启动进程时使用的完整命令和参数。
/proc/[pid]/cwd 一个符号链接,指向进程当前工作目录的路径。
/proc/[pid]/environ 包含进程的环境变量列表。
/proc/[pid]/exe 一个符号链接,指向进程的可执行文件路径。
/proc/[pid]/fd 包含进程打开的所有文件的文件描述符。每个文件描述符都是一个符号链接,指向实际文件的路径。
/proc/[pid]/maps 包含进程的内存映射信息,包括每个内存区域的起始地址、大小、权限和用途等。
/proc/[pid]/mem 允许访问进程的虚拟内存空间,可以用于读取和写入进程的内存。
/proc/[pid]/root 一个符号链接,指向进程看到的根目录的路径。
/proc/[pid]/stat 包含进程的状态信息,如PID、PPID(父进程ID)、进程状态、CPU使用时间等。
/proc/[pid]/status 包含进程的详细状态信息,如进程名、进程状态、父进程ID、CPU使用时间、内存使用情况等。

除了查看单个进程的信息外,/proc文件系统还提供了一些其他有用的信息,如系统整体CPU负载、内存使用情况、磁盘IO等。这些信息可以通过查看/proc根目录下的文件获取,如/proc/cpuinfo/proc/meminfo/proc/diskstats等。

3.7 小结

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)_第4张图片

四、查看网口信息

4.1 ifconfig

ifconfig是一个Linux/Unix命令,用于查看和配置网络接口信息。在终端中输入ifconfig命令,可以显示当前系统中所有的网络接口信息,包括IP地址、MAC地址、子网掩码、网络状态等。

以下是使用ifconfig命令查看网络接口信息的一些常见用法和示例:

  1. 打开终端并输入ifconfig命令,回车。终端将显示当前系统中所有的网络接口信息。例如:

    en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 70:3a:cb:7b:e2:45 
    inet6 fe80::723a:cbff:fe7b:e245%en0 prefixlen 64 secured scopeid 0x4 
    inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active
    

    其中,en0表示网络接口的名称,ether后面的数字是MAC地址,inet后面的数字是IP地址,netmask是子网掩码,broadcast是广播地址,media是网络接口连接的媒介类型,status表示网络接口的连接状态。

  2. 查看特定网络接口信息。可以使用ifconfig命令加上网络接口的名称来查看特定网络接口的信息。例如,查看eth0接口的信息:

    ifconfig eth0
    

需要注意的是,ifconfig命令在不同的Linux发行版中可能会有所不同,具体用法可以参考相应发行版的文档或man手册。另外,随着Linux网络工具的不断更新和发展,ifconfig命令在一些新的发行版中已经被废弃,被ip命令所取代。因此,在使用ifconfig命令时,需要注意其兼容性和可用性。

4.2 ip

ip命令是一个在Linux系统中用于查看和配置网络接口信息的命令行工具,与ifconfig命令类似。相比于ifconfig命令,ip命令提供了更多的功能和更详细的网络接口信息。

以下是使用ip命令查看网络接口信息的一些常见用法和示例:

  1. 打开终端并输入ip命令,回车。终端将显示ip命令的使用方式和可用选项。例如:

    Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
    where  OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
                       tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |
                       token | netns | v3 | fou | macsec | vcan | veth | vxcan |
                       bridge | bond | vlan | veth | vrf | macvlan | macvtap |
                       gre | gretap | ipip | sit | vti | nlmonitor | nfneigh |
                       nftable | inet6_prefix | packet_mreq | mroute6 | mrule6 |
                       reachable | rt_tables | res_counter | fib_rules }
           COMMAND := { add | del | show [ bandwidth ] | set [ bandwidth ] }
    
  2. 查看当前网络接口信息。可以使用ip命令加上link选项来查看当前系统中所有的网络接口信息。例如:

    ip link show
    

    在输出结果中,可以查看每个网络接口的名称、MAC地址、连接状态等信息。例如:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 70:3a:cb:7b:e2:45 brd ff:ff:ff:ff:ff:ff
    

    其中,lo是回环接口,eth0是以太网接口。

  3. 查看特定网络接口信息。可以使用ip命令加上link选项和接口名称来查看特定网络接口的信息。例如,查看eth0接口的信息:

    ip link show eth0
    
  4. 查看网络接口的统计信息。ip命令还可以用于查看网络接口的统计信息,例如接收到的字节数、发送出去的字节数等。如查看网络接口统计信息:

    ip -s link show eth0
    

    在输出结果中,可以查看RX bytes和TX bytes字段,分别表示接收到的字节数和发送出去的字节数。

  5. 查看网络接口的IP地址信息。ip命令还可以用于查看网络接口的IP地址信息,包括IPv4和IPv6地址。以下是一些示例:

    • 查看网络接口IPv4地址信息:

      ip addr show eth0
      

      在输出结果中,可以查看inet字段,表示网络接口的IPv4地址信息。

    • 查看网络接口IPv6地址信息:

      ip -6 addr show eth0
      

      在输出结果中,可以查看inet6字段,表示网络接口的IPv6地址信息。

  6. 查看网络接口的路由信息。ip命令还可以用于查看网络接口的路由信息,包括默认路由、静态路由等。以下是一些示例:

    • 查看默认路由信息:

      ip route show default
      

      在输出结果中,可以查看default字段,表示默认路由的信息。

    • 查看静态路由信息:

      ip route show table static
      

      在输出结果中,可以查看table字段为static的路由信息,表示静态路由的信息。

需要注意的是,ip命令在不同的Linux发行版中可能会有所不同,具体用法可以参考相应发行版的文档或man手册。

4.3 netstat

netstat是一个命令行工具,用于显示网络连接、路由表和网络接口信息。在Linux系统中,netstat可以用来查看系统的网络状态和配置。下面是一些常用的netstat命令及其用法:

  • netstat -i:显示所有网络接口的信息,格式同ifconfig -e
  • netstat -n:以网络IP地址代替名称,显示出网络连接情形。
  • netstat -t:显示TCP协议的连接情况。
  • netstat -u:显示UDP协议的连接情况。
  • netstat -l:显示正在监听的socket。
  • netstat -p:显示PID和程序名。
  • netstat -c:每隔1秒就重新显示一遍,直到用户中断它。
  • netstat -r:显示核心路由表,格式同route -e
  • netstat -v:显示正在进行的工作。

下面是一些常用的netstat命令组合及其用法:

  1. netstat -an | grep LISTEN:列出所有正在监听的端口和对应的程序。
  2. netstat -tlnp:查看Linux的端口使用情况,包括PID、程序名。
  3. netstat -a:查看所有的服务端口(LISTEN,ESTABLISHED)。
  4. sudo netstat -ap:查看所有的服务端口并显示对应的服务程序名。

4.4 nmcli

nmcli是一个用于控制NetworkManager和报告网络状态的命令行工具。在Linux系统中,可以使用nmcli命令来查看和管理网络接口信息。

要查看Linux系统的网络接口信息,可以使用以下nmcli命令:

  1. nmcli device status:该命令用于查看当前主机上的网络接口设备状态。其输出包括设备名(DEVICE)、设备类型(TYPE)、接口状态(STATE)和应用到该接口上的连接名(CONNECTION)等信息。
  2. nmcli device show :该命令用于查看指定接口()的详细网络配置信息,包括IP地址、MAC地址、设备类型、驱动名称等。例如,要查看eth0接口的信息,可以使用命令nmcli device show eth0
  3. nmcli connection show:该命令用于列出系统中定义的所有网络连接配置。其输出包括连接名(NAME)、UUID、设备名(DEVICE)、类型(TYPE)、状态(STATE)等信息。

4.5 /sys/class/net目录

在Linux系统中,/sys/class/net目录保存了有关网络接口的详细信息。通过查看这个目录的内容,可以检验可用接口的列表和获取网络接口的详细信息。

要查看Linux系统的网络接口信息,可以使用以下步骤:

  1. 打开终端或控制台窗口。

  2. 输入以下命令来列出/sys/class/net目录下的所有接口:

    ls /sys/class/net
    

    这将显示可用网络接口的列表,例如eth0eth1wlan0等。

  3. 要获取特定接口的详细信息,可以进入该接口的目录。例如,要查看eth0接口的信息,可以使用以下命令:

    cd /sys/class/net/eth0
    
  4. 在该目录下,你可以查看和读取各种文件来获取有关该接口的不同信息,如MAC地址、IP地址、接口状态等。例如:

    • address文件包含该接口的MAC地址。
    • iflink文件包含一个表示该接口索引号的数字。
    • operstate文件包含该接口的操作状态(如up或down)。
    • mtu文件包含该接口的最大传输单元(MTU)值。
    • speed文件包含该接口的速度(以Mbps为单位)。
    • duplex文件包含该接口的双工模式(如full或half)。

4.6 /proc/net/dev文件

在Linux系统中,/proc/net/dev文件保存了有关网络接口的网络统计信息。通过查看这个文件,可以获取每个网络接口的收发数据包数量、字节数、错误数等详细信息。

要查看Linux系统的网络接口信息,可以使用以下步骤:

  1. 打开终端或控制台窗口。

  2. 输入以下命令来查看/proc/net/dev文件的内容:

    cat /proc/net/dev
    

    这将显示一个表格,列出了系统中每个网络接口的各种统计信息。

  3. 表格中的每一行对应于一个网络接口,行的第一列是接口的名称,例如eth0eth1wlan0等。接下来的列提供了有关该接口的各种统计信息,包括接收和发送的数据包数量、字节数、错误数等。

    • Rx列表示接收到的数据包数量。
    • Tx列表示发送的数据包数量。
    • Rx_bytes列表示接收到的字节数。
    • Tx_bytes列表示发送的字节数。
    • Rx_errors列表示接收数据包时发生的错误数。
    • Tx_errors列表示发送数据包时发生的错误数。
    • Rx_dropped列表示接收到的但未被处理的数据包数量。
    • Tx_dropped列表示发送失败并被丢弃的数据包数量。
    • Rx_fifo_errors列表示接收FIFO缓冲区溢出错误数。
    • Tx_fifo_errors列表示发送FIFO缓冲区溢出错误数。
    • Rx_frame_errors列表示接收到的损坏的数据包数量。
    • Tx_carrier_errors列表示由于载波丢失导致的发送错误数。
    • Tx_collisions列表示发送数据包时的碰撞次数。

4.7 小结

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)_第5张图片

五、查看磁盘信息

5.1 df

使用df命令可以查看所有已经挂载的文件系统的磁盘使用情况,包括总容量、已用容量、可用容量、已用百分比以及挂载点。这些信息对于系统管理员来说非常重要,因为他们需要了解磁盘的使用情况,以便在必要时释放空间或添加更多的存储。

该命令是“disk filesystem”的缩写,意为磁盘文件系统。

下面是一个示例输出:

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1        1038356   383372   593684  40% /
tmpfs             413740       44   413696   1% /dev/shm

df命令的基本语法如下:

df [options] [file_system]

其中,[options]是可选的参数,可以用来定制输出;[file_system]是可选的参数,用来指定要查看的特定文件系统。

下面是一些常用的df命令选项:

  • -a:显示所有文件系统的磁盘使用情况,包括系统特有的文件系统(如/proc/sys)。
  • -h:以人类可读的格式显示磁盘使用情况(例如,使用KB、MB、GB等单位)。
  • -i:显示inode信息,包括已用和可用的inode数量。
  • -T:显示文件系统的类型。
  • -t:显示指定类型的文件系统的磁盘使用情况。
  • -x:排除指定类型的文件系统的磁盘使用情况。
  1. 以人类可读的格式显示所有文件系统的磁盘使用情况

    df -h
    
  2. 显示特定文件系统/dev/sda1的磁盘使用情况

    df /dev/sda1
    

5.2 du

du命令是Linux系统中常用的一个工具,用于查看文件或目录的磁盘使用情况。它可以递归地遍历指定目录下的所有文件和子目录,并计算它们的磁盘空间占用大小。du命令的输出结果以字节为单位,可以通过参数进行格式化,以便更好地阅读。它可以帮助用户了解文件和目录的大小,从而进行磁盘空间的管理和优化。du命令还可以用于查找占用磁盘空间较大的文件或目录。通过对比文件和目录的大小,用户可以快速定位到占用较多磁盘空间的内容,以便进行进一步的处理或清理。

以下是du命令的详细解释和用法:

语法格式:

du [选项] [文件或目录]

参数说明:

  • -h:以人类可读的格式显示文件或目录的磁盘使用情况。
  • -s:仅显示总大小,不显示子目录和文件的详细磁盘使用情况。
  • -a:显示目录下所有文件和子目录的磁盘使用情况。
  • --max-depth=N:限制显示的目录层级深度为N。
  • -c:显示所有文件和目录的总磁盘使用情况。
  • -b:以字节为单位显示磁盘使用情况。
  • -k:以千字节为单位显示磁盘使用情况。
  • -m:以兆字节为单位显示磁盘使用情况。
  • -g:以吉字节为单位显示磁盘使用情况。
  • -L:遵循符号链接的路径进行计算。

错误情况:

  • 如果指定的文件或目录不存在,du命令会报错并显示相应的错误信息。
  • 如果没有足够的权限访问文件或目录,du命令可能无法计算其磁盘使用情况,并显示相应的错误信息。
  • 在使用du命令时,如果参数或选项的格式不正确,会导致命令执行失败并显示相应的错误信息。

注意事项:

  • 使用Linux Shell的du命令时,有一些注意事项需要注意:du命令默认递归地遍历指定目录下的所有文件和子目录。如果要限制遍历的深度,可以使用--max-depth选项指定深度级别。
  • 注意du命令的执行权限。

5.3 fdisk

fdisk命令是Linux系统中用于管理磁盘分区的工具。它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。通过fdisk命令,用户可以查看磁盘分区的详细信息,包括分区类型、大小、起始扇区和结束扇区等。此外,fdisk还可以用于创建新的磁盘分区、删除现有的磁盘分区、修改分区类型等。

以下是fdisk命令的详细解释和用法:

语法格式:

fdisk [选项] [磁盘名称]

参数说明:

  • -l:列出指定磁盘的分区表信息。
  • -u:以扇区为单位显示分区信息。
  • -v:显示详细的分区信息,包括分区类型、大小、起始扇区和结束扇区等。
  • -b:以扇区为单位显示磁盘大小。

操作步骤:

  1. 打开终端或命令行界面。
  2. 输入fdisk命令,并指定要操作的磁盘名称,例如:fdisk /dev/sda
  3. 按回车键进入fdisk命令的交互模式。
  4. 输入pprint命令,按回车键,即可显示当前磁盘的分区表信息。
  5. 输入其他命令,如n(新建分区)、d(删除分区)、t(修改分区类型)等,按回车键执行相应操作。
  6. 在执行完所需的操作后,输入wwrite命令,按回车键保存并退出fdisk命令。
  7. 如果需要查看创建的分区信息是否同步到了Linux内核里面,可以使用file命令来查看,例如:file /dev/sda1
  8. 如果需要格式化新建的分区,可以使用mkfs.文件类型名称命令来进行格式化,例如:mkfs.ext4 /dev/sda1

注意事项:

  • 在使用fdisk命令时,一定要小心操作,避免误删除或修改重要的磁盘分区。建议在操作前备份重要的数据。
  • fdisk命令的操作结果会直接影响磁盘的分区表,如果不熟悉操作或不确定操作是否正确,建议在使用前仔细查阅相关文档或咨询专业人士的意见。

5.4 lsblk

lsblk命令是Linux系统中用于列出块设备信息的工具。它可以显示系统中所有的块设备(如硬盘、闪存盘、CD-ROM等)以及与之相关联的信息,如设备名称、大小、挂载点等。lsblk命令的输出结果以树形结构展示,便于用户理解和查看设备之间的关系。

以下是lsblk命令的详细解释和用法:

语法格式:

lsblk [选项] [设备]

参数说明:

  • -a:显示所有设备,包括回环设备(loop devices)。
  • -d:仅显示物理设备,不包括其分区。
  • -f:显示文件系统类型。
  • -h:以人类可读的格式显示设备大小。
  • -i:使用ASCII字符显示输出。
  • -m:以MB为单位显示设备大小。
  • -o:指定输出列。
  • -p:显示完整的设备路径。
  • -r:使用原始格式显示输出。
  • -s:仅显示大小总计信息。
  • -t:显示拓扑结构信息。

操作步骤:

  1. 打开终端或命令行界面。
  2. 输入lsblk命令,按回车键执行。
  3. lsblk命令会列出系统中所有的块设备信息,以树形结构展示。
  4. 如果需要查看特定设备的详细信息,可以在lsblk命令后面指定设备名称,例如:lsblk /dev/sda
  5. 可以结合使用lsblk命令的参数,以便更好地查看和理解设备信息。例如,使用-h参数可以以人类可读的格式显示设备大小,使用-f参数可以显示文件系统类型等。

注意事项:

  • lsblk命令需要以root用户或具有相应权限的用户身份执行,以便查看所有的设备信息。普通用户执行lsblk命令可能无法查看某些设备信息。
  • 在使用lsblk命令时,需要注意参数的选择和组合,以便更好地查看和理解设备信息。

5.5 小结

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)_第6张图片

六、查看硬件信息

6.1 lshw

lshw命令在Linux系统中用于显示系统的硬件配置信息。它可以通过收集系统上的硬件详细信息,为用户提供主板、CPU、内存、磁盘、网络适配器等硬件组件的详细信息。

具体使用方法如下:

  1. 打开终端:在大多数Linux系统中,可以通过键盘快捷键Ctrl+Alt+T来打开终端。
  2. 输入命令:在终端中输入lshw命令,然后按回车键。
  3. 查看输出:lshw命令会列出系统的硬件配置信息。输出通常包括主板的名称、型号、制造商,CPU的型号、主频、核心数,内存的大小、速度,磁盘的容量、接口类型,网络适配器的型号、制造商等信息。

如果你想查看详细的硬件信息,可以输入以下命令:

sudo lshw -xml > hardware.xml

这个命令将把详细的硬件信息输出到一个名为"hardware.xml"的XML文件中,方便用户进一步处理和分析。

另外,lshw命令还可以和一些参数一起使用,以过滤或排序输出。例如:

  • lshw -short:以简洁的格式显示硬件信息。
  • lshw -class class_name:只显示指定类别的硬件信息,如"network"、"disk"等。
  • lshw -sanitize:去除敏感信息,如序列号、MAC地址等。

6.2 lspci

lspci命令在Linux系统中用于显示所有连接到PCI(Peripheral Component Interconnect)总线的设备信息。PCI总线是一种用于连接计算机内部设备的标准接口。

具体使用方法如下:

  1. 打开终端:在大多数Linux系统中,可以通过键盘快捷键Ctrl+Alt+T来打开终端。
  2. 输入命令:在终端中输入lspci命令,然后按回车键。
  3. 查看输出:lspci命令会列出所有连接到PCI总线的设备。输出通常包括设备的制造商、型号、ID等信息。

如果你想查看详细的设备信息,可以输入以下命令:

sudo lspci -v

这个命令将显示更详细的设备信息,包括设备的配置、状态、能力等。

另外,lspci命令还可以和一些参数一起使用,以过滤或排序输出。例如:

  • lspci -d vendor_id:device_id:只显示指定厂商和设备ID的设备。
  • lspci -t:以树状结构显示设备。
  • lspci -s bus:device.function:只显示指定总线、设备和功能的设备。

6.3 lsusb

lsusb命令在Linux系统中用于显示所有连接到USB(Universal Serial Bus)总线的设备信息。USB总线是一种用于连接计算机外部设备的标准接口,如鼠标、键盘、打印机、扫描仪等。

具体使用方法如下:

  1. 打开终端:在大多数Linux系统中,可以通过键盘快捷键Ctrl+Alt+T来打开终端。
  2. 输入命令:在终端中输入lsusb命令,然后按回车键。
  3. 查看输出:lsusb命令会列出所有连接到USB总线的设备。输出通常包括设备的制造商、型号、ID等信息。

如果你想查看详细的设备信息,可以输入以下命令:

sudo lsusb -v

这个命令将显示更详细的设备信息,包括设备的配置、状态、能力等。

另外,lsusb命令还可以和一些参数一起使用,以过滤或排序输出。例如:

  • lsusb -d vendor_id:device_id:只显示指定厂商和设备ID的设备。
  • lsusb -t:以树状结构显示设备。
  • lsusb -s bus:device:只显示指定总线和设备的设备。

6.4 小结

一文掌握Linux系统信息查看命令(CPU、内存、进程、网口、磁盘、硬件)_第7张图片

结语

在这篇文章中,我介绍了一些常用的Linux命令,帮助你查看和监控系统的各种信息。无论你是Linux系统管理员还是普通用户,掌握这些命令都将成为你在解决问题和优化系统方面的强大武器。

当然,这只是冰山一角。Linux系统拥有丰富的功能和强大的命令行工具,只有不断学习和实践,你才能更好地掌握它们。希望这篇文章能为你提供一些启示和帮助,让你在探索Linux世界的道路上更加从容和自信。

最后,感谢大家阅读我的技术博客。如果你有任何疑问或者建议,请随时联系我。我非常乐意与你交流和分享更多有关Linux系统的信息和经验。祝你在Linux的世界里玩得开心,学得愉快!

print("Hello, world.")

亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n

你可能感兴趣的:(linux)