文章背景图

我常用的 Linux 命令清单

查日志

# 实时看日志,最常用
tail -f /var/log/nginx/error.log

# 带时间戳过滤
grep "2026-02-08 10:" app.log | tail -n 100

# 统计某个 IP 出现了多少次
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20

# 从上往下找第一次出现的位置
grep -n "Exception" app.log | head

awk + sort + uniq -c + sort -rn 这个组合能解决一大半"谁在刷我接口"的问题。

看资源

top -c                 # 按 CPU 排序,-c 显示完整命令行
free -h                # 内存,重点看 available 而不是 free
df -h                  # 磁盘
du -sh * | sort -rh | head   # 当前目录谁占了空间
iostat -x 1            # 磁盘 IO
ss -tlnp               # 监听端口和对应进程

du -sh * | sort -rh | head 是查"磁盘怎么满了"的第一条命令。

动文件

find /var/log -name "*.log" -mtime +7 -delete     # 删 7 天前的日志
find . -name "*.java" | xargs grep -l "TODO"      # 哪些文件里有 TODO
tar -czf backup.tar.gz ./site                     # 打包
rsync -avz --delete ./site/ root@host:/var/www/   # 增量同步,比 scp 好用
ln -s /var/www/blog /home/lhy/blog                # 软链

rsync 的 --delete 要小心:源目录里删掉的文件,目标也会被删。第一次跑建议加 --dry-run 看看会发生什么。

搞进程

ps -ef | grep java
kill -9 <pid>                 # 先试 kill -15,不行再 -9
systemctl status nginx
systemctl reload nginx        # 改配置用 reload,别 restart
journalctl -u nginx -n 100    # 看 systemd 管的服务日志
nohup java -jar app.jar > app.out 2>&1 &

kill -9 不做清理,进程持有的锁、临时文件都可能残留。先 kill -15(TERM),等几秒,实在不行再 -9。

两个小习惯

一、危险命令先 echo 一遍。 把 rm -rf $DIR/* 先写成 echo rm -rf $DIR/*,看清楚再执行。

二、history | grep 比重敲快。 但别把密码写在命令行里——它会进 history,也会进 ps。

顺手记几个

ctrl + r          # 反向搜索历史命令
ctrl + a / e      # 跳到行首 / 行尾
ctrl + u / k      # 删到行首 / 行尾
!!                # 重复上一条命令
sudo !!

最后一条 sudo !! 是"忘了加 sudo"的救命键。

  • 作者:一颗星
  • 发表时间:2026-02-08
  • 标签:Linux、命令、运维
  • 版权声明:署名-非商业性使用-相同方式共享 4.0(CC BY-NC-SA 4.0),转载请注明出处
  • 站点性质:本站为个人非经营性网站,不接受任何形式的打赏与赞助