你好,我是小志。
做测试这几年,Linux和Docker算是每天都要打交道的东西。查日志、看进程、进容器、清镜像……翻来覆去就那几十条命令,但每次想用的时候,总有那么几条记不住,还得现搜。
今天干脆把这两块合并到一起,整理一份测试日常高频会用到的命令速查。不搞大而全的“命令大全”,就按实际场景来——什么场景敲什么命令,怎么组合着用,都是平时最顺手的那几招。
Linux部分:查日志、看端口、定位进程、看磁盘内存这些;Docker部分:容器启停、进容器、看日志、清镜像。两份放一起,用的时候翻一翻,省得再到处搜。
# 实时查看日志tail -f app.log# 查看最后100行tail -n 100 app.log# 搜索关键词(带上下文,显示前后5行)grep -C 5 "ERROR" app.log# 实时监控特定关键词tail -f app.log | grep "ERROR"# 查看某个时间段的日志sed -n '/2025-03-27 10:00/,/2025-03-27 11:00/p' app.log
# 查看端口占用(两种方式)netstat -tunlp | grep 8080lsof -i:8080# 查看进程ps -ef | grep java# 查看进程树(12345是进程ID)pstree -p 12345# 杀掉进程kill -9 12345
# 实时看CPU和内存tophtop# 看CPU使用率(1秒刷新)vmstat 1# 看内存使用free -h# 看磁盘IOiostat -x 1# 统计端口连接数netstat -an | grep 8080 | wc -l
# 查看磁盘使用情况df -h# 查看当前目录下每个文件夹的大小du -sh *# 查找大于100M的文件find / -type f -size +100M# 统计日志行数wc -l app.log# 统计错误条数grep "ERROR" app.log | wc -l
# 提取第一列awk '{print $1}' app.log# 统计某个字段的分布(按出现次数倒序)grep "接口调用" app.log | awk '{print $5}' | sort | uniq -c | sort -rn# 替换文本sed 's/old/new/g' file.txt
# 查看运行中的容器docker ps# 查看所有容器(包括停止的)docker ps -a# 启动/停止/强制停止容器docker start 容器IDdocker stop 容器IDdocker kill 容器ID# 删除容器docker rm 容器ID# 创建并运行容器(后台运行,端口映射,命名)docker run -d -p 8080:8080 --name myapp nginx
# 进入容器(交互式终端)docker exec -it 容器ID /bin/bashdocker exec -it 容器ID sh# 不进容器,直接执行容器内命令docker exec 容器ID cat /app/logs/app.log
# 实时查看容器日志docker logs -f 容器ID# 查看最近100行docker logs --tail 100 容器ID# 带时间戳查看docker logs -t 容器ID
# 查看本地镜像docker images# 拉取镜像docker pull nginx:latest# 删除镜像docker rmi 镜像ID# 清理无用镜像(删除没有被容器使用的镜像)docker image prune -a# 一键清理(停止的容器、未使用的镜像、网络)docker system prune -a
# 实时查看容器资源占用docker stats# 查看容器详细信息(JSON格式)docker inspect 容器ID
# 查看挂载的卷docker volume ls# 查看卷的具体位置docker volume inspect 卷名
# 组合1:实时监控某个接口的错误日志docker logs -f 容器ID | grep "接口名" | grep "ERROR"# 组合2:统计今天的错误次数grep "2025-03-27" app.log | grep "ERROR" | wc -l# 组合3:找出最耗时的接口(假设日志最后一位是耗时)grep "接口耗时" app.log | awk '{print $NF}' | sort -rn | head -10# 组合4:清理所有停止的容器和未使用的镜像docker container prune -y && docker image prune -a -y# 组合5:进入容器查日志定位问题docker exec -it 容器ID bashtail -100 app.loggrep "ERROR" app.log | tail -20
我是小志,我们路上见。
-------------------------------









