近期使用Linux系统下的QT所有经常用到Linux 命令从最底层逻辑讲起每个例子都逐字符拆解这部分是什么、为什么要这么写、不写 / 写错会怎么样完全从新手视角出发帮助理解命令的设计逻辑而不是死记硬背。一、先彻底搞懂Linux 命令到底怎么调用1. 命令运行的地方终端与提示符打开终端后你会看到一行类似zhangsanubuntu:~$的文字这叫「命令提示符」每一部分都有意义成分含义为什么这么设计zhangsan当前登录的用户名Linux 是多用户系统必须明确当前是谁在操作分隔符意思是「在... 上」固定格式分隔用户名和主机名ubuntu主机名电脑的名字网络中区分不同电脑用:分隔符分隔主机名和当前所在路径~当前所在的目录这里是家目录随时告诉你现在在哪个文件夹避免「迷路」$普通用户权限标识如果是#代表管理员root权限提醒你当前操作的权限等级光标在$后面闪烁代表你可以输入命令了。2. 命令的标准结构核心逻辑所有 Linux 命令都严格遵循这个结构空格是分隔符每部分用空格隔开命令名 [选项1] [选项2] ... [参数1] [参数2] ...每一部分的本质命令名你要执行的「动作」是整个命令的核心必须写在最前面。比如ls是「列出内容」的动作cd是「切换目录」的动作。选项调整这个动作的「执行方式」可选加也可以不加。短选项以-开头单个字母比如-l多个短选项可以合并写比如-la-l -a。长选项以--开头完整单词比如--help可读性更好一般一个选项单独写。参数这个动作的「操作对象」比如文件名、目录名有的命令不需要参数有的可以传多个。3. 第一个完整例子逐成分拆解我们拿最经典的ls -l /home来拆每一部分都讲透ls -l /home成分是什么为什么这么用不写会怎么样ls命令名全称 List核心动作列出指定目录里的所有文件和文件夹没有命令名系统不知道你要做什么直接报错-l短选项l 是 long 的缩写调整展示方式以「详细列表」的形式显示包含文件权限、大小、修改时间等信息不写-l就只显示文件 / 文件夹的名字是最简单的列表/home参数目标目录的路径指定操作对象我要查看的是/home这个目录里的内容不写参数默认查看「当前所在的目录」也就是提示符里~对应的目录✅ 执行效果列出/home目录下所有文件的详细信息包括权限、所有者、大小、修改时间。新手必记规则Linux 命令严格区分大小写LS和ls是完全不同的选项和参数的顺序一般可以换但命令名必须在最前面。二、目录操作命令逐例子拆解这是最高频的操作我们每个命令都拆透。1.pwd命令全称Print Working Directory核心作用打印你当前所在的完整路径新手「迷路」神器。语法pwd一般不加选项和参数示例拆解pwd只有命令名没有选项和参数。为什么不用参数它的作用就是打印「当前目录」不需要指定操作对象。执行效果输出比如/home/zhangsan告诉你现在就在这个目录里。2.cd命令全称Change Directory核心作用切换到指定的目录也就是「进入某个文件夹」。语法cd 目标路径先搞懂两个核心概念绝对路径 vs 相对路径这是新手第一个大坎必须理解绝对路径从「根目录/」开始写的完整路径比如/home/zhangsan/Documents。特点不管你当前在哪个目录写绝对路径都能精准找到目标。相对路径以「当前所在目录」为基准的路径比如Documents、../test。特点路径会随你当前位置变化而变化短距离切换更方便。Linux 里的 5 个特殊路径符号符号含义本质~当前用户的家目录绝对路径的简写对应/home/用户名.当前目录相对路径的基准..上一级目录父目录相对路径往上退一层-上一次所在的目录快速来回切换/根目录整个系统的最顶层所有路径都从这里开始示例 1回到家目录cd ~拆解cd命令名切换目录的动作。~参数目标路径代表家目录。为什么这么用登录系统后默认在了你目录操作过程中跑远了用这个命令可以一键回家。补充直接写cd回车效果完全一样系统默认目标就是家目录。示例 2用相对路径进入子目录cd Documents拆解cd命令名。Documents参数相对路径代表「当前目录下的 Documents 文件夹」。为什么这么用你当前就在/home/zhangsan里Documents 是里面的子文件夹直接写名字就行不用写完整的绝对路径。新手坑如果当前目录里没有 Documents 这个文件夹命令会报错「No such file or directory」。示例 3往上退一级目录cd ..拆解cd命令名。..参数特殊路径符号代表上一级目录。为什么这么用比如你在/home/zhangsan/Documents执行后就会退到/home/zhangsan。进阶可以连续用比如cd ../../就是往上退两级。示例 4用绝对路径切换目录cd /tmp拆解cd命令名。/tmp参数绝对路径系统的临时目录。为什么这么用/tmp是根目录下的文件夹不管你当前在哪个位置写/tmp都能直接进去不用考虑相对位置。3.ls命令重点拆解全称List核心作用列出目录里的文件和文件夹是使用频率最高的命令。语法ls [选项] [路径]常用选项逐个讲选项全称 / 由来作用为什么需要这个选项-llong以详细列表展示显示权限、大小、时间等默认只显示名字需要详细信息时加这个-aall显示所有文件包括隐藏文件Linux 里以.开头的文件默认隐藏不加这个看不到-hhuman-readable人性化显示文件大小自动换算成 K、M、G默认显示字节数比如 1234567 字节人眼看不懂加了 - h 会显示 1.2M-ttime按修改时间排序最新的排在最前面默认按文件名排序找最新修改的文件时用注意-h必须和-l一起用才生效因为它是用来格式化-l输出里的大小列的。示例 1基础用法查看当前目录ls拆解只有命令名没有选项没有参数。为什么默认操作对象就是当前目录默认展示方式就是只显示名字所以什么都不用加。效果输出当前目录下所有非隐藏文件 / 文件夹的名字。示例 2查看详细信息ls -l拆解ls命令名。-l短选项长格式展示。为什么加-l我不仅想知道有什么文件还想知道文件多大、什么时候改的、谁有权限。效果输出带权限、所有者、大小、修改时间的详细列表。示例 3查看所有文件 人性化大小ls -lah拆解ls命令名。-lah三个短选项合并写等价于-l -a -h。-l详细列表-a显示隐藏文件-h人性化大小为什么合并写短选项支持合并写起来更简洁是 Linux 的常规操作。效果列出当前目录所有文件包括隐藏的显示详细信息大小以 K/M/G 展示。示例 4查看指定目录ls -lt /etc拆解ls命令名。-lt两个选项合并-l详细格式-t按时间排序。/etc参数指定查看/etc目录而不是当前目录。为什么这么用我想看看系统配置目录/etc里哪些文件是最新修改的。效果列出/etc目录下的文件按修改时间从新到旧排序显示详细信息。4.mkdir命令全称Make Directory核心作用创建新的空文件夹。语法mkdir [选项] 目录名常用选项选项作用为什么需要-p递归创建多级目录默认只能创建一级目录要创建a/b/c这种嵌套目录不加 - p 会报错示例 1创建单个目录mkdir test拆解mkdir命令名创建目录的动作。test参数新目录的名字。为什么在当前目录下创建一个叫 test 的空文件夹。新手坑如果当前目录已经有叫 test 的文件夹会报错「File exists」。示例 2创建多级嵌套目录mkdir -p work/project/code拆解mkdir命令名。-p选项递归创建parent 的缩写自动创建父目录。work/project/code参数多级路径的目录名。为什么要加-p如果不加-p系统会先找 work 目录找不到就直接报错加了-p会自动创建 work、project、code 三层目录一步到位。效果当前目录下生成 work 文件夹里面有 projectproject 里面有 code。三、文件操作命令逐例子拆解1.touch命令全称本意是「触摸」文件核心作用创建空的新文件如果文件已存在就更新它的修改时间。语法touch 文件名示例 1创建单个空文件touch hello.txt拆解touch命令名。hello.txt参数要创建的文件名。为什么用 touch 创建空文件Linux 里没有专门的「新建文件」命令touch 原本是用来修改文件时间的顺便可以创建不存在的空文件慢慢就成了创建空文件的标准用法。效果当前目录下生成一个空的 hello.txt 文件。示例 2同时创建多个文件touch a.txt b.txt c.txt拆解touch命令名。a.txt b.txt c.txt三个参数三个文件名用空格隔开。为什么touch 支持传多个参数可以一次创建多个文件不用执行三次命令。效果一次性创建三个空文本文件。2.cp命令全称Copy核心作用复制文件或目录到指定位置。语法cp [选项] 源文件 目标位置/新文件名常用选项选项作用为什么需要-r递归复制目录默认只能复制文件复制文件夹必须加 - r否则报错-i覆盖前提示确认默认直接覆盖目标文件新手容易误覆盖加 - i 更安全示例 1复制文件到目录cp hello.txt test/拆解cp命令名复制动作。hello.txt第一个参数源文件要复制的东西。test/第二个参数目标位置复制到哪里去。为什么这么写cp 命令的参数顺序固定是「源 → 目标」不能写反。效果把 hello.txt 复制一份放到 test 文件夹里原来的 hello.txt 还在。示例 2复制并重命名文件cp hello.txt hello_backup.txt拆解cp命令名。hello.txt源文件。hello_backup.txt目标文件名。为什么目标是文件名而不是目录如果目标位置写的是一个不存在的文件名就会「复制 重命名」。效果复制 hello.txt新文件叫 hello_backup.txt两个都在当前目录。示例 3复制整个目录cp -r work/ backup/拆解cp命令名。-r选项recursive 递归把目录里的所有子文件、子目录都一起复制。work/第一个参数源目录。backup/第二个参数目标目录。为什么必须加-r目录本身是个「容器」里面还有很多内容不加 - r 的话系统不知道要复制里面的东西会直接报错「omitting directory」。效果把整个 work 目录连同里面所有内容复制一份到 backup 目录里。3.mv命令全称Move核心作用移动文件 / 目录到新位置同目录下就是重命名。本质移动和重命名是同一个动作 —— 把文件从一个路径放到另一个路径。语法mv 源文件 目标位置/新名字示例 1移动文件到目录mv hello.txt Documents/拆解mv命令名移动动作。hello.txt源文件。Documents/目标目录。和 cp 的区别cp 是复制源文件还在mv 是移动源文件会消失只在目标位置存在。效果hello.txt 从当前目录消失出现在 Documents 文件夹里。示例 2重命名文件mv old.txt new.txt拆解mv命令名。old.txt源文件原来的名字。new.txt目标新的名字。为什么同目录下就是重命名因为目标位置和源位置在同一个目录只是文件名变了相当于把文件「移动」成了新名字。效果当前目录里的 old.txt 改名叫 new.txt。4.rm命令高危命令重点讲全称Remove核心作用删除文件或目录。⚠️ 新手警告Linux 默认没有回收站删除的文件基本找不回来一定要谨慎语法rm [选项] 文件名/目录名常用选项选项作用为什么需要风险提示-r递归删除目录默认只能删文件删目录必须加 - r会把目录里所有内容一起删掉删目录必加但也容易误删大量内容-f强制删除不提示默认删只读文件会问你确认加 - f 直接删不打招呼新手慎用误删没有挽回余地-i删除前逐个提示确认每删一个文件都问你 yes/no防止误删新手推荐用安全示例 1删除单个文件rm hello.txt拆解rm命令名删除动作。hello.txt参数要删除的文件。效果当前目录的 hello.txt 被永久删除。示例 2删除整个目录rm -r test/拆解rm命令名。-r选项递归删除把目录里的所有文件、子目录都一起删掉。test/参数要删除的目录。为什么加-r和 cp 一样目录是容器必须递归把里面的东西都删了才能删掉目录本身不加 - r 会报错「is a directory」。效果test 目录连同里面所有内容被全部删除。示例 3安全删除目录新手推荐rm -ri work/拆解rm命令名。-ri两个选项合并-r递归-i交互提示。work/目标目录。为什么加-i每删一个文件都会问你remove xxx?输入 y 才删n 就跳过避免手滑删错。❌ 绝对禁止尝试rm -rf /会删除系统里所有文件直接把系统搞崩永远不要执行四、文件查看命令逐例子拆解1.cat命令全称Concatenate拼接核心作用把文件内容全部打印到终端也可以用来拼接多个文件。语法cat [选项] 文件名常用选项选项作用-n显示行号示例查看文件并显示行号cat -n hello.txt拆解cat命令名输出文件全部内容。-n选项number 行号在每一行前面加上行号。hello.txt参数要查看的文件。为什么适合小文件cat 会一次性把所有内容都输出到屏幕文件大的话前面的内容会滚过去看不到所以只适合几行到几十行的小文件。效果输出 hello.txt 的所有内容每行前面有序号。2.head和tail命令head查看文件开头部分tail查看文件结尾部分共同选项-n 数字指定看几行默认 10 行示例 1查看文件前 5 行head -n 5 /etc/passwd拆解head命令名看开头。-n 5选项 参数n 是 lines 的意思指定看 5 行数字可以直接写比如-5也可以。/etc/passwd参数系统用户配置文件。为什么用 head我只想快速看看文件开头的格式不需要看全部内容。效果只输出 /etc/passwd 的前 5 行。示例 2实时监控日志文件tail -f /var/log/syslog拆解tail命令名看结尾。-f选项follow 跟随实时追踪文件新增的内容文件有新内容会立刻显示出来。/var/log/syslog参数系统日志文件。为什么叫实时监控普通 tail 只看当前的最后几行加了 - f 后命令不会结束会一直盯着这个文件只要有新日志就打印出来排错的时候特别好用。退出方式按Ctrl C终止命令。3.less命令核心作用分页查看大文件支持上下翻页、搜索是查看大文件的首选。名字由来经典的分页工具叫 more只能往下翻less 是升级版取「less is more」的梗。示例查看大日志文件less /var/log/syslog拆解less命令名分页查看。/var/log/syslog参数要查看的大文件。为什么不用 cat日志文件可能有几万行cat 会直接滚到底根本看不了less 会一页一页展示还能往回翻。常用操作空格 / PageDown往下翻一页PageUp往上翻一页上下箭头往上 / 往下翻一行/关键词往下搜索关键词按 n 跳到下一个匹配项q退出查看五、权限命令chmod逐成分拆解Linux 是多用户系统每个文件都有三套权限所有者、所属组、其他用户每套都有读 (r)、写 (w)、执行 (x) 三种权限。权限数字对应表核心权限字母数字说明读r4可以看文件内容 / 看目录里有什么写w2可以修改文件内容 / 在目录里增删文件执行x1可以运行文件脚本 / 程序/ 可以进入目录数字法设置权限三位数字分别对应「所有者权限」「所属组权限」「其他用户权限」每位数字是权限值相加的结果。 比如755第一位 7 421 → 所有者读 写 执行第二位 5 41 → 所属组读 执行第三位 5 41 → 其他用户读 执行chmod命令全称Change Mode核心作用修改文件或目录的权限。语法chmod [选项] 权限值 文件名示例给脚本文件设置常用权限chmod 755 test.sh逐成分拆解chmod命令名修改权限的动作。755参数权限数字三位分别对应用户、组、其他人7所有者4 (r)2 (w)1 (x) 7 → 文件的主人可以读、改、运行5所属组4 (r)1 (x) 5 → 同组的用户可以读和运行不能改5其他用户4 (r)1 (x) 5 → 其他人可以读和运行不能改test.sh参数要修改权限的目标文件.sh 是 shell 脚本文件。为什么用 755这是脚本文件最标准的权限设置 —— 所有者全权管理其他人只能用不能改兼顾功能和安全。如果是普通文本文件一般用644所有者读写其他人只读。六、打包压缩tar命令新手重灾区彻底拆透全称Tape Archive磁带归档早年用来往磁带上备份数据现在是 Linux 标准打包工具。核心作用把多个文件 / 目录打包成一个文件.tar也可以配合压缩算法压缩.tar.gz。打包 vs 压缩打包把一堆文件拼成一个文件体积不变方便传输。压缩用算法把文件体积变小节省空间。tar 可以一步完成「打包 压缩」。核心选项必须记牢选项全称作用注意事项-ccreate创建新包打包 / 压缩用和-x互斥二选一-xextract解包 / 解压和-c互斥二选一-zgzip用 gzip 算法压缩 / 解压处理 .tar.gz 格式必加-vverbose显示处理过程详细输出新手建议加能看到进度-ffile指定文件名必须写在所有选项的最后面后面紧跟文件名-C大写 C指定解压到的目录后面跟目标路径示例 1打包压缩目录最常用tar -zcvf backup.tar.gz work/逐成分拆解按顺序tar命令名打包压缩工具。-zcvf4 个短选项合并注意顺序f 在最后-z启用 gzip 压缩。不加的话只是打包不压缩生成 .tar 文件体积大很多。-c创建新包代表我们现在是「打包压缩」不是解压。-v显示详细过程打包每个文件都会打印名字新手能看到进度不加的话执行完没输出。-f指定文件名必须放在选项最后因为它后面必须紧跟压缩包的名字。backup.tar.gz第一个参数生成的压缩包文件名。后缀.tar.gz是约定俗成的代表「gzip 压缩的 tar 包」别人一看就知道怎么解压。work/第二个参数要打包压缩的目标目录。可以写多个比如work/ test.txt就一起打包。新手巨坑如果把 f 写在中间比如tar -zcfv backup.tar.gz work/系统会把v当成文件名直接报错因为 f 后面必须是文件名效果把 work 目录所有内容打包并压缩生成 backup.tar.gz 文件同时显示打包过程。示例 2解压压缩包tar -zxvf backup.tar.gz逐成分拆解tar命令名。-zxvf4 个选项f 在最后-zgzip 格式对应 .tar.gz。-x解压 / 解包模式和打包的-c对应。-v显示解压过程。-f指定文件名最后一位。backup.tar.gz参数要解压的压缩包。为什么只改了一个字母打包是-c解压是-x其他选项都一样非常好记。效果把 backup.tar.gz 解压到当前目录还原出 work 文件夹。示例 3解压到指定目录tar -zxvf backup.tar.gz -C /tmp拆解前面和解压一样多了-C /tmp。-C选项大写 C指定解压目标目录后面跟/tmp路径参数。为什么需要-C默认解压到当前目录加了-C就可以指定解压到别的地方不用先 cd 过去。效果把压缩包解压到 /tmp 目录里。七、管道符|经典组合拆解管道符是 Linux 的灵魂设计之一作用是把左边命令的输出结果作为右边命令的输入内容可以把多个命令串起来实现复杂功能。最经典组合搜索进程ps aux | grep nginx逐成分拆解ps aux左边的命令ps进程查看命令process status。aux三个选项a 所有用户进程u 显示详细信息x 后台进程。单独执行的话会输出几百行所有进程的列表。|管道符作用把 ps aux 输出的几百行文本原封不动传给右边的命令。grep nginx右边的命令grep文本搜索工具用来在文本里找关键词。nginx搜索关键词。它会从管道传过来的进程列表里只保留包含「nginx」的行。为什么这么用单独 ps aux 输出太多找特定进程麻烦用管道 grep 过滤一步就找到目标进程是运维最常用的组合。效果只显示和 nginx 相关的进程包含进程号、CPU 占用等信息。新手学习建议先练核心 10 个命令cd、ls、pwd、mkdir、touch、cp、mv、rm、cat、tar这 10 个覆盖了 80% 的日常操作练熟再学其他的。别怕敲错输错了最多报错不会搞坏系统多敲几遍自然就记住了。理解逻辑不要死记每个选项为什么存在、解决了什么问题想通了就不用背了。