0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测试工程师都在用的Linux命令清单(建议收藏)

汉通达 ? 2025-08-08 10:06 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作为一名工程师,熟练掌握Linux命令是基本功中的基本功。无论是日常工作中的系统维护,还是面试时的技术考核,Linux命令都是绕不开的核心技能。本文将从实战角度出发,系统梳理工程师必须掌握的Linux命令,并结合实际场景解析其应用方法。

一、文件和目录操作:基础中的基础

1.1 文件查看命令

# 查看文件内容
cat/etc/passwd # 显示完整文件内容
more /var/log/messages # 分页查看大文件
less /var/log/syslog # 更灵活的分页查看
head-20 /var/log/nginx.log # 查看文件前20行
tail-f /var/log/apache.log # 实时监控日志文件

面试常问:more和less的区别?

  • ?more只能向前翻页,less可以前后翻页
  • ?less占用内存更少,适合查看大文件
  • ?less支持搜索功能(/关键词)

1.2 文件查找命令

# find命令的高级用法
find /var/log -name"*.log"-mtime -7 # 查找7天内修改的日志文件
find /home -typef -size +100M # 查找大于100M的文件
find /etc -name"*.conf"-execgrep -l"port"{} \; # 查找包含port的配置文件

# locate命令(需要定期更新数据库)
updatedb # 更新文件数据库
locate nginx.conf # 快速定位文件

# which和whereis
whichpython3 # 查找命令路径
whereis nginx # 查找二进制文件、源码、手册位置

1.3 文件权限管理

# 权限查看和修改
ls-la /etc/passwd # 查看详细权限信息
chmod755 /usr/local/bin/script.sh # 修改权限
chmodu+x,g+r,o-w filename # 使用符号模式
chownnginx:nginx /var/www/html # 修改所有者和组
chgrpwww-data /var/log/nginx/ # 修改组所有权

# 特殊权限
chmod+t /tmp # 设置粘滞位
chmod+s /usr/bin/passwd # 设置SUID

二、系统监控与性能分析

2.1 系统资源监控

# CPU和内存监控
top # 实时查看系统状态
htop # 更美观的top
ps aux | grep nginx # 查看特定进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu |head-10 # 按CPU使用率排序

# 内存分析
free -h # 查看内存使用情况
cat/proc/meminfo # 详细内存信息
vmstat 1 5 # 每秒显示一次,共5次系统状态

2.2 磁盘空间管理

# 磁盘使用情况
df-h # 查看磁盘使用率
du-sh /var/log/* # 查看目录大小
du-ah /home |sort-rh |head-20 # 查找最大的20个文件/目录

# 磁盘IO监控
iostat -x 1 # 每秒显示磁盘IO统计
iotop # 实时查看进程IO使用情况

2.3 网络监控

# 网络连接状态
netstat -tulpn # 查看端口监听状态
ss -tulpn # 更现代的netstat替代品
lsof -i :80 # 查看80端口被哪个进程占用

# 网络流量监控
iftop # 实时网络流量监控
nethogs # 按进程显示网络使用情况
tcpdump -i eth0 port 80 # 抓包分析

三、文本处理与日志分析

3.1 文本处理三剑客

# grep:文本搜索
grep -r"error"/var/log/ # 递归搜索错误日志
grep -i"failed"/var/log/auth.log # 忽略大小写搜索
grep -v"INFO"/var/log/app.log |head-20 # 排除INFO级别日志
grep -E"192\.168\.1\.[0-9]+"access.log # 使用正则表达式

# sed:文本编辑
sed's/old/new/g'file.txt # 替换所有old为new
sed -n'10,20p'file.txt # 显示10-20行
sed -i's/DEBUG/INFO/g'config.conf # 直接修改文件
sed'/^#/d'config.conf # 删除注释行

# awk:文本分析
awk'{print $1}'/var/log/nginx/access.log # 提取第一列(IP地址)
awk -F:'{print $1}'/etc/passwd # 使用冒号分隔符
awk'$3 > 100 {print $0}'data.txt # 条件过滤

3.2 日志分析实战

# 分析访问日志
# 统计访问量最高的IP
awk'{print $1}'access.log |sort|uniq-c |sort-nr |head-10

# 统计404错误
awk'$9 == 404 {print $0}'access.log |wc-l

# 分析访问时间分布
awk'{print $4}'access.log |cut-d: -f2 |sort|uniq-c

# 统计不同状态码数量
awk'{print $9}'access.log |sort|uniq-c |sort-nr

四、进程管理与服务控制

4.1 进程管理

# 进程控制
kill-9 PID # 强制终止进程
killall nginx # 终止所有nginx进程
pkill -f"python script" # 按名称模式终止进程
pgrep -f nginx # 查找进程PID

# 后台任务管理
nohupcommand& # 后台运行命令
jobs # 查看后台任务
bg%1 # 将任务转到后台
fg%1 # 将任务调到前台

4.2 系统服务管理

# SystemD服务管理
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl reload nginx # 重载配置
systemctlenablenginx # 设置开机自启
systemctldisablenginx # 禁止开机自启
systemctl status nginx # 查看服务状态

# 查看服务日志
journalctl -u nginx # 查看nginx服务日志
journalctl -f -u nginx # 实时跟踪日志

五、网络配置与故障排查

5.1 网络配置

# IP配置
ip addr show # 查看IP地址
ip route show # 查看路由表
iplinkshow # 查看网络接口

# 传统网络命令
ifconfig eth0 # 查看网卡信息
route -n # 查看路由表
arp -a # 查看ARP表

5.2 网络故障排查

# 连通性测试
ping -c 4 google.com # 测试网络连通性
traceroute google.com # 追踪路由路径
mtr google.com # 实时路由追踪

# 端口测试
telnet 192.168.1.1 80 # 测试端口连通性
nc -zv 192.168.1.1 80 # 使用nc测试端口

六、压缩与备份

6.1 文件压缩

# tar命令
tar -czf backup.tar.gz /var/www/ # 创建压缩包
tar -xzf backup.tar.gz # 解压缩
tar -tzf backup.tar.gz # 查看压缩包内容
tar -czf backup-$(date+%Y%m%d).tar.gz /etc/ # 带日期的备份

# 其他压缩工具
zip -r backup.zip /var/www/ # 创建zip文件
unzip backup.zip # 解压zip文件
gzip file.txt # 压缩单个文件
gunzip file.txt.gz # 解压缩

6.2 数据同步

# rsync数据同步
rsync -avz /var/www/ user@remote:/backup/ # 同步到远程服务器
rsync -avz --delete /var/www/ /backup/ # 同步并删除目标多余文件
rsync -avz --exclude='*.log'/var/www/ /backup/ # 排除日志文件

七、系统安全与用户管理

7.1 用户管理

# 用户操作
useradd -m -s /bin/bash username # 创建用户
usermod -aGsudousername # 添加用户到sudo组
passwd username # 设置密码
userdel -r username # 删除用户及主目录

# 用户信息查看
idusername # 查看用户ID和组信息
who # 查看当前登录用户
w # 查看用户活动
last # 查看登录历史

7.2 系统安全

# 系统日志检查
tail-f /var/log/auth.log # 监控登录日志
grep"Failed password"/var/log/auth.log # 查找失败登录
grep"sudo"/var/log/auth.log # 查看sudo使用记录

# 文件完整性检查
md5sumfile.txt # 计算MD5值
sha256sumfile.txt # 计算SHA256值

八、高级命令技巧

8.1 命令组合与管道

# 复杂的命令组合
ps aux | grep nginx | grep -v grep | awk'{print $2}'| xargskill-9
# 查找nginx进程并终止

cat/var/log/nginx/access.log | grep"GET"| awk'{print $1}'|sort|uniq-c |sort-nr |head-10
# 统计GET请求最多的IP

find /var/log -name"*.log"-execgrep -l"error"{} \; | xargsls-la
# 查找包含error的日志文件并显示详细信息

8.2 脚本化运维

# 一键系统信息收集脚本
#!/bin/bash
echo"=== 系统信息 ==="> system_info.txt
uname-a >> system_info.txt
echo"=== CPU信息 ===">> system_info.txt
cat/proc/cpuinfo | grep"model name"|head-1 >> system_info.txt
echo"=== 内存信息 ===">> system_info.txt
free -h >> system_info.txt
echo"=== 磁盘信息 ===">> system_info.txt
df-h >> system_info.txt
echo"=== 网络信息 ===">> system_info.txt
ip addr show >> system_info.txt

九、面试常见问题解答

9.1 性能调优相关

Q: 如何查看系统负载?

uptime # 查看系统负载
cat/proc/loadavg # 详细负载信息
w # 查看负载和用户

Q: 如何排查CPU使用率过高?

top -p PID # 监控特定进程
strace -p PID # 跟踪系统调用
perf top # 性能分析工具

9.2 存储管理相关

Q: 如何找出占用空间最大的文件?

du-ah /var |sort-rh |head-20
find /var -typef -size +100M -execls-lh {} \;

Q: 如何监控文件系统使用情况?

df-h # 查看磁盘使用率
inotifywait -m /var/log/ # 监控文件变化

十、实战场景演练

10.1 服务器故障排查流程

# 1. 系统基本信息检查
uptime&& free -h &&df-h

# 2. 进程状态检查
ps aux |head-20
top -n 1 |head-20

# 3. 网络状态检查
netstat -tulpn | grep LISTEN
ss -tulpn

# 4. 日志检查
tail-50 /var/log/messages
journalctl -xe

10.2 日常维护脚本

#!/bin/bash
# 系统健康检查脚本
LOG_FILE="/var/log/health_check.log"
DATE=$(date'+%Y-%m-%d %H:%M:%S')

echo"[$DATE] 开始系统健康检查">>$LOG_FILE

# 检查磁盘使用率
DISK_USAGE=$(df-h | grep -E"8[0-9]%|9[0-9]%|100%")
if[ ! -z"$DISK_USAGE"];then
echo"[$DATE] 警告:磁盘使用率过高">>$LOG_FILE
echo"$DISK_USAGE">>$LOG_FILE
fi

# 检查内存使用率
MEM_USAGE=$(free | grep Mem | awk'{print ($3/$2) * 100.0}')
if(( $(echo "$MEM_USAGE>90" | bc -l) ));then
echo"[$DATE] 警告:内存使用率过高:$MEM_USAGE%">>$LOG_FILE
fi

# 检查系统负载
LOAD_AVG=$(uptime| awk -F'load average:''{print $2}'|cut-d, -f1 |tr-d' ')
if(( $(echo "$LOAD_AVG>2.0" | bc -l) ));then
echo"[$DATE] 警告:系统负载过高:$LOAD_AVG">>$LOG_FILE
fi

echo"[$DATE] 系统健康检查完成">>$LOG_FILE

总结

掌握这些Linux命令不仅能帮助你在面试中脱颖而出,更重要的是能在实际工作中提高效率,快速定位和解决问题。记住,命令只是工具,真正的技能在于理解系统原理,能够根据实际情况灵活运用这些命令。

作为工程师,建议你:

  1. 1. 多动手实践,在测试环境中反复练习
  2. 2. 理解每个命令的工作原理,不只是记忆用法
  3. 3. 学会组合使用命令,提高工作效率
  4. 4. 关注系统安全,养成良好的运维习惯
  5. 5. 持续学习新的工具和技术

希望这篇文章能帮助你在Linux运维的道路上更进一步!

声明:


本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11534

    浏览量

    214824
  • 测试工程师
    +关注

    关注

    6

    文章

    126

    浏览量

    12798
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    诚聘硬件测试工程师

    猎头职位:硬件测试工程师【上海】职位描述:1. 基于需求设计测试用例;2. 进行硬件及产品测试(包括主板及整机的硬件测试,可靠性测试),对硬
    发表于 12-09 10:52

    诚聘硬件测试工程师

    猎头职位:硬件测试工程师【北京】岗位职责:1.根据产品需求规格和技术规格书设计测试方案、测试用例;2.能够指导测试工程师的日常测试工作,负责
    发表于 05-25 11:54

    测试工程师的进阶

    眼前一亮的“新潮”产品。很多人可能没有意识到,每一款产品背后的生产流程是多么的关键,因为产品的可用性和功能性必须能够达到预期目标。而且在每一步生产过程中,测试工程师都付出了艰辛和心血。 现在,整个行业都缺乏
    发表于 07-02 08:21

    测试工程师心得总结

    测试工程师总结,也许得大家有帮助,献丑了,
    发表于 03-04 16:46 ?0次下载

    顶尖工程师们,都在用的App“神器”!

    春节长假翻篇,各位工程师大大们欢乐开工~今天小编要为大家盘点顶尖工程师都在用的APP 春节长假翻篇, 各位工程师大大们欢乐开工~ 今天小编要为大家盘点 顶尖
    发表于 02-09 01:47 ?876次阅读

    软件测试工程师需要具备哪些必须的技能

    软件测试工程师,工作之余应该看些什么、学些什么?
    的头像 发表于 09-20 10:40 ?7915次阅读

    emc测试工程师前景分析_emc测试工程师待遇及岗位职责

    本文首先介绍了EMC测试的概念和分类,其次介绍了EMS测试内容与测试标准,最后介绍了EMC测试工程师就业前景、岗位职责及工作待遇。
    发表于 05-03 14:08 ?2.1w次阅读

    测试工程师工作流程有哪些

    测试工程师的工作流程,与公司的整体工作流程,项目的测试要求等因素相关。本文主要讨论测试工程师的一般工作流程。
    的头像 发表于 10-03 16:56 ?8169次阅读

    软件测试工程师的职业要求有哪些

    现在很多新手都问,做测试工程师怎么入手啊,需要哪些技术啊。。。
    的头像 发表于 09-29 10:26 ?5995次阅读

    如何定义测试工程师

    最近正是一年一度的找工作高峰期,而我作为公司的面试人员,也见了不少应聘者。总体感觉,大家对测试工程师认识不够,不太明白这个工作是做什么的,发展方向以及发展空间什么的。所以今天我们就抽个空,闲聊一下测试工程师
    的头像 发表于 10-10 09:54 ?4317次阅读

    软件测试工程师的发展方向有哪些

    一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。
    的头像 发表于 02-21 14:49 ?4932次阅读

    软件测试工程师的素质

    开发一个好的软件,40%以上的时间用在测试上,所以软件测试工程师非常重要,用我们的话来说很吃香。现在从事程序员的人有很多,做测试工程师的人少点,工作压力不太大
    的头像 发表于 07-04 17:32 ?3565次阅读

    测试工程师怎样和开发工程师进行有效的交流

    作为测试工程师,在日常工作中接触最多的当然是团队中的开发工程师,如何和开发工程师进行有效的交流是测试工程师面对的重要问题。一般来说,在一个团队中,总是有开发人员喜欢和不喜欢的
    的头像 发表于 07-06 11:10 ?4230次阅读

    Linux 命令大全建议收藏

    本文为 Linux 命令大全,从 A 到 Z 都有总结,建议大家收藏以便查用,或者查漏补缺!
    的头像 发表于 05-12 10:53 ?1232次阅读

    Linux下的stress-ng压力测试工具介绍

    今天浩道跟大家分享Linux下一款强大的压力测试工具------stress-ng,这款测试工具对于运维工程师或者测试工程师,还是比较受欢迎
    的头像 发表于 11-03 09:31 ?1.1w次阅读
    <b class='flag-5'>Linux</b>下的stress-ng压力<b class='flag-5'>测试工</b>具介绍