从零入门Linux系统篇(二):指令篇·一——基础六大指令与Linux终端操作技巧
目录一、pwd命令与Linux文件系统结构1.1 pwd命令——查看当前工作目录1.2 Linux文件系统结构——一切从根目录开始二、ls命令与Linux文件基本属性2.1 ls命令详解与常用选项2.2 Linux文件类型与文件属性初识三、mkdir命令——Linux目录创建3.1 mkdir命令的基本使用3.2 mkdir常用选项四、touch命令与Linux文件时间属性4.1 touch命令的基本使用4.1.1 使用touch创建文件4.1.2 使用touch修改文件时间4.2 Linux时间戳Timestamp概念解析五、cd命令与Linux路径管理5.1 cd命令——切换工作目录5.2 Linux路径体系5.2.1 绝对路径与相对路径5.2.1.1 绝对路径详解5.2.1.2 相对路径详解5.3 Linux路径书写规则与常见问题六、rm删除命令、rmdir命令与Linux通配符6.1 rm命令——Linux中的危险删除操作6.2 rmdir命令——安全删除空目录6.3 通配符“*”——Linux中的模糊匹配操作七、Linux终端使用技巧7.1 使用上下键快速查找历史命令7.2 终端全屏与退出全屏7.3 Linux终端复制与粘贴操作7.4 Linux终端光标操作技巧一、pwd命令与Linux文件系统结构在Linux系统中所有文件和目录都按照一定的层级关系组织起来。用户在终端执行命令时并不是处于一个“抽象空间”而是始终位于文件系统中的某一个具体目录这个目录被称为当前工作目录Current Working Directory。例如打开终端后用户可能位于/home/user/project此时执行创建文件、查看文件、运行程序等操作默认都会以这个目录作为参考位置。因此在学习Linux文件操作之前首先需要掌握如何查看自己当前所处的位置这就是pwd指令的作用。1.1 pwd命令——查看当前工作目录指令名称pwd全称Print Working Directory打印当前工作目录显示当前所在路径。使用频率★★★★★指令作用查看当前用户所在的工作目录路径。pwd的使用非常简单不需要额外参数直接输入命令即可pwd执行结果/home/zhao/Linux表示当前用户所在的位置为Linux目录-/home/zhao/Linux其中/表示Linux文件系统的根目录/home表示用户家目录所在位置/zhao表示当前用户目录/Linux表示当前所在目录。1.2 Linux文件系统结构——一切从根目录开始在上一节中我们通过pwd指令查看了当前所在的位置。那么Linux中的这些目录到底是如何组织起来的呢与Windows使用类似C:\Users\Administrator\Desktop这样的盘符结构不同Linux没有C盘、D盘的概念而是采用一种树状文件结构。Linux中所有的文件和目录都从最顶层的根目录开始/这个目录被称为根目录root directory它是整个Linux文件系统的起点。Linux文件系统整体类似一棵倒置的树其中非叶子节点目录Directory目录中还可以继续存放其他目录或文件例如/home /home/user /home/user/project这些都属于目录。叶子节点普通文件或空目录例如main.c test.txt这些文件无法继续向下存储其他内容因此属于叶子节点。空目录虽然也是目录类型但由于其中没有其他文件或目录同样可以看作树结构中的叶子节点。二、ls命令与Linux文件基本属性在上一节中我们学习了pwd指令它可以帮助我们查看当前所处的位置。知道“我在哪里”之后接下来就需要知道当前目录下有哪些文件和目录这就是ls指令的作用。2.1 ls命令详解与常用选项指令名称ls全称list含义列出目录中的内容。指令作用查看当前工作目录下的文件和目录。使用频率★★★★★使用方式ls 空格 选项 空格 目录名选项用于控制显示内容目录名指定查看哪个目录如果不指定目录默认查看当前工作目录。-bash-4.2# ls mulu01 test01.c test.cLinux中的命令通常都会提供不同的选项用来实现更加丰富的功能。ls常用选项如下-a选项a all显示当前目录下所有文件包括隐藏文件。-l选项l list以详细信息形式列出当前目录中的文件。-d选项d directory查看目录本身而不是查看目录中的内容。Linux 命令中的选项通常可以组合使用。Linux中选项组合没有固定顺序要求只要选项之间能够正确解析即可。选项演示-bash-4.2# ls -a . .. .bash_history .cache .config .lesshst mulu01 test01.c test.c -bash-4.2# ls -l total 12 drwxr-xr-x 4 root root 4096 Mar 31 20:24 mulu01 -rw-r--r-- 1 root root 48 Mar 31 20:05 test01.c -rw-r--r-- 1 root root 13 Mar 31 20:06 test.c -bash-4.2# -bash-4.2# ls -al total 36 drwxr-xr-x 5 root root 4096 Mar 31 20:24 . dr-xr-xr-x. 19 root root 4096 Apr 6 15:59 .. -rw------- 1 root root 1430 Apr 5 21:19 .bash_history drwxr-xr-x 3 root root 4096 Mar 30 17:27 .cache drwxr-xr-x 3 root root 4096 Mar 30 17:27 .config -rw------- 1 root root 51 Mar 31 20:34 .lesshst drwxr-xr-x 4 root root 4096 Mar 31 20:24 mulu01 -rw-r--r-- 1 root root 48 Mar 31 20:05 test01.c -rw-r--r-- 1 root root 13 Mar 31 20:06 test.c -bash-4.2# cd /root/mulu01 -bash-4.2# ls -d . -bash-4.2# ls -ld drwxr-xr-x 4 root root 4096 Mar 31 20:24 . -bash-4.2# ls -ald drwxr-xr-x 4 root root 4096 Mar 31 20:24 .ls可以指定目录-bash-4.2# cd /root/mulu01 -bash-4.2# ls -d . -bash-4.2# ls -ld drwxr-xr-x 4 root root 4096 Mar 31 20:24 . -bash-4.2# ls -ald drwxr-xr-x 4 root root 4096 Mar 31 20:24 . -bash-4.2# ls -al /root/mulu01 total 32 drwxr-xr-x 4 root root 4096 Mar 31 20:24 . drwxr-xr-x 5 root root 4096 Mar 31 20:24 .. drwxr-xr-x 3 root root 4096 Mar 31 20:02 mulu03 drwxr-xr-x 2 root root 4096 Mar 30 17:33 nihao01 -rw-r--r-- 1 root root 3257 Mar 31 20:17 test01 -rw-r--r-- 1 root root 4495 Mar 31 20:23 test02 -rw-r--r-- 1 root root 297 Mar 31 20:24 test03 -bash-4.2#2.2 Linux文件类型与文件属性初识在Linux中目录本质上也是一种文件。简单理解目录就是我们平时所说的文件夹。Linux中的文件主要包含两个部分文件名和文件属性。其中文件属性包含很多信息例如文件大小、文件权限、文件所属用户、文件的各种时间信息如修改时间、访问时间等。因此我们学习Linux文件操作时实际上包含两个方向对文件内容的操作查看文件内容、修改文件内容、编辑文件内容。对文件属性的操作修改文件权限、查看文件时间、修改文件名称等。前面我们学习了ls指令。ls的作用就是显示当前目录下文件的信息。普通情况下只能显示文件名称-bash-4.2# ls mulu01 test01.c test.c如果想查看文件更加详细的信息可以使用-bash-4.2# ls -l total 8 drwxr-xr-x 2 root root 4096 Apr 6 16:29 mulu07 drwxr-xr-x 2 root root 4096 Mar 31 20:02 nihao01 -rw-r--r-- 1 root root 0 Mar 31 20:02 test01相比lsls -l显示了文件的详细属性信息。这里最前面的字符表示文件类型-开头表示普通文件d开头表示目录。目前只需要掌握这两个基本类型即可Linux中还有其他类型的文件后续文章会继续介绍。除了普通文件和目录之外Linux中还有一种特殊文件隐藏文件。Linux规定文件名以.开头的文件就是隐藏文件。这些文件默认不会显示。如果想查看隐藏文件需要使用ls -a。-bash-4.2# ls -a . .. mulu07 nihao01 test01可以看到这两个特殊目录。Linux中每一个目录下默认都会存在这两个隐藏目录即使当前目录为空也一样。它们有什么作用这里暂时不展开后续学习cd指令和Linux路径时会详细介绍。如果想查看一个文件更加完整的信息可以使用stat 文件名。-bash-4.2# stat /root/mulu01/mulu03/mulu01/test01 File: ‘/root/mulu01/mulu03/mulu01/test01’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 786450 Links: 1 Access: (0644/-rw-r--r--) Uid: (0/root) Gid: (0/root) Access: 2026-05-31 20:02:36.075569579 0800 Modify: 2026-05-31 20:02:36.075569579 0800 Change: 2026-05-31 20:02:36.075569579 0800 Birth: -相比ls -lstat可以查看更加完整的文件状态信息。例如文件大小、文件所属用户、文件所属组、文件访问时间、文件修改时间、文件状态变化时间。不过目前阶段只需要了解ls -l用于快速查看文件基本属性stat用于查看文件更加详细的状态信息。科普内容Linux文件中的三个时间是什么意思在使用stat查看文件信息时我们会看到三个比较重要的时间Access: 2026-05-31 20:02:36Modify: 2026-053-31 20:02:36Change: 2026-05-31 20:02:36这三个时间分别表示Access最后一次访问文件内容的时间。Modify最后一次修改文件内容的时间。Change最后一次修改文件元数据属性的时间。Access看过Modify改过Change属性变过。三、mkdir命令——Linux目录创建在前面的学习中我们已经掌握了如何查看目录中的文件pwd查看当前所在目录ls查看当前目录下有什么文件。那么如果我们想在当前目录下创建一个新的文件夹应该怎么办这就需要使用mkdir指令。3.1 mkdir命令的基本使用指令名称mkdir全称Make Directory含义创建目录。使用频率★★★★★指令作用创建新的工作目录文件夹。指令操作mkdir 新的目录名称mkdir mulu07表示在当前工作目录下创建一个名为mulu07的目录。例如首先查看当前目录结构tree . |-- nihao01 | -- test789.txt -- test01 1 directory, 2 files可以看到当前目录下存在目录nihao01文件test01现在创建一个新的目录mkdir mulu07再次查看当前目录tree . |-- mulu07 |-- nihao01 | -- test789.txt -- test01 2 directories, 2 files可以发现新的目录mulu07已经出现在当前目录中。同时目录数量由1 directory变为2 directories说明目录创建成功。3.2 mkdir常用选项最实用的是第一个选项后面的几个选项如果感兴趣可以自行尝试。在使用mkdir命令创建目录时如果目标路径中的父目录不存在可以先自动创建所缺少的父目录这种方式也可以称为“递归创建”。因此我们可以这样操作-bash-4.2# tree . |-- baggage01.tgz |-- baggage_mulu01.tgz |-- baggage_mulu66.tgz |-- baggage.tgz |-- deep_file.log |-- mulu66.tgz |-- mulu.zip |-- practice_lab | |-- big_file.bin | |-- mulu_deep | | |-- deep_file.log | | -- inner | | -- secret.txt | |-- readme.txt | |-- script.sh | |-- test01 | |-- test02 | -- test03 |-- test.c -- v 3 directories, 17 files -bash-4.2# mkdir -p mulu01/mulu02/mulu03/mulu04/mulu05 -bash-4.2# tree . |-- baggage01.tgz |-- baggage_mulu01.tgz |-- baggage_mulu66.tgz |-- baggage.tgz |-- deep_file.log |-- mulu01 | -- mulu02 | -- mulu03 | -- mulu04 | -- mulu05 |-- mulu66.tgz |-- mulu.zip |-- practice_lab | |-- big_file.bin | |-- mulu_deep | | |-- deep_file.log | | -- inner | | -- secret.txt | |-- readme.txt | |-- script.sh | |-- test01 | |-- test02 | -- test03 |-- test.c -- v 8 directories, 17 files -bash-4.2#四、touch命令与Linux文件时间属性4.1 touch命令的基本使用指令名称touch使用频率★★★★★指令作用1.创建新的文件、2.修改文件的时间属性。指令操作touch 文件名4.1.1 使用touch创建文件-bash-4.2# tree . 0 directories, 0 files -bash-4.2# touch file01.txt -bash-4.2# tree . -- file01.txt 0 directories, 1 file -bash-4.2#4.1.2 使用touch修改文件时间-bash-4.2# stat file01.txt File: ‘file01.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 786456 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-06-07 08:18:36.851113831 0800 Modify: 2026-06-07 08:18:36.851113831 0800 Change: 2026-06-07 08:18:36.851113831 0800 Birth: - -bash-4.2# touch file01.txt -bash-4.2# stat file01.txt File: ‘file01.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 786456 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2026-06-07 08:23:02.769923455 0800 Modify: 2026-06-07 08:23:02.769923455 0800 Change: 2026-06-07 08:23:02.769923455 0800 Birth: - -bash-4.2#总结touch后面跟的文件名如果已经存在→修改文件的时间属性包括Access访问时间、Modify修改时间、Change状态改变时间。touch后面跟的文件名如果不存在→创建一个新的空文件。4.2 Linux时间戳Timestamp概念解析时间戳Timestamp是计算机中用于记录某个事件发生时间的一种方式。例如文件创建、文件修改、数据更新、交易记录。计算机并不会直接使用我们日常看到的“年月日 时分秒”来存储时间而是通常将时间转换为一组数字进行记录。在Linux中时间戳通常指Unix时间戳Unix Timestamp它表示从格林威治时间1970年1月1日0时0分0秒开始到当前时间经过的总秒数。这样无论系统处于哪个国家、哪个时区都可以通过统一的数字表示同一个时间方便计算机进行存储、比较和处理。需要注意的是格林威治时间1970年1月1日0时对应中国东八区时间1970年1月1日上午8时此时Unix时间戳为0例如在编写这篇文章时对应的Unix时间戳为1785122564。通过时间戳计算机可以更加准确地记录和处理文件时间信息。后续在学习touch指令以及文件属性时会进一步接触时间戳的具体应用。五、cd命令与Linux路径管理5.1 cd命令——切换工作目录指令名称cd全称Change Directory使用频率★★★★★指令作用切换当前工作目录。指令操作cd 空格 路径输入目标路径后按回车即可切换到指定目录。-bash-4.2# pwd /root -bash-4.2# ls mulu01 test01 test.c -bash-4.2# cd mulu01 -bash-4.2# pwd /root/mulu015.2 Linux路径体系在Linux 中如果想访问一个文件首先需要找到它所在的位置。而找到文件的方法就是通过路径Path进行定位。路径描述了文件或目录在Linux文件系统中的具体位置。5.2.1 绝对路径与相对路径Linux 中的路径主要分为两种绝对路径相对路径5.2.1.1 绝对路径详解绝对路径指的是从Linux文件系统的根目录/开始一层一层向下查找最终得到的完整路径。例如/root/mulu01/test01其中/表示根目录后面的目录依次表示文件所在的位置。绝对路径具有唯一性无论当前处于哪个目录都可以通过完整路径找到目标文件。在Linux系统配置文件中绝对路径使用较多。-bash-4.2# cd /root/mulu01/mulu03/mulu01/mulu07 -bash-4.2# pwd /root/mulu01/mulu03/mulu01/mulu07 -bash-4.2#5.2.1.2 相对路径详解相对路径指的是从当前所在目录开始查找目标文件所得到的路径。它不需要从根目录/开始书写而是以当前工作目录作为参考。例如当前所在目录/root其中存在目录/root/mulu01那么mulu01就是一个相对路径。相对路径书写更加简洁在日常Linux操作中使用较多。补充知识一个点和两个点在前面ls指令的讲解中我们提到过Linux目录中默认存在两个特殊的隐藏目录. ...表示当前工作目录..表示上一级工作目录。-bash-4.2# cd ./../../../nihao01 -bash-4.2# pwd /root/mulu01/nihao01除了通过路径切换目录之外cd还提供了一些与路径相关的常用用法。cd - 可以快速切换回上一次所在的工作目录。cd ~ 表示当前用户的家目录。cd .. 表示当前目录的上一级目录。-bash-4.2# cd ~ -bash-4.2# pwd /root -bash-4.2# cd - /root/mulu01/nihao01 -bash-4.2# pwd /root/mulu01/nihao01 -bash-4.2# cd .. -bash-4.2# pwd /root/mulu01 -bash-4.2#绝对路径和相对路径的区别本质上在于搜索起点不同。绝对路径以根目录/作为搜索起点按照完整路径进行查找相对路径以当前工作目录作为搜索起点根据当前位置进行查找。简单来说是否以/开头是判断绝对路径和相对路径最直接的方法。5.3 Linux路径书写规则与常见问题在 Linux 中书写路径时最容易混淆的就是路径分隔符。很多人总是记不住Linux和Windows中路径的区别可以用一句话帮助记忆窗户Windows向上看企鹅Linux往下看。Windows 使用反斜杠\ 例如C:\Users\AdminLinux 使用正斜杠/ 例如/root/mulu01那么 Linux中的目录路径到底应该怎么写以/root/mulu01/mulu03/mulu01/mulu07这个路径为例开头的/必须存在除非当前已经位于根目录下需要注意开头的/不是路径分隔符而是表示根目录。中间的/必须存在。它表示目录之间的层级关系。结尾的/建议不要添加也就是开头/表示根目录中间/表示层级分隔结尾/通常省略。六、rm删除命令、rmdir命令与Linux通配符程序员中有一个经典的玩笑rm -rf / 从“删库”到“跑路”。虽然这只是一个玩笑但也侧面说明了 Linux 中 rm 指令的危险性。rm指令功能非常强大可以删除文件和目录但同时也具有一定风险。而rmdir指令由于只能删除空目录相对来说更加安全。6.1 rm命令——Linux中的危险删除操作指令名称rm全称remove使用频率★★★★★指令作用删除可以被删除的文件或目录。指令操作rm 选项 要删除的文件/目录使用rm时需要特别注意删除操作通常是不可逆的因此在执行删除命令前一定要确认目标文件或目录是否正确。常用指令组合表实践尝试-bash-4.2# ls test01 -bash-4.2# rm -i test01 rm: remove regular empty file test01? -bash-4.2# y-bash-4.2# rm -f test01 -bash-4.2# rm test02 rm: cannot remove test02: No such file or directory 如果删除一个不存在的文件会提示文件不存在。 -bash-4.2# rm -f test02 不会报错。-bash-4.2# rm mulu01 rm: cannot remove mulu01: Is a directory -bash-4.2# rm -r mulu01-bash-4.2# rm -ri mulu01 rm: descend into directory mulu01? 确认后 rm: remove regular empty file mulu01/test01?-bash-4.2# rm -rf mulu016.2 rmdir命令——安全删除空目录指令名称rmdir全称remove directory使用频率★★★★★指令作用删除空目录。指令操作rmdir 要删除的空目录rmdir与 rm都可以用于删除目录但是两者存在明显区别rm可以删除文件也可以通过-r选项递归删除目录及目录中的内容rmdir只能删除空目录。-bash-4.2# tree . |-- mulu01 | |-- nihao01 | | -- test789.txt | |-- test01 | |-- test02 | -- test03 -- test.c 2 directories, 5 files -bash-4.2# rmdir /root/mulu01 rmdir: failed to remove ‘/root/mulu01’: Directory not empty -bash-4.2# mkdir mulu02 -bash-4.2# tree . |-- mulu01 | |-- nihao01 | | -- test789.txt | |-- test01 | |-- test02 | -- test03 |-- mulu02 -- test.c 3 directories, 5 files -bash-4.2# rmdir mulu02 -bash-4.2# tree . |-- mulu01 | |-- nihao01 | | -- test789.txt | |-- test01 | |-- test02 | -- test03 -- test.c 2 directories, 5 files6.3 通配符“*”——Linux中的模糊匹配操作在Linux中有时候我们并不知道文件的完整名称或者想一次性匹配多个符合条件的文件这时可以使用通配符Wildcard进行模糊匹配。其中最常用的就是*含义是匹配任意长度包括零个字符的任意字符。ls *.txt星号替掉一切只要尾巴是.txt通通揪出来。ls mulu*凡是叫mulu开头的东西——mulu01、mulu_backup、哪怕就叫mulu自己——一个都跑不掉。ls *test*不管test藏在开头、中间还是结尾只要文件名里沾了这四个字母全给你翻出来。rm -rf * —— 死神指令删光当前目录下所有非隐藏内容。没有确认没有后悔药。手起刀落之前先看清楚自己在哪个目录。七、Linux终端使用技巧除了通过指令完成各种操作之外Linux终端中还有一些非常实用的操作技巧可以提高日常使用效率。Windows系统也支持通过终端进行指令操作例如PowerShell而Linux系统则更加依赖终端和指令操作这也是Linux作为服务器操作系统的重要特点之一。下面介绍几个Linux使用过程中非常常用的小技巧。7.1 使用上下键快速查找历史命令在Linux终端中只需要将光标停留在命令行位置然后按键盘上的↑ ↓方向键就可以快速调出之前执行过的历史命令。7.2 终端全屏与退出全屏如果使用Xshell连接Linux可以通过快捷键Alt Enter实现终端全屏和退出全屏。7.3 Linux终端复制与粘贴操作在Linux终端中复制粘贴快捷键和Windows中有所不同。通常情况下复制Ctrl Shift C粘贴Ctrl Shift V而不是Ctrl C / Ctrl V原因是Linux 终端中Ctrl C通常代表终止当前正在运行的程序。7.4 Linux终端光标操作技巧刚开始接触Linux的同学可能会觉得终端中的光标使用起来不太习惯。这里分享一个简单技巧看左不看右。Linux终端输入命令时真正需要关注的是光标左侧已经输入的内容而不是右侧的空白区域。只要保持光标位于正确的位置通过方向键移动、Backspace 删除、Delete 删除就可以完成命令修改。