Linux 命令:uname
Linux uname
命令详细教程
uname
(Unix Name)是 Linux 系统中用于获取系统基本信息的基础命令。它能快速展示操作系统、内核、主机名等关键信息,是系统诊断和环境确认的常用工具。- 资料已经分类整理好:
https://pan.quark.cn/s/26d73f7dd8a7
一、基本语法
uname [选项]
- 核心功能:
- 默认只显示操作系统名称(如
Linux
)。 - 通过选项可获取更详细的系统信息。
- 默认只显示操作系统名称(如
二、常用选项
选项 | 功能描述 |
---|---|
-a | 显示所有信息(A ll),等价于 -s -n -r -v -m |
-s | 显示内核名称(S ystem name),默认选项 |
-n | 显示网络节点主机名(N etwork node hostname) |
-r | 显示内核发行版本(R elease) |
-v | 显示内核版本信息(V ersion) |
-m | 显示硬件架构(M achine) |
-p | 显示处理器类型(P rocessor) |
-i | 显示硬件平台(I nformation) |
-o | 显示操作系统类型(O perating system) |
三、实际操作示例
1. 显示所有系统信息(最常用)
uname -a # 输出示例:
# Linux myhost 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
2. 显示内核名称
uname -s # 输出:Linux
3. 显示主机名
uname -n # 输出:myhost
4. 显示内核版本
uname -r # 输出:5.15.0-78-generic
5. 显示硬件架构
uname -m # 输出:x86_64(64位系统)或 i686(32位系统)
6. 组合选项
uname -snr # 输出:Linux myhost 5.15.0-78-generic
四、特殊场景与注意事项
1. 与其他命令对比
命令 | 功能 | 适用场景 |
---|---|---|
uname -n | 显示主机名 | 快速查看当前主机名称 |
hostname | 显示/设置主机名 | 修改主机名或获取完整域名(FQDN) |
cat /proc/version | 显示内核编译信息 | 查看内核编译时的详细参数 |
lsb_release -a | 显示发行版信息 | 获取 Linux 发行版的具体版本(如 Ubuntu 22.04) |
2. 跨平台兼容性
uname
是 Unix/Linux 通用命令,在 macOS、FreeBSD 等系统上同样可用。- 输出格式可能略有差异(如 macOS 显示
Darwin
作为内核名称)。
3. -p
和 -i
选项的局限性
- 在某些系统上,
-p
和-i
可能返回unknown
,因为内核未提供这些信息。 - 推荐使用
-m
选项获取硬件架构,更可靠。
五、扩展应用场景
1. 脚本中判断系统类型
if [ "$(uname)" == "Linux" ]; thenecho "This is a Linux system."
elif [ "$(uname)" == "Darwin" ]; thenecho "This is a macOS system."
elseecho "Unknown system: $(uname)"
fi
2. 获取系统信息用于日志
echo "System info: $(uname -a)" >> system_log.txt
3. 区分 32 位/64 位系统
if [ "$(uname -m)" == "x86_64" ]; thenecho "64-bit system"
elseecho "32-bit system"
fi
六、总结
uname
是 Linux 系统中最简单但实用的信息查询工具,核心用法可总结为:
- 查看完整系统信息:
uname -a
- 查看内核版本:
uname -r
- 查看主机名:
uname -n
- 查看硬件架构:
uname -m
在脚本编写、系统监控或环境确认时,uname
能快速提供关键信息,帮助判断系统环境和执行条件分支。