Linux 系统信息查询命令指南(CentOS7,快速掌握关键技巧)
思路:按 系统 / CPU / 内存 / 磁盘 / 网络 / 进程 / 用户 七个维度分类,日常排障一眼就能找到。 习惯:先
uname -a+free -h+df -h+top四件套,再深入定位。
一、系统基本信息
uname -a # 内核版本、架构、主机名(最常用)
uname -r # 只看内核版本
hostnamectl # 主机名、发行版、内核、架构(一行全有)
cat /etc/os-release # 发行版名称版本(CentOS/Ubuntu通用)
cat /etc/redhat-release # CentOS/RHEL 专属
uptime # 运行时间、登录数、1/5/15分钟负载
whoami # 当前用户
id # 当前用户UID/GID/组
date # 当前时间
timedatectl # 时区、NTP同步状态
last reboot # 历史重启记录
二、CPU 信息
lscpu # 综合信息:型号、核数、线程、缓存
cat /proc/cpuinfo | grep "model name" | uniq # CPU型号
nproc # 逻辑核数(脚本常用)
grep -c processor /proc/cpuinfo
常用看什么:
CPU(s):逻辑核心数Thread(s) per core:是否超线程Architecture:x86_64 / aarch64
三、内存信息
free -h # 总览(人类可读)
free -h -s 1 # 每秒刷新
cat /proc/meminfo # 详细内存信息
vmstat 1 5 # 虚拟内存统计(含swap、io、cpu)
关键看:
available才是真正可用内存,不是free。
四、磁盘与文件系统
lsblk # 块设备树(最直观)
df -h # 各分区使用率
df -i # inode使用率(文件数耗尽问题)
du -sh /var/log # 目录大小
du -h --max-depth=1 / | sort -h # 一层子目录排序
fdisk -l # 分区表
blkid # 各分区UUID、文件系统类型
mount | column -t # 当前挂载
iostat -x 1 # IO读写(需sysstat)
五、网络信息
ip a # 所有网卡和IP(替代旧 ifconfig)
ip route # 路由表/默认网关
ss -tulpn # 监听端口+进程(替代 netstat)
ss -s # 连接统计
hostname -I # 本机所有内网IP
cat /etc/resolv.conf # DNS
ping -c 4 baidu.com # 连通性
traceroute baidu.com # 路由追踪
curl -I https://xxx # HTTP头
dig xxx.com # DNS解析(或 nslookup)
ss比netstat快得多,新脚本都用ss。
六、进程与负载
top # 实时进程(q退出)
htop # 增强版(需yum install htop)
ps aux # 全部进程快照
ps -ef --forest # 树形显示父子关系
ps aux --sort=-%mem | head # 按内存排序前10
ps -p <PID> -o pid,cmd,%cpu,%mem # 看单个进程
pgrep nginx # 按名字找PID
pstree -p # 进程树
pidof mysqld # 找PID
系统负载
uptime # 1/5/15分钟负载
w # 谁在登录+在做什么
top # 看load average
负载参考:负载数 <CPU 核数 = 健康;持续> 核数 = 繁忙。
七、用户与登录
who # 当前登录谁
w # 谁在做什么
last # 最近登录记录
lastb # 失败登录记录(安全必看)
who /etc/passwd # 所有系统用户
getent passwd # 同上,含LDAP
groups zhangsan # 用户所属组
八、硬件信息
lspci # PCI设备(显卡、网卡)
lsusb # USB设备
dmidecode # 硬件详情(主板、内存槽、BIOS)
dmidecode -t memory # 只看内存条
dmesg | tail # 内核启动日志/硬件检测
dmesg | grep -i error
lsmod # 已加载内核模块
lshw # 完整硬件清单(需安装)
九、性能实时监控
top / htop # 进程视角
atop # 综合CPU/内存/磁盘/网络
nethogs ens33 # 按进程看流量
iftop -i ens33 # 按连接看流量
nload ens33 # 总带宽
iostat -x 1 # 磁盘IO
sar -u 1 5 # CPU历史(需sysstat)
sar -n DEV 1 5 # 网络历史
十、软件与服务
yum list installed | wc -l # 已装包数
yum info 包名
systemctl list-units --type=service --state=running
systemctl status nginx
journalctl -u nginx --since today # 今天的服务日志
十一、一行技巧合集
# 1. 查看哪个进程占用最多内存
ps aux --sort=-%mem | head -10
# 2. 查看TCP连接状态分布
ss -s
# 3. 找出占磁盘最大的10个目录
du -h --max-depth=1 /var | sort -rh | head
# 4. 看监听了哪些端口
ss -tulpn
# 5. 实时看日志
tail -f /var/log/messages
# 6. 查看内核版本和发行版
cat /etc/redhat-release && uname -r
# 7. 看当前负载和CPU核数
uptime && nproc
# 8. 快速判断内存是否吃紧
free -h && echo "---" && ps aux --sort=-%mem | head -5
十二、排障四件套(记住这 4 条够用 80% 场景)
uptime # 负载高不高
free -h # 内存够不够
df -h # 磁盘满没满
top -o %CPU # 谁在吃CPU
然后按现象深入:
- 负载高 →
top、iostat -x 1 - 磁盘满 →
du -sh /*逐层找 - 网络不通 →
ip a→ping→ss -tulpn - 服务起不来 →
journalctl -u 服务名 -e
十三、常见问题
command not found:最小化安装没装,用yum install -y补:net-tools、sysstat、lsof、htop。ss替代netstat:CentOS7 默认装了 ss;老脚本里 netstat 来自 net-tools。lspci/lsusb报错:装pciutils/usbutils。- 容器里查不到 CPU / 内存:看到的是宿主机信息,因为容器共享内核;要看容器限制用
cat /sys/fs/cgroup/memory/memory.limit_in_bytes。
速查表
表格
| 想知道 | 命令 |
|---|---|
| 系统版本 | cat /etc/os-release |
| CPU | lscpu / nproc |
| 内存 | free -h |
| 磁盘空间 | df -h |
| 挂载 | lsblk / mount |
| IP | ip a |
| 端口 | ss -tulpn |
| 进程 | top / ps aux |
| 负载 | uptime / w |
| 登录记录 | last |
| 服务状态 | systemctl status xxx |
| 日志 | journalctl -u xxx -e |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END











暂无评论内容