一、为什么前端也要会 Linux 命令
很多线上问题最后都会落到这几个动作:
- 看日志:到底哪一步报错了。
- 查进程:服务是不是挂了。
- 查端口:请求为什么连不上。
- 查文件:配置到底有没有生效。
会这些基础命令,你定位问题的速度会快很多。
二、文件与目录操作
1) pwd:查看当前目录
1 | pwd |
适合在你切了很多层目录后快速确认当前位置。
2) ls:查看目录内容
1 | ls |
-l:显示详细信息(权限、大小、时间)。-a:显示隐藏文件(例如.env、.gitignore)。
3) cd:切换目录
1 | cd /var/log |
4) mkdir:创建目录
1 | mkdir logs |
-p可以一次创建多层目录,不会因父目录不存在而报错。
5) cp / mv:复制与移动
1 | cp app.log app.log.bak |
6) rm:删除(高风险命令)
1 | rm test.txt |
注意:
rm -rf删除后通常无法恢复。- 线上环境删除前先
ls一次确认路径。
三、文本查看与检索(排障核心)
1) cat / less:查看文件内容
1 | cat package.json |
- 大文件优先用
less,更适合翻页搜索。
2) head / tail:看开头和结尾
1 | head -n 20 app.log |
tail -f可实时追踪日志,非常适合看服务启动过程。
3) grep:按关键词过滤
1 | grep "ERROR" app.log |
-n输出行号,方便定位。-R递归搜索目录。
4) find / rg:按文件名或内容查找
1 | find . -name "*.md" |
find擅长找文件和目录。rg(ripgrep)搜索文本内容更快,工程内全文搜索优先用它。
四、权限与用户
1) chmod:修改权限
1 | chmod 755 deploy.sh |
+x表示给脚本增加可执行权限。
2) chown:修改拥有者
1 | sudo chown -R user:user /var/www/project |
3) sudo:以管理员权限执行
1 | sudo systemctl restart nginx |
注意:sudo 不要滥用,只在必要时使用。
五、进程与端口排查(线上问题高频)
1) ps / top:查看进程
1 | ps -ef | grep node |
2) lsof / ss:查看端口占用
1 | lsof -i :3000 |
场景:前端项目启动提示 Port 3000 is already in use。
3) kill:结束进程
1 | kill 12345 |
- 先尝试普通
kill,无效再用kill -9。
六、网络与接口调试
1) ping:检查连通性
1 | ping github.com |
2) curl:请求接口
1 | curl https://api.github.com |
3) wget:下载文件
1 | wget https://example.com/file.zip |
七、3 个高频组合命令(建议直接记住)
1) 持续看错误日志
1 | tail -f app.log | grep --line-buffered "ERROR" |
2) 找到并结束占用 3000 端口的进程
1 | lsof -i :3000 |
3) 全项目搜索某个配置项
1 | rg "CF_WEB_ANALYTICS_TOKEN" . |
八、面试常见问法
- 你平时怎么排查服务启动失败?
- 先看进程,再查端口,最后看日志。
chmod 755是什么意思?- 拥有者可读写执行,组和其他用户可读执行。
- 你常用哪些日志排查命令?
tail -f、grep、less、head/tail。