五、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
五、Linux系统常用调试工具的更多相关文章
- Linux 学习手记(4):Linux系统常用Shell命令
日期时间 date命令:显示当前时间日期 date -u # 显示格林威治(UTC)事件 date +%Y-%m-%d # 格式显示日期 date -s '20:25:25' # 修改系统时间,需要使 ...
- Linux系统常用升级的基础包
Linux系统常用升级的基础包 yum -y install lrzsz gcc gcc-c++ make flex autoconf automake vixie-cron libjpeg libj ...
- linux系统常用的基本命令分类
linux系统常用的基本命令分类: 文件命令:vim vimdiff diff mkdir touch rm mv cp ln cd ls more less head tail cat grep e ...
- 9个Linux系统常用监控命令
我们的系统一旦上线跑起来我们自然希望它一直相安无事,不要宕机,不要无响应,不要慢腾腾的.但是这不是打开机器电源然后放任不管就可以得到的.所以我们要监视系统的运行状况,发现问题及时处理. 对于系统和网络 ...
- linux linux系统常用设置
linux linux系统常用设置 一.设置开机时开启数字键 修改rc.local文件 命令:vi /etc/rc.local rc.local文件中增加如下代码: INITTY=/dev/tty ...
- 一文详解 Linux 系统常用监控工一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)具(top,htop,iotop,iftop)
一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop) 概 述 本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用.正所谓磨刀不误砍柴工,花点时间 ...
- Linux系统常用命令权威指南
<一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f ...
- 100个linux系统常用指令
1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"."和".."-l 列出文件 ...
- linux系统——网络调试工具
http://blog.csdn.net/chinalinuxzend/article/details/1799279 1.网络调试工具概说: 如 果我们把一台机器接入网络中,通过网络配置工具的配置这 ...
- Linux 系统常用管理命令(精简笔记)
Linux是一套免费使用和自由传播的类Unix操作系统,下面的笔记是我从鸟菜中摘抄出来的重要命令,并进行了一定的排版,摒弃了一些用不到的乱七八糟的命令,目的是在生产环境中能够快速的定位并查询需要命令的 ...
随机推荐
- CoreOS 更新重启后, 所有容器服务全部停掉了
今天有几个服务出问题了,上去看了下,这台 CoreOS 下的所有容器服务竟然全部停掉了,好奇怪,启动容器时明明加了--detach参数了呀. 问题原因 想了想,会不是是 CoreOS 更新重启导致的, ...
- HTTPS方案浅谈
付费方案 赛门铁克 沃通 其他...懒得看了,重点不是这些 免费方案 WoSign(沃通)的DV免费SSL证书: 免费SSL证书支持最多5个域名, 一次性可管2年, 到期后可免费续期,相当于永久免费. ...
- AI时代:本地运行大模型vllm
https://docs.vllm.ai/en/latest/index.html 高吞吐量.高内存效率的 LLMs 推理和服务引擎(快速搭建本地大模型,且openAI API 兼容) vLLM is ...
- Codeforces Round 954 (Div. 3)
A. X Axis 1.既然要求每个点到a到距离之和最小,不妨让点a为3个点中的中间点,也就是先对三个数从小到大排序,然后输出首尾数减中间值的绝对值之和即可 #include <bits/std ...
- 解决VSCODE进行C代码编辑时结构体成员不可见或不提示的问题
在使用VSCODE进行C代码编辑时,结构体成员有时可见,光标放到成员上时,系统会提示结构体成员对应的注释信息,但是有时候却不行. 经过测试,发现有如下规律:以test.c test.h include ...
- MySQL的limit优化2
一.底层原理 在 MySQL 8.0 中,当使用 LIMIT offset, count 进行分页查询时,如果 offset 非常大(例如 LIMIT 200000, 10),性能会显著下降. 这是因 ...
- java基础之关键字(this、static、super、final、 权限修饰符)
一.this的含义 this:代表所在类的当前对象的引用(地址值),即对象自己的引用. 记住 :方法被哪个对象调用,方法中的this就代表那个对象.即谁在调用,this就代表谁 this的三种运用: ...
- Linux Nginx tomcat集群--打程序补丁步骤
Linux Nginx Tomcat集群--打程序补丁步骤 一.若不知道服务器中nginx所在目录(知道目录位置,从第3条开始看) 1.查找nginx进程(默认80端口) netstat -lntup ...
- fiddler断点应用
一.作用 1.模拟网络中断 2.断点时篡改数据 3.测试时做一些极端测试 二.断点步骤 1.全局断点 1)全局断点的两种方式 点击状态栏空白框,点击一下请求前断点,两下请求后断点,三下取消断点 Rul ...
- 魔方求解器桌面版(层先法,基于Tauri实现)
开发了一个桌面版的三阶魔方求解器,代码地址:https://github.com/davelet/rubik-cube-restore/pull/2 .欢迎使用. 一.层先法求解 代码逻辑是从前面的j ...