Linux 输入重定向输出重定向和管道

眼前多少难甘事,自古男儿当自强。这篇文章主要讲述Linux 输入重定向输出重定向和管道相关的知识,希望能为你提供帮助。
@toc
输入重定向使用输入重定向 & lt; ,& lt; & lt;

  • & lt; 将需要交互输入的内容存放到文件中,用来当做命令的输入。
    注意后面必须是文件,不能直接写字符串。可以用来解决脚本中交互命令的输入问题。
  • & lt; & lt; 一般和cat联合使用,用于多行内容写入/追加到文件中 示例
    # 创建一个空文件 [root@localhost ~]# touch hosts [root@localhost ~]# cat hosts # < < 将两个EOF之间的内容作为输入,重定向到file中。 # EOF可以更改为任意符号,只要开头和结尾一致即可 [root@localhost ~]# cat > file < < EOF > y > > > EOF [root@localhost ~]# cat file y

< 将file中的y作为输入【Linux 输入重定向输出重定向和管道】[root@localhost ~]# cp /etc/hosts hosts < file
cp: overwrite ‘hosts’?
[root@localhost ~]# cat hosts
127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4
::1localhost localhost.localdomain localhost6 localhost6.localdomain6
扩展 使用管道可以直接将字符串作为命令的输入[root@localhost ~]# echo y |cp hosts test
cp: overwrite ‘test’?
# 输出重定向 输出重定向 `> ,> > ,1> ,2> ,& > ,1> > ,2> > ,& > > ` * `> `将输出重定向到文件中,会替换掉现有文件内容 * `> > `将输出重定向到文件中,会追加在现有文件的结尾 * `1`将正确信息输出 * `2`将错误信息输出 * `& `将正确信息和错误信息一起输出 ##示例 ```bash # 创建一个新文件 [root@localhost ~]# touch test [root@localhost ~]# cat test # 初始文件为空,添加一行内容 [root@localhost ~]# echo 12345 > test [root@localhost ~]# cat test 12345 # > 覆盖文件 [root@localhost ~]# echo 23445 > test [root@localhost ~]# cat test 23445 # > > 在文件末尾追加 [root@localhost ~]# echo 1234 > > test [root@localhost ~]# cat test 23445 1234# 消息重定向 echo "ls & & cp host test" > test.sh # 默认错误消息会输出到屏幕上,正确的消息重定向到文件中 [root@localhost ~]# sh test.sh > test cp: cannot stat ‘host’: No such file or directory [root@localhost ~]# cat test anaconda-ks.cfg file hosts original-ks.cfg test test.sh # 1 将正确的消息重定向到文件中 [root@localhost ~]# sh test.sh 1> test cp: cannot stat ‘host’: No such file or directory [root@localhost ~]# cat test anaconda-ks.cfg file hosts original-ks.cfg test test.sh # 2 将错误的消息重定向到文件中 [root@localhost ~]# sh test.sh 2> test anaconda-ks.cfgfilehostsoriginal-ks.cfgtesttest.sh [root@localhost ~]# cat test cp: cannot stat ‘host’: No such file or directory # & 将正确的和错误的消息都重定向到文件中 [root@localhost ~]# sh test.sh & > test [root@localhost ~]# cat test anaconda-ks.cfg file hosts original-ks.cfg test test.sh cp: cannot stat ‘host’: No such file or directory

管道|
管道将左边命令的输出结果当作右边命令的输入
ps -ef|grep mysql


    推荐阅读