ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Linux常用命令大全:按功能域分类的学习地图与易错点清单

Linux常用命令大全:按功能域分类的学习地图与易错点清单

简介:面向Linux初学者与运维入门者的命令速查手册,聚焦日常系统管理与文件操作场景,帮助读者摆脱对图形界面的依赖、建立命令行操作的基本功。资源为单个PDF文档,压缩包约130KB,篇幅精炼、便于随查随用,适合作为桌面参考或入门阶段系统梳理知识点的辅助材料。内容按功能模块组织,涵盖管理文件与目录、磁盘空间查看、文件备份与压缩、用户与权限设置、线上查询、文件阅读、网络操作、定位查找等十余类命令,并对pwd、cd、ls、cp、mv、rm、mount、df、du、fsck等常用命令的选项含义与典型用法逐条说明,配合示例帮助理解参数差异。已有5598人学习下载,可作为课堂笔记之外的补充速查表,帮助读者在实操中快速定位命令、减少翻查手册的时间成本。

1. 从一张命令地图说起:Linux 常用命令到底该按什么顺序学

很多人学 Linux 命令的方式是打开终端,遇到不会的就搜一条,收藏夹里躺了几十条零散命令,真到用的时候还是想不起来该敲哪个。问题不在记性,在于脑子里没有一张地图。这份《最全 Linux 常用命令大全》把命令按十个功能域归了类:文件与目录管理、磁盘空间、备份与压缩、关机与系统信息、用户与权限、线上查询、文件阅读、网络操作、定位查找、其他杂项。这个分类本身就是一条学习主线——先能管文件,再能看磁盘,再能打包备份,然后才谈进程、用户、网络。梳理下来会发现,命令不是靠背的,是靠「场景 → 功能域 → 命令 → 选项」这条链路定位的。这份笔记适合已经上手过 Linux、但知识结构松散的人,也适合正在复习备考、需要快速查漏补缺的人。下面按模块把重点、难点和容易翻车的地方逐层拆开。

2. 文件与目录管理:十个高频命令的选项与路径逻辑

2.1 命令功能对照与绝对路径、相对路径的分界

文件与目录管理是整个命令体系的底座,十个命令覆盖了「看、走、建、删、拷、移、查」全部动作。先把功能对照表立起来,复习时一眼能定位:

命令功能典型用法
pwd显示当前工作目录pwd
ls查看目录内容ls -lh
cd改变所在目录cd /usr
cat显示文件内容、合并文件cat snow.txt
grep在文件中查找字符串grep money test.txt
touch创建空白文件touch newfile
cp复制文件cp t.txt Document/t
mv移动或重命名文件mv t.txt Document
rm删除文件rm t.txt
rmdir删除空目录rmdir emptydir

这张表里最容易被轻视的是cd。原文明确区分了绝对路径和相对路径:cd /usr是从根目录出发的绝对路径,cd test是相对当前目录的路径,cd ~回到用户主目录,cd /转到根目录。复习时要把这四个写法当成一组来记,因为后面所有涉及路径的命令——cp、mv、find、tar——都建立在这个区分上。路径写错,命令本身再熟也没用。

2.2 ls 与 cp、mv、rm 的选项语义:为什么 -i 和 -f 是一对

ls的选项密度最高,也是考试和实操都爱考的点。-a列出包括隐藏文件在内的全部文件,-l列出权限、所有者、组群、大小、创建日期、是否链接等细节,-f显示文件类型,-r逆序列举,-R递归列举所有子目录内容,-s按文件大小排序,-h以 K、M、G 等人类可读单位显示大小。实际使用中ls -lh是最常见的组合,-l给细节、-h把字节数翻译成人能读的单位。

cp、mv、rm三个命令共享一组「互动 / 强制 / 详细」选项,这是最值得对比记忆的地方:

# cp:复制并显示进度,覆盖前提示 cp -iv t.txt Document/t # mv:强制移动不提示(危险),并显示进度 mv -fv t.txt Document # rm:递归删除目录并逐项显示 rm -rv olddir

-i是互动模式,覆盖或删除前提示确认;-f是强制模式,跳过提示直接执行,原文直接标注它「属于很危险的选项」;-v显示进度。这三个选项的语义在三个命令里是一致的,记住一套就能迁移。cp独有的是-r递归复制整个目录树,rm独有的是-r递归删除目录及其所有文件和子目录。这里有个高频误区:rmdir只能删空目录,目录里但凡有东西就会报错,真正要删非空目录得用rm -r。

提示:rm -rf组合是血泪经验里出现频率最高的翻车点,路径里多一个空格或斜杠方向写反,后果不可逆。养成先ls确认目标、再删的习惯。

grep的默认行为是区分大小写的,原文特意点出这一点。grep money test.txt只匹配小写的 money,想忽略大小写需要额外选项,这一点在排查日志时经常被忽略。cat用于显示整个文件内容,按 Ctrl+D 退出,文件大时不适合用 cat,应该换到后面的分页工具。

3. 磁盘、压缩与备份:mount、df、du 与 tar 的组合拳

3.1 挂载与磁盘空间查看:mount、umount、df、du、fsck 的分工

磁盘相关命令分成两组:一组管「挂不挂得上」,一组管「装了多少」。mount负责挂载文件系统,可以挂硬盘、光盘,也可以挂 NFS 网络文件系统,标准用法是mount -t 设备类型 存放目录。原文给的例子是挂载 iso9660 文件系统:

# 将 /dev/hdb 上的 iso9660 文件系统挂到 /cdrom mount -t iso9660 /dev/hdb /cdrom # 卸载已挂载的目录 umount /cdrom

mount不加参数直接执行会显示已挂载的文件系统和目录;-a挂上 /etc/fstab 下的全部文件系统;-t指定文件系统类型,支持的类型可以在 /proc/filesystems 里查到;-r设为只读,-w设为可读写。umount与它相对,关闭系统前应把所有挂载的文件系统卸载掉。

df检查硬盘分区和已挂载文件系统的磁盘空间,-a列出全部文件系统包括 0 区块的,-i列出 inode 使用量,-k以 k 为单位,-T列出每个分区所属的文件系统名称。du则是显示文件目录或文件本身占用的空间,-h以 KB、MB、GB 提高可读性,-s只列总和,-a显示全部目录及子目录下每个文件。这两个命令最容易混:df看的是分区层面的剩余空间,du看的是目录层面的占用明细,排查「磁盘满了但不知道谁占的」时,先用df定位分区,再用du -sh逐层下钻。

fsck检查和修复文件系统,原文强调最好在没有分区挂载时使用,-a自动修复不询问(比较危险),-R互动方式逐项确认,-N只列出会执行的动作而不真正执行。复习时把-N当成演练开关,先看它打算做什么,再决定要不要真跑。

3.2 三种压缩工具与 tar 的选项组合

压缩工具的选择逻辑原文讲得很清楚:bzip2提供最大限度的压缩,gzip通用,zip兼容性好、Windows 也支持。三组命令的命名规律一致:压缩加后缀、解压换前缀。

工具压缩解压扩展名
bzip2bzip2 filenamebunzip2 filename.bz2.bz2
gzipgzip filenamegunzip filename.gz.gz
zipzipunzip.zip

tar是打包归档的主力,原文点明它最早用于磁带备份,现在主要用来把大量文件和目录打包成一个文件。选项组合是复习重点:-c创建新归档,-x抽取文件,-t列出归档内容,-f指定归档文件名,-v显示进度,-z配合 gzip,-j配合 bzip2。

# 创建 tar 归档,把目录和文件打进去 tar -cvf filename.tar directory/file /home/mine # 创建并用 gzip 压缩 tar -czvf filename.tgz file # 创建并用 bzip2 压缩 tar -cjvf filename.tbz file # 解压 bzip2 压缩的 tar 包 tar -xjvf filename.tbz

这里有个必须记住的细节:tar 默认不压缩文件,只打包。所以-z和-j不是可有可无的装饰,它们决定了产物是纯归档还是压缩包。另一个易错点是解压行为——用gunzip解压 filename.tgz 会删除原文件并以 filename.tar 代替,而tar -xvf不会删除 tar 文件,只是把内容复制到当前工作目录并保留原有目录结构。复习时把「谁删原文件、谁保留」列成一张小表,比反复读文字有效得多。

4. 进程、用户与权限:ps、top、kill 和 chmod 的数字表示法

4.1 进程查看与终止:ps、top、kill 的信号语义

系统信息类命令里,ps查看当前有哪些程序在执行及其执行情况,-l长格式,-u列出使用者名称和使用时间,-m列出内存分布,-r只列前台程序,-x列出所有程序包括没有终端机的。top与ps类似,但会每隔几秒刷新一次系统状态,适合追踪动态变化,按 Ctrl+C 退出。两者的分工是:ps取某一时刻的快照,top看持续变化。

kill的实际语义不是「杀死」,而是送一个信号给进程,原文用「叫它自杀」来形容很贴切。标准用法是kill -(选项) pid,执行前先用ps查到 pid。常用信号有三个:HUP(1) 重跑、KILL(9) 砍掉、TERM(15) 结束。

# 先查进程 pid ps -x # 强制终止 pid 为 323 的进程 kill -9 323 # 让 pid 为 456 的进程重跑 kill -HUP 456

-l列出所有可用信号名称,-p只打印 pid 不发送信号。复习时容易漏的是:kill后面不跟信号时默认发 TERM(15),而 TERM 是可以被进程忽略的,真正「杀不动」的时候才上-9。上来就-9是常见误用,它不给进程清理资源的机会。

4.2 权限的三段式与数字换算:chmod 751 到底怎么来的

chmod是权限模块的核心。读取 r、写入 w、执行 x 是三个基本权限位,使用者分三档:u 文件拥有者、g 所有者所在组群、o 其他人、a 全部。增减用+、-、=。

# 删除某文件的所有权限 chmod a-rwx test.txt # 为文件所有者添加读写执行权限 chmod u+rwx test # 数字表示法:4 读、2 写、1 执行 chmod 751 filename

数字表示法的换算逻辑是每位相加:读 4、写 2、执行 1。751 拆开就是所有者 7=4+2+1(读写执行)、组群 5=4+1(读执行)、其他人 1(执行)。原文明确说chmod 751 filename与chmod u+rwx,g=rx,o=x filename等价,这个等价关系是考试高频点,也是实操中写脚本时最常用的形式。su用来切换用户,不输用户名默认切到 root,必须知道目标用户的口令,退出用 exit。useradd增加用户,只有根用户才能执行,普通用户要先su切到根再操作。

注意:chmod的=是「设为唯一权限」,会把该使用者原有的其他权限一并覆盖掉,和+、-的增量语义完全不同,混用会导致权限被意外清空。

5. 查找、阅读与网络:find 的表达式结构与易漏点清单

5.1 四类查找命令的边界:which、whereis、find、locate

查找类命令最容易混,因为名字都带「找」。原文把边界划得很清楚:which依序从 PATH 环境变量所列目录中找出命令的位置,找到第一个就停止,例如which ls输出 /usr/bin/ls;whereis找出特定程序的可执行文件、源代码文件和 manpage 路径,只在标准 Linux 目录中搜索,-b只搜可执行文件、-m只搜 manpage、-s只搜源代码;find按条件逐层往下搜索并执行动作;locate靠索引数据库快速定位。

find的语法结构是find paths expression [action],expression 是搜索条件,action 是处理动作,不指定 action 时默认显示文件名。常用条件有-name、-path、-lname,常用动作有-print和-exec。

# 从当前目录往下找名为 test 的文件并打印相对路径 find . -name "test" -print # 找到后执行指定命令,{} 代表 find 找出的文件 find /var/log -name "*.log" -exec ls -l {} \;

-exec里的{}是占位符,代表 find 找到的每个文件,结尾的\;是命令结束标记,这个反斜杠不能省。locate的机制要单独记:第一次执行时建立索引数据库,之后从库里快速查,所以刚改名或新建的文件它找不到,除非用updatedb重建索引。updatedb的-e可以略过指定目录。这条「locate 查不到新文件」是实操中最常见的困惑来源。

5.2 易漏点清单:五个最容易翻车的地方

梳理下来,这一整套命令里有五个点最容易被漏掉或记反,每条按「为什么漏 → 怎么补」拆开:

易漏点一:grep 默认区分大小写。为什么漏——大多数搜索工具默认不区分,思维惯性带过来。怎么补——把「grep 区分大小写」当成默认前提记,搜不到时先怀疑大小写,再怀疑文件路径。

易漏点二:rmdir 只能删空目录。为什么漏——名字里带 rmdir,容易和rm -r混为一谈。怎么补——记住分工:空目录用 rmdir,非空目录用rm -r,两者不要互换。

易漏点三:tar 默认不压缩。为什么漏——看到 .tar 就以为已经压过了。怎么补——把-z(gzip)和-j(bzip2)当成显式开关,创建归档时先问自己「要不要压缩」,要就加选项。

易漏点四:locate 依赖索引数据库。为什么漏——把它当成实时搜索。怎么补——新建或改名文件后查不到,先跑updatedb再查,别急着怀疑命令写错。

易漏点五:kill 默认发 TERM 而非 KILL。为什么漏——以为 kill 就是强杀。怎么补——记住 TERM(15) 可被忽略、KILL(9) 不可被忽略,先 TERM 后 KILL 是更稳的顺序。

5.3 文件阅读与网络命令的复习要点

阅读类命令里,head默认看前 10 行,head -20 文件名看前 20 行;tail看结尾 10 行,-f选项能实时把文件新增内容刷到屏幕上,观察日志时最有用:

# 实时跟踪系统日志的新增内容 tail -f /var/log/messages

more和less都是分页工具,区别在于 less 允许用箭头前后移动,more 用空格键和 b 键翻页。more的选项里-num指定一次显示行数,-s把连续多行空白压成一行,+/字符串在每个文件显示前先搜该字符串再从其后开始显示,+num从第 num 行开始显示。管道组合ls -al /etc | more是分页查看长输出的经典写法。

网络命令部分,ping用 ICMP 协议发回应请求,-c设次数、-i设间隔秒数、-s设数据包大小、-t设 TTL 存活数值。netstat了解系统网络情况,-a显示所有连接中的 Socket,-t显示 TCP 连接,-u显示 UDP 连接,-n用 IP 地址代替名称,-r显示路由表。ftp传文件、telnet和rlogin远程登录、bye结束 ftp 连线。线上查询三件套是man查命令手册(空格后翻、b 前翻、q 退出、/关键字搜索)、locate定位文件、whatis查命令含义。man的翻页和搜索操作要形成肌肉记忆,它是所有命令的「后悔药」——任何选项记不清,man一下比搜网页快。

6. 复习清单:按场景串命令,用 man 兜底

复习这套命令,最忌讳按字母顺序从头背。更有效的做法是按场景把命令串成动作链,每个场景走一遍,命令自然就挂在地图上了。下面这张清单可以直接当自测表用:

场景动作链关键选项
定位自己在哪、有什么pwd → ls -lh → cd-a 隐藏文件、-h 可读单位
找内容grep → find → locategrep 区分大小写、find -exec
复制与移动cp -iv → mv -fv-i 提示、-f 强制、-r 递归
打包备份tar -czvf → tar -xjvf-z gzip、-j bzip2、-f 文件名
看磁盘df -h → du -shdf 看分区、du 看目录
看进程ps -x → top → kill -9TERM 可忽略、KILL 不可忽略
改权限chmod 751 → ls -l 验证4 读 2 写 1 执行
看日志tail -f → head -20-f 实时跟踪
查命令man → whatis → which空格翻页、q 退出

自测方法很简单:遮住右列,只看场景,能不能在十秒内说出动作链和至少一个关键选项。说不出来的那一行,就是需要回补的模块,回到对应章节把选项语义再读一遍,然后在终端里真敲一次。命令这东西,看十遍不如敲一遍,敲错一次比敲对十次记得牢。

还有一个兜底习惯值得养成:任何命令的选项拿不准,先man 命令名,在手册页里用/关键字搜选项名,比凭记忆猜安全得多。原文反复强调 man 在每个 Linux 上都有,这份「随身说明书」是整套命令体系里最不该被忽略的一条。我自己的教训是早些年图快,rm后面直接跟路径不先ls确认,有一次目录名少打一个字符,删掉的是隔壁一个不该动的目录,从那以后每次删除类操作我都强制走一遍「先 ls 看目标、再 rm、必要时加 -i」的流程,宁可多敲一条命令,也不给自己留后悔的余地。希望这份梳理能帮到你,把散落的命令真正连成一张能用的地图。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进