俗话说:“工欲善其事,必先利其器。”
在多年维护和开发Linux服务器的过程中,我接触了一些常用的开发和调试工具。本文将这些工具整理在一起,便于指导读者选择正确的工具。文中对于工具只有简单的介绍,需要详细的用法可以--help
或自行Google。
本文针对的环境是CentOS/RedHat服务器 (需要epel库)。其他发行版应该也有相应的命令,但我没有一一测试。
系统管理
- ssh: 远程登录
- last, lastlog: 查看用户登录历史
- cron: 设置周期运行的定时任务
- at: 设置运行一次的定时任务
- screen/nohup: 在后台运行程序,程序不会随着shell关闭而退出
- rsync: 文件夹同步
- pv: 文件拷贝(重定向方法,含进度条,但会丢失文件的权限信息)
- lshw: 显示硬件信息
- lscpu: 显示CPU信息
- dmesg: 显示系统日志
资源监控
通过查看系统资源使用,快速定位性能瓶颈与系统异常。
- 内存
- 硬盘
- df: 硬盘空间使用情况
- iotop: 磁盘IO使用实时监视
- ncdu: 分析文件夹使用的磁盘大小
- CPU
- 网络
- nethogs: 监控当前活跃的网络连接
- nload: 主机上传/下载流量监控
- 综合
- glances: 系统资源、进程查看工具(我的最爱)
- linux-dash/pyDash: 系统资源监控(基于网页)
内核调试
- perf
- kgdb: 内核调试工具
- lsmod: 显示所有被使用的module
- vmstat
进程调试
- ps: 查看当前进程
- top: 查看当前进程以及进程资源占用情况(动态更新)
- htop: top替代工具,信息丰富,可以查看树状进程信息
- pidof: 按进程名查PID
- skill: kill的升级版,通过名字(而不是PID)kill进程
文件调试
- tree: 将文件夹按树形显示
- lsof: 显示当前程序文件(包括虚拟文件)打开情况
- mc: Midnight Commander知名文件管理器
网络调试
- curl: 发送HTTP, REST请求
- tcpdump: 抓包工具,通过自带的与或非逻辑可以组合成复杂的过滤条件
- wireshark: 类似tcpdump的老牌抓包神器
- nmap: 网络开放端口扫描
- ip: 网络管理工具集
- fping: ping升级版
- netstat
- nicstat
- iptraf
程序调试
- gdb: gnu项目下的代码调试器
- strace: 打印出进程调用了哪些系统调用。
- ldd: 查看程序依赖库。
- objdump: 打印目标码和反汇编结果。
- xargs: 读取输入流并将读取的文本作为指定命令行工具的命令行参数。
- ipcs: 显示进程间通信设施状态
其他工具
- vim/nano: 文本编辑器
- grep, sed: 文本信息处理
- awk: 表处理,很强大的二维表处理功能,可以对格式化文本输出进行处理
- jq: 命令行的json查询和格式化工具,适合查看REST接口的输出
The post Linux | Linux系统全方位调试与维护工具整理 appeared first on 云飞机器人实验室.