快捷搜索:  汽车  科技

linux 命令行学习(Linux进阶教程第2章)

linux 命令行学习(Linux进阶教程第2章)通过名称指定文件下表是我根据名称和用途列出的一些系统中最重要的目录。Linux系统中的所有文件存储在文件系统中。它们被组织到一个颠倒的目录树中,被称为文件系统层次结构。这棵树是颠倒的,因为树根在该层次结构的顶部,树根的下方延伸出目录和子目录的分支。/目录是根目录,位于文件系统层次结构的顶部。/字符还用作文件名中的目录分隔符。举个例子,如果etc是/目录的子目录,我们就可以将该目录指代为/etc。类似的,如果/etc目录包含一个名字叫xxx的文件,我们也可以将该文件指代为/etc/xxx。/的子目录用于标准化的用途,以便我们根据文件和用途组织文件。这很方便我们查找文件。举个例子:在根目录中,子目录/boot用于存储启动系统所需的文件。

本文是 i 春秋作家「xiehudie」表哥分享的技术文章,公众号旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。本套Linux进阶教程共分为14章,欢迎大家前来系统学习。

前期回顾>>第1章:访问命令行

linux 命令行学习(Linux进阶教程第2章)(1)

第2章:从命令行管理文件

文件系统层次结构

Linux系统中的所有文件存储在文件系统中。它们被组织到一个颠倒的目录树中,被称为文件系统层次结构。这棵树是颠倒的,因为树根在该层次结构的顶部,树根的下方延伸出目录和子目录的分支。

linux 命令行学习(Linux进阶教程第2章)(2)

/目录是根目录,位于文件系统层次结构的顶部。/字符还用作文件名中的目录分隔符。举个例子,如果etc是/目录的子目录,我们就可以将该目录指代为/etc。类似的,如果/etc目录包含一个名字叫xxx的文件,我们也可以将该文件指代为/etc/xxx。

/的子目录用于标准化的用途,以便我们根据文件和用途组织文件。这很方便我们查找文件。举个例子:在根目录中,子目录/boot用于存储启动系统所需的文件。

下表是我根据名称和用途列出的一些系统中最重要的目录。

linux 命令行学习(Linux进阶教程第2章)(3)

通过名称指定文件

1、绝对路径和相对路径

文件或目录的路径指定其唯一的文件系统位置。跟随文件路径会遍历一个或多个指定的子目录,用正斜杠(/)分隔,直到达到目标位置。目录也称为文件夹,包含其他文件和其他子目录。它们的引用方式可以与文件相同。

注意:Linux文件名中可以接受空格字符作为其一部分。但是,shell也使用空格来分隔命令行上的选项和参数。如果我们输入的命令中包含了名称带有空格的文件,则shell可能会误解译该命令,并认为我们要在空格处开始一个新文件名或其他参数。通过将文件名放在引号中可以避免这种情况,但如果我们并不需要在文件名中使用空格,直接避免使用空格更简单。

2、绝对路径

绝对路径是一个完全限定的名称,用于指定文件存在系统层次结构中的确切位置。它从(/)目录开始,并指定为到达特定文件所必须遍历的每个子目录。文件系统中的每个文件都有一个唯一绝对路径名,可通过一个简单的规则识别:第一个字符是正斜杠(/)的路径名是绝对路径名。例如,系统消息日志文件的绝对路径是/var/log/messages。绝对路径写入起来可能会太长,所有也可以通过相对于shell提示符当前工作目录的位置来查找文件。

3、当前工作目录和相对路径

当用户登录并打开命令窗口时,初始位置通常是该用户的主目录。系统进程也有初始目录,用户和进程根据需要导航至其它目录;术语工作目录或当前工作目录指它们的当前位置。

于绝对路径一样,相对路径也标识唯一文件,仅指定从工作目录到达该文件所需的路径。识别相对路径名遵循一个简单规则:第一个字符是正斜杠之外的其他字符的路径名是相对路径名。位于/var目录的用户可以将消息日志文件指代为log/messages。

Linux文件系统,包含但不限于ext4、XFS、GFS2和GlusterFS,都是区分大小写的。在同一目录中创建FileCase.txt和filecase.txt将生成两个不同的文件。

linux 命令行学习(Linux进阶教程第2章)(4)

4、导航路径

pwd命令显示该shell的当前工作目录的完整路径名。这可以帮助我们确定使用相对路径名来访问文件的语法。ls命令列出指定目录的目录内容;如果未指定目录,则列出当前工作目录的内容。

linux 命令行学习(Linux进阶教程第2章)(5)

使用cd命令可更改shell的当前工作目录。如果没有为该命令指定r任何参数,它将切换到我们的主目录。(下图是展示了cd命令混用路径和更改shell的当前工作目录)

linux 命令行学习(Linux进阶教程第2章)(6)

touch该命令通常将文件的时间戳更新为当前日期和时间,而不进行其他修改。这通常可用于创建空文件夹,因为“触碰”不存在的文件名而导致会创建该文件。(如下图所示)

linux 命令行学习(Linux进阶教程第2章)(7)

ls命令具有多个选项,用于显示文件的属性。最常见且最有用的选项是-l(长列表格式)、-a(包含隐藏文件在内的所有文件),以及-R(递归方式,包含所有子目录的内容)。(如下图所示)

linux 命令行学习(Linux进阶教程第2章)(8)

linux 命令行学习(Linux进阶教程第2章)(9)

linux 命令行学习(Linux进阶教程第2章)(10)

注意:开头为句号(.)的文件名表示隐藏文件;在使用ls和其他命令时,我们无法在普通视图中看到这些文件。这不是一种安全功能,而是隐藏文件用于防止必要的用户配置文件让主目录凌乱不堪。许多命令仅通过特定的命令行选项处理隐藏文件,这样可以预防一个用户的配置被意外复制到其他目录或其他用户。要防止文件内容被不当查看,需要使用文件权限。

cd命令有许多选项,其中一些非常有用,比如cd– :可更改到用户在进入当前目录之前所处的目录和cd .. :隐藏目录上移一个级别,进入其父目录而不必知道确切的父目录名称。(如下图所示)

linux 命令行学习(Linux进阶教程第2章)(11)

linux 命令行学习(Linux进阶教程第2章)(12)

命令行文件管理

要管理文件,我们需要能创建、删除、复制和移动文件。此外,我们还需要按逻辑关系将它们整理到目录中,这就需要我们能创建、删除、复制和移动文件。(下表是作者整理出来的最常见的文件管理命令)

linux 命令行学习(Linux进阶教程第2章)(13)

1、创建文件

mkdir命令可以创建一个或多个目录或子目录,它取我们要创建的目录的路径列表作为参数。如果该目录已存在,或者我们将试图在一个不存在的目录中创建子目录,这个时候就需要我们谨慎的使用mkdir –p该命令,因为拼写错误可能会创建非预期的目录,而不会生成错误消息。(如下图所示,假如我们需要在xxx/user目录下创建文件,我们把目录打成xxx/use,那么就会报错)

linux 命令行学习(Linux进阶教程第2章)(14)

2、复制文件

cp命令可复制文件,在当前目录或指定目录中创建新文件。它也可以将多个文件复制到某一目录中。在通过一个命令复制多个文件时,最好一个参数必须为目录。复制的文件在新的目录中保留其原有名称。如果目标目录中存在相同名称的文件,则会覆盖现有文件。默认情况下,cp不复制目录,而会忽略它们。

linux 命令行学习(Linux进阶教程第2章)(15)

3、移动文件

mv命令可以将文件从一个位置移动到另一个位置。如果我们将文件的绝对路径视为它的全名,那么移动文件上和重命名一样,文件内容不变。(如下图所示)

linux 命令行学习(Linux进阶教程第2章)(16)

4、删除文件和目录

rm命令可删除文件,默认情况下,除非添加了-r或—recusive选项,否则rm不会删除包含文件的目录。rm –r命令首先遍历每个子目录,在删除每个目录之前逐一删除其中的文件,我们可以使用rm –ri命令以交互方式提示确认,然后再删除。这基本上于使用-f选项相反,后者强制删除不提示用户进行确认。

linux 命令行学习(Linux进阶教程第2章)(17)

猜您喜欢: