重定向输入、输出,将输出、输入重定向到文件.note

noteId: 2B483263DC5D4941BDFDE3C39A53CCE6 · 原始路径:/ALL/Linux - A模块/Linux零散命令/重定向输入、输出,将输出、输入重定向到文件.note · 图片:4 · 附件待处理:0

输出重定向是指不使用linux默认地标准输出设备显示信息,而是指定某个文件做为标准输出设备来存储文件信息,以覆盖的方式把指定文件信息输入到指定文件
Linux中重定向输出符为:
“>”
语法1:
“>”       
ls /root > /root/exercises/test10    //将输出重定向到文件,直接替换文件内的内容,若该文件不存在,则自动创建文件
“>>”
ls /root >> /rot/exercises/test10    //将输出重定向到文件,在文件末尾插入,不替换文件的内容,若该文件不存在,则自动创建文件
 
除此之外,重定向还能用于复制文件的内容,而且不限于复制文本文件,二进制文件也可以复制:
#cat image.png > picture.png
如果想将内容复制到另一个文件的末尾,只需要将“>”字符替换成“>>”字符串即可,例如:
#cat image.png >> picture.png
 
语法2:
使用重定向功能合并文件:
#echo "1" > file1
#echo "2" > file2
#cat file1 file2 > file3
#cat file3
 
输入重定向可以将输入信息重定向至命令中作为参数使用,当命令需要一个参数列表时,而这些参数都存在一个文件中,然后你想要快速地将它们从文件中复制粘贴到终端,就可以使用输入重定向 “<”
重定向输入符为:
“<”
语法1:
#cat < /etc/passwd    //输入重定向,将passwd文件指定为输入设备,并将内容显示到控制台
 
语法2:
将/etc/passwd文件重定向输入到a文件,并将之重定向输出到/root/666
#touch ./a
#cat /etc/passwd < a > /root/666
#cat a    //a文件为空
#cat /root/666
a文件为空,内容被重定向在/root/666
cat重定向输入只是显示文件,并不会写入,也不会将源文件内容删除
(重定向输入无论重定向在哪,都不会进行写入操作)
 
 
输入重定向是指不使用系统提供地标准输入端口,而进行重新的指定,出入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。(重定向输入简单理解就是使用“<”符来修改标准输入设备)
比如,默认情况下,cat命令会接收默认标准输入设备键盘的输入,并显示到控制台,但是可以通过“<”符号修改标准输入设备,指定文件作为标准输入设备,那么cat命令将指定的文件作为输入设备,并将文件中的内容读取并显示到控制台
 
Linux标准输入设备是指键盘,标准输出设备是指显示器,标准错误输出指的是显示器
设备
设备名
文件描述符
类型
键盘
/dev/stdin
0
标准输入
显示器
/dev/stdout
1
标准输出
显示器
/dev/stderr
2
标准错误输出
Linux文件描述符,可以理解为Linux系统为文件分配的一个数字,范围0——3,用户也可以自定义文件描述符
一般情况下,每个Unix/Linux命令运行时都会打开三个文件:
·标准输入文件(stdin):stdin的文件描述符为0,Linux程序默认从stdin读取数据
·标准输出文件(stdout):stdout的文件描述符为1,Linux程序默认向stdout输出数据
·标准错误文件(stderr):stderr的文件描述符为2,Linux程序会向stderr流中写入错误信息