冷月nuanyang 发表于 2022-8-11 21:16:54

3.4 浏览文件系统

本帖最后由 冷月nuanyang 于 2022-8-12 20:05 编辑

3.4.1 Linux文件系统
        如果你刚接触Linux系统,可能就很难弄清楚Linux如何引用文件和目录,对已经习惯Microsoft Windows操作系统方式的人来说更是如此。先了解下它的布局的好处。
        Linux在路径名中不使用驱动器盘符。在Windows中,PC上安装的物理驱动器决定了文件的路径名。Windows会为每个物理磁盘驱动器分配一个盘符,每个驱动器都会有自己的目录结构。以便访问存储其中的文件。
        举个例子,在Windows中经常看到这样的文件路径:
       
        这种Windows文件路径表明了test.txt究竟位于那个磁盘分区中。如果你将test.txt保存在闪存上,该闪存由J来标识,那么我呢见的路径就是J:\test.txt。该路径表明文件位于J盘的根目录下。
        Linux则采用了一种不同的方式。Linux将文件存在在单个目录结构中,这个目录被称为虚拟目录(virtual directory)。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。
        Linux虚拟目录结构只包含一个称为根(root)的基础目录。根目录下的目录和文件会按照访问它们的目录路径一一列出,这点跟Windows类似。
        在Linux中,你会看到下面这种路径:
       
        这表文件test.txt位于Documents目录,Documents目录位于home目录中。要注意的是,路径本身并没有提供任何有关文件究竟存放在那个物理磁盘上的信息。
        Linux虚拟目录中比较复杂的部分是它如何协调管理各个存储设备。在Linux PC上安装的第一块磁盘称为根驱动器。根驱动器包含了虚拟目录的核心,其他目录都是从哪里开始构建的。
        Linux会在根启动器上创建一些特别的目录,称为挂载点(mount point)。挂载点是虚拟目录中用于分配额外存储设备的目录。虚拟目录会让文件和目录出现在这些挂载点目录中,然而实际上它们却存储在另外一个驱动器中。
        通常文件系会存储在根驱动器中,而用户文件则存储在另一个驱动器中。如3-2

        3-2展示了计算机中的两块硬盘。一块硬盘和虚拟目录的根目录(由正斜线/表示)关联起来。剩下的硬盘就可以挂载到虚拟目录结构中的任何地方。在这个例子中,第二块硬盘被挂载到了/home位置,用户目录都位于这个位置。
        Linux文件系统结构是从Unix文件结构演进过来的。在Linux文件系统中,通用的目录名用于表示一些常见的功能。表3-3一些较常见的linux顶层虚拟目录名及其内容
       
        常见的目录名均基于文件系统层级标准(filesystem hierarchy standard, FHS)。很多Linux发行版都遵循FHS。这样一来,你就能够在任何兼容FHS的Linux系统中轻而易举地查找文件
        在登录系统并获得一个shellCLI提示符后,会话将从主目录开始。主目录是分配给用户账户的一个特有目录。用户账户创建之后,系统通常会为其分配一个特有的目录。
        可以使用图形界面在虚拟目录中跳转。要想在CLI提示符下切换虚拟目录。需要使用cd命令。
3.4.2 遍历目录
        在Linux文件系统上,可以使用切换目录命令cd将shell会话切换到另一个目录。cd命令的格式非常简单:cd destination
        cd命令可以接受单个参数destination,用以指定想要切换到的目录名。如果没有为cd命令指定目录路径,它将切换到用户主目录。
        destination参数可以用两种方式表示:一种是使用绝对路径,另一种是使用相对文件路径。
        1)绝对文件路径
        用户可在虚拟目录中采用绝对文件路径引用目录名。绝对文件路径定义了在虚拟目录结构中该目录的确切位置,以虚拟目录的根目录开始,相当于目录的全名。
        绝对文件路径总是以斜线(/)作为起始。指明虚拟文件系统的根目录。因此,如果要指向usr目录所包含的bin目录下的用户二进制文件,可以使用如下绝对文件路径:
       
        使用绝对文件路径可以清晰表明用户想切换到的确切位置,要用绝对文件路径来切换到文件系统中的某个特定位置,只需在cd命令后指定全路径名:
       
        注意,在上面的例子中,提示符一开始有一个波浪号(~)。在切换到另一个目录之后,这个波浪号被/usr/bin替代了。CLI提示符正是用它来帮助你跟踪当前所在虚拟目录结构中的位置。波浪号表明shell会话位于你的主目录中。在切换出主目录后,如果提示符已经进行了相关配置的话,绝对文件路径就会显示在提示符中。
        如果没有配置好提示符来显示当前shell会话的绝对文件路径,也可以使用shell命令来显示所处的位置。pwd命令可以显示处shell会话的当前目录,这个目录被称为当前工作目录。pwd命令的用户如:
       
        可以使用绝对文件路径切换到linux虚拟目录结构中的任何一级:
       
        还可以从linux虚拟目录中的任何一级跳回主目录:
       
        2)相对文件路径
        相对文件路径允许用户指定一个基于当前位置的目录文件路径。相对文件路径不以代表根目录的正斜线(/)开头,而是以目录名(如果用户准备切换到当前工作目录的下一个目录)或是一个特殊字符开始。如位于home目录中,希望切换到documents子目录,可以使用cd命令加上一个相对文件路径:
       
        上面的例子并没有使用正斜线(/),而是采用了相对文件路径将当前工作目录从/root改为/root/documents,大大减少饿了输入内容
        另外,此例中还要注意的是,如果提示符经过配置可以显示当前工作目录,它就会一直显示波浪号。这表明当前工作目录位于用户home目录之下
        可以在任何包含子目录的目录中使用带有相对文件路径的cd命令。也可以使用一个特殊字符来表示相对目录位置。
        有两个特殊字符可用于相对文件路径中:
        ①单点符(.),表示当前目录
        ②双点符(..),表示当前目录的父目录
        你可以使用单点符,不过对cd命令来说,这没什么意义
        双点符在目录层级中移动时非常便利。如果你处于主目录下的documents目录中,需要切换到主目录下的Downloads目录,可以这么做:
       
        双点符先将用户带到上一级目录,也就是用户主目录,然后/downloads这部分在将用户带到下一级目录,既downloads目录。必要时用户也可用多个双点符来向上切换目录。假如现在位于主目录中,想切换到/etc目录,可以输入如下命令:
       
        当然,在上面这种情况下,采用相对路径其实比采用绝对路径输入的字符更多,用绝对路径的话,用户只需输入/etc。因此,只在必要的时候才使用相对文件路径。
       
———————————————————————————————————————————————————————————————
3.5 文件和目录列表
https://www.chncert.cn/forum.php?mod=viewthread&tid=724&fromuid=1016784
页: [1]
查看完整版本: 3.4 浏览文件系统