新手村的你,是否被这个魔咒困住了:「指令输错 → 报错 → 查教程 → 继续错」。ls 看了不懂,rm 用了就怂。
别慌,这不是你的问题,只是指令的「底层逻辑」还没打通。本文用 10 分钟,带你打通 ls / pwd / cd / touch / mkdir / rm 这六大基础的任督二脉,看完不再死记硬背,让你的 Linux 血脉瞬间觉醒!我们的目标不仅是让您「知其然」,更要「知其所以然」,从而自信地迈出 Linux 操作的第一步。

这里只是为了让大家粗略认识一下,并不严谨,大家不用记,指令的用法博主后面会一个一个结合Linux系统的理论知识详细地去介绍,我们以后面为准。
ok,现在我们“见过猪跑了”,接下来我们“吃猪肉了”!博主会对上面的指令一一介绍!

之前博主已经在/root/118路径下mkdir了一个dir1目录,所以这里ls出来的就是dir1。
ok ,我们来看这句话:罗列当前路径下的所有的文件详情。这里面有两个点需要我们注意:
ok,如果我们在windows系统中新建一个空文件(比如一个空的记事本,大小为0),那这个空的文件(或者说这个空的记事本)占不占空间?

其实是占空间的
为什么?肯定会有很多小伙伴说:不对啊,这是一个空的文件怎么会占空间呢?
ok,我们想一想,一个空的文件是不是有名称,是不是有文件类型,是不是有创建的时间,这些我们是不是都需要保存下来,我们将文件的名称、文件的类型、创建时间……这些数据称为文件的属性数据,也叫做元数据,元数据也是数据,既然是数据,我们就应该保存下来
其实文件是由两部分组成的:

所以即使文件是空的,也要存储这些文件属性;学习文件的本质无非就是对内容或者对属性做操作

所谓当前路径——就是默认所处的路径,就叫做当前路径
Linux系统中为什么要有路径?因为我需要访问文件,所以要有路径
那为什么有了路径,我就可以访问数据呢?因为路径是有唯一性的,我们可以通过唯一的路径找到唯一的文件


通过上面的学习,我们就知道:
ok,我们知道一个文件不仅仅只有文件名一个属性,还有一些其他的属性,例如:文件类型,创建时间……那我们怎么通过指令来查看这些信息呢?

也许会有UU想问:ls -l,中的“-”是什么东西?其实这是一个选项符,通过这个选项符,我们可以使用指定命令的扩展功能
那如果此时我们想去查看任意路径下有哪些文件,我们该怎么做呢?我们可以使用下面的命令

有了 ls [路径] ,我们就可以在任意的目录下去查看我们想查看目录下有哪些文件了!!!
ls -a 显示当前路径下的隐藏文件😯,隐藏项!哪里来的隐藏项?
某些文件无法通过常规命令直接查看,但使用 ls -a 命令即可显示隐藏项目!

通过上图,我们可以清晰的看出,. 文件 和 .. 文件 就是这个隐藏项,在Linux系统中,我们将这些以“.”开头的文件称为隐藏文件(. 文件 和 .. 文件 就是隐藏文件)
ls 显示时默认不显示隐藏文件(以“.”开头的文件),. 文件 和 .. 文件 在Linux系统中会隐藏文件名,默认看不到

通过上图我们可以看到,ls -a 会显示当前路径下的所有文件的文件名(包括隐藏文件的文件名和未被隐藏文件的文件名)
至于 .文件 和 ..文件 是什么?后面会进行介绍——
那如果我们想显示隐藏文件并且显示更详细的文件属性,该怎么办?
我们可以将效果相同的选项进行组合——


总结:选项可以组合实现,选项可以自由组合!!!

表示当前我处于/root/118这个路径下

在windows中我们使用“\”作为路径分隔符,而在Linux中我们使用“/”作为路径分隔符
通过前面的学习,我们知道 .. 文件是一个隐藏文件,默认是看不到的,但是可以通过ls -a 查看隐藏文件

那这个.. 文件中存的到底是什么?
“..”就是相当于当前路径,上级路径是谁。我们可以认为 ..文件 中存放的是上级路径
既然是这样的话,我们就可以将cd 和 .. 连接起来,这样就可以实现返回上级路径的操作——

Linux中的 .. 就想当于windows中的回退,windows中可以在任何路径下都可以回退,Linux在任何目录中都有 .. 标记上级路径
但是这里有个问题,我们可以一直回退吗?

ok,当我们回退到一定程度,就不让回退了,Linux中会停在 /(根目录)的目录下

这里有个问题,我们知道windows管理文件使用的是树形结构,那Linux管理文件,使用的也是树形结构吗?
ok,是的,Linux管理文件,使用的也是树形结构管理文件的,根目录是目录,目录里面可以套目录(目录可以认为是windows中的文件夹)

假设bin目录里面有个hello.txt文件——

那我该怎么找到这个hello.txt文件呢?
我们是不是进入根目录/,到usr,再到bin中找到hello.txt,也就是这样:/usr/bin/hello.txt
处于树的叶子节点的文件为普通文件或者空目录,路上节点(除叶子节点)一定是一个目录

ok,通过上面的学习,我们再来看一下pwd——

/root/118 表示当前处于根目录下的root目录下的118目录里面
总结:cd .. 路径回退(回退到上级路径)
那 . 表示什么呢?ok,接下来,我们就来看一下这个 . 表示什么。
我们先来看看为什么要有 . ?
当我们运行一个可执行程序时,将可执行程序从磁盘加载到内存,前提是:先找到这个文件,我们可以通过路径来找到这个文件(可以通过绝对路径或者相对路径)

假设118目录里面有个test.exe可执行程序,此时我们想运行这个可执行程序,我们可以这样:

但是此时突然想起来,我们就在根目录下的root目录下的118目录,那我们是不是就可以直接写test.exe

不可以直接写test.exe会报错,因为系统找不到这个test.exe(虽说我们知道这个test.exe在根目录下的root目录下的118目录里面,但是系统不知道啊),所以必须给可执行程序带路径
可是带/root/118显得有点麻烦,怎么办呢?
通过上面的学习,我们知道 . 表示当前路径,我们可以这样写—— ./test.exe

告诉系统要执行的是当前路径下的test.exe
“.”可以帮助我们快速进行路径定位,帮助我们找到test.exe在哪个路径下

ok,像这种 ./test.exe 不从根目录开始,以相对于当前位置开始的路径称为相对路径!!!
总结: “.”可以帮助我们快速进行路径定位,帮助我们找到文件在哪个路径下

ok,那我们就可以对上面运行test.exe可执行程序进行一个总结——


从上面我们可以看出绝对路径在哪里都可以使用
总结一下:
ok,上面说了那么多相对路径和绝对路径,接下来我们真正认识一下相对路径和绝对路径
为什么可以这么说?
我们先来看相对路径——
这里有个问题:一个相对路径具有唯一性吗?
ok,任意一个相对路径具有唯一性(每一个相对路径有唯一性),相对路径可以有多个,但是每一个相对路径都是唯一的
相对路径无非就是以我当前的位置为参考点,路径唯一的帮我找到这个文件
而绝对路径是相对于根目录去找这个文件,相对位置是固定的,绝对路径是一个固定的参照点(根目录)从根目录开始帮为照这个文件
所以我们可以认为绝对路径是一个特殊的相对路径

总结:
这里有个问题:什么叫做你的当前路径?你是谁啊?

我是root /root/118 就是当前用户root在当前/root/118的路径下




什么叫做家目录?
所谓家目录就是操作系统用户登录系统后,默认所处的路径

windows中也有家目录的概念,windows可以创建多个用户,windows和Linux都是多人共用的操作系统

那家目录的本质是什么?为什么登录时要有确切的用户呢? 这是因为要给windows创建桌面,下载软件提供当前用户的默认路径
touch 命令touch 文件名 ——在目录里面创建一个新的文件(普通文件)touch 文件名——就相当于 windows中的创建文本文件


在118目录下创建一个dir2的目录——

嗯?这里有个问题:那我们怎么知道创建的是普通文件还是目录呢?
我们知道在windows中是通过后缀区分文件的,Linux是怎么区分文件的呢?
Linux通过文件的属性区分文件

Linux区分文件类型,不关心文件后缀(并不代表后缀不可用),文件后缀就是所见及所得
Linux操作系统不关系心文件后缀,但是gcc关心后缀(gcc != Linux操作系统)
此时博主突发奇想:想创建一连串路径,直接上手干——

嗯?既然不行,好叭,因为mkdir不允许一次创建一串路径,此时我们就寻求外援了——

这里什么都没显示,凭什么证明你创建了一串路径——
有个小提醒:tree不是系统自带的,若没有需下载

这就证明我们 mkdir a/b/c/d 创建一串路径
既然我们可以创建一个普通文件或者目录,那是不是可以删除他们呀!


我们看到dir1目录中没有其他东西,是一个空目录,可以用rmdir直接删除。
如果目录不是一个空目录可以用mkdir删吗?

我们看到a目录不是一个空的目录,使用rmdir不能删除
rmdir只是为了删除空目录(只能删除空目录)

删除一个空的目录

删除非空目录

上面删除非空目录时好像有点麻烦:



Linux整体也是一棵树形结构,/根目录也是目录 rm -rf / 强制删除根目录(这就搞挂了系统)
rm -i 是给普通用户用的,删除时给提示,删除前逐一询问是否删除
普通用户用rm默认是没有 -i 的:
超级管理员(root)用rm ,默认是有 -i 的
写到这里Linux 6个超好用基础指令就完美散花啦,那请大佬不要忘记给博主来个赞哦!
૮₍ ˶ ˊ ᴥ ˋ˶₎ა