五、Linux系统常用调试工具
4.2、ps(查看进程状态)
-
用途:显示系统中运行的进程及其相关信息,如 PID(进程 ID)、CPU 使用率、内存占用等。
-
常见用法:
ps aux # 显示所有进程,包含用户、PID、CPU/内存使用情况等 ps -ef # 以完整格式显示所有进程,并包含父子进程信息 ps -e --forest # 以树状结构显示进程关系 ps aux | grep nginx -
示例输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 16516 2824 ? Ss 10:00 0:01 /sbin/init root 1024 0.1 0.2 54392 5024 ? Ss 10:05 0:02 sshd: root@pts/0
4.3、kill(终止进程)
-
用途:结束指定的进程。
-
使用:
sh复制编辑kill -9 1234 # 强制杀死进程 1234 kill -15 1234 # 优雅地终止进程 killall firefox # 结束所有名为 firefox 的进程
4.4、lsof(列出打开的文件)
-
用途:显示当前系统中打开的文件(包括进程打开的文件、网络端口等)。
-
使用:
lsof -p 1234 # 查看进程 1234 打开的文件 lsof -i :80 # 查看占用 80 端口的进程 lsof /var/log/syslog # 查看哪个进程在使用某个文件
4.5、df(查看磁盘使用情况)
-
用途:检查磁盘空间占用情况。
-
使用:
df -h -
示例输出:
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 10G 40G 20% /
4.6、du(查看目录大小)
-
用途:查看目录和文件的大小。
-
使用:
du -sh /var/log
4.7、netstat(查看网络连接)
-
用途:显示网络端口、连接状态。
-
使用:
netstat -tulnp # 显示监听的 TCP/UDP 端口
4.8、ss(查看套接字状态,替代 netstat)
-
用途:显示 TCP/UDP 连接信息,比
netstat更高效。 -
使用:
ss -tulnp
4.9、traceroute(跟踪数据包路径)
-
用途:查看数据包经过的路由。
-
安装:
sudo apt install traceroute -
使用:
traceroute google.com
4.10、free(查看内存使用)
-
用途:显示系统内存占用情况。
-
使用:
free -h -
示例输出:
total used free Mem: 8.0G 3.2G 4.8G
4.11、vmstat(查看系统资源使用情况)
-
用途:分析 CPU、内存、I/O 使用情况。
-
使用:
vmstat 1 5
4.12、uname(查看系统信息)
-
用途:查看 Linux 内核版本、架构。
-
使用:
uname -a
4.13、dmesg(查看内核日志)
-
用途:查看系统启动日志、硬件信息。
-
使用:
dmesg | tail -20
4.14、uptime(查看系统运行时间)
-
用途:显示系统运行时长和负载情况。
-
使用:
uptime
4.15、ltrace(库调用跟踪)
-
用途:跟踪进程的库函数调用(
strace跟踪的是系统调用)。 -
安装:
sudo apt install ltrace -
使用:
ltrace ./my_program -
示例:
ltrace ls输出:
__libc_start_main(0x561bc8, 1, 0x7ffc, 0x561bc8, 0, 0, 0) = 0 opendir(".") = 0x561bc8 readdir(0x561bc8) = 0x561bc8 closedir(0x561bc8) = 0区别:
strace追踪系统调用,例如openat()ltrace追踪库函数调用,例如opendir()
4.16、perf(系统性能分析)
-
用途:分析 CPU 事件、函数调用频率、进程性能。
-
安装:
sudo apt install linux-tools-common linux-tools-generic -
使用:
perf record -g ./my_program perf report输出:
30% my_program [.] main 20% my_program [.] process_data说明:
30%的 CPU 时间在main函数中20%的 CPU 时间在process_data函数中
4.17、iostat(I/O 性能分析)
-
用途:分析磁盘 I/O 读写性能。
-
安装:
sudo apt install sysstat -
使用:
iostat -x 1关键指标:
r/s(读取请求数)w/s(写入请求数)%util(磁盘利用率)
4.18、valgrind(内存泄漏检测)
-
用途:检测 C/C++ 程序中的内存泄漏、野指针、未初始化变量等问题。
-
安装:
sudo apt install valgrind -
使用:
valgrind --leak-check=full ./my_program -
示例输出:
==1234== 10 bytes in 1 blocks are definitely lost in loss record 1 of 1 ==1234== at 0x4C2EAF6: malloc (vg_replace_malloc.c:299) ==1234== by 0x400611: main (test.c:6)说明:
malloc()申请的 10 字节没有释放,可能有内存泄漏。
4.19、ping(测试网络连通性)
-
用途:测试目标主机是否可达。
-
使用:
ping 8.8.8.8

浙公网安备 33010602011771号