Linux 常用命令 20 条就够了

适合刚接触 Linux 的后端 / 运维新人。
不讲复杂参数,每条命令只记最常用的用法,配上日常工作里会遇到的场景。


写在前面

学 Linux 命令最大的误区是:试图记住所有参数
不用。你只要记住「有这么一个命令可以干这件事」,用到时 --helpman 查就行。

这 20 条是我觉得日常用得最多的,按使用频率排。


1. ls — 看看目录里有啥

ls                     # 列出当前目录
ls -l                  # 详细信息(权限、大小、修改时间)
ls -la                 # 包含隐藏文件(以 . 开头的)
ls -lh                 # 大小以人类可读的方式显示(K、M、G)
ls -lt                 # 按修改时间排序,最新的在最上面

场景:刚登录服务器,想看看代码目录下有什么,文件多大。

2. cd — 切换目录

cd /var/log           # 去 /var/log
cd ~                  # 回自己的 home 目录
cd -                  # 回到刚才的目录(超级常用)
cd ..                 # 上一级目录

场景:去 /var/log 看日志,看完了 cd - 回到项目目录。

3. pwd — 我在哪

pwd

场景:目录切来切去切迷糊了,看一眼当前完整路径。

4. grep — 文本搜索之王

grep "ERROR" app.log                 # 在文件里搜 ERROR
grep -i "error" app.log              # 忽略大小写
grep -r "timeout" /etc/nginx/        # 递归搜索目录下所有文件
grep -c "ERROR" app.log              # 只统计匹配行数,不显示内容
grep -A5 -B5 "ERROR" app.log         # 匹配行前后各显示 5 行

场景:日志里有几万行,想看某个错误码出现的位置和上下文。

5. find — 找文件

find . -name "*.log"                          # 找所有 .log 文件
find /var -type f -size +100M                 # 找大于 100M 的文件
find /tmp -type d -name "temp*"              # 找目录
find . -mtime +7 -delete                      # 删掉 7 天前的文件(清理旧日志)

场景:磁盘快满了,find / -type f -size +500M 看看哪些大文件能吃。

6. ps — 看进程

ps aux                          # 所有进程,最常用
ps aux --sort=-%mem | head -10  # 按内存占用排序,看 TOP 10
ps aux | grep java              # 只看 java 进程
ps -ef                          # 另一风格,ppid 列为父进程 ID

场景:服务器卡了,想看哪些进程在跑、吃多少内存和 CPU。

7. top / htop — 实时资源监控

top                    # 默认的,够用
htop                   # 更好看,可以鼠标操作,需要额外装

top 打开后常用按键:

  • 1 — 展开看每个 CPU 核的使用率
  • P — 按 CPU 从高到低排
  • M — 按内存从高到低排
  • q — 退出

场景:服务变慢了,top 一看 wa 列 60%,知道是磁盘瓶颈,不用猜。

8. df — 磁盘空间

df -h          # 人类可读的格式
df -h /data    # 只看某个分区

场景:收到磁盘告警,先看看哪个分区满了。

9. du — 看目录占多大

du -sh /var/log           # 看 /var/log 总共多大
du -sh * | sort -rh       # 当前目录下每个子目录大小排序
du -h --max-depth=1       # 只看一层子目录

场景df 看到 / 满了,du -sh /* | sort -rh 找哪个目录最大。

10. tail — 看文件末尾(主要看日志)

tail -100 app.log              # 看最后 100 行
tail -f app.log                # 实时跟踪,日志一行行出来
tail -f app.log | grep ERROR   # 只跟踪错误日志

场景:上线后一边刷新页面一边 tail -f 看日志输出。

11. head — 看文件开头

head -20 app.log    # 看前 20 行

场景:确认日志文件格式对不对,看看开头几行的列名。

12. less — 翻页看大文件

less app.log

打开后的操作:

  • 空格 / f — 下翻一页
  • b — 上翻一页
  • /ERROR — 搜索 ERROR,按 n 跳到下一个
  • q — 退出

好处:大文件也不会卡,因为它只加载当前屏幕的内容。

场景:用 grep "ERROR" app.log 找到了在一个 500M 的文件里,用 less 打开慢慢翻。

13. tar — 压缩和解压

tar -czvf archive.tar.gz /path/to/dir    # 打包并压缩
tar -xzvf archive.tar.gz                 # 解压到当前目录
tar -xzvf archive.tar.gz -C /target      # 解压到指定目录

参数口诀:c 创建,x 解压,z gzip,v 显示过程,f 指定文件名

场景:把部署包 tar -czvf release.tar.gz . 发给同事,对方 tar -xzvf release.tar.gz 解开。

14. scp — 传文件到远程

scp file.txt user@192.168.1.100:/home/user/     # 本地→远程
scp user@192.168.1.100:/home/user/file.txt .     # 远程→本地
scp -r dir/ user@192.168.1.100:/home/user/       # 传整个目录

场景:把编译好的 jar 包传到测试服务器上。

15. chmod — 改权限

chmod +x script.sh              # 加执行权限
chmod 644 file.txt              # 所有者读写,其他人只读
chmod -R 755 /path/to/dir       # 递归改目录下所有文件

常用数字:

  • 755 — 目录标准权限(rwxr-xr-x)
  • 644 — 文件标准权限(rw-r–r–)
  • 600 — 私钥等敏感文件(rw-------)

场景:从 Windows 传上去的脚本不能跑,chmod +x deploy.sh 搞定。

16. chown — 改所有者

chown user:group file.txt        # 改所有者和组
chown -R user:group /data        # 递归改目录

场景:Nginx 403 了,一看日志文件是 root 的,nginx 用户读不了。

17. curl — 发 HTTP 请求

curl http://localhost:8080                    # GET 请求
curl -I http://localhost:8080                 # 只看响应头
curl -X POST -d '{"key":"value"}' -H "Content-Type: application/json" http://localhost:8080/api  # POST JSON
curl -v http://localhost:8080                 # 显示完整请求和响应过程

场景:后端说服务跑起来了,curl -I http://localhost:8080 看一眼返回 200 没有。

18. ping / telnet — 网络通不通

ping -c 4 192.168.1.1           # ping 4 次
telnet 192.168.1.100 3306       # 测试端口是否可达

场景:连不上 MySQL,telnet 一下 3306 端口通不通。

19. netstat / ss — 看端口和连接

ss -tlnp                      # 看所有 TCP 监听端口和对应进程
ss -tlnp | grep 8080          # 看 8080 端口谁在监听
ss -s                         # 连接统计

老的 netstat 在有些机器上没装,ss 是它的替代品,用法差不多。

场景:8080 端口起不来,ss -tlnp | grep 8080 看是不是端口被占了。

20. history — 找刚才敲过的命令

history                            # 列出历史命令
history | grep docker              # 搜 docker 相关命令
!1234                              # 重新执行编号 1234 的命令
!!                                 # 重新执行上一条命令

场景:刚才跑了一个 docker 命令没截图,history | grep docker 找回来。


组合使用:管道 | 是关键

上面很多命令单独用就够了,更强的用法是把它们串起来

# 找最大的 5 个文件
find . -type f -size +10M | xargs ls -lhS | head -5

# 看 Nginx 访问量最大的 10 个 IP
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10

# 杀掉所有 python 进程
ps aux | grep python | grep -v grep | awk '{print $2}' | xargs kill -9

等这些单条命令熟练了,管道组合就是你的下一步。


总结

不用一次记住所有命令。遇到问题先想「有没有一条 Linux 命令能帮我查」,然后回来翻一下。敲过两三次就记得了。

最常用的 5 条:lscdgreppstail,这几条每天都会用到。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐