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系统常用调试工具的更多相关文章

  1. Linux 学习手记(4):Linux系统常用Shell命令

    日期时间 date命令:显示当前时间日期 date -u # 显示格林威治(UTC)事件 date +%Y-%m-%d # 格式显示日期 date -s '20:25:25' # 修改系统时间,需要使 ...

  2. Linux系统常用升级的基础包

    Linux系统常用升级的基础包 yum -y install lrzsz gcc gcc-c++ make flex autoconf automake vixie-cron libjpeg libj ...

  3. linux系统常用的基本命令分类

    linux系统常用的基本命令分类: 文件命令:vim vimdiff diff mkdir touch rm mv cp ln cd ls more less head tail cat grep e ...

  4. 9个Linux系统常用监控命令

    我们的系统一旦上线跑起来我们自然希望它一直相安无事,不要宕机,不要无响应,不要慢腾腾的.但是这不是打开机器电源然后放任不管就可以得到的.所以我们要监视系统的运行状况,发现问题及时处理. 对于系统和网络 ...

  5. linux linux系统常用设置

    linux  linux系统常用设置 一.设置开机时开启数字键 修改rc.local文件 命令:vi  /etc/rc.local rc.local文件中增加如下代码: INITTY=/dev/tty ...

  6. 一文详解 Linux 系统常用监控工一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)具(top,htop,iotop,iftop)

    一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)     概 述 本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用.正所谓磨刀不误砍柴工,花点时间 ...

  7. Linux系统常用命令权威指南

    <一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f ...

  8. 100个linux系统常用指令

    1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件-A 通-a,但不列出"."和".."-l 列出文件 ...

  9. linux系统——网络调试工具

    http://blog.csdn.net/chinalinuxzend/article/details/1799279 1.网络调试工具概说: 如 果我们把一台机器接入网络中,通过网络配置工具的配置这 ...

  10. Linux 系统常用管理命令(精简笔记)

    Linux是一套免费使用和自由传播的类Unix操作系统,下面的笔记是我从鸟菜中摘抄出来的重要命令,并进行了一定的排版,摒弃了一些用不到的乱七八糟的命令,目的是在生产环境中能够快速的定位并查询需要命令的 ...

随机推荐

  1. 【CF比赛记录】Codeforces Round 1013 (Div. 3)

    比赛链接 本文发布于博客园,会跟随补题进度实时更新,若您在其他平台阅读到此文,请前往博客园获取更好的阅读体验. 跳转链接:https://www.cnblogs.com/TianTianChaoFan ...

  2. Object类--toString方法--java进阶day05

    1.Object类.以及通用的类 2.toString方法 默认的toString方法,返回的是地址值(全类名再加上通过地址值算出来的十六进制哈希值) . 为什么打印语句会自动调用toString方法 ...

  3. for循环的注意事项

    1.注意事项! 实操 可以看见上图,当{}里的循环走完后,i还存在,但是a消失了,因此{}里的变量会在每一次循环结束后释放 . 这也是为什么之前我们打印a会出错的原因:a早就已经从内存中释放了,还怎么 ...

  4. 阿里云ECS服务器Ubuntu下安装docker-ce技巧

    官方文档 先来份Ubuntu 下安装 docker 的官方文档 -> Get Docker CE for Ubuntu 官方文档的安装方式是最靠谱的,但是对于国内的小伙伴来说墙是硬伤... 国内 ...

  5. RuoYi-vue配置记录

    如果这个项目能顺利运行,标志着Springboot+vue的前后端环境都配好了. 一.官方文档 若依官方文档:介绍 | RuoYi,在这个地方克隆/下载项目源代码https://gitee.com/y ...

  6. DevOps工程师技能

    技术背景 DevOps工程师必须持有计算机科学.工程或其他相关领域的学位.2年以上工作经验.这包括开发人员.系统管理员或devops驱动的团队成员的工作.这是一个重要的需求,同时也是对所有IT操作的理 ...

  7. 使用benchmarksql测试数据库处理能力

    我们所处行业的核心应用业务,当前还是传统的OLTP业务,应用系统使用 java 开发,并且不建议使用存储过程,使用 benchmarksql 压测数据库最公平,既可以测试数据库性能,也可以测试JDBC ...

  8. 🎀SpringBoot启动创建系统托盘及功能

    简介 SpringBoot启动时,创建系统托盘,提供打开主程序及退出功能. 实现 启动类添加构造函数 public TjtoolApplication() { initUI(); } private ...

  9. 从源码看 QT 的事件系统及自定义事件

    事件是程序内部或外部触发的动作或状态变化的信号.在 Qt 中,所有事件都是 QEvent 派生类的对象,事件由 QObject 派生类的对象接收和处理.每一个事件都有对应的 QEvent 派生类,当事 ...

  10. 一天 Star 破万的开源项目「GitHub 热点速览」

    虽然现在市面上的 AI 编程助手已经"琳琅满目",但顶流就是顶流!OpenAI 新开源的轻量级编程助手 Codex,发布不到 24 小时 Star 数就轻松破万!姗姗来迟的 Ope ...