结合软件测试(出海游戏/SDK测试、自动化测试、性能测试等)的日常工作场景,覆盖文件操作、查找检索、进程网络、日志分析、批量处理、性能监控、权限管理等核心高频场景,不局限于服务器部署和基础日志查看,命令附带测试场景解读+常用参数,可直接复用。
一、基础文件/目录操作(测试高频:建测试目录、传测试文件、重命名测试用例/日志)
测试中常需创建多层测试目录、跨目录复制测试文件、快速重命名测试日志,以下是最实用的命令,参数聚焦测试场景。
| 命令 | 常用参数/示例 | 测试场景解读 |
|---|---|---|
ls | ls -lh(人性化显示大小)、ls -la(显示所有文件/隐藏文件)、ls -rt(按修改时间倒序) | 查看测试目录下的用例、日志、包文件,-rt快速找最新修改的测试文件 |
cd | cd ~(回主目录)、cd -(返回上一次目录)、cd /usr/local/test(绝对路径) | 快速切换测试目录,避免反复输入长路径 |
mkdir | mkdir -p test/{case,log,package}(递归创建多层目录) | 一次性创建测试用例、日志、安装包的分层目录,适配测试工程化管理 |
cp | cp -rf /local/test.log /server/log/(递归强制复制) | 把本地测试日志/用例复制到服务器,-f覆盖已存在文件无需确认 |
mv | mv old_test.log test_20260203.log(重命名)、mv *.log /backup/(批量移动) | 重命名测试日志(按日期标识)、批量移动过期测试文件到备份目录 |
touch | touch test{1..100}.txt(批量建空文件)、touch error.log(单文件) | 生成空测试文件(用于边界值测试:0KB文件、批量小文件) |
rm | rm -rf test_temp/(递归强制删除)、rm -f *.tmp(批量删临时文件) | 删除测试临时目录/文件,注意:严禁直接用rm -rf /,操作前确认路径! |
scp | scp -r local_dir root@192.168.1.100:/server/test/(本地传服务器)scp root@192.168.1.100:/server/log/test.log ./(服务器传本地) | 跨服务器传输测试包、日志、用例文件,-r用于目录,需知道服务器账号密码 |
二、文件内容查看/编辑(测试高频:看测试日志、临时改配置文件、提取日志内容)
覆盖短日志快速看、长日志翻页、实时监控日志、临时编辑测试配置,适配测试查日志、改临时配置的需求。
| 命令 | 常用参数/示例 | 测试场景解读 |
|---|---|---|
cat | cat test.log(简单查看)、cat -n test.log(显示行号) | 查看短测试日志/配置文件,-n方便定位日志报错行 |
tac | tac test.log | 倒序查看文件,适合看日志的最新内容在开头的场景(如部分服务日志) |
less/more | less test.log(翻页,支持↑↓/pgup/pgdn,q退出) | 查看超长测试日志/配置文件,less比more更灵活(支持回翻) |
head/tail | head -20 test.log(看前20行)、tail -50 test.log(看后50行)tail -f test.log(实时监控日志)、tail -F test.log(日志切割后仍监控) | 测试核心命令:tail -f实时看服务运行日志(复现bug时监控),tail -50快速找最新报错 |
vim | 基础操作:i(编辑)、Esc(退出编辑)、:wq(保存退出)、:q!(不保存退出)vim +100 test.log(直接跳转到100行) | 临时编辑测试配置文件(如SDK的配置、服务的启动参数)、定位日志报错行 |
sed | sed -n '50,100p' test.log(提取50-100行)、sed -i 's/old/new/g' test.conf(批量替换配置) | 无需打开文件,直接提取日志指定行、批量替换配置文件内容(测试临时改配置超实用) |
三、文件查找/内容检索(测试高频:找测试文件、日志搜报错关键字、检索用例内容)
测试中常需按名称/大小/时间找测试文件、在海量日志中搜报错/用例关键字,以下命令是「测试排查问题的核心工具」。
1. 按文件属性查找:find(找文件/目录本身)
find查找路径 -参数 条件# 通用格式find/server/test -name"*.log"# 按名称找所有日志文件find/local/case -type f -size +100M# 找大于100M的测试用例文件(f=文件,d=目录)find/logs -mtime -7# 找7天内修改的测试日志(-7=7天内,+7=7天前)find/test -name"test*"-delete# 查找并删除以test开头的文件(慎用)2. 按文件内容检索:grep(测试最高频,日志排查必备)
grep关键字 文件名# 通用格式grep-n"error"test.log# 查找错误,-n显示行号(方便定位报错位置)grep-i"Timeout"test.log# -i忽略大小写(适配日志关键字大小写不统一)grep-v"info"test.log# -v排除指定内容(只看非info的日志,过滤冗余)grep-r"testCase001"/server/test/# -r递归检索目录下所有文件(找用例/日志中的指定用例名)grep-A5 -B3"Exception"test.log# 显示报错后5行+前3行(-A后,-B前,看报错上下文,测试必备)# 组合用法:多条件过滤grep"2026-02-03"test.log|grep-i"error\|timeout"# 找指定日期的错误/超时日志3. 其他查找命令
| 命令 | 示例 | 测试场景解读 |
|---|---|---|
which | which java、which adb | 找命令的安装路径(测试查工具/服务的安装位置,如SDK依赖的java) |
whereis | whereis nginx | 找命令/程序的所有相关文件(比which更全面) |
四、进程管理(测试高频:排查测试服务进程、杀僵死进程、查看进程资源占用)
测试中常需启动/停止测试服务、排查服务是否启动、杀僵死的测试进程/模拟器进程,适配SDK/游戏服务的进程排查。
| 命令 | 常用参数/示例 | 测试场景解读 |
|---|---|---|
ps | ps -ef(全量显示进程,含PID/父进程/命令)、ps aux(显示进程+资源占用) | 基础查进程,`ps -ef |
pgrep | pgrep -f test_server | 直接按进程名查PID,比`ps -ef |
top | 实时监控,按P(按CPU排序)、M(按内存排序)、k(杀进程)、q(退出) | 实时看进程的CPU/内存占用(测试性能场景:看服务是否内存泄漏、CPU飙高) |
htop | 直接输入htop | 比top更友好(彩色显示、鼠标操作),需安装(yum install htop/apt install htop) |
pstree | pstree -p(显示进程树+PID) | 看进程的父子关系(测试排查:服务是否启动了子进程、僵死进程的父进程是谁) |
kill | kill 1234(正常终止PID=1234的进程)、kill -9 1234(强制杀死) | 终止进程,-9用于僵死进程(如测试服务卡死、模拟器进程关不掉) |
pkill | pkill -9 test_server | 直接按进程名强制杀进程,无需查PID(批量杀同名测试进程超实用) |
nohup | nohup ./start_test_server.sh & | 后台启动测试服务,关闭终端后服务仍运行(测试长时间跑自动化/性能用例时用) |
五、网络管理(测试高频:测端口连通、看监听端口、抓包、测HTTP接口)
适配SDK网络测试、游戏服务网络排查、接口测试,覆盖端口、连通性、抓包、接口调用,是网络相关测试的核心命令。
| 命令 | 常用参数/示例 | 测试场景解读 |
|---|---|---|
ifconfig/ip addr | 直接输入,ip addr是新版Linux推荐 | 查看服务器/测试机的IP地址、网卡信息(测试必看,确认测试环境IP) |
ping | ping 192.168.1.100 -c 4(指定ping4次)、ping baidu.com | 测试网络连通性(判断测试机与服务器、服务器与外网是否通) |
netstat | netstat -tulnp(核心!tcp/udp/监听/进程/端口) | 测试必备命令:查看端口是否被监听、端口对应的进程PID 参数:t(tcp)u(udp)l(监听)n(数字显示IP) p(关联进程) |
ss | ss -tulnp | 替代netstat的新版命令,速度更快,参数与netstat一致 |
telnet/nc | telnet 192.168.1.100 8080(测端口连通)nc -zv 192.168.1.100 8080(nc更通用,无telnet时用) | 测试端口是否开放(SDK/服务的端口是否能访问,比ping更精准,ping通≠端口通) |
tcpdump | tcpdump -i eth0 port 8080 -w test.pcap(抓eth0网卡8080端口的包,保存为pcap)tcpdump -i any host 192.168.1.100(抓所有网卡与指定IP的通信包) | 网络抓包分析(测试SDK/游戏的网络请求异常时,抓包给开发定位,可用Wireshark打开pcap文件) |
curl | curl http://192.168.1.100:8080/api/test(GET请求)curl -X POST -d "name=test" http://xxx/api(POST请求)curl -v http://xxx(显示详细请求过程) | 接口测试核心命令:无需Postman,直接在Linux上测HTTP/HTTPS接口,排查接口是否正常返回 |
wget | wget http://xxx/test_package.zip(下载文件)、wget -O new_name.zip http://xxx(重命名下载) | 下载测试包/SDK安装包到服务器,无需本地传文件 |
六、日志分析进阶(测试超高频:组合命令排查日志,覆盖90%的日志场景)
单独的tail/grep满足不了复杂日志排查,以下组合命令是测试查日志的「杀手锏」,适配海量日志、多条件过滤、统计报错等场景。
# 1. 实时监控日志并过滤错误/异常(复现bug时用,只看关键报错)tail-f test.log|grep-i"error\|exception\|timeout"# 2. 查找指定日期的日志(日志含时间戳,如2026-02-03)grep"2026-02-03 14:00-15:00"test.log|grep"error"# 3. 统计日志中某类错误的出现次数grep-c"NullPointerException"test.log# -c统计行数(错误次数)# 4. 查找报错并保存到新文件(方便发给开发定位)grep-A10 -B5"error"test.log>error_detail.log# 5. 按日志关键字去重并统计次数(看哪种错误出现最多)grep"error"test.log|cut-d":"-f5|sort|uniq-c|sort-nr# 6. 查看日志中最大的行(排查是否有超大日志行导致服务卡死)wc-L test.log# -L显示文件中最长行的字符数七、性能监控(测试高频:性能测试、服务稳定性测试,看CPU/内存/磁盘/IO)
适配性能测试场景,监控服务器的CPU、内存、磁盘、IO使用率,判断服务是否存在性能瓶颈,无需专业监控工具即可快速排查。
| 命令 | 常用参数/示例 | 测试场景解读 |
|---|---|---|
free | free -h(人性化显示内存,-m按MB显示) | 查看内存使用情况(总内存/已用/空闲/缓存,测试看是否内存泄漏) |
df | df -h(人性化显示磁盘)、df -h /(看根目录磁盘) | 查看磁盘使用率(测试必看:日志/测试文件是否占满磁盘,导致服务崩溃) |
du | du -sh /server/test/(查看目录总大小)、du -lh --max-depth=1 /logs/(看目录下各子目录大小) | 查看目录/文件的实际大小(找大日志/大测试文件,清理磁盘) |
vmstat | vmstat 1 10(每秒刷新1次,共10次) | 查看系统整体状态(CPU/内存/磁盘IO/进程状态,性能测试长期监控) |
iostat | iostat -x 1(每秒刷新,显示磁盘IO详细信息) | 查看磁盘IO使用率(测试看磁盘读写是否过高,导致服务响应慢) |
sar | sar -u 1 10(监控CPU)、sar -n DEV 1 10(监控网卡流量) | 历史性能监控(需安装),适合测试后复盘性能数据 |
八、批量文件操作(测试高频:批量生成/重命名/删除测试文件,适配边界值测试)
测试中常需批量生成测试文件(如1000个0KB文件、100个1M文件)、批量重命名日志,以下命令无需脚本,直接实现批量操作。
# 1. 批量创建文件(边界值测试:100个空文件、按序号命名)touchtest_case{1..100}.txt# 2. 批量重命名文件(把所有.log文件加日期后缀,如test.log→test_20260203.log)forfilein*.log;domv$file${file%.log}_20260203.log;done# 3. 批量压缩日志文件(把3天前的日志批量压缩,节省磁盘)find/logs -name"*.log"-mtime +3 -exectar-zcvf{}.tar.gz{}\;# 4. 批量删除过期测试文件(删除7天前的.tmp临时文件)find/test -name"*.tmp"-mtime +7 -delete# 5. 批量替换多个配置文件的内容(把所有.conf中的old_ip换成new_ip)sed-i's/192.168.1.100/192.168.1.200/g'*.conf九、压缩/解压(测试高频:解压测试包/SDK包、压缩测试日志/用例)
Linux下最常用的tar/zip/gzip格式,适配测试包的解压部署、日志的压缩备份。
| 压缩格式 | 解压命令 | 压缩命令 | 测试场景解读 |
|---|---|---|---|
| tar.gz | tar -zxvf test.tar.gz -C /server/test/ | tar -zcvf test.tar.gz /local/test/ | 最常用格式,适合压缩目录/多个文件,-C指定解压目录 |
| tar | tar -xvf test.tar -C /test/ | tar -cvf test.tar /test/ | 无gzip压缩,速度快 |
| zip | unzip test.zip -d /test/ | zip -r test.zip /test/ | 跨平台格式(Windows/Linux通用),测试包常用 |
| gz | gunzip test.log.gz | gzip test.log | 单文件压缩,压缩后原文件消失 |
参数说明:z(gzip)、x(解压)、c(压缩)、v(显示过程)、f(指定文件名)、r(递归)
十、权限/用户操作(测试高频:排查测试文件/服务权限问题、提权执行命令)
测试中常遇到文件权限不足(如服务无法读写日志)、需要root权限启动服务,以下命令快速解决权限问题。
# 1. 改文件/目录权限(数字权限:7=读+写+执行,5=读+执行,4=读)chmod755start_test.sh# 给脚本执行权限(测试启动服务必备)chmod644test.log# 日志文件:属主读写,其他只读chmod-R755/server/test/# 递归改目录下所有文件权限# 2. 改文件属主/属组(解决“权限拒绝”,如把文件给test用户)chown-R test:test /server/test/# 属主=test,属组=test# 3. 提权执行命令(需要root权限时用)sudo./start_server.sh# 临时提权执行脚本sudosu- root# 切换到root用户(需输入当前用户密码)# 4. 查当前用户/权限whoami# 查当前用户名id# 查当前用户的UID/GID/属组十一、其他实用小命令(测试高频,小巧但超实用)
| 命令 | 示例 | 测试场景解读 |
|---|---|---|
wc | wc -l test.log(统计行数)、wc -w test.log(统计单词数) | 统计测试用例数、日志行数(测试统计用) |
date | date +"%Y-%m-%d %H:%M:%S"(显示当前时间戳) | 生成日期后缀(重命名日志/文件),如touch test_$(date +%Y%m%d).log |
history | history(查历史命令)、!50(执行第50条命令)、!grep(执行上一条grep) | 快速复用之前的测试命令,无需重新输入 |
md5sum | md5sum test_package.zip | 校验测试包/SDK包的完整性(对比官方MD5,防止文件损坏) |
ln | ln -s /server/test/log /local/log(创建软链接) | 给测试日志/配置创建软链接,快速访问(无需记长路径) |
clear | 直接输入 | 清屏(日志太多时,清屏方便查看新内容) |
十二、测试常用组合命令汇总(直接复制使用,覆盖90%的测试场景)
# 1. 查端口8080对应的进程(排查端口被占用)netstat-tulnp|grep8080或 ss -tulnp|grep8080# 2. 查进程java对应的所有端口ps-ef|grepjava|grep-vgrep|awk'{print $2}'|xargsnetstat-tulnp|grep{}# 3. 实时监控日志并过滤关键字,同时保存到文件tail-f test.log|grep-i"error"|teeerror_real.log# 4. 找服务器上所有大于2G的日志文件(清理磁盘)find/ -type f -name"*.log"-size +2G|xargsdu-sh# 5. 批量杀死所有java进程(测试重启所有java服务时用)pkill-9 java# 6. 测试接口并显示详细请求/响应(接口测试排查)curl-v http://192.168.1.100:8080/api/test --header"Content-Type:application/json"# 7. 抓包并保存,仅抓tcp协议8080端口(网络SDK测试)tcpdump -i any tcp port8080-w test_tcp.pcap十三、测试操作注意事项
rm -rf慎用:操作前用ls确认路径,避免删除重要测试文件/系统文件;- 提权操作:使用
sudo时确认命令是否正确,避免误操作; - 抓包/性能监控:不要长时间运行(如
tcpdump、top),避免占用服务器资源; - 日志备份:删除大日志前建议先压缩备份,防止后续需要排查问题;
- 组合命令:善用管道
|(把前一个命令的输出作为后一个的输入)和重定向>/>>(>覆盖,>>追加),提升效率。
以上命令覆盖软件测试工程师在Linux环境下的日常操作、问题排查、测试执行全场景,建议收藏备用,常用命令多敲几次即可熟练掌握。