2025-09-09 14:53:46

Linux 常用工具整理

1. C/C++ 编译工具

1.1 gcc/g++

描述: Linux 下 C/C++ 编译器,必备工具。

使用场景: 从简单的 helloworld.cpp 开始学习编译过程。

1.2 make

描述: 自动化构建工具,通过 Makefile 一键编译。

使用场景: 当项目有多个源文件时,使用 make 可以简化编译流程。

1.3 cmake

描述: 跨平台的构建工具,自动生成 Makefile。

使用场景: 适用于大型项目,简化 Makefile 的编写。

1.4 pkg-config

描述: 用于定位已安装库的头文件和库路径。

使用场景: 在编译时自动获取依赖库的编译和链接参数。

2. 代码调试工具

2.1 gdb

描述: GNU 调试器,用于调试 C/C++ 程序。

常用命令:break xxx.cpp:123 # 在文件 A 第 123 行打断点

break classA::funcB() # 在函数入口打断点

set print pretty # 设置输出格式

print *this # 查看类内函数所属类信息

info locals # 查看函数堆栈

2.2 strace

描述: 跟踪系统调用和信号,用于排查问题。

常用命令:strace ./xxxx # 启动跟踪系统调用

strace -p pid # attach 跟踪进程当前调用

strace -p pid -e read,write,xxxx # 过滤系统调用

2.3 Google Test (gtest)

描述: C++ 单元测试框架。

使用场景: 用于编写和运行单元测试。

2.4 进程查询

常用命令:ps -uax -p pid # 查询进程情况

pstree -uax # 显示进程树

2.5 top

描述: 实时监控系统进程。

常用命令:top # 查看全局进程

top -p pid # 查看指定进程

2.6 htop

描述: top 的增强版,提供更友好的界面。

常用命令:htop # 启动 htop

F4 # 输入名字过滤进程

2.7 /proc

描述: 虚拟文件系统,提供内核和进程信息的视图。

2.8 sar

描述: 系统性能监控工具,用于收集和报告系统活动。

3. 内存排查工具

3.1 free

描述: 查看系统内存使用情况。

3.2 mtrace

描述: 用于检测内存泄漏的工具。

3.3 valgrind

描述: 内存调试工具,用于检测内存泄漏和内存错误。

常用命令:valgrind \

--time-stamp=yes \

--leak-check=full \

--track-fds=yes \

--show-leak-kinds=all \

--tool=memcheck \

--memcheck \

--log-file=progress_valgrind.log \

./process

4. 文件排查工具

4.1 lsof

描述: 列出打开的文件和进程。

4.2 iostat

描述: 监控系统输入输出设备负载。

4.3 find

描述: 在目录树中查找文件。

4.4 tree

描述: 以树状图列出目录内容。

5. 网络查询工具

5.1 ip

描述: 显示和操作网络设备、路由、策略路由等。

5.2 ethtool

描述: 查询和设置网卡参数。

5.3 netstat

描述: 显示网络连接、路由表、接口统计信息等。

5.4 ss

描述: 用于查看网络连接的统计信息。

6. 防火墙工具

6.1 iptables

描述: 用于配置 Linux 内核防火墙规则。

7. 性能瓶颈分析工具

7.1 perf

描述: 性能分析工具,用于分析函数调用热点。

常用命令:perf top -p pid # 查看进程/线程的函数调用频率

perf record # 记录性能数据

perf stat # 统计性能事件

perf report # 生成报告

7.2 strace

描述: 跟踪系统调用,用于分析程序性能瓶颈。

7.3 gprof

描述: 性能分析工具,用于分析程序运行时的函数调用关系。

8. 日志轮转工具

8.1 savelog

描述: 用于保存和轮转日志文件。

8.2 logrotate

描述: 自动轮转、压缩、删除日志文件。

9. 定时任务工具

9.1 cron

描述: 用于定期执行脚本或命令。

9.2 systemd timer

描述: 比 cron 更强大的定时任务工具。

10. 容器工具

10.1 docker

描述: 容器化平台,用于构建、运行和管理容器。

常用操作: docker pull, docker run, docker build 等。

11. 终端复用工具

11.1 tmux

描述: 终端复用工具,允许在一个终端窗口中运行多个终端会话。

常用命令:tmux # 启动 tmux

11.2 Zellij

描述: 现代化的终端复用工具,功能类似于 tmux。

使用场景: 暂时没有经验。

12. 环境变量配置

12.1 env

描述: 终端复用工具,允许在一个终端窗口中运行多个终端会话。

常用命令:

# 基础用法

env # 列出所有环境变量

env -i # 清空环境变量后运行(无任何继承)

env -u VAR # 移除指定变量后运行

# 临时修改环境运行程序

env PATH=/custom/path myapp # 自定义 PATH 运行程序

env -i PATH=/bin:/usr/bin ls # 在纯净环境中执行命令

13. 其他shell小命令

13.1 watch

可以随时查看输出,并做对比

watch -d -t 30 "ps -uax |grep Progress |grep -v grep"

13.2 timeout

可以配合tcpdump实现抓包指定时长

timeout 30 tcpdump -i any port 30000 -w temp_30s.pcap

Copyright © 2088 英式橄榄球世界杯_世界杯女篮 - tylpr.com All Rights Reserved.
友情链接