欢迎,来自IP地址为:216.73.216.36 的朋友


无论 是刚刚获得新 Linux 系统的访问权限,还是只是想了解更多关于当前机器的信息,本文将指导大家完成整个过程。

我们将学习如何获取与操作系统 (OS)、内核、CPU、内存、进程、磁盘、网络和已安装软件相关的信息,并将详细了解相关命令及其输出。

在正式开始相关内容之前,让我们首先认识一下了解 Linux 系统详细信息的重要性。

1. 系统管理

系统管理员需要了解系统,以便能够轻松完成如下工作:

  • 有效地管理用户、组和权限
  • 配置 Web 服务器、数据库等服务
  • 使用脚本和 cron 作业自动执行重复性任务

2. 故障处理

当系统出现问题时,充分了解系统规格和配置有助于完成如下故障处理工作:

  • 快速识别并解决系统错误
  • 分析系统日志并监控性能
  • 诊断网络和硬件问题

3. 安全审计

如果从事安全相关工作,深入了解您的系统有助于:

  • 监控日志,防止未经授权的访问
  • 配置防火墙和安全策略
  • 检测并删除恶意进程或软件

4. 性能优化

如果知道如何收集与系统资源相关的信息,就可以对其进行测量,并创建未来使用情况的预测。于是就可以:

  • 调整系统参数以提高效率
  • 监控资源使用情况(CPU、内存、磁盘、I/O)
  • 消除瓶颈并优化工作负载

5. 主动维护

在问题发生之前预防是良好做法,一旦充分了解自己系统,我们就可以:

  • 安排定期更新和备份
  • 确保系统可靠性和正常运行时间

了解 Linux 系统可以让我们更好地控制系统,增强系统稳定性,并提高作为系统管理员或高级用户的整体效率。

接下来,我们将讨论一些用于收集系统信息的基本命令。

获取 Linux 系统和内核信息

如果想要获取内核的详细信息,则使用如下命令:

$ uname -a

下面是命令输出结果每部分的说明(每台主机的结果不尽相同):

  • Linux:内核名称
  • us:网络主机名
  • 6.1.0-37-amd64:内核版本和处理器
  • #1:内核构建号
  • SMP:Symmetric Multi-Processing,对称多处理,表示内核是针对多处理器编译的
  • PREEMPT_DYNAMIC:内核多种抢占模式,允许发行商提供单个内核,但又可以让用户选择最适合其工作负载的抢占模式
  • Debian 6.1.140-1 (2025-05-22):发行版及对应内核版本和编辑日期
  • x86_64:处理器架构
  • GNU/Linux:操作系统名称

如果只需要了解一些基础信息,则可以使用如下命令:

$ uname -r        //显示当前使用的内核信息
$ uname -s        //显示操作系统类型信息

想要了解发行版的详细信息,则使用以下命令:

$ cat /etc/os-release

事实上,这个命令就是显示一个文本文件,用于展示更为详细的 Linux 发行版相关信息。当然,不同的发行版,显示的内容会有所差异,根据相关的英文,也可大概了解相应内容,这里就不再做过多解释。

另一条比较常用的用于显示主机名、操作系统以及内核相关信息的命是”hostnamectl”,命令输出如下:

对于命令输出,解释如下:

  • Static hostname:主机名
  • Icon name:系统的符号图标标识符,被某些桌面环境使用
  • Chassis:机箱信息,如果是”vm”则表示是虚拟机
  • Machine ID:此系统的唯一标识符,存储在 /etc/machine-id 中
  • Boot ID:启动 ID,每次系统启动时都会改变的唯一标识符
  • Virtualization:虚拟化技术栈,Linux 服务器常用的有 kvm 和 xen
  • Operating System:主机操作系统信息
  • Kernel:内核信息
  • Architecture:处理器架构
  • Hardware Vendor:硬件生产商,如果是虚拟化,则显示虚拟化软件信息
  • Hardware Model:硬件模型,对应于虚拟化软件
  • Firmware Version:固件版本,同样对应于虚拟化软件

获取 Linux 系统 CPU 信息

“lscpu”命令显示 CPU 架构、核心、线程和虚拟化信息:

Architecture:                x86_64
  CPU op-mode(s):            32-bit, 64-bit
  Address sizes:             48 bits physical, 48 bits virtual
  Byte Order:                Little Endian
CPU(s):                      1
  On-line CPU(s) list:       0
Vendor ID:                   AuthenticAMD
  BIOS Vendor ID:            \x01
  Model name:                AMD Ryzen 9 3900X 12-Core Processor
    BIOS Model name:         \x01  CPU @ 2.0GHz
    BIOS CPU family:         1
    CPU family:              23
    Model:                   113
    Thread(s) per core:      1
    Core(s) per socket:      1
    Socket(s):               1
    Stepping:                0
    BogoMIPS:                7599.99
    Flags:                   fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 c
                             lflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep
                             _good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 
                             sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c r
                             drand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 
                             3dnowprefetch osvw perfctr_core ssbd ibpb stibp vmmcall fsgsbase tsc_adju
                             st bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xs
                             avec xgetbv1 clzero xsaveerptr wbnoinvd arat npt lbrv nrip_save tsc_scale
                              vmcb_clean pausefilter pfthreshold v_vmsave_vmload vgif umip rdpid arch_
                             capabilities
Virtualization features:     
  Virtualization:            AMD-V
  Hypervisor vendor:         KVM
  Virtualization type:       full
Caches (sum of all):         
  L1d:                       64 KiB (1 instance)
  L1i:                       64 KiB (1 instance)
  L2:                        512 KiB (1 instance)
  L3:                        16 MiB (1 instance)
NUMA:                        
  NUMA node(s):              1
  NUMA node0 CPU(s):         0
Vulnerabilities:             
  Gather data sampling:      Not affected
  Indirect target selection: Not affected
  Itlb multihit:             Not affected
  L1tf:                      Not affected
  Mds:                       Not affected
  Meltdown:                  Not affected
  Mmio stale data:           Not affected
  Reg file data sampling:    Not affected
  Retbleed:                  Mitigation; untrained return thunk; SMT disabled
  Spec rstack overflow:      Mitigation; SMT disabled
  Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:                Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:                Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PB
                             RSB-eIBRS Not affected; BHI Not affected
  Srbds:                     Not affected
  Tsx async abort:           Not affecte

至于命令显示的信息,都是与 CPU 相关的内容,大概可以了解到该主机使用了 AMD Ryzen 9 3900X,虚拟化技术则使用了 AMD-V 技术标准。

想要深入了解 CPU 的细节信息,则可以使用如下命令:

$ cat /proc/cpuinfo

相应输出内容示例如下:

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 113
model name      : AMD Ryzen 9 3900X 12-Core Processor
stepping        : 0
microcode       : 0x8701021
cpu MHz         : 3799.996
cache size      : 512 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 16
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw perfctr_core ssbd ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr wbnoinvd arat npt lbrv nrip_save tsc_scale vmcb_clean pausefilter pfthreshold v_vmsave_vmload vgif umip rdpid arch_capabilities
bugs            : sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb srso ibpb_no_ret
bogomips        : 7599.99
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management

如果只想了解主机的核心数量,则使用如下命令即可:

$ nproc

获取 Linux 系统内存信息

使用如下示例命令,就可以显示内存的总量/使用量/剩余量信息:

$ free -h

以下是上述输出的细说明:

  • total:系统上可用的物理内存 (RAM) 或交换空间总量
  • used:应用程序和系统当前正在使用的内存量。计算公式为:total – free – buffers – cache
  • free:完全未使用的内存量
  • shared:可由多个程序同时访问的内存
  • buff/cache:包含两种类型的内存:
    • Buffers:用于块设备 I/O 缓冲的内存
    • Cache:用于文件系统页面缓存的内存 – 应用程序需要时可回收此内存
  • available:包含”可用”内存以及可从 buff/cache 中回收的内存。这是确定是否拥有足够内存的最重要一列

vmstat 是一个虚拟内存统计工具,用于监控系统性能。它提供有关内存使用情况、CPU 活动、进程、磁盘 I/O 和交换空间使用情况的信息。

我们可以如下使用 vmstat 来提取实时信息,命令如下:

$ vmstat 1 5

以上命令的作用如下:

  • 捕获 5 个系统性能快照
  • 每个快照间隔 1 秒拍摄,提供近乎实时的系统信息监控
  • 显示以下关键指标:
    • 内存使用情况(空闲、缓冲、缓存)
    • CPU 活动(用户、系统、空闲、等待)
    • 进程(正在运行、阻塞)
    • 磁盘 I/O(读取/写入的块)
    • 交换使用情况(如果正在进行交换)

需要注意的是,在实际使用过程中,可以修改快照数量以及间隔来达到实际所要求的监控效果。

而如下命令则会显示更为详细的内存统计信息:

$ cat /proc/meminfo

示例输出信息如下:

MemTotal:         468412 kB
MemFree:           27028 kB
MemAvailable:     318180 kB
Buffers:           65404 kB
Cached:           216120 kB
SwapCached:        28092 kB
Active:           150992 kB
Inactive:         211304 kB
Active(anon):       6960 kB
Inactive(anon):    75680 kB
Active(file):     144032 kB
Inactive(file):   135624 kB
Unevictable:        1536 kB
Mlocked:               0 kB
SwapTotal:       1572860 kB
SwapFree:        1504060 kB
Zswap:                 0 kB
Zswapped:              0 kB
Dirty:               196 kB
Writeback:             0 kB
AnonPages:         76048 kB
Mapped:           146604 kB
Shmem:              1860 kB
KReclaimable:      27448 kB
Slab:              47800 kB
SReclaimable:      27448 kB
SUnreclaim:        20352 kB
KernelStack:        1568 kB
PageTables:         2564 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1807064 kB
Committed_AS:     360924 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       18360 kB
VmallocChunk:          0 kB
Percpu:              408 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:       98156 kB
DirectMap2M:      425984 kB
DirectMap1G:           0 kB

健康的内存使用情况表现为充足的可用内存、到位的活动缓存机制以及无内存压力(无需使用交换空间)。

获取 Linux 系统磁盘和文件系统信息

df 命令可以显示挂载到系统的文件系统以及使用情况,示例如下:

$ df -hT

上述命令的输出显示以下磁盘空间使用情况信息:

  • Filesystem:已经挂载的文件系统或设备名称
  • Typ:文件系统类型
  • Size:空间大小
  • Used:已经使用量
  • Avail:剩余量
  • Use%:使用率百分比
  • Mounted on:挂载位置

lsblk 代表”列出块设备”,用于显示有关所有可用块设备(如硬盘、SSD 等)的信息。

命令输出的详细说明如下:

  • NAME:设备名称
  • MAJ:MIN:主设备号和次设备号
  • RM:可移动标志(1 表示可移动,0 表示固定)
  • SIZE:设备大小
  • RO:只读标志(1 表示只读,0 表示读写)
  • TYPE:设备类型(磁盘、part 表示分区、loop 表示循环设备)
  • MOUNTPOINTS:设备的挂载位置

fdiks -l 命令则可以显示所有磁盘设备以及分区信息:

该命令显示了主机的磁盘和分区信息,可以看到,主机有一块10 GB 的虚拟硬盘,然后被分成了一个分区”/dev/vda1″。

获取 Linux 系统硬件信息

lshw 命令提供有关计算机硬件配置的详细信息。它可以报告:

  • 内存配置
  • 固件版本
  • 主板配置
  • CPU 版本和速度
  • 缓存配置
  • 总线速度等

这条命令对于需要收集详细硬件信息的系统管理员和用户特别有用。它还可以以各种格式输出信息,包括 HTML、XML、JSON 或纯文本。

lspci 命令用于显示有关连接到系统的所有 PCI(外围组件互连)总线和设备的信息。

命令可以显示 PCI 的设备信息,尤其适用于:

  • 排除硬件问题
  • 验证硬件检测
  • 查找驱动程序安装所需的硬件详细信息
  • 检查系统配置

获取 Linux 网络接口和状态信息

ip a 命令可以显示有关系统上所有网络接口的信息:

输出中的关键元素如下:

  • 接口状态(UP/DOWN)
  • MAC 地址(link/ether)
  • IPv4 和 IPv6 地址
  • 网络范围(host、global、link)
  • 地址有效期 (valid_lft)
  • 广播地址 (brd)

ip r 命令则会显示主机的路由表:

该命令可以显示了主机的默认网关以及使用的网络接口设备信息。

以上就是一些常用了解 Linux 系统详细信息的主要命令,希望有所帮助。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注