1 管道简介
1 管道技术是Linux的一种基本的进程间通信技术,它利用先进先出排队模型来指挥进程间的通信。对于管道,我们可以形象的理解为连接两个实体的一个单向连接器
2 Shell编程中管道符号是"|",命令直接利用管道进行通信的一般格式
command1 | command2 | command3 | ... | commandn
command1~commandn是n个命令,如果没有管道那么结果将会直接显示在Shell中,当Shell遇到管道的时候,就将输出发送下一个命令
2 cat和more命令
1 cat和more命令都是用来显示文件的内容,它们的基本格式特比较类似
cat 选项 文件
more 选项 文件
2 cat命令的选项名称及其意义
选项 意义
-a 显示文件的所有内容
-b 由1开始对所有输出的行数编号,但对空行不编号
-E 每一行末尾显示"$"
-n 由1开始对所有的输出行进行编号
-s 当遇到连续的两行以上的空行时就替换为一行空白行
-v 不可显示的字符以可见的形式显示
3 more命令的选项名称及其意义
选项 意义
-num 一次显示的行数
-f 计算行数时,以实际的行数,而非自动换行过后的行数
-s 当遇到连续的两行以上的空行时就替换为一行空白行
+num 从第num行开始显示
4 cat和more命令的最大区别在于,cat命令是不提供分页功能的,但是more命令是显示超过一页的文件时提供了分页功能
3 I/O重定向
1 I/O重定向是一个过程,这个过程捕捉一个文件,命令,程序或脚本,甚至代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件,命令,程序
2 文件标识符是从0开始到9结束的整数,指明了与进程相关的特定数据流的源。当Linux系统启动一个进程时,将自动为该进程打开三个文件,标准输入,标准输出,标准错误输出,分别由文件标识符0,1,2标识,该进程如果要打开其它的文件,则从整数3开始表识
3 基本I/O重定向符号及其意义
符号 意义
cmd1 | cmd2 管道符,将cmd的标准输出作为cmd2的标准输入
> filename 将标准输出写道文件filename之中
< filename 将文件filename的内容作为标准输入
>> filename 将标准输出追加到filename,如果不存在则先创建一个