arch 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于硬件与内核命令族(见硬件与内核模块命令族)。"这机器是 x86 还是 ARM"一句话答清。
arch 打印机器的处理器架构名(如 x86_64、aarch64、armv7l)。它就是 uname -m 的极简别名,专门给"只要架构字符串"的场景。
一、基本用法
bash
arch # 输出 x86_64(或 aarch64)输出和
uname -m完全一致。常见值:x86_64(64 位 Intel/AMD)、aarch64(64 位 ARM)、i386/i686(32 位 x86)、armv7l(32 位 ARM)。
二、与 uname 的关系
bash
arch # 只给架构字符串
uname -m # 完全等价
uname -a # 还含内核版本、主机名等(见 [uname](/linux/cmd/uname.md))
arch是uname -m的别名,纯粹为"少打字、只要架构"。脚本里两者随便用,语义一致。
三、实战:下载对的二进制
bash
case $(arch) in
x86_64) URL=...amd64... ;;
aarch64) URL=...arm64... ;;
esac装跨平台软件(如 Docker 二进制、Go 工具链)时,用
arch判断下哪个包。这是自动化安装脚本的标配分支。容器里arch显示的是宿主架构(除非用了 QEMU 模拟/binfmt)。
四、与 dpkg --print-architecture 区别
bash
arch # 内核/硬件架构(机器视角)
dpkg --print-architecture # 发行版包管理视角(可能不同,如 armhf vs aarch64)多数情况一致;但 32 位 ARM 上 Debian 包架构叫
armhf,而arch显示armv7l——给包管理器和给编译器的"架构名"口径可能不同,写安装脚本注意区分。
一句话总结
arch = 显示处理器架构(如 x86_64/aarch64),等价于 uname -m(见uname);脚本里用它判断下哪个平台的二进制(amd64/arm64);容器里显示宿主架构。注意与包管理器架构名(如 dpkg 的 armhf)口径可能不同。