快速掌握关键技巧 Linux系统信息查询命令指南

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

十三、常见问题

  1. command not found:最小化安装没装,用 yum install -y 补:net-tools、sysstat、lsof、htop。
  2. ss 替代 netstat:CentOS7 默认装了 ss;老脚本里 netstat 来自 net-tools。
  3. lspci/lsusb 报错:装 pciutils / usbutils。
  4. 容器里查不到 CPU / 内存:看到的是宿主机信息,因为容器共享内核;要看容器限制用 cat /sys/fs/cgroup/memory/memory.limit_in_bytes。

速查表

表格

想知道命令
系统版本cat /etc/os-release
CPUlscpu / nproc
内存free -h
磁盘空间df -h
挂载lsblk / mount
IPip a
端口ss -tulpn
进程top / ps aux
负载uptime / w
登录记录last
服务状态systemctl status xxx
日志journalctl -u xxx -e
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像-次元社
欢迎您留下宝贵的见解!
提交
头像-次元社

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容