管理及I/O重定向

INPUT设备:将我们想要对电脑发出的指令传入电脑(如打字、录音)

OUTPUT设备:将电脑里面的数据通过输出设备传输给我们(如看电影,听音乐)

系统设定:

                默认输出设备:标准输出 (如果没有指定输出设备,就从默认输出设备中输出),STDOUT

           用来输出程序的正常运算结果 ,如果某个程序执行错了

                默认输入设备:标准输入(如果没有指定输入设备,就从默认输入设备中输入),STDIN

                标准错误输出:STDERR,描述符2

标准输入:键盘

标准输出和错误输出:显示器

 

I/O重定向:改变了数据的输入来源或输出来源的操作

                       eg本来输入设备是键盘,改成其他设备

对于Linux而言,可以用一些符号来表示重定向:

>:输出重定向,覆盖输出,原有数据会覆盖输出 ,正确输出重定向

>>:追加输出,在文件尾部继续追加新内容    

<:输入重定向

<<:HERE DOCUMENT 在此处生成文档

set -C:禁止对已经存在文件使用覆盖重定向

                强制覆盖输出,则使用>|

set +C:关闭上述功能

2>:重定向错误输出   !犯错误的人都比较2,哈哈

2>>:追加重定向错误输出 

&>:重定向标准输出或错误输出到同一个文件

!!!!!注:不支持&>>

管道:前一个命令的输出,作为后一个命令的输入

 

 

例子:

输出重定向:

1、>:输出重定向,覆盖输出,原有数据会覆盖输出 ,正确输出重定向

     

     

         本来列出var下的内容输出到显示器上,是能在显示器看到内容的

        ls /var> /tmp/var.out:将var下的内容输出重定向到/tmp/var.out中,此时在显示器上就看不到var下的内容了

        此时cat /tmp/var.out

     

     /tmp/var.out中有了/var下的所有文件    

2、>>:追加输出,在文件尾部继续追加新内容

     

     在文件尾部继续追加新内容输出 

3、set -C:禁止对已经存在文件使用覆盖重定向

                强制覆盖输出,则使用>|

     set +C:关闭上述功能

      

4、这个我也不晓得该起啥标题

      

      注意此时var文件名是拼写错误的,ls /varr 2> /tmp/var.out将错误输出重定向到/tmp/var.out

      如果文件名拼写是正确的,结合2>错误输出重定向时?

      

      此时不会输出重定向到/tmp/var.out,而是直接输出在显示器上

5、 设置文件正确错误都不会直接输出

       (1)&>:   重定向标准输出或错误输出到同一个文件

                        ls /var(r)  &>  /tmp/var.out

                        !此时文件名不管是正确的/var还是错误的var(r)都会重定向到/tmp/var.out中

       (2)

               

                 此时文件名如果正确会输出重定向到/tmp/var3.out中,错误会输出重定向到/tmp/err.out 中

 

输入重定向:

       1、<:输入重定向

          

           此时<相当于键盘

        2、<<:HERE DOCUMENT 在此处生成文档

              

              此时EOF相当于文档结束符,当输入EOF时则在此处生成了一个文件

          

 

管道:前一个命令的输出,作为后一个命令的输入 

        1、  

                                  

              此时“hello,world”作为echo输出的同时也作为tr的输入

       2、

           

           

          此时cat /etc/passwd | sort= sort /etc/passwd

       3、tee:read from standard input and write to standard output and files

                   从标准输入中读取数据并发送到标准输出和文件

            

            此时tee将标准输入的"HELLO,WORLD"发送到/tmp/hello.out文件中

 

posted @ 2017-08-29 10:43  kgcqw  阅读(159)  评论(0)    收藏  举报