最近后台收到不少留言,问的问题都比较集中:Linux 命令到底怎么学才高效?为什么背了一大堆命令,一到服务器上实操就发懵?还有人直接把面试题丢过来,说看到 awk、sed 就头大。今天这篇就把我这些年折腾 Linux 的经验捋一捋,不搞那种几百条命令堆出来的“大全”,而是给你一条真正能落地的学习主线,覆盖日常运维、开发排查、面试突击这几个最实际的场景。
1. 先破除一个误区:背命令不如懂命令的分类逻辑
很多新手学 Linux 最容易踩的坑,就是拿着命令手册从头背到尾,好像 curl、wget、tar、zip、unzip、rsync 全都得记下来才算学会。结果真到用的时候,连 ls -l 的输出都读不利索,更别说排查问题了。
1.1 命令的本质:每个命令都是一个程序
先明确一件事:命令并不是什么神秘的东西,它本质上就是一个可执行程序,只不过放在了系统的 PATH 环境变量所指定的目录里。你在终端敲 ls,系统其实是在 /bin、/usr/bin 这些目录里找到了名为 ls 的二进制文件,然后把它跑起来。
可以用 which 命令查看某个命令到底在哪个路径下:
bash复制which ls
# /usr/bin/ls
再用 type 看看这个命令是不是有别名或者内建版本:
bash复制type ll
# ll is aliased to 'ls -l --color=auto'
搞清楚这一点,你就不会对着某个“新命令”发怵了——所谓“新命令”,不过是一个你还没见过的程序而已。遇到没见过的命令,第一反应不该是去翻书,而是直接敲 命令 --help,或者 man 命令 查手册。这两个命令自带的使用说明,比市面上绝大多数教程都准确、都新。
1.2 分类逻辑:按“要操作的对象”来组织知识
我不建议按字母表去背命令,更有效的方式是按“操作对象”来分类。Linux 系统里,你日常打交道的东西其实就那么几类:文件与目录、用户与权限、进程与服务、网络与磁盘、文本内容。每一类对应一小撮高频命令,把这些吃透,你已经能覆盖 90% 的工作场景了。
我整理了一个极简分类表,这基本就是我对 Linux 命令知识体系的核心框架:
| 操作对象 | 高频命令 | 典型场景 |
|---|---|---|
| 文件与目录 | ls, cd, pwd, mkdir, cp, mv, rm, find |
日常文件操作、清理磁盘 |
| 用户与权限 | useradd, usermod, chown, chmod, sudo, su |
建账号、授权、部署应用 |
| 进程与服务 | ps, top, kill, systemctl, journalctl |
看负载、查进程、重启服务 |
| 网络与磁盘 | ip, ss, ping, df, du, mount |
配IP、查端口、看空间 |
| 文本处理 | grep, sed, awk, sort, uniq, wc |
分析日志、处理输出 |
这篇文章后面的内容,就沿着这张表逐层展开。你不用一次性记完,只需要把每一次实操中遇到的命令,归类到这张表里,慢慢地它就会变成你自己的知识体系。
1.3 学习建议:用“场景”代替“背诵”
我个人强烈建议,练命令别光盯着终端发呆,最好是先给自己设定一个场景,比如“新装了一台服务器,我要创建一个部署账号,把代码放上去,装好 nginx,再配个静态 IP”。这个过程中你自然会用到 useradd、mkdir、cp、tar、dnf、systemctl、nmcli 这一串命令。
这种“场景驱动”的学习方式,比刷十遍命令大全都管用。因为你每敲一条命令,脑子里都会形成一条关联记忆:这个命令在解决这个场景里的哪个具体问题。而不是孤零零地记住一个命令的语法,转头就忘。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件与目录操作:高频命令的细节与坑
文件操作是 Linux 使用频率最高、也是新手最容易出事故的领域。先别急着复制粘贴各种“一键脚本”,把下面这些细节摸透,你会少踩很多坑。
2.1 ls 读到的不只是名字:逐字段拆解输出
很多人看 ls -l 的结果,只看得到文件名和大小,这远远不够。
bash复制ls -l /etc/passwd
# -rw-r--r--. 1 root root 1277 Feb 18 2024 /etc/passwd
这一行的信息量很大,从左到右拆开看:
- 第1位:文件类型。
-是普通文件,d是目录,l是软链接,b/c是块设备/字符设备。 - 第2-10位:权限位,分三组:属主(user)、属组(group)、其他人(other),每组三位分别是读(r)、写(w)、执行(x)。
- 第2列:硬链接数。普通文件一般是1,目录的硬链接数代表其子目录数量加2。
- 第3列:属主。文件归哪个用户所有。
- 第4列:属组。文件归哪个组所有。
- 第5列:文件大小,单位是字节。
- 第6列:最后修改时间。
- 第7列:文件名。
如果你觉得 ls -l 展示的信息还不够细,可以用 stat 命令查看更完整的元数据,包括 i-node 号、访问时间、修改时间、变更时间。
bash复制stat /etc/passwd
实际工作中,我常用的几个 ls 组合:
bash复制ls -lah # 人类可读大小,显示隐藏文件(. 开头)
ls -lt # 按修改时间倒序,找最新文件很快
ls -lS # 按文件大小排序,找大文件用
ls -R # 递归列出子目录,慎用,输出可能很长
2.2 目录穿梭与创建:cd、pwd、mkdir 的实用技巧
cd 是最基础的操作,但有两个小技巧值得记住:
bash复制cd - # 回到上一个目录,在多个路径之间切换非常方便
cd ~ # 回到当前用户的家目录
mkdir 创建目录时,最常用的是 -p 参数,它可以递归创建多级目录:
bash复制mkdir -p /data/logs/nginx
这条命令会自动创建 /data、/data/logs、/data/logs/nginx 三层目录。如果不加 -p,父目录不存在时就会报错。
还有一个冷门但好用的技巧:用花括号展开批量创建目录:
bash复制mkdir -p /data/{logs,backup,scripts}
等价于:
bash复制mkdir -p /data/logs /data/backup /data/scripts
删除目录时,rmdir 只能删空目录,实际用得更少。更多人直接用 rm -rf。但这里我要提醒一句:rm -rf 是 Linux 上最危险的操作,没有之一。很多人因为路径多打了个空格或者少写了个字母,把系统删了、把数据库文件清了、把家目录清空了,这种事每年都能看到。
一个务实的建议:执行 rm -rf 之前,先用 ls 确认路径,再执行 pwd 看一下当前目录。真正稳妥的人,会先 mv 到 /tmp 等确认没问题后再删,相当于一个手动“回收站”。
2.3 复制移动与删除:cp、mv、rm 的行为差异
cp 复制文件是最常见需求,但 cp 有很多细节。最常用的参数是:
bash复制cp -a source destinat
