1、重定向的基本概述
重定向就是将原本要输出到屏幕上的内容重新指定到某个特殊的文件中,或者定向到黑洞中(/dev/null)
名称 | 文件描述符 | 作用 |
---|---|---|
标准输入 | 0 | 默认时键盘,也可以是文件或者其他命令的输出 |
标准输出 | 1 | 默认输出到屏幕(正确的结果) |
标准输出 | 2 | 默认输出到屏幕(错误的结果) |
标准覆盖输出重定向 | > | 将程序输出的正确结果输出到指定的文件中,会覆盖文件原有的内容 |
标准追加输出重定向 | >> | 将程序输出的正确结果以追加的方式输出到指定的文件中,不会覆盖文件原有的内容 |
混合输出 | &> | 将正确的错误的文件混合输出到指定文件中 |
1.2 输入重定向
输入重定向指的是“重新来指定设备”来“代替键盘”作为新的输入设备
1.3 输入重定向示例
1、通过重定向读取文件内容
[root@localhost etc]# cat </etc/host
#将文件的内容输出到屏幕上
2、通过重定向读入多行内容
[root@localhost etc]# cat <<EOF
> 123
> 456
> 789
> EOF
123
456
789
#以什么开头就就以什么结尾,然后打印内容
[root@localhost etc]# cat >> /tem/ccc <<EOF
#将屏幕中输入的内容追加到/tem/ccc 中,这也是建立文件的一直格式, <<-加上-就可以不顶格了,比如
[root@localhost etc]# cat <<-EFO
> -------主菜单-------
> | 1)安装软件 |
> | 2)删除软件 |
> | 3)退出 |
> ---------------------
> EFO
-------主菜单-------
| 1)安装软件 |
| 2)删除软件 |
| 3)退出 |
---------------------
2、进程管道技术
- 管道操作符号
|
,主要用于连接左右两个命令,将左侧的命令的【标准输出交给右侧命令的【标准输入】 - 注意事项:无法传递标准错误输出至后者命令
2.1 tee与xargs
tee命令是将左侧命令的结果输入到屏幕或者文件中,不影响右侧命令的执行结果
tee可以写入多个文件,每个文件之间使用空格分隔。
[root@localhost ~]# free -h | tee mem1.txt mem2.txt mem3.txt
total used free shared buff/cache available
Mem: 1.8G 165M 1.2G 9.6M 389M 1.5G
Swap: 2.0G 0B 2.0G
- 使用选项-a在文件底部追加内容,不覆盖原有内容。
2.2管道中使用xargs
- 使用
xargs
参数传递,主要让一些不支持管道的命令可以使用管道技术