Linux重定向中的012,Linux基础----管道、重定向、软链接、硬链接简介

基础概念--管道与输入输出重定向

1、管道

管道命令符“|'的作用是将前一个命令的标准输出当作后一个命令的标准输入,格式为”命令A|命令B“。体现了Linux的基本思想之一:组合小命令完成完成复杂任务。

Linux重定向中的012,Linux基础----管道、重定向、软链接、硬链接简介_第1张图片

在这个示例中,先用cut从/etc/shells 文件提取第三到第四个字符,然后作为cat命令输出。

注意:管道命令符不只可以使用一次,还可以命令1|命令2|命令3。

2、输入输出的重定向

在Linux系统里执行的每一个程序都有输入、输出、和错误报告三个通道。由于对于Linux系统来说,所有的设备都是以文件的形式存在,因此程序执行时所需的三个通道就是三个文件,分别如下:

(1)文件描述符0代表一个程序的标准输入,默认是键盘,也就是从键盘输入数据。

(2)文件描述符1代表一个程序的标准输出,默认是终端,也就是屏幕,将程序执行的正确结果会重定向文件或某个设备中。

(3)文件描述符2代表一个程序的标准错误输出,默认也是终端,也就是屏幕,将程序执行中的出错信息重定向到文件或某个设备中。

常用的重定向控制符号有如下几个:

(1)

关于mail的使用参考以下:https://www.cnblogs.com/jiqianqian/p/7920603.html(乌班图系统中的sendmail安装配置与发送邮件)

(2)>:输出重定向控制符,指令格式为”>文件",其作用是把命令的结果输出到文件,原文件内容被覆盖。例如:ls > test ,将ls命令的输出结果输出到test文件中,而不是输出到屏幕中。

Linux重定向中的012,Linux基础----管道、重定向、软链接、硬链接简介_第2张图片

(3)>>:输出重定向控制符,指令格式为“>>文件",其作用是把命令的结果输出到文件,原文件内容不覆盖,而是追加。

对于输出重定向符有这些情况:

命令 > 文件:将标准输出重定向到一个文件(清空原有文件的数据)

命令 2> 文件:将错误输出重定向到一个文件中(清空原有文件的数据)

命令 >> 文件:将标准输出重定向到一个文件中(追加到原有文件后面)

命令 2>> 文件:将错误输出重定向到一个文件中(追加到原有文件后面)

命令 >> 文件 2> $1:将标准输出与错误输出共同写入到文件中(追加到原有文件后面)

对于输入重定向有这些情况:

命令 < 文件:将文件作为命令的标准输入

命令 << 分界符: 从标准输入中读入,直到遇见”分界符“才停止

命令 < 文件1 > 文件2:将文件1作为命令的标准输入并将标准输出到文件2

3、软链接与硬链接

(1)基础知识了解:我们知道文件都有文件名与数据,这在linux上被分为两个部分:用户数据(user data)与元数据(metadata)。用户数据,即文件数据块(data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小,创建时间,所有者等信息。在Linux中,元数据中的inode号(inode是文件元数据的一部分但其并不包含文件名,inode号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过inode号来寻找正确的文件数据块。

(2)硬链接:若一个inode号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用多个别名。

硬链接存在以下几点特性:

文件有相同的inode及data block;

只能对已存在文件进行创建;

不能交叉文件系统进行硬链接的创建;

不能对目录进行创建,只可对文件进行创建;

删除一个硬链接文件并不影响其他有相同inode号的文件。

硬链接的作用之一是允许一个文件有多个有效的路径名,防止“误删”,为什么建立硬链接可以防止数据误删,是因为文件系统的原理,只要文件的索引节点上还有一个以上的链接(只是删除了文件的指向),只删除其中一个链接并不影响索引节点本身和其他的链接(数据的实体并未删除),只有当最后一个链接也被删除时,如果此时有新的数据要存储到磁盘,被删除的目录及文件的链接才会被释放,空间被新数据暂时覆盖。

(3)软链接:若文件用数据块中存放的内容是另一文件的路径名指向,则该文件就是软链接。

软链接的特性:

软链接有着自己的文件属性及权限等;

可对不存在的文件或目录创建软链接;

软链接可交叉文件系统;

软链接可对文件或目录创建;

删除软链接并不影响被指向的文件,但若指向的原文件被删除,则相关软链接被称为死链接。若被指向的路径文件被重新创建,死链接可恢复为正常的软件链接。

(4)如何创建软硬链接

linux可以通过ln命令创建链接文件

ln  [参数]   [源文件或目录]  [目标文件或目录]

1.软连接(符号链接)     ln -s source target

2.硬链接(实体链接)     ln source target

你可能感兴趣的:(Linux重定向中的012)