00-2 Linux 系统架构总览和工具分类总表

Linux 系统架构总览

来自Brendan's site:

image

Linux 工具分类总表

按 Linux 系统分层组织,用于文章归类参考。
标记说明:✅ 常用 | ⬚ 不常用但重要


00 引言 — 系统架构总览

工具/概念 说明
uname 系统信息(内核版本、架构)
hostnamectl 系统 hostname、OS、内核信息
lsb_release / cat /etc/os-release 发行版信息
free -h 内存概览
nproc CPU 核心数
uptime 系统运行时间、负载
arch / getconf LONG_BIT 系统架构(x86_64 / aarch64)

01 硬件层 (Hardware)

01.1 CPU

工具 类型 说明
lscpu ✅ 静态 CPU 架构、核心数、缓存、频率
/proc/cpuinfo ✅ 静态 CPU 详细信息(型号、flags)
cpuid ⬚ 静态 CPUID 指令详细信息
cpu-x ⬚ 静态 GUI CPU 信息(类似 CPU-Z)
turbostat ⬚ 动态 CPU 频率、功耗、C-State(Intel)
rdmsr ⬚ 静态 读取 MSR 寄存器
x86info ⬚ 静态 x86 CPU 详细信息

01.2 内存 (RAM)

工具 类型 说明
dmidecode ✅ 静态 BIOS/硬件信息(含内存条详情)
lsmem ✅ 静态 内存布局
free ✅ 动态 内存使用概览
numactl / numastat ⬚ 动态 NUMA 架构内存分配
lstopo ⬚ 静态 硬件拓扑图(CPU/NUMA/缓存)

01.3 存储 / 磁盘

工具 类型 说明
lsblk ✅ 静态 块设备列表
lsscsi ⬚ 静态 SCSI 设备列表
fdisk -l ✅ 静态 分区表信息
smartctl ✅ 静态 SMART 磁盘健康状态
hdparm ⬚ 静态 硬盘参数(DMA、缓存)
sdparm ⬚ 静态 SCSI 设备参数
nvme list ⬚ 静态 NVMe 设备列表
MegaCli / storcli ⬚ 静态 RAID 控制器管理

01.4 总线 / 设备

工具 类型 说明
lspci ✅ 静态 PCI 设备列表(显卡、网卡、USB 控制器)
lsusb ✅ 静态 USB 设备列表
lshw ✅ 静态 完整硬件清单
hwinfo ⬚ 静态 硬件详细信息
biosdecode ⬚ 静态 BIOS 信息解码
sensors ✅ 动态 温度、电压、风扇转速(lm_sensors)

01.5 网络(硬件级)

工具 类型 说明
ethtool ✅ 静态/动态 网卡参数(速率、双工、驱动)
ethtool -i ✅ 静态 网卡驱动和固件版本
mii-tool ⬚ 静态 网卡链路状态(旧)
lldptool ⬚ 静态 LLDP 链路层发现协议

02 内核层 (Kernel)

02.1 内核信息与模块

工具 类型 说明
/proc/version ✅ 静态 内核版本
dmesg ✅ 动态 内核日志(启动信息、硬件检测)
lsmod ✅ 静态 已加载内核模块
modprobe / insmod / rmmod ✅ 静态 加载/卸载内核模块
modinfo ✅ 静态 模块详细信息
sysctl ✅ 动态 内核参数读写(/proc/sys)
/sys/ ✅ 静态 sysfs 内核对象属性
journalctl -k ✅ 动态 内核日志(systemd)

02.2 进程管理 / 调度

工具 类型 说明
ps ✅ 动态 进程快照
top / htop / btm ✅ 动态 进程实时监控
pgrep / pkill ✅ 动态 按名称查找/杀死进程
kill / killall ✅ 动态 发送信号
pstree ✅ 静态 进程树
nice / renice ✅ 静态 进程优先级
schedtool ⬚ 静态 调度策略设置
taskset ⬚ 静态 CPU 亲和性
chrt ⬚ 静态 实时调度策略
prctl ⬚ 静态 进程属性控制
/proc/PID/ ✅ 静态 进程详细信息(status, maps, fd, io)

02.3 内存管理

工具 类型 说明
vmstat ✅ 动态 虚拟内存统计
free ✅ 动态 内存使用
slabtop ⬚ 动态 内核 slab 缓存
pmap ✅ 动态 进程内存映射
/proc/meminfo ✅ 静态 内存详细信息
/proc/vmstat ⬚ 静态 VM 事件计数器
swapon / swapoff ✅ 静态 交换分区管理

02.4 文件系统 / VFS

工具 类型 说明
df ✅ 静态 磁盘空间(VFS 级)
du ✅ 静态 目录空间占用
mount / umount ✅ 静态 挂载文件系统
findmnt ✅ 静态 挂载点树
blkid ✅ 静态 块设备 UUID/类型
mkfs.* ✅ 静态 创建文件系统
fsck ✅ 静态 文件系统检查修复
tune2fs ⬚ 静态 ext2/3/4 参数调整
xfs_info / xfs_db ⬚ 静态 XFS 文件系统信息
btrfs subvolume ⬚ 静态 Btrfs 子卷管理
lsof ✅ 动态 打开的文件列表
fuser ✅ 动态 使用文件/端口的进程
inotifywait ⬚ 动态 文件系统事件监控
fatrace ⬚ 动态 文件访问追踪

02.5 卷管理

工具 类型 说明
lsblk ✅ 静态 块设备树
fdisk / gdisk / parted ✅ 静态 分区管理
pv/vg/lv* (LVM) ✅ 静态 逻辑卷管理
mdadm ⬚ 静态 软件 RAID
cryptsetup ⬚ 静态 LUKS 磁盘加密
losetup ⬚ 静态 回环设备管理
blkdiscard ⬚ 静态 SSD 修剪(TRIM)
fstrim ⬚ 静态 文件系统级 TRIM

02.6 网络栈

工具 类型 说明
ip (ip addr/route/link/neigh) ✅ 静态/动态 网络接口、路由、邻居
ifconfig ⬚ 静态 网络接口(已废弃,用 ip)
route ⬚ 静态 路由表(已废弃,用 ip route)
ss ✅ 动态 Socket 统计(替代 netstat)
netstat ⬚ 动态 网络统计(已废弃,用 ss)
nstat ⬚ 动态 网络统计计数器
tc ⬚ 动态 流量控制(QoS)
bridge / brctl ⬚ 静态 网桥管理
ip netns ⬚ 静态 网络命名空间
iptables / nft ✅ 静态 防火墙/包过滤
conntrack ⬚ 动态 连接追踪表
arping / arp ⬚ 动态 ARP 表
vconfig / ip link (vlan) ⬚ 静态 VLAN 管理

02.7 设备驱动

工具 类型 说明
lsmod ✅ 静态 已加载模块
modprobe ✅ 静态 加载模块(含依赖)
udevadm ✅ 静态/动态 设备事件管理
/sys/bus/ /sys/class/ ✅ 静态 设备树(sysfs)
mknod ⬚ 静态 创建设备节点
udev rules ⬚ 静态 设备命名规则

03 系统接口层 (System Interface)

03.1 系统调用

工具 类型 说明
strace ✅ 动态 追踪系统调用
ltrace ✅ 动态 追踪库函数调用
/usr/include/asm/unistd_64.h ⬚ 静态 系统调用号表
ausyscall ⬚ 静态 系统调用号/名称映射
perf trace ⬚ 动态 系统调用追踪(perf)

03.2 动态链接 / 库

工具 类型 说明
ldd ✅ 静态 查看动态库依赖
ldconfig ✅ 静态 动态链接器缓存管理
objdump ✅ 静态 二进制反汇编/分析
readelf ✅ 静态 ELF 文件信息
nm ✅ 静态 符号表
file ✅ 静态 文件类型识别
patchelf ⬚ 静态 修改 ELF(rpath 等)
chrpath ⬚ 静态 修改 rpath

03.3 POSIX / 标准

概念 说明
POSIX.1 系统接口标准
LSB (Linux Standard Base) Linux 标准规范
FHS (Filesystem Hierarchy Standard) 文件系统目录标准
man 2 / man 3 系统调用 / 库函数手册

04 Shell 层 (Shell)

04.1 Shell 基础

工具/概念 说明
bash / zsh / fish Shell 解释器
~/.bashrc / ~/.zshrc Shell 配置
~/.profile / ~/.bash_profile 登录配置
env / set / export 环境变量
alias 命令别名
history 命令历史
source / . 执行脚本

04.2 核心命令

工具 分类 说明
cd / pwd / ls 导航 目录操作
cp / mv / rm / mkdir 文件操作 复制、移动、删除
cat / less / head / tail 查看 文件内容查看
find / locate 搜索 文件查找
grep / sed / awk 文本处理 文本搜索/替换/分析
sort / uniq / wc / cut / tr 文本处理 文本统计/变换
xargs 管道 参数传递
tee 管道 分流输出
diff / patch 比较 文件差异/补丁
tar / zip / unzip / 7z 压缩 归档压缩
chmod / chown / chgrp 权限 文件权限管理
ln 链接 软/硬链接
which / whereis / type 查找 命令位置
date / cal 时间 日期时间
echo / printf 输出 文本输出
test / [ ] / [[ ]] 条件 条件判断
/ > / >> / < / 2>&1 管道/重定向

04.3 脚本编程

概念 说明
if/elif/else/fi 条件分支
for/while/until 循环
case/esac 多分支
function 函数定义
$1..$9, $@, $#, $? 特殊变量
return / exit 返回值
trap 信号处理
getopts 参数解析
[[ ]] vs [ ] 增强条件测试
$( ) vs ` ` 命令替换
<( ) 进程替换

05 GNU 工具链 (GNU Toolchain)

05.1 编译工具

工具 说明
gcc / g++ GNU 编译器
clang / clang++ LLVM 编译器
make 构建自动化
cmake 跨平台构建系统
autotools (autoconf/automake) GNU 构建系统
meson / ninja 新一代构建系统
pkg-config 库编译参数查询
ar / ranlib / strip 静态库/二进制工具
as GNU 汇编器
ld GNU 链接器

05.2 调试工具

工具 类型 说明
gdb ✅ 动态 GNU 调试器
lldb ✅ 动态 LLVM 调试器
valgrind ✅ 动态 内存泄漏检测
AddressSanitizer (ASan) ✅ 动态 内存错误检测(编译器内置)
UndefinedBehaviorSanitizer ⬚ 动态 未定义行为检测
strace ✅ 动态 系统调用追踪
ltrace ✅ 动态 库调用追踪
coredumpctl ✅ 静态 core dump 管理
gdbserver ⬚ 动态 远程调试

05.3 代码分析

工具 类型 说明
cppcheck ⬚ 静态 C/C++ 静态分析
clang-tidy ⬚ 静态 C++ Lint
flawfinder ⬚ 静态 安全漏洞扫描
splint ⬚ 静态 C 代码检查
doxygen ✅ 静态 代码文档生成
ctags / cscope ✅ 静态 代码导航

05.4 版本控制

工具 说明
git 分布式版本控制
github / gitlab 代码托管平台
git-lfs 大文件存储
git-flow 分支管理策略
pre-commit Git hook 管理

06 应用程序层 (Applications)

06.1 网络/远程

工具 说明
ssh / sshd 远程登录
scp / sftp 远程文件传输
rsync 增量同步
curl HTTP/FTP 客户端
wget 文件下载
nc (netcat) 网络瑞士军刀
nmap 端口扫描
mosh 移动 SSH
sshfs SSH 挂载远程目录
rdesktop / xfreerdp 远程桌面
wireguard / openvpn VPN

06.2 多媒体

工具 说明
ffmpeg 音视频处理
imagemagick (convert/magick) 图像处理
sox 音频处理
vlc / mpv 媒体播放
gstreamer 多媒体框架
handbrake 视频转码

06.3 文本/文档

工具 说明
vim / neovim 编辑器
emacs 编辑器
nano 简易编辑器
pandoc 文档格式转换
tex / latex 排版系统
jq JSON 处理
yq YAML 处理
xmllint XML 处理
dos2unix 换行符转换

06.4 系统管理

工具 说明
systemctl systemd 服务管理
journalctl systemd 日志
dnf / apt / pacman 包管理
crontab / systemd timer 定时任务
useradd / usermod / passwd 用户管理
groupadd / gpasswd 组管理
su / sudo 权限切换
chroot 切换根目录
systemd-nspawn 轻量容器
hostname / timedatectl / localectl 系统设置
loginctl 登录管理
firewall-cmd / ufw 防火墙
selinux / getenforce / audit2allow SELinux

06.5 容器/虚拟化

工具 说明
docker / podman 容器引擎
buildah 容器镜像构建
kubectl / k8s 容器编排
docker-compose 容器编排(单机)
qemu / kvm 虚拟机
virt-manager 虚拟机 GUI
vagrant 开发环境管理

06.6 开发语言运行时

工具 说明
python / pip / venv Python
node / npm / pnpm Node.js
rust / cargo Rust
go Go
java / mvn / gradle Java
dotnet .NET

07 性能与观测 (Observability)

07.1 静态性能工具(Brendan Gregg Static Tools)

工具 目标子系统 说明
lscpu / /proc/cpuinfo CPU CPU 配置
lsmem / dmidecode 内存 内存配置
lsblk / fdisk -l 存储 磁盘配置
lspci / lsusb 总线 设备配置
ethtool -i 网络 网卡配置
sysctl / /sys 内核 内核参数
dmesg 内核 启动/硬件日志
schedtool 调度器 调度策略
df / mount VFS 文件系统配置
ip addr / ip route 网络 接口/路由配置
ldd 库依赖
ulimit 资源 资源限制
getconf 系统 系统配置变量

07.2 动态观测工具(Brendan Gregg Observability Tools)

系统级

工具 目标 说明
vmstat 全局 CPU/内存/IO 概览
mpstat CPU CPU 使用率(per-core)
iostat 磁盘 IO 吞吐/延迟
netstat / ss 网络 Socket 统计
sar 全局 历史性能数据(sysstat)
dstat 全局 vmstat + iostat + netstat 合体

进程级

工具 目标 说明
top / htop 进程 进程资源使用
pidstat 进程 per-process CPU/内存/IO
iotop 进程 per-process 磁盘 IO
nethogs 进程 per-process 网络带宽
/proc/PID/ 进程 进程详细信息

高级追踪

工具 目标 说明
perf 全栈 CPU profiling、硬件事件
perf record / report CPU 函数级热点分析
perf stat CPU 性能计数器
perf trace 系统 系统调用追踪
ftrace 内核 内核函数追踪
strace 系统调用 进程系统调用追踪
ltrace 库调用 库函数追踪
eBPF / bpftrace 全栈 可编程内核追踪
BCC tools 全栈 eBPF 工具集
SystemTap 内核 内核动态追踪

网络

工具 目标 说明
tcpdump 网络包 抓包分析
wireshark / tshark 网络包 GUI/CLI 抓包分析
nicstat 网卡 网卡吞吐
iperf3 网络 网络带宽测试
ping / mtr 网络 连通性/路由
traceroute / tracepath 网络 路由追踪
dig / nslookup DNS DNS 查询
curl -w HTTP HTTP 性能指标

磁盘 IO

工具 目标 说明
iostat 磁盘 IO 统计
iotop 进程 per-process IO
blktrace 块设备 块层 IO 追踪
fio 存储 IO 性能基准测试
dd 存储 简单 IO 测试
hdparm -t 磁盘 磁盘读取速度
biosnoop 块设备 per-IO 延迟(BCC)
biolatency 块设备 IO 延迟分布(BCC)
biotop 块设备 IO top(BCC)

归类疑难对照表

不知道归哪时查这里:

工具/概念 你可能觉得是 实际归类
strace 调试?Shell? 03 系统接口层 → 系统调用
ldd 编译?库? 03 系统接口层 → 动态链接
gdb / lldb GNU 工具? 05 GNU 工具链 → 调试工具
valgrind 性能?调试? 05 GNU 工具链 → 调试工具
curl / wget 网络?应用? 06 应用程序 → 网络/远程
docker / podman 系统?虚拟化? 06 应用程序 → 容器/虚拟化
ffmpeg 应用?多媒体? 06 应用程序 → 多媒体
git Shell?应用? 05 GNU 工具链 → 版本控制
cmake / make 应用?编译? 05 GNU 工具链 → 编译工具
doxygen 应用?文档? 05 GNU 工具链 → 代码分析
ImageMagick 应用?图像? 06 应用程序 → 多媒体
ssh 网络?应用? 06 应用程序 → 网络/远程
perf / eBPF 内核?性能? 07 性能与观测 → 高级追踪
tcpdump 网络?性能? 07 性能与观测 → 网络
top / htop Shell?进程? 02 内核层 → 进程管理 + 07 性能与观测
journalctl 系统?日志? 02 内核层 → 内核信息 + 06 应用程序 → 系统管理
selinux 安全?系统? 06 应用程序 → 系统管理
find / grep / awk Shell?文本? 04 Shell 层 → 核心命令
vim / nano 应用?编辑器? 06 应用程序 → 文本/文档
python / node 应用?语言? 06 应用程序 → 开发语言运行时
iptables / nft 网络?防火墙? 02 内核层 → 网络栈
crontab 系统?定时? 06 应用程序 → 系统管理
posted @ 2026-04-22 06:08  游翔  阅读(19)  评论(0)    收藏  举报