hostnamectl 一眼显示主机名、系统版本和运行状态,含 Static hostname、Operating System、Kernel 和 System State(如 running 或 degraded),Virtualization 字段标识虚拟化类型,CPE OS Name 对应 CVE 漏洞公告。

用 hostnamectl 一眼看清主机名、系统版本和运行状态
想快速确认当前机器是不是你预期的那台(比如在跳转多台服务器时),hostnamectl 是最直接的选择。它不依赖额外安装,所有 systemd 系统都自带,输出清晰,包含 Static hostname、Operating System、Kernel 和 System State(如 running 或 degraded)。
常见误操作是只输 hostname,它只返回主机名,漏掉关键上下文。而 hostnamectl status(status 可省略)能一次覆盖基础识别信息。
- 如果看到
System State: degraded,说明至少一个 systemd 单元启动失败,建议接着执行systemctl --state=failed查具体服务 -
Virtualization: kvm或vmware表示当前是虚拟机,对性能调优或驱动排查有提示作用 - 输出中的
CPE OS Name字段可直接对应 CVE 漏洞公告里的系统标识,不用再手动查发行版代号
查 CPU、内存、负载——top 太重?改用 htop 或 cat /proc/loadavg
top 虽然经典,但默认刷新、交互式界面在脚本或远程批量检查时反而拖慢节奏。真正需要“快速获取”时,优先考虑更轻量、更结构化的替代方案。
-
htop不是默认安装,但比top更直观:支持鼠标、颜色区分、垂直进程树,按F2进入 Setup 可固定显示 CPU 核心使用率(避免默认只显示总占用) - 纯命令行场景下,
cat /proc/loadavg直接输出 1/5/15 分钟平均负载,三个数字后跟斜杠和就绪进程数,例如0.42 0.38 0.35 2/345 12345—— 最后两位是当前运行中进程 PID - 内存用量别只看
free -h的available行:Linux 内核会把空闲内存用于 cache/buffer,available已扣除这部分,才是真实可用值;used行含 buffer/cache,不能直接等同于“被程序占满”
磁盘空间和挂载点——df -hT 必加 -T 参数
df -h 很常用,但缺省不显示文件系统类型,容易踩坑。比如看到 /dev/sdb1 占满,却不知道它是 ext4、xfs 还是 ntfs(通过 USB 挂载的 Windows 分区),后续清理或扩容策略完全不同。
-
df -hT中的T会多出Type列,一眼识别ext4、xfs、tmpfs(内存盘)、overlay(Docker 容器层)等 - 注意
df默认统计的是挂载点(mount point),不是设备本身;若某分区没挂载,df就看不见它,得用lsblk或fdisk -l补充查看 - 容器环境里常出现
overlay类型占高,这不是磁盘真满了,而是镜像层叠加导致,需用docker system df单独分析
网络接口和活跃连接——ip -br a 和 ss -tuln 组合最稳
老教程还在教 ifconfig,但它早已被废弃(多数新版系统不预装),且不显示 IPv6 地址或 link-local 状态。ip 命令是唯一现代标准。
-
ip -br a(-br是 brief 缩写)一行一接口,显示名称、状态(UP/DOWN)、IPv4/IPv6 地址,适合快速扫视是否网卡启用、地址是否正确分配 - 查监听端口别用
netstat:它已淘汰,且默认解析域名/服务名,慢且不准;ss -tuln中t=TCP、u=UDP、l=listening、n=不解析(显示端口号而非 service 名),结果干净可靠 - 若
ss -tuln | grep :22没输出,不代表 SSH 关了——可能监听在127.0.0.1:22(仅本地),此时需看ss -tuln | grep 22去掉冒号限制,或检查sshd_config中的ListenAddress配置
ip -br a lo UNKNOWN 127.0.0.1/8 ::1/128 eth0 UP 192.168.1.100/24 fe80::20c:29ff:fe1a:2b3c/64
ss -tuln | grep :80
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=1234,fd=6),("nginx",pid=1233,fd=6))实际执行时,这些命令组合起来不到 5 秒就能建立对主机健康度的基本判断。最容易被忽略的是:所有输出都要结合上下文看——比如 loadavg 数值低但 htop 显示单核 100%,说明是单线程瓶颈;df 显示根分区 95% 但 du -sh /* 2>/dev/null | sort -hr 找不到大目录,大概率是被已删除但未释放的文件(lsof + deleted)占着 inode。










