Linux 系统信息查看核心命令全解析:跨发行版适配
Linux 系统信息查看涉及 uname、hostname、whoami、df、du、free 六大核心命令,覆盖内核、主机名、用户身份、磁盘空间及内存状态等关键维度。内容详细解析各命令功能、语法参数及实战示例,对比 RHEL、CentOS、Ubuntu、Debian 及 macOS 等主流发行版的兼容性与差异,提供常见问题避坑指南与高效组合用法,帮助技术人员快速掌握跨平台系统资源监控技能。

Linux 系统信息查看涉及 uname、hostname、whoami、df、du、free 六大核心命令,覆盖内核、主机名、用户身份、磁盘空间及内存状态等关键维度。内容详细解析各命令功能、语法参数及实战示例,对比 RHEL、CentOS、Ubuntu、Debian 及 macOS 等主流发行版的兼容性与差异,提供常见问题避坑指南与高效组合用法,帮助技术人员快速掌握跨平台系统资源监控技能。

系统信息查看是 Linux 日常运维、故障排查、资源监控的基础操作,uname(系统内核信息)、hostname(主机名)、whoami(当前用户)、df(磁盘空间)、du(文件占用)、free(内存使用)六大命令,可快速获取系统内核、主机标识、用户身份、存储资源、内存状态等关键信息,是技术人员必备的基础技能。红帽(RHEL)、CentOS、EulerOS、Ubuntu、Debian 主流 Linux 发行版的命令核心语法完全一致,macOS 作为类 Unix 系统,兼容所有命令的核心功能,仅存在少量参数细节差异。本文将逐一拆解六大命令的功能、语法、高频参数、实战场景,明确各发行版适配要点,打造跨平台通用的系统信息查看指南。
✅ 权限适配:uname、hostname、whoami 无需特殊权限,普通用户可直接执行;df、du、free 查看系统级资源信息时,普通用户即可获取基础数据,部分细节(如所有进程的文件占用)需 root/sudo 提权。
✅ 输出格式:所有命令默认输出纯文本格式,支持通过管道 | 与 grep、awk、sort 等命令组合,实现信息过滤、提取与排序(如 df -h | grep "/home")。
✅ 跨环境兼容:支持本地终端、远程 SSH 连接、Shell 脚本自动化执行,适配服务器、桌面、嵌入式等所有 Linux/macOS 运行环境。
✅ 预装特性:所有发行版均默认预装六大命令,无需额外安装,开箱即用。
free 命令(无原生 free,需通过 Homebrew 安装)、df 的磁盘标识格式(如 /dev/disk1s1 而非 Linux 的 /dev/sda1)存在差异,不影响核心使用。uname -r 显示内核版本细节),macOS 侧重桌面级资源查看,参数简化但核心信息完备。uname 是 Unix Name 的缩写,核心功能为获取系统内核版本、硬件架构、操作系统类型等底层信息,是判断系统环境、兼容性的基础命令,常用于脚本中识别系统类型。
uname [选项]
| 参数 | 功能说明 | 优先级 |
|---|---|---|
-a | 显示所有系统信息(内核版本、主机名、架构、编译时间等) | ✅ 必用 |
-s | 显示操作系统名称(如 Linux、Darwin(macOS)) | ✅ 常用 |
-r | 显示内核版本号(如 Linux 的 5.14.0-284.el9.x86_64) | ✅ 高频 |
-m | 显示硬件架构(如 x86_64(64 位)、aarch64(ARM 64 位)) | ✅ 高频 |
-n | 显示主机名(等价于 hostname 命令) | ❗ 替代用法 |
-p | 显示处理器类型(如 x86_64、armv7l) | ✅ 实用 |
# 1. 核心用法:查看所有系统信息(最常用)
uname -a
# Linux localhost.localdomain 5.14.0-284.el9.x86_64 #1 SMP Thu Mar 16 17:05:51 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
# 2. 仅查看内核版本(排查兼容性常用)
uname -r
# 5.14.0-284.el9.x86_64
# 3. 查看硬件架构(判断 32/64 位、x86/ARM)
uname -m
# x86_64(64 位 x86 架构)/ aarch64(ARM 64 位,如鲲鹏服务器)
# 4. 查看操作系统名称
uname -s
# Linux(Linux 发行版)/ Darwin(macOS)
✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian:所有参数完全支持,输出格式一致。
✅ macOS:支持 -a/-s/-r/-m 核心参数,uname -s 输出 Darwin(macOS 内核名称),uname -r 显示 macOS 内核版本(如 22.6.0),硬件架构显示 x86_64(Intel 芯片)或 arm64(M 系列芯片)。
⚠️ 注意:EulerOS 针对鲲鹏(ARM)架构优化,uname -m 会显示 aarch64,与 x86 架构的 x86_64 区分,不影响命令使用。
hostname 用于查看当前系统的主机名,或临时修改主机名(重启后失效),主机名是系统的唯一标识(如服务器集群中区分不同节点),常用于网络配置、日志标识场景。
# 查看主机名
hostname
# 临时修改主机名(需 root 权限)
hostname 新主机名
临时修改重启后失效,永久修改需编辑配置文件:
# Linux 发行版(红帽/CentOS/EulerOS/Ubuntu/Debian)
sudo hostnamectl set-hostname 新主机名
# 永久生效,无需重启
# macOS(图形界面 + 命令行均可)
# 命令行方式(永久生效)
sudo scutil --set HostName 新主机名
# 1. 查看当前主机名(最常用)
hostname
# localhost.localdomain(默认主机名)
# 2. 临时修改主机名为 server-01(重启失效)
sudo hostname server-01
hostname
# 验证修改结果
# server-01
# 3. 永久修改主机名(Linux 发行版)
sudo hostnamectl set-hostname web-server
sudo hostname
# 即时生效,重启不丢失
# 4. macOS 永久修改主机名
sudo scutil --set HostName macbook-pro-2024
hostname
# macbook-pro-2024
✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian:查看、临时修改语法完全一致,永久修改均支持 hostnamectl 命令(CentOS 6 及以下需编辑 /etc/sysconfig/network,现已淘汰)。
✅ macOS:查看命令 hostname 一致,临时修改语法相同(sudo hostname 新主机名),永久修改需用 scutil 命令(无 hostnamectl 工具)。
whoami 是 Who Am I 的缩写,用于快速获取当前终端登录的用户名,解决'切换用户后忘记当前身份'的问题,常用于脚本执行权限判断、操作日志记录。
whoami
who/w 命令的区别)whoami:仅显示当前用户名(极简,优先用);who:显示所有登录用户的信息(用户名、终端、登录时间、IP);w:显示所有登录用户及当前执行的命令(更详细)。# 1. 普通用户登录时查看
whoami
# user001
# 2. 切换到 root 用户后查看
su - root
whoami
# root
# 3. sudo 提权后执行(仍显示当前普通用户)
sudo whoami
# root(sudo 提权后,命令执行身份为 root)
# 4. 脚本中判断用户身份(示例)
if [ $(whoami) != "root" ]; then
echo "请用 root 用户执行脚本!"
exit 1
fi
✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian/macOS:命令完全一致,无任何差异,输出均为当前登录 / 执行的用户名。
⚠️ 注意:sudo whoami 输出 root(提权后的身份),而 whoami 输出当前登录用户(未提权),需区分使用场景。
df 是 Disk Free 的缩写,用于查看磁盘分区的空间使用情况(总容量、已用容量、剩余容量、使用率、挂载点),是排查磁盘满、扩容规划的核心命令。
df [选项] [挂载点/设备文件]
| 参数 | 功能说明 | 优先级 |
|---|---|---|
-h | 人性化显示容量单位(KB/MB/GB/TB,而非字节,必用) | ✅ 必用 |
-T | 显示磁盘分区的文件系统类型(如 ext4、xfs、apfs) | ✅ 高频 |
-i | 显示 inode 使用率(而非磁盘容量,排查'空间未满但无法创建文件') | ❗ 故障排查用 |
-P | 以 POSIX 标准格式输出(便于脚本解析) | ❗ 脚本用 |
# 1. 核心用法:查看所有磁盘分区的空间使用情况(必用)
df -h
# 文件系统 容量 已用 可用 已用% 挂载点
# /dev/sda1 50G 15G 33G 32% /
# /dev/sdb1 200G 80G 110G 43% /data
# tmpfs 7.8G 0 7.8G 0% /dev/shm
# 2. 查看指定挂载点的空间(如 /home 目录)
df -h /home
# 3. 显示文件系统类型(判断分区格式,如 xfs/ext4)
df -hT
# 文件系统 类型 容量 已用 可用 已用% 挂载点
# /dev/sda1 xfs 50G 15G 33G 32% /
# 4. 排查 inode 满问题(空间未满但无法创建文件)
df -i
# 文件系统 Inode 已用 (I) 可用 (I) 已用 (I)% 挂载点
# /dev/sda1 2621440 12345 2609095 1% /
# 5. macOS 查看磁盘空间(输出格式略有差异)
df -h
# Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
# /dev/disk1s1 466Gi 80Gi 385Gi 17% 1956869 4028447211 0% /
✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian:核心参数 -h/-T/-i 完全一致,磁盘设备标识为 /dev/sda1//dev/nvme0n1p1 等 Linux 标准格式。
✅ macOS:支持 -h/-i 核心参数,磁盘标识为 /dev/disk1s1 等 BSD 格式,文件系统类型显示 apfs(macOS 默认),容量计算与 Linux 一致(1GB=1024MB)。
⚠️ 注意:EulerOS 常用 xfs 文件系统(红帽系默认),Ubuntu/Debian 常用 ext4,macOS 用 apfs,df -T 可快速区分。
du 是 Disk Usage 的缩写,用于查看单个文件或目录的实际磁盘占用空间(与 df 不同:df 看分区整体使用,du 看具体文件 / 目录的占用),是定位大文件、清理磁盘的核心命令。
du [选项] 目录/文件...
| 参数 | 功能说明 | 优先级 |
|---|---|---|
-h | 人性化显示容量单位(KB/MB/GB,必用) | ✅ 必用 |
-s | 显示目录 / 文件的总占用空间(不递归显示子目录,常用) | ✅ 高频 |
-c | 显示所有指定文件 / 目录的总占用空间(最后一行加 total) | ✅ 实用 |
-d N | 递归显示目录占用,仅显示到第 N 级目录(如 -d 1 仅显示一级子目录) | ✅ 高频 |
-a | 显示目录下所有文件和子目录的占用空间(默认仅显示目录) | ❗ 详细查看用 |
# 1. 核心用法:查看当前目录的总占用空间(-s 简化输出)
du -sh
# 1.2G .(当前目录总占用 1.2GB)
# 2. 查看指定目录的总占用(如 /var/log 日志目录)
du -sh /var/log
# 850MB /var/log
# 3. 查看目录下一级子目录的占用(-d 1,清理磁盘常用)
du -hd 1 /home/user001
# 500MB /home/user001/downloads
# 300MB /home/user001/doc
# 200MB /home/user001/.ssh
# 4. 查看单个文件的占用空间
du -h test.zip
# 256MB test.zip
# 5. 查看多个目录的总占用(-c 统计合计)
du -shc /home /data
# 10G /home
# 50G /data
# 60G total(合计 60GB)
# 6. 查找目录下大于 1GB 的文件(组合 find 命令,清理磁盘必备)
find /data -type f -size +1G | xargs du -sh
✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian/macOS:核心参数 -h/-s/-d/-c 完全一致,输出格式无差异。
⚠️ 注意:du -d N 参数在所有现代发行版(Linux 3.0+、macOS 10.10+)均支持,旧版 Linux(如 CentOS 5)需用 --max-depth=N(等价于 -d N)。
free 用于查看系统物理内存(RAM)、交换内存(Swap)的使用情况(总容量、已用、空闲、缓存、缓冲),是排查内存不足、优化资源配置的核心命令。
free [选项]
| 参数 | 功能说明 | 优先级 |
|---|---|---|
-h | 人性化显示容量单位(KB/MB/GB,必用) | ✅ 必用 |
-m | 以 MB 为单位显示(兼容旧版习惯) | ✅ 常用 |
-g | 以 GB 为单位显示(大内存服务器常用) | ✅ 高频 |
-s N | 每隔 N 秒刷新一次,持续显示(如 -s 5 每 5 秒刷新) | ❗ 实时监控用 |
-t | 显示内存总占用(物理内存 + 交换内存合计) | ✅ 实用 |
# 1. 核心用法:人性化显示内存使用(必用)
free -h
# total used free shared buff/cache available
# Mem: 15Gi 2.3Gi 8.5Gi 120Mi 4.2Gi 12Gi
# Swap: 10Gi 0B 10Gi
# 2. 以 GB 为单位显示(大内存服务器)
free -g
# total used free shared buff/cache available
# Mem: 15 2 8 0 4 12
# Swap: 10 0 10
# 3. 实时监控内存(每 3 秒刷新一次,按 Ctrl+C 退出)
free -hs 3
# 4. 显示内存合计(物理 + 交换)
free -ht
# total used free shared buff/cache available
# Mem: 15Gi 2.3Gi 8.5Gi 120Mi 4.2Gi 12Gi
# Swap: 10Gi 0B 10Gi
# Total: 25Gi 2.3Gi 18Gi
# 5. macOS 查看内存(无原生 free,需先安装 Homebrew)
# 安装 Homebrew(若未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 free 工具
brew install free
# 用法与 Linux 一致
free -h
✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian:核心参数 -h/-m/-g/-s 完全一致,输出包含 buff/cache(缓冲 / 缓存)、available(可用内存,含缓存可释放部分),符合 Linux 内存管理逻辑。
⚠️ macOS 特殊说明:
free 命令,需通过 Homebrew 安装(brew install free);top 或 vm_stat 命令(vm_stat -S M 以 MB 显示),但 free 更简洁直观。| 命令 | 核心功能 | 红帽(RHEL) | CentOS | EulerOS | Ubuntu | Debian | macOS |
|---|---|---|---|---|---|---|---|
uname | 内核 / 架构信息 | ✅ -a/-r/-m 全支持 | ✅ 完全一致 | ✅ 完全一致 | ✅ 完全一致 | ✅ 完全一致 | ✅ 核心参数支持,-s 输出 Darwin |
hostname | 查看 / 修改主机名 | ✅ 查看 + 临时修改,hostnamectl 永久修改 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 查看 / 临时修改一致,永久修改用 scutil |
whoami | 查看当前用户 | ✅ 无参数,输出用户名 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 完全一致 |
df | 磁盘空间查看 | ✅ -h/-T/-i 全支持,设备标识 /dev/sda* | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ -h/-i 支持,设备标识 /dev/disk*,文件系统 apfs |
du | 文件 / 目录占用查看 | ✅ -h/-s/-d/-c 全支持 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 完全一致 |
free | 内存使用查看 | ✅ -h/-m/-g/-s 全支持 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ✅ 一致 | ❗ 需 brew 安装,安装后用法一致 |
→ 首选 uname -a(全信息)或 uname -r(内核版本)+ uname -m(架构)。
→ 查看用 hostname,永久修改用 sudo hostnamectl set-hostname(Linux)/ sudo scutil --set HostName(macOS)。
→ 首选 whoami(极简),需查看所有登录用户用 who/w。
→ 第一步:df -h 查看哪个分区满;第二步:du -hd 1 分区路径 定位大目录;第三步:find 路径 -size +1G | xargs du -sh 查找大文件。
→ 查看总占用用 du -sh 目录,查看子目录占用用 du -hd 1 目录。
→ 快速查看用 free -h,实时监控用 free -hs 5(每 5 秒刷新),macOS 需先安装 free。
→ 用 uname -s 判断:输出 Linux 则为 Linux 发行版,输出 Darwin 则为 macOS。
df 与 du 显示的已用空间不一致→ 原因:df 统计分区整体使用(含未释放的缓存、删除的进程占用文件),du 统计实际文件占用;
→ 解决方案:执行 sync && echo 3 > /proc/sys/vm/drop_caches(Linux)释放缓存后再对比,macOS 无需处理(缓存自动释放)。
free -h 显示'可用内存'较少,但实际未用满→ 原因:Linux 会将空闲内存用于缓存(buff/cache),提升文件读写速度,缓存可随时释放给应用;
→ 解读:重点看 available 列(可用内存,含可释放缓存),而非 free 列(纯空闲内存)。
free 提示'command not found'→ 解决方案:通过 Homebrew 安装 free(brew install free),或用原生 vm_stat -S M 查看内存(以 MB 显示)。
hostname 显示正常但 uname -n 不一致→ 原因:临时修改未同步内核主机名;
→ 解决方案:Linux 用 sudo hostnamectl set-hostname 永久修改(即时同步),macOS 用 sudo scutil --set HostName 后重启终端。
du -d 1 提示'无效选项'→ 原因:使用的是旧版 Linux(如 CentOS 5),不支持 -d 参数;
→ 解决方案:用 --max-depth=1 替代(du -h --max-depth=1 目录)。
六大命令与其他工具组合,可实现更强大的系统监控与排查功能:
# 1. 查看系统信息摘要(内核 + 主机名 + 用户 + 内存 + 磁盘,一键获取)
echo "=== 系统信息摘要 ==="
echo "内核版本:$(uname -r)"
echo "主机名:$(hostname)"
echo "当前用户:$(whoami)"
echo "内存使用:$(free -h | grep Mem | awk '{print "已用:"$3", 可用:"$7}')"
echo "根分区空间:$(df -h / | grep / | awk '{print "已用:"$3", 可用:"$4", 使用率:"$5}')"
# 2. 查找根目录下大于 500MB 的文件(清理磁盘必备)
sudo find / -type f -size +500M | xargs du -sh | sort -rh
# 3. 实时监控内存和磁盘使用(脚本循环执行)
while true; do
clear
echo "=== 内存使用(free -h)==="
free -h
echo -e "\n=== 根分区空间(df -h /)==="
df -h /
sleep 3
done
uname、hostname、whoami、df、du、free 六大命令是 Linux/macOS 系统信息查看的'基石工具',覆盖内核、主机、用户、存储、内存五大核心维度,跨发行版兼容性极强(仅 macOS 的 free 需额外安装)。学习关键在于'场景化选型':查看整体资源用 df/free,定位具体文件用 du,识别系统环境用 uname/hostname,确认用户身份用 whoami。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online