linux系统中输入输出重定向 0<、<、1>、>、2>、1>>、>>、2>>、&>、>&、&>>、2>&1、<<

1、标准输入重定向0,通常省略;标准输出重定向1,通常省略;标准错误输出重定向2,不能省略

创建测试数据

[root@linuxprobe test]# echo 'this is a test!' > a.txt
[root@linuxprobe test]# ls
a.txt
[root@linuxprobe test]# cat a.txt
this is a test!

 

2、标准输入重定向 0<、<  ,两者相同,0和<通常省略

[root@linuxprobe test]# cat a.txt
this is a test!
[root@linuxprobe test]# cat 0< a.txt
this is a test!
[root@linuxprobe test]# cat < a.txt
this is a test!
[root@linuxprobe test]# tr "a" "x" a.txt  ## tr替换a为x,没有输入重定向则报错
tr: extra operand ‘a.txt’
Try 'tr --help' for more information.
[root@linuxprobe test]# tr "a" "x" 0< a.txt ## 同上
this is x test!

 

3、标准输出重定向  1>、>,清空原始文件,两者相同,1通常省略;1>>、>>表示追加输出

[root@linuxprobe test]# cat a.txt 1> b.txt ##标准输出 
[root@linuxprobe test]# cat b.txt
this is a test!
[root@linuxprobe test]# cat a.txt > c.txt ##标准输出
[root@linuxprobe test]# cat c.txt
this is a test!
[root@linuxprobe test]# cat a.txt 1>> b.txt ## 标准输出追加
[root@linuxprobe test]# cat b.txt
this is a test!
this is a test!
[root@linuxprobe test]# cat a.txt >> c.txt ## 标准输出追加
[root@linuxprobe test]# cat c.txt
this is a test!
this is a test!

 

3、标准错误输出重定向 2>(清空原始文件)、2>>(追加至原始文件)  

[root@linuxprobe test]# rm b.txt c.txt
[root@linuxprobe test]# ls
a.txt
[root@linuxprobe test]# ll -h a.txt > b.txt ## 标准输出
[root@linuxprobe test]# ls
a.txt  b.txt
[root@linuxprobe test]# cat b.txt
-rw-r--r--. 1 root root 16 Oct  4 22:27 a.txt
[root@linuxprobe test]# ll -h c.txt > d.txt  ## 标准输出,d.txt并不记录错误输出信息
ls: cannot access c.txt: No such file or directory
[root@linuxprobe test]# ls
a.txt  b.txt  d.txt
[root@linuxprobe test]# cat d.txt  ## d.txt为空
[root@linuxprobe test]# ll -h c.txt 2> e.txt  ## 标准错误输出重定向
[root@linuxprobe test]# cat e.txt   ##e.txt记录错误信息
ls: cannot access c.txt: No such file or directory
[root@linuxprobe test]# ll -h c.txt 2>> e.txt  ##标准错误输出追加
[root@linuxprobe test]# cat e.txt
ls: cannot access c.txt: No such file or directory
ls: cannot access c.txt: No such file or directory

 

4、同时输出标准输出冲定性和标准错误输出重定向 &>、>&、>file 2>&1(以上三者相同,同时记录标准输出和标准错误输出)、&>>、>>file 2>&1(相同,标准输出和标准错误输出追加重定向)

[root@linuxprobe test]# ls
a.txt
[root@linuxprobe test]# cat a.txt b.txt &> c.txt ## 标准输出和标准错误输出重定向
[root@linuxprobe test]# cat c.txt
this is a test!
cat: b.txt: No such file or directory
[root@linuxprobe test]# cat a.txt b.txt >& d.txt  ## 标准输出和标准错误输出重定向
[root@linuxprobe test]# cat d.txt
this is a test!
cat: b.txt: No such file or directory
[root@linuxprobe test]# cat a.txt b.txt > e.txt 2>&1  ## 同上
[root@linuxprobe test]# cat e.txt
this is a test!
cat: b.txt: No such file or directory
[root@linuxprobe test]# cat c.txt
this is a test!
cat: b.txt: No such file or directory
[root@linuxprobe test]# cat a.txt b.txt &>> c.txt  ## 标准输出和标准错误输出追加重定向
[root@linuxprobe test]# cat c.txt
this is a test!
cat: b.txt: No such file or directory
this is a test!
cat: b.txt: No such file or directory
[root@linuxprobe test]# cat d.txt
this is a test!
cat: b.txt: No such file or directory
[root@linuxprobe test]# cat a.txt b.txt >> d.txt 2>&1 ## 同上
[root@linuxprobe test]# cat d.txt
this is a test!
cat: b.txt: No such file or directory
this is a test!
cat: b.txt: No such file or directory

 

5、<< 表示分界符,从标准输入读入,遇到分界符停止 

[root@linuxprobe test]# ls
[root@linuxprobe test]# cat << EOF > a.txt  ## 设定终止符为EOF,遇到EOF则停止,标准输出至a.txt
> aaaa
> bbbb
> cccc
> EOF
[root@linuxprobe test]# ls
a.txt
[root@linuxprobe test]# cat a.txt
aaaa
bbbb
cccc

 

posted @ 2020-10-04 23:04  小鲨鱼2018  阅读(1658)  评论(0编辑  收藏  举报