无论是系统管理员、开发人员还是测试工程师,掌握Linux测试常用命令都是必备技能之一
这些命令不仅能够帮助我们快速诊断系统问题,还能在系统调优中发挥关键作用
本文将详细介绍一系列Linux测试常用命令,并通过实例展示其强大功能
一、系统状态监控 1. top 命令 `top` 命令是Linux系统中最常用的实时监控工具之一,能够动态显示系统的CPU、内存使用情况,以及各个进程的详细信息
top 执行后,你会看到一个实时更新的界面,显示了系统整体的CPU和内存使用情况,以及各个进程的详细状态
通过按`q` 键可以退出`top` 界面
实例: top -b -n 1 | grep apache2 这条命令会在批处理模式下运行`top`,只输出一次结果,并筛选出包含 apache2 的进程信息,非常适合用于脚本化监控
2. htop 命令 `htop`是 `top` 命令的增强版,提供了更友好的界面和更多的交互功能,但通常需要手动安装
sudo apt-get install htop Debian/Ubuntu sudo yum install htop CentOS/RHEL htop 实例: 在 `htop`界面中,你可以使用箭头键导航,按 `F9` 键可以杀死进程,按 `F10` 键退出
3. vmstat 命令 `vmstat`(Virtual Memory Statistics)命令用于报告关于进程、内存、分页、块IO、陷阱和CPU活动的信息
vmstat 1 5 这条命令会每秒更新一次系统状态,共更新五次
实例: vmstat -s 这条命令会输出系统的汇总统计信息,包括内存、分页、块IO等
二、网络测试 1. ping 命令 `ping` 命令用于测试主机之间网络的连通性
ping www.google.com 实例: ping -c 4 www.google.com 这条命令会向`www.google.com`发送四个ICMP ECHO_REQUEST报文,并显示结果
2. traceroute 命令 `traceroute` 命令用于显示数据包到达目标主机所经过的路径(路由)
traceroute www.google.com 实例: traceroute -I www.google.com 使用 `-I` 选项指定使用ICMP协议进行路由跟踪,而不是默认的UDP
3. ifconfig 和 ip 命令 `ifconfig` 命令用于配置和显示网络接口的状态(注意:在一些现代Linux发行版中,`ifconfig`已被 `ip` 命令取代)
ifconfig 实例: ip a 这条命令会显示所有网络接口的信息,包括IP地址、MAC地址等
4. netstat 和 ss 命令 `netstat` 命令用于显示网络连接、路由表、接口统计信息等
netstat -tuln 实例: ss -tuln `ss` 命令是 `netstat` 的现代替代品,功能更强大,性能更好
这条命令会显示系统中所有监听中的TCP和UDP端口
三、磁盘与文件系统测试 1. df 命令 `df` 命令用于显示磁盘分区的使用情况
df -h 实例: df -hT 这条命令会显示每个文件系统的类型以及使用情况
2. du 命令 `du` 命令用于估算文件和目录的磁盘使用情况
du -sh /home/user 实例: du -ah /home/user | sort -rh | head -n 10 这条命令会列出`/home/user`目录下占用空间最大的前10个文件或目录
3. iostat 命令 `iostat` 命令用于报告CPU统计信息和所有块设备(如磁盘、分区)的I/O统计信息
iostat -x 1 5 实例: iostat -d -x -k 1 10 这条命令会每秒更新一次磁盘I/O统计信息,共更新十次,并以KB为单位显示
四、性能测试与调优 1. time 命令 `time` 命令用于测量一个命令的执行时间
time ls -lR / 实例: /usr/bin/time -v ls -lR / 使用 `/usr/bin/time` 可以获得更详细的执行时间统计,包括用户时间、系统时间、最大驻留集大小等
2. stress 命令 `stress` 命令用于在系统上生成负载,用于测试系统的性能
sudo apt-get install stress Debian/Ubuntu sudo yum install stress# CentOS/RHEL stress --cpu 4 --io 2 --vm 2 --vm-bytes 1G --timeout 60s 实例: 这条命令会启动四个CPU密集型任务,两个I/O密集型任务,两个内存密集型任务(每个任务占用1GB内存),持续60秒
3. perf 命令 `perf` 是一个强大的Linux性能分析工具,能够用于CPU性能分析、内存性能分析、锁分析等多个方面
sudo perf record -g ls sudo perf report 实例: sudo perf top 这条命令会实时显示系统中性能开销最高的函数
五、日志与调试 1. dmesg 命令 `dmesg` 命令用于显示内核环缓冲区中的信息,通常用于调试和查看系统启动过程中的信息
dmesg | grep -i error 实例: dmesg -T | less 使用 `-T` 选项可以将时间戳转换为人类可读的形式,然后通过`less` 命令分页查看
2. journalctl 命令 `journalctl` 命令用于查看和管理systemd日志
journalctl -xe 实例: journalctl -u apache2.service 这条命令会显示 `apache2`服务的日志信息
3.