当前位置:首页>Linux>Linux 50 个命令及常见故障排查-不用背

Linux 50 个命令及常见故障排查-不用背

  • 2026-10-11 05:51:40
Linux 50 个命令及常见故障排查-不用背

「快慢笔记」原创 · 阅读约 8 分钟命令不用背,动手敲,遇到问题查。


📑 0. 总览(50 命令 Ctrl+F 一键定位)

序号
类目
命令数
命令清单
一
逛目录看文件
7
ls / cd / pwd / mkdir / rm / cp / mv / find
二
读文件查内容
7
cat / less / head / tail / grep / awk / sed / wc
三
改权限管账号
5
chmod / chown / useradd / passwd / sudo
四
看系统查资源
7
uname / uptime / top / free / df / du / lscpu
五
管进程杀服务
6
ps / kill / pkill / systemctl / journalctl
六
上网下载传文件
6
ping / curl / wget / scp / rsync / ssh
七
装软件查端口
6
apt / dnf / ss / netstat / tar / crontab
八
快捷键 + 实用
6
alias / history / Ctrl+R / !! / > / >>

📌 提示:命令格式 = 命令 [选项] [参数],可 man 命令 或 命令 --help 查看详细用法。


一、逛目录看文件(7 个)

1.  ls           # list directory contents          [-la] [-lh] [-lt]2.  cd           # change directory                 [~] [-] [..]3.  pwd          # print working directory          []4.  mkdir        # make directories                 [-p] 目录5.  rm           # remove                           [-rf] 文件/目录6.  cp           # copy                             [-r] 源 目标7.  mv           # move (or rename)                 源 目标8.  find         # find files                       [路径] [-name] [-type] 模式

3 个实战组合:

# 找最近 1 小时改过的文件find /var/log -mmin -60 -ls# 批量建多级目录mkdir -p /app/{src,logs,docs,test}# 看大目录大小(从大到小排)du -sh /* | sort -rh | head -10

二、读文件查内容(7 个)

 9. cat          # concatenate(拼接)               [-n] 文件10. less         # 翻页查看大文件                  [/关键词]11. head         # 看前 N 行                        [-n 20]12. tail         # 看后 N 行                        [-n 20] [-f 实时跟踪]13. grep         # global regular expression print  [-rn] [-i] 模式 文件14. awk          # 文本分析(列处理)                [-F分隔符] '{print $1}'15. sed          # stream editor                    [-i] 's/old/new/g' 文件16. wc           # word count                       [-l] 行数

4 个实战组合:

# 看 nginx 错误日志,带行号grep -n "error" /var/log/nginx/error.log# 抽 access.log 第 1 列(IP),统计 TOP 10awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head# 实时跟踪 nginx 访问日志(生产排障王牌)tail -f /var/log/nginx/access.log# 全文替换配置sed -i 's/old_value/new_value/g' /etc/nginx/nginx.conf

三、改权限管账号(5 个)

17. chmod        # change mode                       [-R] [755] 文件18. chown        # change owner                      [-R] [用户:组] 文件19. useradd      # add user                          [-m] [-s /bin/bash] 用户名20. passwd       # change password                   [用户名]21. sudo         # superuser do(提权)                [-i] [-u 用户] 命令

数字权限速记:r=4 w=2 x=1 → 755=全开+读执行 / 644=读写+只读 / 600=仅自己读写

4 个实战组合:

# 给脚本加执行权chmod +x deploy.sh# 部署 nginx 后改属主chown -R nginx:nginx /var/www/html# 建用户并加 sudouseradd -m -s /bin/bash zhangsanpasswd zhangsanusermod -aG wheel zhangsan    # 加进 wheel 组才能 sudo# 提权单条(推荐)sudo systemctl restart nginx

四、看系统查资源(7 个)

22. uname        # 系统信息                          [-a]23. uptime       # 运行时长+负载                    []24. top / htop   # 动态进程监控                      [P 排CPU / M 排内存]25. free         # 内存使用                          [-h]26. df           # disk free(磁盘空间)              [-h]27. du           # disk usage(目录/文件大小)         [-sh] 目录28. lscpu        # CPU 详细信息                      []

4 个实战组合:

# 看内核/系统全信息uname -a && cat /etc/os-release# 磁盘满了查大目录df -h && du -sh /* | sort -rh | head -10# CPU 飙高查进程top -bn1 | head -20    # 一次性快照(不持续刷新)# 查内存free -h

五、管进程杀服务(6 个)

29. ps           # process status                   [aux] [--sort=-%cpu]30. kill         # 杀进程                            [-9] PID31. pkill        # 按名字杀                          名字32. systemctl    # systemd 主控                      [start/stop/restart/status/enable/disable] 服务名33. journalctl   # 看 systemd 日志                   [-u 服务名] [-f] [-p err]34. service      # SysVinit 老命令(部分老系统)        [start/stop] 服务名

4 个实战组合:

# 找最占 CPU 的 5 个进程ps aux --sort=-%cpu | head -5# 杀顽固进程(温柔失败再强杀)kill PID         # 第一次温柔kill -9 PID      # 不行再强杀# 重启 nginx + 看状态 + 看日志sudo systemctl restart nginxsudo systemctl status nginxsudo journalctl -u nginx -n 50# 实时跟 nginx 日志(生产排障第二王牌)journalctl -u nginx -f

📌 2026 主流:systemd v261(2026-06-19 发布),systemctl + journalctl 是RHEL 10.2 / Ubuntu 26.04 LTS / openEuler 主流。


六、上网下载传文件(6 个)

35. ping         # 测试连通                         [-c 4] 域名/IP36. curl         # 拿 URL 内容(测试 HTTP)            [-I] [-o] URL37. wget         # 下载文件                          [-c 断点续传] URL38. scp          # secure copy(远程拷贝)             [-P 端口] [-r] 源 user@host:目标39. rsync        # remote sync(增量同步)             [-avz] 源 目标40. ssh          # secure shell(远程登录)            [-p 端口] [-i 私钥] user@host

4 个实战组合:

# 看网站响应头curl -I https://www.example.com# 远程拷文件scp -P 22 file.txt user@server:/tmp/# 增量同步(只传变化的部分)rsync -avz /data/ user@backup:/backup/# SSH 别名登录ssh -p 2222 deploy@prod-server

七、装软件查端口(6 个)

41. apt          # Debian/Ubuntu 包管理              [install/update/remove] 包名42. dnf / yum    # RHEL/CentOS 包管理                 [install/remove/search] 包名43. ss           # socket stat(看端口,替代 netstat)   [-tulnp]44. netstat      # 旧版看端口(已废弃)                [-tulnp]45. tar          # 打包/解包                         [-czvf 打包] [-xzvf 解]46. crontab      # 定时任务                          [-e 编辑] [-l 列表]

4 个实战组合:

# 装 nginxsudo apt install -y nginx        # Debian/Ubuntusudo dnf install -y nginx        # RHEL/CentOS# 看 80 端口被谁占ss -tulnp | grep :80# 每天 3 点备份日志crontab -e0 3 * * * tar -czvf /backup/log_$(date +\%F).tar.gz /var/log# 打包整个目录tar -czvf backup_20260703.tar.gz /data/

📌 2026 重要:dnf5 5.4.2.1(2026-05-12 发布)是 RHEL 10 标配。CentOS Linux 7 已 EOL 2 年(2024-06-30),建议升 Rocky Linux 9 / AlmaLinux 9。


八、快捷键 + 实用(6 个)

47. alias        # 命令别名                         [别名='实际命令']48. history      # 看历史命令                       [| grep 关键词]49. Ctrl+R       # 反向搜历史命令                    (在终端里按)50. !!           # 重复上一条命令(常配合 sudo)        sudo !!51. >  (覆盖重定向)                                命令 > 文件52. >> (追加重定向)                                命令 >> 文件53. |  (管道)                                      命令1 | 命令2

5 个实战组合:

# 设别名:ll 代替 ls -laecho "alias ll='ls -la'" >> ~/.bashrcsource ~/.bashrc# 搜历史命令里所有 docker 命令history | grep docker# 补 sudo(上条命令忘加 sudo)sudo !!# 追加日志echo "[$(date)] 系统正常" >> /var/log/myapp.log# 进程快照转 grepps aux | grep nginx

🚨 9. 故障反查(8 大常见故障 → 命令)

以上命令不用背,了解即可;用的时候,Ctrl+F 搜故障。

每条故障 = 看症状 → 找原因 → 用命令 3 步搞定。


🔥 故障 1:CPU 100%,机器卡死

看症状:SSH 半天连不上 / top 看 CPU 长期 90%+

找原因 → 用命令 3 步搞定:

# 第 1 步:top 找"谁"占 CPUtop                                  # 看 PID 列 + %CPU 列# 输出提示:#   PID  USER  %CPU  COMMAND#  24972 root   95.3  node            ← 凶手是它#  24973 root    2.1  node# 第 2 步:精确锁定前 5 名ps aux --sort=-%cpu | head -6# 输出提示:# root  24972  95.3  ...  node        ← 凶手进程# www-data  888  4.2  ...  apache2# 第 3 步:杀进程(普通进程先 kill,再 kill -9)kill 24972          # 温和关kill -9 24972       # 强制关(进程不响应才用)

💾 故障 2:磁盘 100%,写不进去

看症状:No space left on device / 数据库起不来 / 日志写不进去

找原因 → 用命令 3 步搞定:

# 第 1 步:看哪个盘满了df -h# 输出提示:# Filesystem      Size  Used Avail Use% Mounted on# /dev/sda1        50G   49G  500M  99% /         ← 根分区满!# /dev/sdb1       500G  120G  380G  24% /data# 第 2 步:看哪个目录占空间du -sh /* 2>/dev/null | sort -rh | head -10# 输出提示:# 12G   /var                    ← 凶手(日志/数据库)# 8.1G  /usr# 3.2G  /home# 第 3 步:找大文件 + 清理find / -size +100M 2>/dev/null | head -20    # 找大于 100M 的文件du -sh /var/log/* | sort -rh | head -5       # 看哪个日志最大journalctl --vacuum-size=200M                 # systemd 日志清 200M 以内> /var/log/大日志.log                         # 空文件(不删,删可能进程死)

🌐 故障 3:服务连不上(超时 / Connection refused)

看症状:浏览器 502/503 / curl 报 Connection refused / 客户端卡死

找原因 → 用命令 3 步搞定:

# 第 1 步:看端口是否在听ss -tulnp | grep :80# 输出提示:# tcp  LISTEN  0  128  *:80  *:*  users:(("nginx",pid=1234,fd=6))   ← 正常# (啥都没有)                                                     ← 没听!# 第 2 步:看服务状态systemctl status nginx# 输出提示:# ● nginx.service - The nginx HTTP and reverse proxy server#    Loaded: loaded#    Active: active (running)        ← 正在跑#    Active: failed (Result: ...)    ← 起不来,看下面红字# 第 3 步:看具体错误journalctl -xeu nginx --no-pager | tail -30# 或实时跟日志journalctl -u nginx -f

📝 故障 4:服务起不来(failed)

看症状:systemctl start xxx 报 failed / 启动后立即退出

找原因 → 用命令 3 步搞定:

# 第 1 步:看具体错误(必出)journalctl -xeu 服务名 --no-pager# 关键看红字 + "Failed with result" 那一行# 常见原因:配置文件语法错、端口被占、权限不够# 第 2 步:配置文件语法预检nginx -t              # Nginxsshd -t              # SSHhttpd -t             # Apachemysqld --validate-config  # MySQL# 第 3 步:实时跟日志 + 重启tail -50 /var/log/服务名/错误.logsystemctl restart 服务名journalctl -u 服务名 -f

🔌 故障 5:端口被占(Address already in use)

看症状:服务启动报 bind: address already in use

找原因 → 用命令 3 步搞定:

# 第 1 步:看谁占着ss -tulnp | grep :3306# 输出提示:# tcp  LISTEN  0  80  0.0.0.0:3306  users:(("mysqld",pid=8888,fd=21))#  ↑ 凶手 PID 是 8888# 第 2 步:看进程详情lsof -i :3306# 或ps aux | grep 8888# 输出提示:# mysql  8888  ...  /usr/sbin/mysqld# 第 3 步:杀进程 / 改端口kill 8888kill -9 8888    # 强制# 或改服务端口(改配置文件)

🔐 故障 6:Permission denied(没权限)

看症状:Permission denied / cannot open file / 操作被拒

找原因 → 用命令 3 步搞定:

# 第 1 步:看文件权限ls -l /etc/shadow# 输出提示:# -rw-r-----  1 root  shadow  1200  6月 22  /etc/shadow#  ↑ 文件属主 root,组 shadow,普通用户读不了# 第 2 步:看"我是谁" + 我"在哪个组"whoamigroups# 第 3 步:三种解决法sudo 命令                # 临时提权(生产用这个)chmod +x 脚本.sh         # 加执行权限chown 用户:组 文件       # 改属主(谨慎)

📂 故障 7:找不到文件(no such file or directory)

看症状:命令报 No such file or directory / 配置文件找不到

找原因 → 用命令 3 步搞定:

# 第 1 步:全盘找find / -name "nginx.conf" 2>/dev/null# 输出提示:# /etc/nginx/nginx.conf     ← 在这# 第 2 步:用 locate(快但需先建索引)locate nginx.conf# 提示:刚装的文件查不到,需要 updatedb# 第 3 步:建索引sudo updatedblocate nginx.conf          # 这次能查到

🌐 故障 8:网络不通(ping 不通 / DNS 解析失败)

看症状:服务器连不上外网 / 域名解析失败 / 内网互访不了

找原因 → 用命令 3 步搞定:

# 第 1 步:测"通不通"(IP)ping -c 4 8.8.8.8# 输出提示:# 4 packets transmitted, 4 received   ← 通# 100% packet loss                     ← 不通,看防火墙/路由# 第 2 步:测"域名能不能解析"ping -c 4 www.baidu.com# 提示:unknown host → DNS 错# 提示:能通但慢 → 路由/防火墙# 第 3 步:看 DNS + 走哪条路由nslookup www.baidu.com        # 看 DNS 服务器返回啥cat /etc/resolv.conf          # 看配置的 DNSip route                      # 看默认网关traceroute www.baidu.com      # 看走哪条路(可能卡哪一跳)curl -v https://www.baidu.com # 看 HTTPS 握手细节

🎁 9.5 加餐:htop 看系统全貌

看得见之: htop,单独说下怎么看。

# 启动 htophtop# 关键看 4 个区域:# ① 顶部 CPU 条(每条 = 1 个 CPU 核心,满了说明 CPU 瓶颈)# ② 顶部 Mem 条 + Swp 条(内存 + 交换分区)# ③ 中间任务列表(PID / USER / %CPU / %MEM / COMMAND)# ④ 底部 F1-F10 功能键提示

htop 常用快捷键:

键
干啥
F2:Setup
自定义显示内容(可加 IP/温度/电池)
F3:Search
搜进程名
F4:Filter
按名字过滤
F5:Tree
树状显示(看父子进程)
F6:SortBy
改排序字段(%CPU/%MEM/PID)
F7:Nice -
降优先级
F8:Nice +
升优先级
F9:Kill
杀进程(弹菜单选信号)
F10:Quit
退出
Space
标记进程(配合 F9)
u
按用户过滤
H
开关线程显示
PMT
按 CPU / 内存 / 时间排序

实战组合:找到"凶手进程"的 3 步:

  1. F6
     → 选 %CPU → 顶部就是最占 CPU 的
  2. F3
     → 输入进程名(如 node)→ 过滤
  3. 选中进程 → F9 → 15 SIGTERM(温和关)→ 等 5 秒不死再 9 SIGKILL(强制)

🎁 9.6 加餐:systemctl 服务管理速查

最常用的 systemctl 命令汇总。

# 看状态systemctl status 服务名          # 看详情systemctl is-active 服务名       # 是不是在跑systemctl is-enabled 服务名      # 是不是开机自启systemctl list-units --type=service --state=running  # 看所有在跑的服务# 控服务systemctl start 服务名           # 启动systemctl stop 服务名            # 停systemctl restart 服务名         # 重启systemctl reload 服务名          # 重载配置(Nginx 推荐,不中断)systemctl enable 服务名          # 开机自启systemctl disable 服务名         # 禁开机自启# 看日志(2026 主流方式)journalctl -u 服务名 -f          # 实时跟journalctl -u 服务名 --since "1 hour ago"  # 查 1 小时内journalctl -p err -b             # 查本次启动的所有错误


📚 调研来源(2026 权威)

  • LFCS 2026 考纲
    (Linux Foundation)
  • RHCSA EX200
    (Red Hat,基于 RHEL 10)
  • LinuxBlog.io 2026
     命令频率统计
  • FOSSwire Unix/Linux 一页 PDF
    (2007 起,被译 12 种语言)
  • Linuxize 2026
     Linux Commands Cheatsheet PDF
  • Linuxdraft 2026
     Linux 50 命令速查表
  • 国产化生态
    (银河麒麟 V10 / openEuler / 统信 UOS)

📚 系列导航

� 系列导航

  • 上一篇
    :《认识 Linux 系统》
  • 下一篇
    :《文本三剑客(grep/awk/sed)》

最新文章

随机文章