安福网站制作,北大青鸟培训,云南购物网站建设,粉末涂料做网站有用吗1.Linux 文件系统
如果你刚接触Linux系统#xff0c;可能就很难弄清楚Linux如何引用文件和目录#xff0c;对已经习惯Microsoft Windows操作系统方式的人来说更是如此。在继续探索Linux系统之前#xff0c;先了解一下它的布局是有好处的。
你将注意到的第一个不同点是可能就很难弄清楚Linux如何引用文件和目录对已经习惯Microsoft Windows操作系统方式的人来说更是如此。在继续探索Linux系统之前先了解一下它的布局是有好处的。
你将注意到的第一个不同点是Linux在路径名中不使用驱动器盘符。在Windows中PC上安装的物理驱动器决定了文件的路径名。Windows会为每个物理磁盘驱动器分配一个盘符每个驱动器都会有自己的目录结构以便访问存储其中的文件。
举个例子在Windows中经常看到这样的文件路径
c:\Users\Rich\Documents\test.doc这种Windows文件路径表明了文件test.doc究竟位于哪个磁盘分区中。如果你将test.doc保存在闪存上该闪存由J来标识那么文件的路径就是J:\test.doc。该路径表明文件位于J盘的根目录下。 Linux则采用了一种不同的方式。Linux将文件存储在单个目录结构中这个目录被称为虚拟目录virtual directory。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。 Linux虚拟目录结构只包含一个称为根root目录的基础目录。根目录下的目录和文件会按照访问它们的目录路径一一列出这点跟Windows类似。 你将会发现Linux使用正斜线/而不是反斜线\在文件路径中划分目录。在Linux中反斜线用来标识转义字符要是用在文件路径中的话会导致各种各样的问题。如果你之前用的是Windows环境就需要一点时间来适应。 在Linux中你会看到下面这种路径
/home/Rich/Documents/test.doc这表明文件test.doc位于Documents目录Documents又位于rich目录中rich则在home目录中。要注意的是路径本身并没有提供任何有关文件究竟存放在哪个物理磁盘上的信息。 Linux虚拟目录中比较复杂的部分是它如何协调管理各个存储设备。在Linux PC上安装的第一块硬盘称为根驱动器。根驱动器包含了虚拟目录的核心其他目录都是从那里开始构建的。 Linux会在根驱动器上创建一些特别的目录我们称之为挂载点mount point。挂载点是虚拟目录中用于分配额外存储设备的目录。虚拟目录会让文件和目录出现在这些挂载点目录中然而实际上它们却存储在另外一个驱动器中。
通常系统文件会存储在根驱动器中而用户文件则存储在另一驱动器中如图3-2所示。 图3-2展示了计算机中的两块硬盘。一块硬盘和虚拟目录的根目录由正斜线/表示关联起来。剩下的硬盘就可以挂载到虚拟目录结构中的任何地方。在这个例子中第二块硬盘被挂载到了/home位置用户目录都位于这个位置。 Linux文件系统结构是从Unix文件结构演进过来的。在Linux文件系统中通用的目录名用于表示一些常见的功能。表3-3列出了一些较常见的Linux顶层虚拟目录名及其内容。
在登录系统并获得一个shell CLI提示符后会话将从主目录开始。主目录是分配给用户账户的一个特有目录。用户账户在创建之后系统通常会为其分配一个特有的目录参见第7章。可以使用图形界面在虚拟目录中跳转。要想在CLI提示符下切换虚拟目录需要使用cd命令。
2.遍历目录
在Linux文件系统上可以使用切换目录命令cd将shell会话切换到另一个目录。cd命令的格式非常简单
cd destinationcd命令可接受单个参数destination用以指定想切换到的目录名。如果没有为cd命令指定目标路径它将切换到用户主目录。 destination参数可以用两种方式表示一种是使用绝对文件路径另一种是使用相对文件路径。
接下来将分别阐述这两种方法。这两者之间的不同对于理解文件系统遍历非常重要。
1.绝对文件路径
用户可在虚拟目录中采用绝对文件路径引用目录名。绝对文件路径定义了在虚拟目录结构中该目录的确切位置以虚拟目录的根目录开始相当于目录的全名。 绝对文件路径总是以正斜线/作为起始指明虚拟文件系统的根目录。因此如果要指向usr目录所包含的bin目录下的用户二进制文件可以使用如下绝对文件路径
/usr/bin使用绝对文件路径可以清晰表明用户想切换到的确切位置。要用绝对文件路径来切换到文件系统中的某个特定位置只需在cd命令后指定全路径名
christineserver01:~$ cd /usr/bin
christineserver01:/usr/bin$注意在上面的例子中提示符中一开始有一个波浪号~。在切换到另一个目录之后这个波浪号被/usr/bin替代了。CLI提示符正是用它来帮助你跟踪当前所在虚拟目录结构中的位置。波浪号表明shell会话位于你的主目录中。在切换出主目录之后如果提示符已经进行了相关配置的话绝对文件路径就会显示在提示符中。 如果你的shell CLI提示符中并没有显示shell会话的当前位置那是因为它并没有进行相关的配置。 如果没有配置好提示符来显示当前shell会话的绝对文件路径也可以使用shell命令来显示所处的位置。pwd命令可以显示出shell会话的当前目录这个目录被称为当前工作目录。pwd命令的用法如下
christineserver01:/usr/bin$ pwd
/usr/bin
christineserver01:/usr/bin$在切换到新的当前工作目录时使用pwd命令是很好的习惯。因为很多shell命令都是在当前工作目录中操作的在发出命令之前你应该始终确保自己处在正确的目录之中。 可以使用绝对文件路径切换到Linux虚拟目录结构中的任何一级
christineserver01:/usr/bin$ cd /var/log
christineserver01:/var/log$
christineserver01:/var/log$ pwd
/var/log
christineserver01:/var/log$还可以从Linux虚拟目录中的任何一级跳回主目录
christineserver01:/var/log$ cd
christineserver01:~$
christineserver01:~$ pwd
/home/christine
christineserver01:~$但是如果你只是在自己的主目录中工作经常使用绝对文件路径的话未免太过冗长。 例如若已经位于目录/home/christine再输入下面这样的命令切换到Documents目录就有些繁琐了
cd /home/christine/Documents幸好还有一种简单的解决方法。
2.相对文件路径
相对文件路径允许用户指定一个基于当前位置的目标文件路径。相对文件路径不以代表根目录的正斜线/开头而是以目录名如果用户准备切换到当前工作目录下的一个目录或是一个特殊字符开始。假如你位于home目录中并希望切换到Documents子目录那你可以使用cd命令加上一个相对文件路径
christineserver01:~$ pwd
/home/christine
christineserver01:~$
christineserver01:~$ cd Documents
christineserver01:~/Documents$ pwd
/home/christine/Documents
christineserver01:~/Documents$上面的例子并没有使用正斜线 / 而是采用了相对文件路径将当前工作目录从/home/christine改为/home/christine/Documents大大减少了输入内容。 另外此例中还要注意的是如果提示符经过配置可以显示出当前工作目录它就会一直显示波浪号。这表明当前工作目录位于用户home目录之下。 如果你刚接触命令行和Linux目录结构建议暂时先坚持使用绝对文件路径。等熟悉了目录布局之后再使用相对文件路径。 可以在任何包含子目录的目录中使用带有相对文件路径的cd命令。也可以使用一个特殊字符来表示相对目录位置。 有两个特殊字符可用于相对文件路径中 单点符.表示当前目录 双点符…表示当前目录的父目录。
你可以使用单点符不过对cd命令来说这没有什么意义。后面你会看到另一个命令如何有效地在相对文件路径中使用单点符。 双点符在目录层级中移动时非常便利。如果你处在在主目录下的Documents目录中需要切换到主目录下的Downloads目录可以这么做
christineserver01:~/Documents$ pwd
/home/christine/Documents
christineserver01:~/Documents$ cd ../Downloads
christineserver01:~/Downloads$ pwd
/home/christine/Downloads双点符先将用户带到上一级目录也就是用户的主目录然后/Downloads这部分再将用户带到下一级目录即Downloads目录。必要时用户也可用多个双点符来向上切换目录。假如现在位于主目录中/home/christine想切换到/etc目录可以输入如下命令
christineserver01:~$ cd ../../etc
christineserver01:/etc$ pwd
/etc
christineserver01:/etc$当然在上面这种情况下采用相对路径其实比采用绝对路径输入的字符更多用绝对路径的话用户只需输入/etc。因此只在必要的时候才使用相对文件路径。 在shell CLI提示符中加入足够的信息非常方便。不过出于清晰性的考虑在余下的例子里我们只使用一个简单的$提示符。