一.概述
1.重定向列表
类型 | 含义 |
---|---|
0 | 表示标准输入(stdin),配合<或<<使用,数据流从右向左 |
1 | 表示标准输出(stdou),配合>或>>使用,数据流从右向左 |
2 | 标准错误(stderr),配合>或>>使用,数据流从左向右 |
0<或< | 标准输入重定向,清空已有内容,数据文件流向处理的命令 |
0<<或<< | 追加输入重定向,追加内容到底部,数据从文件流向处理命令 |
1>或> | 标准输出重定向,将内容追加到文件底部,不清空已有内容 |
2> | 错误输出重定向,将标准错误内容重定向到文件,文件存在内容则会清空 |
2>> | 错误输出追加重定向,将标准错误内容追加到文件底部,不会清空已有的内容 |
二.输入重定向
1.概念
输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备
符号格式 | 作用 |
---|---|
命令<文件 | 将指定文件作为命令的输入设备 |
命令<<分界符 | 命令把标准输入中读入内容,直到遇到分界符为止 |
命令 <文件1>文件2 | 将文件1作为命令的输入设备,将执行结果输出到文件2中 |
2.实例
1.文件输入
[root@localhost ~]# cat /etc/passwd #输出passwd文件
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......
test1:x:1001:1001::/home/test1:/bin/bash
test2:x:1002:1002::/home/test2:/bin/bash
[root@localhost ~]# cat < /etc/passwd #将passwd的内容输入给cat,cat输出到屏幕
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......
test2:x:1002:1002::/home/test2:/bin/bash
tdm:x:1003:1003::/home/tdm:/bin/bash
2.分界符
[root@localhost ~]# cat << abc #遇到abc跳出
> 1
> 2
> 3
> abc
1
2
3
[root@localhost ~]#
3.输入输出一并使用
[root@localhost ~]# cat < /etc/passwd > test.txt #将passwd文件作为输入设备给cat,并输出到test.txt文件
[root@localhost ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......
test2:x:1002:1002::/home/test2:/bin/bash
tdm:x:1003:1003::/home/tdm:/bin/bash
三.输出重定向
1.概念
输出重定向就是指不使用linux默认的标准输出设备显示信息,而是指定某个文件做为标准输出设备来存储文件信息
符号格式 | 作用 |
---|---|
命令>文件 | 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件包含数据,会清空原有数据,再写入新数据 |
命令1> | 同上 |
命令2>文件 | 将命令文件执行的错误输出结果重定向到指定的文件中,如果该文件已包含数据,会清空原有数据,在写入新数据。标准错误2不能省略 |
命令>>文件 | 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件包含数据,新数据将写入到原有内容的后面 |
命令1>>文件 | 同上 |
命令2>>文件 | 将命令文件执行的错误输出结果重定向到指定的文件中,如果该文件已包含数据,新数据将写入到原有内容的后面。标准错误2不能省略 |
2.实例
1.标准输出重定向到文本
[root@localhost ~]# ls
a b test.txt
[root@localhost ~]# ls > test.txt #标准输出到test.txt文件
[root@localhost ~]# ls 1> test.txt #标准输出到test.txt文件
[root@localhost ~]# cat test.txt #查看文件的内容
a
b
test.txt
2.标准错误重定向到文本
[root@localhost ~]# abc #没有该命令
-bash: abc: command not found
[root@localhost ~]# abc 2> test.txt #将错误信息输出到test.txt文件中
[root@localhost ~]# cat test.txt #显示内容
-bash: abc: command not found
3.标准输出和标准错误输出并用
[root@localhost ~]# ll test.txt abc.txt #查看文件test.txt文件有,abc.txt没有
ls: cannot access abc.txt: No such file or directory
-rw-r--r--. 1 root root 42 Jun 7 19:09 test.txt
[root@localhost ~]# ll test.txt abc.txt > file1 2>file2 #正确信息输出到file1,错误信息输出到file2
[root@localhost ~]# cat file1
-rw-r--r--. 1 root root 42 Jun 7 19:09 test.txt
[root@localhost ~]# cat file2
ls: cannot access abc.txt: No such file or directory
参考:https://blog.csdn.net/wangzhicheng987/article/details/120971092