这篇内容面向已经在 Linux 服务器或桌面环境上能登录、能用 sudo 的新手,目标是让你在 1–2 小时内掌握 80% 日常工作最常出现的命令行工具组合,而不是记住所有选项。
我们把命令按实际使用场景分组,每组只讲最实用、最常组合的用法,尽量避免罗列全部参数。
| 命令 | 核心用途 | 最常用写法 | 记忆口诀 |
|---|---|---|---|
| pwd | 显示当前绝对路径 | pwd | “我在哪” |
| cd | 切换目录 | cd ..、cd ~、cd -、cd /etc | 上级、家、上次、根 |
| ls | 列出内容 | ls -la、ls -lh --time-style=long-iso、ls -lSh | 详细、人类可读大小、按大小排 |
| tree | 以树状显示目录结构 | tree -L 3、tree -d、tree -a -I 'node_modules' | 目录树 |
快速组合示例:
# 看当前目录下占用最大的前 10 个文件/目录
du -sh * | sort -hr | head -10
# 看 /var 下面哪个子目录最占空间
du -sh /var/* | sort -hr | head
| 命令 | 适用场景 | 最常用组合 | 替代/补充工具 |
|---|---|---|---|
| cat | 小文件一次性看完 | cat file.txt、cat -n | bat(带语法高亮) |
| less | 大文件翻页查看 | less +F /var/log/nginx/access.log | 最常用 F(类似 tail -f) |
| head | 看开头 | head -n 20、head -c 1K | -n 行数,-c 字节 |
| tail | 看结尾 + 实时跟踪 | tail -n 50、tail -f -n 100 | -f 实时跟随最常用 |
最强组合(日志排查神器):
tail -n 300 access.log | grep " 404 " | less
tail -f error.log | grep --color=auto "error\|warn\|fatal"
| 命令 | 找什么 | 推荐写法示例 | 速度对比 |
|---|---|---|---|
| find | 按文件名、类型、大小、时间 | find /var -type f -name "*.log" -mtime -7 | 慢但功能最全 |
| locate | 快速找文件名(需更新数据库) | locate nginx.conf、updatedb && locate php.ini | 极快(依赖 mlocate/mlocate) |
| which / whereis | 可执行文件位置 | which docker、whereis nginx | which 只找 PATH |
| grep | 文件内容搜索 | grep -rni "error" /etc/nginx/ | -r 递归,-i 忽略大小写,-n 行号 |
高频组合:
# 找最近 3 天改过的配置文件
find /etc -type f -name "*.conf" -mtime -3 -ls
# 当前目录及子目录所有 py 文件里包含 "TODO" 的行
grep -rni "TODO" --include="*.py" .
| 命令 | 作用 | 高频用法示例 | 常跟的管道工具 |
|---|---|---|---|
| grep | 过滤行 | `grep -E "error | warn" -i、grep -v "^#"` |
| awk | 列切割、统计、格式化输出 | awk '{print $1,$9}' access.log | '{print $NF}' 最后一列 |
| sed | 替换、删除、插入 | sed -i 's/old/new/g' file、sed '/pattern/d' | -i 原地修改最危险 |
| cut | 按分隔符取列 | cut -d: -f1 /etc/passwd | 简单场景比 awk 快 |
| sort | 排序 | sort -nrk2(数字倒序,第 2 列) | -u 去重 |
| uniq | 去重(需先 sort) | `sort access.log | uniq -c |
| wc | 统计行/字/字节 | wc -l、wc -c | 最常跟管道 |
经典一行统计示例(分析 access.log):
awk '{print $9}' access.log | sort | uniq -c | sort -nr | head -10
# 输出:访问状态码出现次数 Top10
| 命令 | 作用 | 高频写法 | 危险提醒 |
|---|---|---|---|
| chmod | 修改权限 | chmod +x script.sh、chmod -R 755 /var/www | 777 是安全雷区 |
| chown | 改拥有者/组 | chown -R www-data:www-data /var/www/html | 网站目录最常用 |
| chgrp | 只改组 | chgrp -R developers shared_dir | 较少单独用 |
| umask | 查看/设置新建文件默认权限 | umask 0022(常见默认) | 影响新建文件权限 |
快速记忆权限数字:
| 命令 | 作用 | 高频用法 | 推荐替代 |
|---|---|---|---|
| ps | 列出进程 | `ps aux | grep nginx、ps -ef` |
| top / htop | 实时监控 | 按 1(多核)、M(内存排序)、P(CPU 排序) | 装 htop / btop / glances |
| free -h | 内存使用 | free -h -s 5(每 5 秒刷新) | — |
| df -h | 磁盘使用 | df -hT、watch -n 5 df -h | — |
| du | 目录/文件占用 | `du -sh /var/* | sort -hr` |
| 命令 | 作用 | 高频写法 |
|---|---|---|
| uname -a | 内核版本 | uname -r 只看内核版本 |
| lsb_release -a | 发行版信息 | 或 cat /etc/os-release |
| ip addr | 网络接口与 IP | ip -c a(彩色) |
| ss -ltnp | 监听端口与进程 | 替代旧的 netstat -ltnp |
| curl | 测试网络/下载 | curl -I https://example.com、curl ip.sb |
记住:Linux 命令行真正的威力不在单个命令,而在用管道把小工具串成流水线。
掌握以上内容后,你已经能完成 85% 的日常运维、排查、调试工作。后续再逐步补充 jq(JSON 处理)、yq(YAML)、rg(更快 grep)、fd(更快 find)、fzf(交互式过滤)等现代化工具即可。