Linux 命令之 uname 详解(查看系统信息)
1. 命令简介
uname是一个用于打印系统信息的 Linux/Unix 命令行工具。它可以显示关于当前机器和操作系统的详细信息,例如内核名称、版本、主机名、硬件架构等。该命令是系统管理员和开发者在进行系统诊断、脚本编写或环境检查时的常用工具。
uname是 GNU coreutils 软件包的一部分,因此在大多数 Linux 发行版和类 Unix 系统中都默认可用。
2. 语法格式
bash
运行
uname [OPTION]...说明:
- 当不提供任何选项时,
uname默认执行uname -s,即仅打印内核名称。 - 可以同时指定多个选项来组合输出信息。
- 使用
-a或--all选项可以一次性打印所有可用的系统信息。
3. 常用选项及说明
表格
| 短选项 | 长选项 | 说明 |
|---|---|---|
-a | --all | 按顺序打印所有可用的系统信息。如果处理器 (-p) 或硬件平台 (-i) 信息未知,则会被省略 |
-s | --kernel-name | 打印内核名称(例如:Linux, Darwin)。这是默认选项 |
-n | --nodename | 打印网络节点的主机名(即本机在网络中的名称) |
-r | --kernel-release | 打印内核的发布版本(例如:5.4.0-42-generic) |
-v | --kernel-version | 打印内核的版本信息,通常包含编译日期和时间等详细信息 |
-m | --machine | 打印机器硬件名称(即系统架构,例如:x86_64, arm64) |
-p | --processor | 打印处理器类型。注意:在某些系统上,此信息可能不可用或与-m输出相同 |
-i | --hardware-platform | 打印硬件平台名称。注意:此信息并非在所有系统上都可用 |
-o | --operating-system | 打印操作系统名称(例如:GNU/Linux) |
| 无 | --help | 显示此命令的帮助信息并退出 |
| 无 | --version | 显示 uname 命令的版本信息并退出 |
输出顺序说明:当使用-a选项或指定了多个选项时,输出的信息字段默认按以下顺序排列:内核名称 主机名称 内核release 内核版本 机器名称 处理器 硬件平台 操作系统
4. 示例用法
示例 1:查看内核名称(默认行为)
bash
运行
$ uname Linux这等同于执行uname -s。
示例 2:查看所有系统信息
bash
运行
$ uname -a Linux myserver 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux输出依次为:内核名、主机名、内核发布版本、内核版本、机器硬件名、处理器类型、硬件平台、操作系统。
示例 3:分别查看各项信息
bash
运行
# 查看系统架构 $ uname -m x86_64 # 查看主机名 $ uname -n myserver # 查看内核发布版本 $ uname -r 5.4.0-42-generic # 查看内核名称 $ uname -s Linux # 查看内核版本详情 $ uname -v #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 # 查看处理器类型 $ uname -p x86_64 # 查看硬件平台(可能与架构相同) $ uname -i x86_64 # 查看操作系统名称 $ uname -o GNU/Linux示例 4:组合多个选项
bash
运行
$ uname -snrv Linux myserver 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020此命令组合了内核名 (-s)、主机名 (-n)、内核发布版本 (-r) 和内核版本 (-v)。
示例 5:脚本中跨平台判断
bash
运行
if [ "$(uname)" = "Linux" ]; then echo "This is a Linux system." elif [ "$(uname)" = "Darwin" ]; then echo "This is a macOS system." fi5. 注意事项
- 信息可用性:选项
-p(处理器) 和-i(硬件平台) 输出的信息高度依赖于底层系统。在某些系统(如某些 Linux 发行版或 macOS)上,这些信息可能无法获取,或者其输出与-m(机器硬件名) 完全相同。使用-a选项时,如果这些信息未知,则会被自动省略。 - 返回值:
uname命令执行成功时返回0,失败时返回非零值。失败情况较少见,通常与参数错误或系统环境异常有关。 - 获取更多帮助:
- 可以通过
man uname查看完整的手册页。 - 作为 GNU coreutils 的一部分,也可以通过
info coreutils 'uname invocation'命令查看更详细的 Info 文档。
- 可以通过
- 与
hostname命令的区别:uname -n输出的 “节点名” 通常与hostname命令的输出相同,但hostname命令提供了更多设置和查看主机名相关信息的选项。
获取更多Linux学习资料请关注“阿成学长工具包”公众号,对话框中输入2647获取
