touch 命令
该命令用于创建一个空文件,其语法如下:
touch [文件名]
下面我们来测试一下这个命令的用法,我们需要在 /tmp 目录下创建一个 hello 的空文件,命令如下:
文件真的创建成功了吗?我们使用 ls 命令来看看。
可以发现,/tmp 目录下确实多了一个 hello 文件,代表我们的 touch 命令使用成功。
cat 命令
该命令用于显示文件内容,加上 -n 选项可以显示行号,其语法为:
cat [文件名]
我们随意查看一个文件,结果如下:
more 命令
如果文件太大,我们可能需要分页显示文件内容,这时 cat 命令可能不太适合,那怎么办呢?其实,使用 more 命令就可以了。
more 命令的语法如下:
more [文件名]
我们使用 more 命令打开一个大文件,此时界面如下
那我们应该如何查看下一页文件内容呢?在 more 命令中,我们可以使用空格或 f 键进行向下翻页,使用 b 键进行向上翻页,使用 Enter 键进行换行,使用 q 键进行退出,这就是简单的 more 命令用法。
less 命令
该命令用于分页显示文件内容,与 more 命令的操作大体相同,其语法如下:
less [文件名]
我们来测试一下这个命令,看看它与 more 命令有什么不同。
可以发现,less 命令与 more 命令相比,并不会显示进度条, 其余操作与 more 命令基本相同。
另外,less 命令可以做一个搜索关键词的操作。我们输入 / 加上关键字,less 就会帮我们找到关键字,然后高亮显示。例如我们输入 /more,来搜索关键词 more:
如果想要找下一个关键词,我们可以按 n 键直接到下一个关键词的语句中。
head 命令
用于显示文件前面几行,-n 选项用于指定行数,如果不指定行数则默认为10行,其语法为:
head [文件名]
我们先不指定行数,随便指定一个文件,先看看效果如何。
可以发现,在我们没有指定行数的情况下,默认显示10行。
然后我们指定行数,这次我们想显示这个文件的前三行,那么命令应该如下:
可以发现也确实显示了前面三行,证明我们的命令是没有问题的。
tail 命令
我们可以使用 head 命令显示文件前面几行,那如果要显示文件后面几行呢,怎么办?没事,用 tail 命令就好啦。tail 命令的语法与 head 命令非常相似:
tail [文件名]
其中,-n 选项表示指定行数,-f 选项可以动态显示文件末尾内容。
下面我们简单的来测试一下,显示上面文件的末尾5行,命令与结果如下:
ln 命令
该命令用于生成链接文件,其语法如下:
ln -s [原文件] [目标文件]
-s 选项表示创建软链接,如果想要生成硬链接文件,不加 -s 选项即可。
软链接/硬链接?
我们上面提到了如何创建软链接与硬链接,那么,什么是软链接,什么是硬链接呢?
在介绍什么是软链接,什么是硬链接之前,我们先从 Linux 的文件组成开始讲起。
文件包含两个部分,分别为文件名与数据,在 Linux 上,被分为两个部分:用户数据与元数据。
- 用户数据:文件数据块,数据块是记录文件真实内容的地方
- 元数据:文件的附加属性,例如文件名、文件大小、创建时间、所有者、文件所在的 inode 等信息
Linux 中,文件的唯一标识是元数据中的 inode 号(可以理解为索引节点号),而非文件名。文件名只是为了方便人们的记忆,系统都是通过 inode 号来寻找正确的文件数据块的。即使我们修改文件名,inode 也是不变的。
硬链接与软链接是为了解决在 Linux 中文件的共享使用而引入的。
硬链接可以理解为一个 inode 号对应多个文件,也就是同一个文件使用了多个别名,即使原始链接被删除,使用新的硬链接依然可以访问原内容。
硬链接具有如下特点:
- 文件有相同的 inode
- 只能对已存在的文件进行创建
- 不能对目录进行创建,只可对文件创建
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件
- 指向同一文件的所有硬链接具有相同的权限、连接数、用户/组所有权、时间戳以及文件内容
- 不能跨分区
软链接可以理解为 Windows 中的快捷方式,其文件用户数据块中存放的内容是另一文件的路径名的指向。软链接有着自己的 inode 号以及用户数据块。
软链接具有如下特点:
- 软链接有自己的文件属性及权限等
- 可对不存在的文件或目录创建软链接
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接或悬挂的软链接,若被指向路径文件被重新创建,死链接可恢复为正常的软链接
- 软链接文件权限均为 lrwxrwxrwx
- 软链接由于只是一个符号链接,故其大小非常的小