前情提要

本章节是Linux操作系统的基本指令及相关结构的相关知识~

接下来我们即将进入一个全新的空间,对操作系统(系统层面)等相关知识有一个全新的视角~

以下的内容一定会让你对Linux有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


作者介绍:

作者: 热爱编程不起眼的小人物
作者的Gitee:代码仓库
系列文章&专栏推荐: 《刷题特辑》、 《C语言学习专栏》、《数据结构_初阶》 、《C++轻松学_深度剖析_由0至1》

我和大家一样都是初次踏入这个美妙的“元”宇宙 希望在输出知识的同时,也能与大家共同进步、无限进步
这里为大家推荐一款很好用的刷题网站呀点击跳转


导航小助手

  • 本章重点
  • 一.Linux的相关认识
  • 二.Linux基本操作指令
    • Ⅰ.ls指令
    • Ⅱ.pwd指令
    • Ⅲ.touch指令
    • Ⅳ.mkdir指令
    • Ⅴ.cd指令
    • Ⅵ.rmdir指令
    • Ⅶ.rm指令
    • Ⅷ.man指令
    • Ⅸ.cp指令
    • Ⅹ.mv指令
    • Ⅺ.cat指令
    • Ⅻ.echo指令
  • 三.文件&目录&路径
    • Ⅰ.文件的认识与理解
    • Ⅱ.路径的认识与理解
    • Ⅲ.目录的认识与理解
  • 结尾

本章重点

  • 认识Linux操作系统

  • 了解Linux系统下的基本操作指令

  • 了解Linux下对文件、目录的理解


一.Linux的相关认识

Linux操作系统:

  • Linux就如Windows,都是操作系统,其中:

    • Windows操作系统是一款图形化操作系统,因为是经过封装的,所以一定是操作方便,但不便于深入理解的

    • Linux操作系统是一款命令行操作系统,因为没有经过封装,所以更加贴近系统,但不便于操作

  • 但无论是命令行还是图形化,两款操作系统的功能定位都是一样的,都是访问计算机的方式

Linux能够用于哪些地方呢?

  • Linux能够进行各种语言的开发工作,基本主要以后端语言为主:C++、Java、Python……

  • Linux能够进行各种指令操作,从而完成各种文件相关的管理工作

接下来我们就开始认识Linux吧~


二.Linux基本操作指令

Ⅰ.ls指令

1️⃣基本语法: ls ➕ [选项] ➕ [目录或文件](若不输入,则默认对当前路径执行操作)

2️⃣指令功能: 查看当前路径下的所有子目录和文件的名字

3️⃣简单来说: 就跟在Windows下进入某个目录后,直接看到所有的文件一样【只不过Linux下需要自己手动输入才会显示】

4️⃣常用选项:

  • -a:在原有功能的基础上,将以.开头的隐含文件也展示出来

  • 相当于Windows上的下述操作:

  • -l:在原有功能的基础上,将文件详细信息展现出来(包括:文件大小、最后修改时间、权限……)

  • 相当于Windows上的下述操作:


Ⅱ.pwd指令

1️⃣基本语法: pwd

2️⃣指令功能: 查看当前所在的目录(路径)

3️⃣ 简单来说: 就跟在Windows下的路径栏一样【只不过Linux下需要自己手动输入才会显示】


Ⅲ.touch指令

1️⃣基本语法: touch ➕ [选项] ➕ [文件名字]

2️⃣指令功能: 在当前目录(路径)下新建一个不存在的文件(自己命名)

3️⃣ 简单来说: 就类似于Windows下的右键新建一个文件夹


Ⅳ.mkdir指令

1️⃣基本语法: mkdir ➕ [选项] ➕ [目录名字]

2️⃣指令功能: 在当前目录(路径)下新建一个不存在的目录(自己命名)

4️⃣常用选项:

  • -p:可以使mkdir递归建立一串目录

  • Eg:


Ⅴ.cd指令

1️⃣基本语法: cd ➕ [目录名字]

2️⃣指令功能: 切换操作目录(路径)

3️⃣ 简单来说: 就跟在Windows下的路径栏的前进、后退一样去切换工作目录(路径)

4️⃣常用举例:

  • cd ../:表示返回上级目录【即路径的回退功能】

  • cd /root/dir:以绝对路径去定位,进入dir目录【即从根目录 为起点,通过我们写的绝对路径进入到目标目录中】

  • cd ../my_dir:以相对路径去定位,进入my_dir目录【即从当前所在的目录为起点,去进入到目标目录中】

  • cd ~:进入用户家目录

  • cd -:返回到最近访问的目录中

以上的常用举例可能在目前无法完全理解,但会在如下的文件、路径、目录认识的内容中进行补充,会有更进一步的认识


Ⅵ.rmdir指令

1️⃣基本语法: rmdir ➕[选项] ➕ [目录名字]

2️⃣指令功能: 删除(一串)空目录

3️⃣ 简单来说: 是与mkdir指令相对应的,mkdir是用于创建空目录,而rmdir是用于删除空目录

特别注意:

  • 此指令只能用于删除空目录,但只要目录下还有一串目录的话,也是不允许被删除的

Ⅶ.rm指令

1️⃣基本语法: rmdir ➕[选项] ➕ [目录/文件名字]

2️⃣指令功能: 可以同时删除文件或目录

3️⃣ 简单来说: 相比于rmdir,不再局限于删除空目录,而是文件和目录可以一起删除

4️⃣常用选项:

  • -r:递归去删除目录及其下所有文件【此选项可以用于删除一串目录的情况】

  • -f:强制执行删除,不再询问【如果不加则系统会在删除每一个文件/目录前进行二次询问确认】

补充:

  • 在Linux中有一个通配结构的功能,即*(通配结构)可代表任何东西

  • 即如果我们想要删除某个目录下所有后缀为.c的文件,那我们就可以rm -rf *.c,此时就表示删除后缀为.c的所有文件了

  • 即假如我们想查看当前目录下所有名为file的文件,那我们就可以ls file*即可达到此功能


Ⅷ.man指令

1️⃣基本语法: man ➕[选项] ➕ [指令]

2️⃣指令功能: 可以在Linux上查询相关指令的用法……

3️⃣ 简单来说: 就是Linux中自带了一个操作手册,方便我们查询相关指令的功能……


Ⅸ.cp指令

1️⃣基本语法: cp ➕[选项] ➕ [源文件/目录] ➕ [目标文件/目录]

2️⃣指令功能: 复制文件/目录

3️⃣ 简单来说: 就是将当前目录下(或其它目录下的文件也可以,可以通过书写绝对路径or相对路径去指定)的某个文件或目录,拷贝到指定的地方(可以通过书写绝对路径or相对路径去指定)

4️⃣常用选项:

  • -r:通过递归处理,将指定目录下的所有文件与子目录一并处理

  • -f:即即使是拷贝的目的地已经存在某些同名文件或目录,依然强制执行拷贝,并覆盖目的地一开始所存在的同名文件或目录

❗特别注意:

  • 我们可发现拷贝(删除)文件或目录时,我们一般加上-r选项(只拷贝单个),这是因为:

  • 文件在Linux下为多叉树结构,我们只需要递归即可完成目录/文件下的子目录/文件的全部拷贝(删除)


Ⅹ.mv指令

1️⃣基本语法: mv ➕[选项] ➕ [源文件/目录] ➕ [目标文件/目录]

2️⃣指令功能: 剪切文件/目录 或 对文件重命名功能

3️⃣ 简单来说: 功能和cp指令类似,只不过cp指令是复制,mv指令为剪切;若mv指令的第二个参数不是路径而是名字,则是对源文件/目录进行重命名

4️⃣常用选项:

  • -f:表示强制剪切,即如果目的文件/目录已存在,会直接覆盖,不再询问

❗特别注意:

  • 对于mv指令来说,若剪切一串目录的时候,可以不用像cp指令加上-r(递归),默认直接就可以完成此功能

Ⅺ.cat指令

1️⃣基本语法: cat ➕[选项] ➕ [文件]

2️⃣指令功能: 查看并将文件内容从上到下依次按顺序打印出来

3️⃣常用选项:

  • -n:对输出的所有内容加上行号

  • Eg:

补充:

  • 如果对文件使用tac指令的话,会将文本内容从下往上进行打印

  • Eg:

Ⅻ.echo指令

1️⃣基本语法: echo ➕ [文本内容]

2️⃣指令功能: echo指令会读取我们输入的文本内容,并打印显示到控制台上


三.文件&目录&路径

Ⅰ.文件的认识与理解

文件的理解:

  • 文件是一个大概念,不仅仅单指文件内容本身,还包括文件的属性

  • 文件 = 内容 + 属性

此时我们便有个疑惑: 如果我们在磁盘上新建一个文件,那修改文件要不要占用磁盘上的空间呢

  • 答案是肯定的,这是因为文件 = 内容数据 + 属性数据

  • 这是因为:不仅仅只有文件的内容被算作数据存储在磁盘上,文件的属性也算作数据(在计算机看来依旧是数据)存储在磁盘上

  • 所以修改任意一个,都会对文件在磁盘上的空间占用有影响

以上就是对文件的完整理解啦~


Ⅱ.路径的认识与理解

Linux下路径的理解:

  • 1️⃣/:表示路径分隔符【路径中的第一个/表示根目录,回退到根目录下后,就不能再回退了】

  • 2️⃣./:表示当前路径

    • 如果我们想在当前路径下运行某个可执行程序的话,我们直接写可执行程序名字去运行的话是行不通的,因为我们需要先指明限定这个可执行程序的位置才可以

    • 此操作就类似于在图形化界面上,在某文件中双击打开一个可执行程序【此时我们的鼠标的双击操作就相当于自动帮我们定位了可执行程序所在的位置了】

  • 3️⃣../:表示上级路径,可以帮助我们路径切换【这也就是为什么cd ../表示路径的回退】


Ⅲ.目录的认识与理解

Linux下目录的理解:

  • 本质: Linux的整个目录结构,本质上是一颗多叉树结构

  • 简单来说:就是在一个目录下还可以创建一个目录,不断延申、生长下去

在这个多叉树中:

  • 非叶子节点:为目录

  • 叶子结点:为文件or空目录

由上我们可得知: 任何一个目录的路径都是唯一且确定

  • 这是因为:一个父节点可以有多个孩子结点,但任意一个孩子结点都只有唯一一个父节点

  • 即父节点是唯一且确定的,可以通过父亲找到我们想要找的孩子(反之亦然),所以路径具有唯一性

综上:

  • 树状结构可以以一个唯一确定的方式去定位某一个文件

这也就是为什么:

  • 我们可以通过书写绝对路径从根目录下出发去定位到某一个目录(或目录下的文件),从而操作它,这也就是为什么我们上面的cd指令可以通过绝对路径定位到一个目录中

  • 相对路径就是从现在所处的目录下出发,去一步一步寻找到我们想要找到的文件

    • Eg:如上图中的,假设我们起始路径在/uer/bin中,想切换到工作目录(即Dream-Y.ocean用户的目录下)

    • 我们就可以cd ../../home/Dream-Y.ocean【从左往右一步一步执行操作】

    • 意思就是:先从bin目录下一步一步回退到/(根目录)下,然后再进入到home/Dream-Y.ocean目录下

补充:

  • 对于root用户而言:/root就是root用户的家目录(工作目录)

  • 对于普通用户而言:/home/XXX,就叫做XXX这个用户的家目录(工作目录)

  • 就如Windows下的:

综上:

  • 绝对路径:很少再日常中使用,一般会出现在比较正式的场合中(如:配置文件……)

  • 相对路径:操作起来比较简单、方便,多用于日常操作中

  • 以上就是Linux的目录结构啦~


结尾

综上,我们基本了解了Linux中的 “基本指令及相关结构” 的知识啦~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读

后续还会继续更新,欢迎持续关注哟~

如果有错误❌,欢迎指正呀

✨如果觉得收获满满,可以点点赞支持一下哟~✨