「快慢笔记」原创 · 阅读约 8 分钟命令不用背,动手敲,遇到问题查。
📑 0. 总览(50 命令 Ctrl+F 一键定位)
| | | |
|---|
| 逛目录看文件 | | ls / cd / pwd / mkdir / rm / cp / mv / find |
| 读文件查内容 | | cat / less / head / tail / grep / awk / sed / wc |
| 改权限管账号 | | chmod / chown / useradd / passwd / sudo |
| 看系统查资源 | | uname / uptime / top / free / df / du / lscpu |
| 管进程杀服务 | | ps / kill / pkill / systemctl / journalctl |
| 上网下载传文件 | | ping / curl / wget / scp / rsync / ssh |
| 装软件查端口 | | apt / dnf / ss / netstat / tar / crontab |
| 快捷键 + 实用 | | 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 | |
| |
| |
| |
| |
F7:Nice - | |
F8:Nice + | |
| |
| |
Space | |
u | |
H | |
PMT | |
实战组合:找到"凶手进程"的 3 步:
F6F3- 选中进程 →
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 权威)
- FOSSwire Unix/Linux 一页 PDF
- Linuxize 2026 Linux Commands Cheatsheet PDF
- 国产化生态(银河麒麟 V10 / openEuler / 统信 UOS)
📚 系列导航
� 系列导航