引言
大家好,欢迎来到我的技术博客!如果你是一名Linux系统管理员、开发者或者热衷于学习Linux系统的用户,那么你一定需要掌握查看系统信息的命令。在这篇博客中,我将为你介绍一些常用的Linux命令,帮助你快速了解和监控你的系统状态,以便更好地管理和优化你的系统。
有时候,当你遇到一些系统性能问题或者想要优化你的系统时,你可能会想知道系统中的一些关键信息。例如,你可能想知道CPU支持的64位架构、内存使用情况、正在运行的进程列表以及网络接口的状态等。通过使用正确的命令,你可以迅速获得这些关键信息,从而更好地进行系统管理和优化。
注:本文内容较长,建议当做参考手册进行查阅,或者结合目录快速定位到感兴趣的内容📖
正文
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系统的信息。这些命令将帮助你深入了解系统的运行状态,以便进行相应的调整和优化。
一、查看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
的方法:
-
查看物理CPU的个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc –l
-
查看逻辑CPU的个数
cat /proc/cpuinfo |grep "processor"|wc –l
-
查看CPU是几核
cat /proc/cpuinfo |grep "cores"|uniq
-
查看CPU的主频
cat /proc/cpuinfo |grep MHz|uniq
-
查看CPU的型号和名称
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
-
查看CPU的运行模式
getconf LONG_BIT
这条命令会显示出系统的长模式位数(即CPU的运行模式)。如果结果是64,那么说明CPU支持64位计算。
-
查看CPU是否支持64位计算
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc –l
“lm”(即long mode)的行。如果结果大于0,那么说明CPU支持64位计算。
1.3 hwinfo --cpu
hwinfo
是一个用于显示系统硬件信息的命令行工具,它可以提供关于各种设备的详细信息,包括CPU、内存、磁盘、网络适配器等。hwinfo
工具提供了非常详细的硬件信息,可以帮助用户更好地了解系统的硬件配置。这对于系统性能评估、故障排查、硬件升级等方面都非常有帮助。相比其他类似的工具,如lspci
和lshw
,hwinfo
可以提供更详细的信息,而且不需要学习专用的语法和命令。
--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 小结
亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n
二、查看内存信息
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
命令只能显示系统的整体内存使用情况,无法提供关于每个进程或应用程序的内存使用情况。如果需要查看每个进程或应用程序的内存使用情况,可以使用其他工具如top
、htop
、ps
等。
2.2 vmstat
vmstat
命令是一个非常实用的Linux命令,它可以提供关于虚拟内存、进程、系统等方面的统计信息,其中包括内存使用情况。
下面是使用vmstat
命令查看内存使用情况的方法:
- 打开终端或命令行界面。
- 输入
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
文件查看内存使用情况的方法:
-
打开终端或命令行界面。
-
输入以下命令来查看
/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 小结
亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n
三、查看进程信息
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
:自定义输出格式,指定要显示的字段。
-
显示所有进程的完整信息
ps -ef
这将显示所有进程的详细信息,包括进程ID、进程名称、运行时间、CPU占用率、内存占用等。
-
查看指定用户的进程信息
ps -u username
将
username
替换为要查看的用户名即可。 -
查看指定进程ID的进程信息
ps -p pid
将
pid
替换为要查看的进程ID即可。 -
自定义输出格式
ps -eo pid,ppid,cmd
这将显示进程ID、父进程ID和命令行。可以通过添加或删除字段来自定义输出格式。
除了基本用法外,ps
命令还支持一些高级用法,例如结合管道和其他命令来筛选或处理进程信息。
-
查找CPU占用率最高的进程
ps aux | sort -k3 -r | head -n 5
这将使用
aux
选项显示所有进程的详细信息,并通过管道将其传递给sort
命令进行排序,按照CPU占用率的倒数排序(即最高的CPU占用率排在最前面),然后使用head
命令只显示前5行。这样可以快速找到CPU占用率最高的进程。
3.2 top
top
命令是Linux系统中用来动态显示进程信息的实用程序。它通过交互式的方式显示系统的状态和进程活动,包括CPU使用率、内存占用、负载平均值等关键指标,以及每个进程的详细信息。
下面详细介绍如何使用top
命令查看Linux系统的进程信息:
- 打开终端或命令行界面。
- 输入
top
命令并按下回车键。这将启动top
程序并显示系统的摘要信息,包括系统时间、运行时间、登录用户数、系统负载等。 - 等待几秒钟,
top
会自动刷新并显示最新的进程信息,包括进程ID、进程名称、CPU占用率、内存占用等。默认情况下,top
会按照CPU占用率的高低对进程进行排序,CPU占用率最高的进程将排在最前面。 - 按下键盘上的
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
还支持多种操作,例如:
- 使用
上下光标键
选择进程。 F7
和F8
改变进程的优先级。F9
杀死选定的进程。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>
是要查看内存状态的进程的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
:使用信号名称代替信号编号。
-
查看系统中所有进程的PID和用户名
pstree -pu
-
查看某个特定进程的子进程信息
pstree -p [pid]
其中,
[pid]
是要查看的进程的PID。
3.6 /proc
文件系统
/proc
文件系统是Linux系统中的一个虚拟文件系统,它主要用于提供有关系统和进程的信息。在/proc
文件系统中,每个进程都有一个与其PID(进程ID)相对应的目录。通过查看这些目录中的文件,可以获取有关进程的详细信息。
以下是使用/proc
文件系统查看Linux系统进程信息的一些常见方法和文件:
文件/目录 | 描述 |
---|---|
/proc/[pid] | 每个进程的主要目录,其中[pid] 是该进程的PID。包含与进程相关的文件和目录,如cmdline 、cwd 、environ 、exe 、fd 、maps 、mem 、root 、stat 、status 等。 |
/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 小结
亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n
四、查看网口信息
4.1 ifconfig
ifconfig
是一个Linux/Unix命令,用于查看和配置网络接口信息。在终端中输入ifconfig
命令,可以显示当前系统中所有的网络接口信息,包括IP地址、MAC地址、子网掩码、网络状态等。
以下是使用ifconfig
命令查看网络接口信息的一些常见用法和示例:
-
打开终端并输入
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表示网络接口的连接状态。
-
查看特定网络接口信息。可以使用ifconfig命令加上网络接口的名称来查看特定网络接口的信息。例如,查看eth0接口的信息:
ifconfig eth0
需要注意的是,ifconfig命令在不同的Linux发行版中可能会有所不同,具体用法可以参考相应发行版的文档或man手册。另外,随着Linux网络工具的不断更新和发展,ifconfig命令在一些新的发行版中已经被废弃,被ip命令所取代。因此,在使用ifconfig命令时,需要注意其兼容性和可用性。
4.2 ip
ip命令是一个在Linux系统中用于查看和配置网络接口信息的命令行工具,与ifconfig命令类似。相比于ifconfig命令,ip命令提供了更多的功能和更详细的网络接口信息。
以下是使用ip命令查看网络接口信息的一些常见用法和示例:
-
打开终端并输入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 | l2tpv3 | 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 ] }
-
查看当前网络接口信息。可以使用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是以太网接口。
-
查看特定网络接口信息。可以使用ip命令加上link选项和接口名称来查看特定网络接口的信息。例如,查看eth0接口的信息:
ip link show eth0
-
查看网络接口的统计信息。ip命令还可以用于查看网络接口的统计信息,例如接收到的字节数、发送出去的字节数等。如查看网络接口统计信息:
ip -s link show eth0
在输出结果中,可以查看RX bytes和TX bytes字段,分别表示接收到的字节数和发送出去的字节数。
-
查看网络接口的IP地址信息。ip命令还可以用于查看网络接口的IP地址信息,包括IPv4和IPv6地址。以下是一些示例:
-
查看网络接口IPv4地址信息:
ip addr show eth0
在输出结果中,可以查看inet字段,表示网络接口的IPv4地址信息。
-
查看网络接口IPv6地址信息:
ip -6 addr show eth0
在输出结果中,可以查看inet6字段,表示网络接口的IPv6地址信息。
-
-
查看网络接口的路由信息。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
命令组合及其用法:
netstat -an | grep LISTEN
:列出所有正在监听的端口和对应的程序。netstat -tlnp
:查看Linux的端口使用情况,包括PID、程序名。netstat -a
:查看所有的服务端口(LISTEN,ESTABLISHED)。sudo netstat -ap
:查看所有的服务端口并显示对应的服务程序名。
4.4 nmcli
nmcli
是一个用于控制NetworkManager和报告网络状态的命令行工具。在Linux系统中,可以使用nmcli
命令来查看和管理网络接口信息。
要查看Linux系统的网络接口信息,可以使用以下nmcli
命令:
nmcli device status
:该命令用于查看当前主机上的网络接口设备状态。其输出包括设备名(DEVICE)、设备类型(TYPE)、接口状态(STATE)和应用到该接口上的连接名(CONNECTION)等信息。nmcli device show <interface>
:该命令用于查看指定接口(<interface>
)的详细网络配置信息,包括IP地址、MAC地址、设备类型、驱动名称等。例如,要查看eth0接口的信息,可以使用命令nmcli device show eth0
。nmcli connection show
:该命令用于列出系统中定义的所有网络连接配置。其输出包括连接名(NAME)、UUID、设备名(DEVICE)、类型(TYPE)、状态(STATE)等信息。
4.5 /sys/class/net
目录
在Linux系统中,/sys/class/net
目录保存了有关网络接口的详细信息。通过查看这个目录的内容,可以检验可用接口的列表和获取网络接口的详细信息。
要查看Linux系统的网络接口信息,可以使用以下步骤:
-
打开终端或控制台窗口。
-
输入以下命令来列出
/sys/class/net
目录下的所有接口:ls /sys/class/net
这将显示可用网络接口的列表,例如
eth0
、eth1
、wlan0
等。 -
要获取特定接口的详细信息,可以进入该接口的目录。例如,要查看
eth0
接口的信息,可以使用以下命令:cd /sys/class/net/eth0
-
在该目录下,你可以查看和读取各种文件来获取有关该接口的不同信息,如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系统的网络接口信息,可以使用以下步骤:
-
打开终端或控制台窗口。
-
输入以下命令来查看
/proc/net/dev
文件的内容:cat /proc/net/dev
这将显示一个表格,列出了系统中每个网络接口的各种统计信息。
-
表格中的每一行对应于一个网络接口,行的第一列是接口的名称,例如
eth0
、eth1
、wlan0
等。接下来的列提供了有关该接口的各种统计信息,包括接收和发送的数据包数量、字节数、错误数等。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 小结
亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n
五、查看磁盘信息
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
:排除指定类型的文件系统的磁盘使用情况。
-
以人类可读的格式显示所有文件系统的磁盘使用情况
df -h
-
显示特定文件系统
/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
:以扇区为单位显示磁盘大小。
操作步骤:
- 打开终端或命令行界面。
- 输入
fdisk
命令,并指定要操作的磁盘名称,例如:fdisk /dev/sda
。 - 按回车键进入
fdisk
命令的交互模式。 - 输入
p
或print
命令,按回车键,即可显示当前磁盘的分区表信息。 - 输入其他命令,如
n
(新建分区)、d
(删除分区)、t
(修改分区类型)等,按回车键执行相应操作。 - 在执行完所需的操作后,输入
w
或write
命令,按回车键保存并退出fdisk
命令。 - 如果需要查看创建的分区信息是否同步到了Linux内核里面,可以使用
file
命令来查看,例如:file /dev/sda1
。 - 如果需要格式化新建的分区,可以使用
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
:显示拓扑结构信息。
操作步骤:
- 打开终端或命令行界面。
- 输入
lsblk
命令,按回车键执行。 lsblk
命令会列出系统中所有的块设备信息,以树形结构展示。- 如果需要查看特定设备的详细信息,可以在
lsblk
命令后面指定设备名称,例如:lsblk /dev/sda
。 - 可以结合使用
lsblk
命令的参数,以便更好地查看和理解设备信息。例如,使用-h
参数可以以人类可读的格式显示设备大小,使用-f
参数可以显示文件系统类型等。
注意事项:
lsblk
命令需要以root用户或具有相应权限的用户身份执行,以便查看所有的设备信息。普通用户执行lsblk
命令可能无法查看某些设备信息。- 在使用
lsblk
命令时,需要注意参数的选择和组合,以便更好地查看和理解设备信息。
5.5 小结
亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n
六、查看硬件信息
6.1 lshw
lshw
命令在Linux系统中用于显示系统的硬件配置信息。它可以通过收集系统上的硬件详细信息,为用户提供主板、CPU、内存、磁盘、网络适配器等硬件组件的详细信息。
具体使用方法如下:
- 打开终端:在大多数Linux系统中,可以通过键盘快捷键
Ctrl+Alt+T
来打开终端。 - 输入命令:在终端中输入
lshw
命令,然后按回车键。 - 查看输出:
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总线是一种用于连接计算机内部设备的标准接口。
具体使用方法如下:
- 打开终端:在大多数Linux系统中,可以通过键盘快捷键
Ctrl+Alt+T
来打开终端。 - 输入命令:在终端中输入
lspci
命令,然后按回车键。 - 查看输出:
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总线是一种用于连接计算机外部设备的标准接口,如鼠标、键盘、打印机、扫描仪等。
具体使用方法如下:
- 打开终端:在大多数Linux系统中,可以通过键盘快捷键
Ctrl+Alt+T
来打开终端。 - 输入命令:在终端中输入
lsusb
命令,然后按回车键。 - 查看输出:
lsusb
命令会列出所有连接到USB总线的设备。输出通常包括设备的制造商、型号、ID等信息。
如果你想查看详细的设备信息,可以输入以下命令:
sudo lsusb -v
这个命令将显示更详细的设备信息,包括设备的配置、状态、能力等。
另外,lsusb
命令还可以和一些参数一起使用,以过滤或排序输出。例如:
lsusb -d vendor_id:device_id
:只显示指定厂商和设备ID的设备。lsusb -t
:以树状结构显示设备。lsusb -s bus:device
:只显示指定总线和设备的设备。
6.4 小结
亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n
结语
在这篇文章中,我介绍了一些常用的Linux命令,帮助你查看和监控系统的各种信息。无论你是Linux系统管理员还是普通用户,掌握这些命令都将成为你在解决问题和优化系统方面的强大武器。
当然,这只是冰山一角。Linux系统拥有丰富的功能和强大的命令行工具,只有不断学习和实践,你才能更好地掌握它们。希望这篇文章能为你提供一些启示和帮助,让你在探索Linux世界的道路上更加从容和自信。
最后,感谢大家阅读我的技术博客。如果你有任何疑问或者建议,请随时联系我。我非常乐意与你交流和分享更多有关Linux系统的信息和经验。祝你在Linux的世界里玩得开心,学得愉快!
print("Hello, world.")
亲爱的读者,我是本篇文章的作者chwt9299。感谢您抽出宝贵的时间阅读我的作品。如果对我的作品产生了共鸣,或者觉得我的观点独到有趣,请用点赞、关注、评论、收藏来表达您的喜爱吧!n_n