后端要熟悉的Linux常用命令与Vim效率
做后端有个绕不开的事实:你的代码最终大多跑在 Linux 服务器上。出了问题你未必能开图形界面,往往就是 SSH 进去敲命令。命令熟不熟,直接决定了你排障是两分钟还是两小时。这篇文章不堆砌所有命令,只挑后端最高频、最能形成组合拳的那些。
一、文件与目录
ls -lh # 人类可读地列目录
cd /var/log/app # 进日志目录
tail -f app.log # 实时看日志尾部(排障神器)
find . -name "*.java" # 按名找文件
cp a.conf a.conf.bak # 改前先备份,老习惯了
tail -f 配合日志级别调高,是看线上实时行为最直接的手段,比各种监控面板有时还快。
二、查看与管道
Linux 的哲学是"每个命令只做一件事,用管道串起来"。后端排查几乎天天用:
cat app.log | grep -R "ERROR" . # 全量搜错误
ps aux | grep java # 看 java 进程
journalctl -u nginx --since "1h ago" # 看某服务的系统日志
| 命令 | 用处 | 后端场景 |
|---|---|---|
| grep -R | 递归搜内容 | 在代码/日志里定位关键字 |
| ps aux | 看进程 | 确认服务是否起来、占多少内存 |
| head/tail | 看头尾 | 日志抽样、实时跟踪 |
| wc -l | 计数 | 统计报错条数 |
| sort/uniq -c | 排序去重计数 | 统计 top 报错类型 |
grep "ERROR" app.log | awk '{print $1}' | sort | uniq -c | sort -rn | head 这一串能直接排出"哪类错误最多",是日志分析的标配动作。
三、查看网络
接口超时第一反应就是看网络。curl 能模拟请求、netstat/ss 看端口监听:
curl -I https://api.example.com/health # 只看响应头
curl -v https://api.example.com/health # 看完整握手过程
netstat -tunlp | grep 8080 # 谁在监听 8080
ss -tunlp # 更现代的端口查看
curl -v 在排查 TLS、重定向、超时的时候特别好用,能看见每一步花了多少时间。
四、系统与资源
top -p <pid> # 盯着某个进程的资源
df -h # 磁盘还剩多少(别等写满了才看)
free -h # 内存占用
journalctl -u myservice -f # 跟某个 systemd 服务日志
磁盘写满导致服务起不来的情况,比很多人想象的常见,定期 df -h 是好习惯。

五、权限与压缩
chmod +x deploy.sh # 给脚本加执行权限
chown -R app:app /data # 改属主,避免权限拒绝
tar -czf log.tar.gz *.log # 打包日志回传分析
scp app.log user@host:/tmp # 把文件传回跳板机
部署脚本没执行权限、日志目录属主不对,是新手最常遇到的两个"明明配对了却跑不了"的坑。权限除了 rwx,还有数字表示法:chmod 755 即 rwxr-xr-x,chmod 644 即 rw-r--r--,记住 7=读+写+执行、6=读+写、4=只读,配权限时不用每次查表。
六、进程管理
jobs # 看后台任务
nohup java -jar app.jar > app.log 2>&1 & # 脱离终端跑,输出重定向
kill -9 <pid> # 强杀(救急用,先试 kill 不加 -9)
pkill -f "app.jar" # 按名字批量杀
nohup ... & 是部署 jar 包的常见起法,但生产更推荐交给 systemd 托管,能自动重启、管日志。
七、包管理与定时任务
# Ubuntu/Debian
apt-get update && apt-get install -y nginx
# CentOS/RHEL
yum install -y nginx
# 定时任务:每天凌晨清日志
crontab -e
# 0 0 * * * find /var/log/app -name "*.log" -mtime +7 -delete
crontab -e 里的五个字段是"分 时 日 月 周",写错一个位就完全不跑,配完用 crontab -l 复核一下。
八、Vim
不是人人爱 Vim,但服务器上它基本都在。记住这几个够救急:
i进入插入模式,改完按Esc:w保存,:q!不保存强退,wq保存退出dd删一行,/关键字搜索、n下一个:%s/old/new/g全局替换
改个 Nginx 配置、临时注释一行代码,Vim 比装个编辑器快得多。
小结
Linux 命令不用背全,但后端常用的那几组(文件、管道、网络、资源、权限、进程、包管理、Vim)得形成肌肉记忆。核心不是记命令,是理解"管道组合"的思维——把简单工具拼起来解决复杂问题。
- 点赞
- 收藏
- 关注作者
评论(0)