跳到主要内容
Linux 系统信息查看核心命令全解析:跨发行版适配 | 极客日志
Shell / Bash
Linux 系统信息查看核心命令全解析:跨发行版适配 Linux 系统信息查看涉及 uname、hostname、whoami、df、du、free 六大核心命令,覆盖内核、主机名、用户身份、磁盘空间及内存状态等关键维度。内容详细解析各命令功能、语法参数及实战示例,对比 RHEL、CentOS、Ubuntu、Debian 及 macOS 等主流发行版的兼容性与差异,提供常见问题避坑指南与高效组合用法,帮助技术人员快速掌握跨平台系统资源监控技能。
禅心 发布于 2026/2/6 更新于 2026/5/29 31 浏览Linux 基础操作:系统信息查看核心命令全解析(跨发行版适配)
系统信息查看是 Linux 日常运维、故障排查、资源监控的基础操作,uname(系统内核信息)、hostname(主机名)、whoami(当前用户)、df(磁盘空间)、du(文件占用)、free(内存使用)六大命令,可快速获取系统内核、主机标识、用户身份、存储资源、内存状态 等关键信息,是技术人员必备的基础技能。红帽(RHEL)、CentOS、EulerOS、Ubuntu、Debian 主流 Linux 发行版的命令核心语法完全一致,macOS 作为类 Unix 系统,兼容所有命令的核心功能,仅存在少量参数细节差异。本文将逐一拆解六大命令的功能、语法、高频参数、实战场景,明确各发行版适配要点,打造跨平台通用的系统信息查看指南。
一、核心命令通用说明
1. 命令共性与权限要求
✅ 权限适配 :uname、hostname、whoami 无需特殊权限,普通用户可直接执行;df、du、free 查看系统级资源信息时,普通用户即可获取基础数据,部分细节(如所有进程的文件占用)需 root/sudo 提权。
✅ 输出格式 :所有命令默认输出纯文本格式,支持通过管道 | 与 grep、awk、sort 等命令组合,实现信息过滤、提取与排序(如 df -h | grep "/home")。
✅ 跨环境兼容 :支持本地终端、远程 SSH 连接、Shell 脚本自动化执行,适配服务器、桌面、嵌入式等所有 Linux/macOS 运行环境。
✅ 预装特性 :所有发行版均默认预装六大命令,无需额外安装,开箱即用。
2. 发行版兼容性总览
完全无差异 :红帽(RHEL)、CentOS 7+/8+/Stream、EulerOS、Ubuntu 16.04+、Debian 9+,六大命令的核心语法、参数功能、默认输出格式完全一致。
细微差异 :macOS 兼容所有核心参数,仅 free 命令(无原生 free,需通过 Homebrew 安装)、df 的磁盘标识格式(如 /dev/disk1s1 而非 Linux 的 /dev/sda1)存在差异,不影响核心使用。
拓展支持 :Linux 发行版支持更多系统级参数(如 uname -r 显示内核版本细节),macOS 侧重桌面级资源查看,参数简化但核心信息完备。
二、六大系统信息命令深度解析(功能 + 语法 + 示例 + 适配)
1. uname:查看系统内核与硬件架构信息
命令释义
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) ✅ 实用
实战经典示例
uname -a
uname -r
uname -m
uname -s
发行版适配说明 ✅ 红帽 / 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 区分,不影响命令使用。
2. hostname:查看 / 修改主机名
命令释义 hostname 用于查看当前系统的主机名 ,或临时修改主机名(重启后失效),主机名是系统的唯一标识(如服务器集群中区分不同节点),常用于网络配置、日志标识场景。
核心语法
拓展用法(永久修改主机名,全发行版通用)
sudo hostnamectl set-hostname 新主机名
sudo scutil --set HostName 新主机名
实战经典示例
hostname
sudo hostname server-01
hostname
sudo hostnamectl set-hostname web-server
sudo hostname
sudo scutil --set HostName macbook-pro-2024
hostname
发行版适配说明 ✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian:查看、临时修改语法完全一致,永久修改均支持 hostnamectl 命令(CentOS 6 及以下需编辑 /etc/sysconfig/network,现已淘汰)。
✅ macOS:查看命令 hostname 一致,临时修改语法相同(sudo hostname 新主机名),永久修改需用 scutil 命令(无 hostnamectl 工具)。
3. whoami:查看当前登录用户身份
命令释义 whoami 是 Who Am I 的缩写,用于快速获取当前终端登录的用户名 ,解决'切换用户后忘记当前身份'的问题,常用于脚本执行权限判断、操作日志记录。
核心语法(无参数,极简)
拓展对比(与 who/w 命令的区别)
whoami:仅显示当前用户名(极简,优先用);
who:显示所有登录用户的信息(用户名、终端、登录时间、IP);
w:显示所有登录用户及当前执行的命令(更详细)。
实战经典示例
whoami
su - root
whoami
sudo whoami
if [ $(whoami ) != "root" ]; then
echo "请用 root 用户执行脚本!"
exit 1
fi
发行版适配说明 ✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian/macOS:命令完全一致,无任何差异,输出均为当前登录 / 执行的用户名。
⚠️ 注意:sudo whoami 输出 root(提权后的身份),而 whoami 输出当前登录用户(未提权),需区分使用场景。
4. df:查看磁盘空间使用情况
命令释义 df 是 Disk Free 的缩写,用于查看磁盘分区的空间使用情况 (总容量、已用容量、剩余容量、使用率、挂载点),是排查磁盘满、扩容规划的核心命令。
核心语法
高频参数详解 参数 功能说明 优先级 -h人性化显示容量单位(KB/MB/GB/TB,而非字节,必用) ✅ 必用 -T显示磁盘分区的文件系统类型(如 ext4、xfs、apfs) ✅ 高频 -i显示 inode 使用率(而非磁盘容量,排查'空间未满但无法创建文件') ❗ 故障排查用 -P以 POSIX 标准格式输出(便于脚本解析) ❗ 脚本用
实战经典示例
df -h
df -h /home
df -hT
df -i
df -h
发行版适配说明 ✅ 红帽 / 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 可快速区分。
5. du:查看文件 / 目录占用的磁盘空间
命令释义 du 是 Disk Usage 的缩写,用于查看单个文件或目录的实际磁盘占用空间 (与 df 不同:df 看分区整体使用,du 看具体文件 / 目录的占用),是定位大文件、清理磁盘的核心命令。
核心语法
高频参数详解 参数 功能说明 优先级 -h人性化显示容量单位(KB/MB/GB,必用) ✅ 必用 -s显示目录 / 文件的总占用空间(不递归显示子目录,常用) ✅ 高频 -c显示所有指定文件 / 目录的总占用空间(最后一行加 total) ✅ 实用 -d N递归显示目录占用,仅显示到第 N 级目录(如 -d 1 仅显示一级子目录) ✅ 高频 -a显示目录下所有文件和子目录的占用空间(默认仅显示目录) ❗ 详细查看用
实战经典示例
du -sh
du -sh /var/log
du -hd 1 /home/user001
du -h test.zip
du -shc /home /data
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)。
6. free:查看系统内存使用情况
命令释义 free 用于查看系统物理内存(RAM)、交换内存(Swap)的使用情况 (总容量、已用、空闲、缓存、缓冲),是排查内存不足、优化资源配置的核心命令。
核心语法
高频参数详解 参数 功能说明 优先级 -h人性化显示容量单位(KB/MB/GB,必用) ✅ 必用 -m以 MB 为单位显示(兼容旧版习惯) ✅ 常用 -g以 GB 为单位显示(大内存服务器常用) ✅ 高频 -s N每隔 N 秒刷新一次,持续显示(如 -s 5 每 5 秒刷新) ❗ 实时监控用 -t显示内存总占用(物理内存 + 交换内存合计) ✅ 实用
实战经典示例
free -h
free -g
free -hs 3
free -ht
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) "
brew install free
free -h
发行版适配说明 ✅ 红帽 / CentOS/EulerOS/Ubuntu/Debian:核心参数 -h/-m/-g/-s 完全一致,输出包含 buff/cache(缓冲 / 缓存)、available(可用内存,含缓存可释放部分),符合 Linux 内存管理逻辑。
⚠️ macOS 特殊说明:
无原生 free 命令,需通过 Homebrew 安装(brew install free);
安装后用法与 Linux 完全一致,输出格式相同;
原生查看内存可使用 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 安装,安装后用法一致
四、命令选型指南(按场景精准匹配)
✅ 场景 1:判断系统内核版本 / 硬件架构(如软件兼容性适配) → 首选 uname -a(全信息)或 uname -r(内核版本)+ uname -m(架构)。
✅ 场景 2:确认主机名(如服务器集群配置、网络访问) → 查看用 hostname,永久修改用 sudo hostnamectl set-hostname(Linux)/ sudo scutil --set HostName(macOS)。
✅ 场景 3:切换用户后确认当前身份(如权限执行判断) → 首选 whoami(极简),需查看所有登录用户用 who/w。
✅ 场景 4:排查磁盘空间不足(如系统报警'磁盘满') → 第一步:df -h 查看哪个分区满;第二步:du -hd 1 分区路径 定位大目录;第三步:find 路径 -size +1G | xargs du -sh 查找大文件。
✅ 场景 5:查看目录 / 文件实际占用(如清理下载目录) → 查看总占用用 du -sh 目录,查看子目录占用用 du -hd 1 目录。
✅ 场景 6:监控内存使用(如程序卡顿排查) → 快速查看用 free -h,实时监控用 free -hs 5(每 5 秒刷新),macOS 需先安装 free。
✅ 场景 7:脚本中识别系统类型(如跨平台脚本适配) → 用 uname -s 判断:输出 Linux 则为 Linux 发行版,输出 Darwin 则为 macOS。
五、常见问题与避坑指南(全发行版通用)
❌ 问题 1:df 与 du 显示的已用空间不一致 → 原因:df 统计分区整体使用(含未释放的缓存、删除的进程占用文件),du 统计实际文件占用;
→ 解决方案:执行 sync && echo 3 > /proc/sys/vm/drop_caches(Linux)释放缓存后再对比,macOS 无需处理(缓存自动释放)。
❌ 问题 2:free -h 显示'可用内存'较少,但实际未用满 → 原因:Linux 会将空闲内存用于缓存(buff/cache),提升文件读写速度,缓存可随时释放给应用;
→ 解读:重点看 available 列(可用内存,含可释放缓存),而非 free 列(纯空闲内存)。
❌ 问题 3:macOS 执行 free 提示'command not found' → 解决方案:通过 Homebrew 安装 free(brew install free),或用原生 vm_stat -S M 查看内存(以 MB 显示)。
❌ 问题 4:修改主机名后,hostname 显示正常但 uname -n 不一致 → 原因:临时修改未同步内核主机名;
→ 解决方案:Linux 用 sudo hostnamectl set-hostname 永久修改(即时同步),macOS 用 sudo scutil --set HostName 后重启终端。
❌ 问题 5:du -d 1 提示'无效选项' → 原因:使用的是旧版 Linux(如 CentOS 5),不支持 -d 参数;
→ 解决方案:用 --max-depth=1 替代(du -h --max-depth=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}') "
sudo find / -type f -size +500M | xargs du -sh | sort -rh
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。
相关免费在线工具 Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
HTML转Markdown 将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
JSON 压缩 通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
JSON美化和格式化 将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online