欢迎,来自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 系统详细信息的主要命令,希望有所帮助。