linux关于文件

更多关于文件

在上一节之后,我确信你很敏锐,并且渴望陷入更多的命令并开始对系统进行一些实际操作。我们很快就会讨论这个问题,但首先我们需要介绍一些理论,这样当我们开始使用系统时,你就可以完全理解为什么它的行为方式以及如何进一步学习你学到的命令。这就是本节和下一节打算做的事情。在那之后,我会开始变得有趣,我保证。

1. 一切都是文件

我们需要首先了解的是 linux 底层,一切都是文件。文本文件是文件,目录是文件,键盘是文件(系统只从中读取),监视器是文件(系统只写入一个文件)等。

首先,这不会过多地影响我们的工作,但是请记住这一点,因为它有助于在管理文件和目录时理解 Linux 的行为。

2. Linux 是一个无扩展系统

这个问题有时候很难让你理解,但是当你完成这些部分时,它会开始变得更有意义。文件扩展名通常是在文件末尾 . 后的 2 到 4 个字符的集合,表示它是什么类型的文件。

以下是常见的扩展:

  • file.exe - 可执行文件或程序。
  • file.txt - 纯文本文件。
  • file.png , file.gif , file.jpg - 一个图片。

在其他系统(如 Windows)中,扩展很重要,系统使用它来确定它是什么类型的文件。

在 Linux 下,系统实际上忽略了扩展并查看文件内部以确定它是什么类型的文件。

所以例如我可以有一个文件 1.png 这是我的照片。我可以将文件重命名为 1.txt 或 1 ,Linux 仍然将该文件视为图像文件。

幸运的是,有一个名为 file 的命令,我们可以用来识别它。

file [路径]
Bash

现在大家可能想知道为什么我将上面的命令行参数指定为 路径 而不是 文件 。在 Linux 中无论何时我们在命令行上指定文件或目录,它实际上都是一个路径。另外,因为目录(如上所述)实际上只是一种特殊类型的文件,所以说路径是到达系统中特定位置的方法并且该位置是文件会更准确。

[root@localhost ~]# pwd
/root
[root@localhost ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text
[root@localhost ~]#
Bash

3. Linux 是区分大小写的

这对于刚接触 Linux 的人来说非常重要,并且是产生常见问题的根源。在引用文件时,Windows 等其他系统不区分大小写。Linux 不是这样的。

因此,可以有两个或多个具有相同名称但不同大小写字母的文件和目录。Linux 将这些视为不同且独立的文件。

处理命令行选项时也要注意区分大小写。例如,使用命令 ls 有两个选项 s 和 S ,它们都做不同的事情。一个常见的错误是大小写不注意。

4. 名称中的空格

文件和目录名称中的空格完全有效,但我们需要对它们稍加注意。

大家可能还记得,我们在命令行上使用空格分隔参数选项。

因此如果路径中存在空格,请使用引号,使用单引号或双引号(稍后我们将看到两者之间存在细微差别,但目前差异不是问题)

[root@localhost ~]# cd '/proc/irq/24/PCIe PME'
[root@localhost PCIe PME]# pwd
/proc/irq/24/PCIe PME
[root@localhost PCIe PME]# cd
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /proc/irq/24/PCIe\ PME
[root@localhost PCIe PME]# pwd
/proc/irq/24/PCIe PME
[root@localhost PCIe PME]# cd
[root@localhost ~]#
Bash

在前面我们在前面使用 Tab 按键补全内容。如果在遇到目录名称中的空格之前使用它,则终端将自动转义(第 7 行 \ ) 名称中的任何空格。引号内的任何内容都被视为单个项目。

5. 隐藏文件和目录

隐藏文件与目录在 Windows 中直接是不可见。

Linux 实际上有一个非常简单和优雅的机制来指定隐藏文件或目录。如果文件或目录的名称以 . 开头,它被认为是隐藏的。出于各种原因,可能隐藏文件和目录。例如,需要把存放小电影的目录隐藏起来。

要隐藏文件或目录,你需要创建的文件或目录的名称以 . 开头,或者将其重命名为 . 开头。同样,你可以重命名隐藏文件以删除 . 它会变得不被隐藏。

我们在上一节中看到的命令 ls 默认不会列出隐藏文件和目录。我们可以通过包含命令行选项 -a 来修改它,r 让它显示隐藏的文件和目录。

[root@localhost ~]# pwd
/root
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc
[root@localhost ~]#
Bash

在上面的例子中,可以看到我们列出当前目录中的所有项目,前两个项目是 . 与 .. 。还记得我们之前关于路径的部分,它们各代表啥意思?

6. 摘要

6.1. 学到什么

  • file 获取有关文件或目录的文件类型的信息。

  • ls -a 列出目录的内容,包括隐藏文件。

6.2. 重要概念

  • Linux 下一切都是文件,甚至是目录。
  • Linux 是一个无扩展的系统,文件可以包含他们喜欢的任何扩展名,也可以不包含任何扩展名
  • Linux 区分大小写,小心愚蠢的错别字。

7. 活动

是的,现在让我们把这些东西付诸实践。请参阅以下内容:

  • 尝试运行命令 file ,查看下文件的类型。这样做时,请确保使用各种绝对路径和相对路径。

  • 现在执行一个命令,列出根目录的内容,包括隐藏文件和目录。

posted @ 2019-07-01 15:46  等一念  阅读(155)  评论(0编辑  收藏  举报