刚入行的前端小张,第一次把项目部署到服务器,卡在了“Permission denied”上,折腾两小时才发现是没切到 root 用户;后端老李改完配置,顺手敲了 service nginx restart,结果发现命令不存在——这台 Ubuntu 机器早就换成了 systemctl restart nginx。类似的事,在真实开发环境里太常见了。
不是“要不要懂”,而是“躲不开”
网络开发不等于只写网页。只要你的代码要跑在真实服务器上(哪怕只是公司内网测试机),就大概率会接触 Linux:查日志用 tail -f /var/log/nginx/access.log,看端口占没占用用 lsof -i :3000,打包上传用 scp 或 rsync,连数据库调试还得 ssh 进去跑 mysql -u app -p。这些不是运维专属技能,是上线前必过的门槛。
哪些 Linux 能力最实用?
不用背《鸟哥私房菜》,但以下几类操作建议熟记:
文件与权限:
比如部署时提示 “EACCES: permission denied, mkdir '/app/build'”,多半是用户没权限写目标目录。这时候得知道 ls -l 看属主、chown -R deploy:deploy /app 改归属、chmod 755 /app 调权限。
进程与服务:
Node.js 服务挂了?先 ps aux | grep node 找进程,再 kill -9 PID 杀掉;想开机自启?Ubuntu 用 systemctl enable myapp.service,CentOS 7 之前可能得改 /etc/rc.local。
网络诊断:
页面打不开,别急着刷浏览器。先 curl -I http://localhost:8080 看 HTTP 头,再 netstat -tuln | grep 8080 确认端口是否监听,最后 ping 8.8.8.8 和 nslookup google.com 分步排查是网络层还是 DNS 问题。
开发环境也在往 Linux 靠
Docker 默认镜像基本都是 Debian/Alpine,本地用 WSL2 开发 Vue 或 React,终端里敲的全是 bash 命令;CI/CD 流水线脚本(比如 GitHub Actions 的 run 步骤)默认运行在 Ubuntu runner 上。你写的 npm run build && cp -r dist/* /var/www/html/,本质上就是在 Linux 环境下执行的一串指令。
说白了,Linux 不是“加分项”,它是网络开发工作流里那块看不见的底板——踩得稳,才能往上搭东西。
当然,不用硬啃内核源码。从每天部署时多看一眼报错、多敲一次 man 命令开始,慢慢就熟了。