linux学习--管道和重定向

系统的标准输入,输出,错误

当一个程序刚刚打开时候,首先会创建三个文件

标准输入0,标准输出1,标准错误2

文件的重定向

>

1
2
3
4
5
6
7
8
command > filename		//把标准输出重定向到一个文件中
command >> filename //把标准输出重定向到一个文件中(追加)
command 1> filename //把标准输出重定向到一个文件中
command > file 2>&1 //把标准输出和标准错误一起重定向到文件中
command 2> filename //把标准错误重定向到文件中
command 2>> filename //把标准错误重定向到一个文件中(追加)
command >> filename 2>&1 //把标准输出和标准错误一起重定向到文件中(追加)
command &> filename //把标准输出和标准错误一起重定向到文件中

管道符

|

可以通过管道把一个命令的输出传递到另一个命令作为输入。

1
# cat file | head -n 25 | tail -n 15  #把文件的15行到25行显示出来

tee

###把标准输出的数据复制一份

1
2
# cat /etc/passwd |grep "/sbinnologin" |tee /mnt/nologin.out
#把/etc/passwd文件中含有/sbin/nologin的行输出到屏幕上并写入到/mnt/nologin.out文件中

tee 只能复制标准输出,不能复制标准错误。

diff 和patch 用法

diff

1
2
# diff hello.c hello.c.new  	//显示两个文本的差异
# diff -Nura hello.c hello.c.new > patch.test.c //加入参数后生成补丁文件并重定向到patch.test.c

patch

1
2
# patch -p0 < patch.hello.c  	//利用diff生成的patch补丁,来更新hello.c
# patch -p0 -R <patch.hello.c //-R参数,可以将更新后的文件还原成以前文件
Contents
  1. 1. 系统的标准输入,输出,错误
    1. 1.1. 当一个程序刚刚打开时候,首先会创建三个文件
    2. 1.2. 标准输入0,标准输出1,标准错误2
  2. 2. 文件的重定向
    1. 2.1. >
  3. 3. 管道符
    1. 3.1. |
  4. 4. tee
  5. 5. diff 和patch 用法
    1. 5.1. diff
    2. 5.2. patch
,