讲解
接手一台新机器,第一件事是搞清楚它是什么系统、什么配置。uname 打印内核信息:uname -s 是内核名(Linux/Darwin),uname -r 是内核版本,uname -m 是 CPU 架构(x86_64 或 arm64),uname -a 一次性全显示。区分发行版要看 /etc/os-release 文件,里面有发行版名字和版本(macOS 没有这个文件,对应命令是 sw_vers)。
再看硬件资源。Linux 上:lscpu 看 CPU 型号与核数,free -h 看内存总量与剩余,lsblk 看磁盘分区。macOS 的对应命令是 sysctl -n machdep.cpu.brand_string 和 sysctl hw.memsize,没有 free 和 lscpu。whoami 和 id 告诉你当前身份,hostname 显示机器名(改主机名在 Linux 上用 hostnamectl),uptime 显示开机时长和负载均值。
负载均值(load average)值得展开:uptime 输出的三个数字是最近 1、5、15 分钟的平均负载,粗略理解是「排队等 CPU 的任务数」。经验法则:数值持续超过 CPU 核数说明机器饱和。date 除了看时间,还能格式化输出:date +%Y-%m-%d,脚本里生成时间戳文件名的标准做法。
示例
# 内核与架构
uname -s
uname -m
uname -a
# 身份与机器
whoami
hostname
# 时间与负载
date
date +%Y-%m-%d
uptime
这些命令是 Linux 专有的,在 Linux 机器上可以这样查:
# 仅示意:发行版信息(macOS 用 sw_vers 代替)
cat /etc/os-release
# 仅示意:CPU 与内存(macOS 没有这两个命令)
lscpu
free -h
常见坑
- 在 macOS 上找 free:BSD 系没有 free/lscpu,内存情况看「活动监视器」或 vm_stat。别怀疑自己装错了系统。
- 把容器当成独立机器:容器里 uname 显示的是宿主机的内核,free 看到的也可能不是容器限额。容器环境要用 cgroup 接口看真实配额。
- 负载高就慌:load 包含等磁盘 IO 的任务,IO 密集型机器 load 高但 CPU 空闲很常见,结合 %CPU 一起判断。
- date 格式符记错平台:GNU date 的 -d "yesterday" 很好用,BSD date 是 -v-1d,写法不同,脚本里注意。
小结
uname 看内核、/etc/os-release 看发行版、lscpu/free 看硬件(Linux)、uptime 看负载、date 格式化时间。下一节聚焦磁盘:df 与 du。