您的位置:首页 > 运维架构 > Linux

Linux基础篇十一 —— 重定向操作符

2016-06-24 17:15 232 查看
linux shell下常用输入输出操作符是:
1.标准输入   (stdin) :代码为 0 ,使用 < 或 << ; /dev/stdin -> /proc/self/fd/0   0代表:/dev/stdin 

2.标准输出   (stdout):代码为 1 ,使用 > 或 >> ; /dev/stdout -> /proc/self/fd/1  1代表:/dev/stdout
3.标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ; /dev/stderr -> /proc/self/fd/2 2代表:/dev/stderr

Linux重定向操作符功能简述:
1. > 将命令输入写入文件而非命令提示符或句柄





2. 从文件而非键盘或句柄读入参数
3.>>将内容追加到文件末尾而非删除文件重新创建之
4.>&将一个句柄的输出作为另一个句柄的输入
5.<&从一个句柄读取输入并写入另一个句柄的输出
7.|管道操作符,我们通过管道导引数据流将一个命令的输出作为下一个命令的输入
**关闭n号输入: n<&-  关闭n号输出:n>&- 标准输入和输出可缺省
**运行一个命令并将其标准输入和输出合并: ...2>&1

输出重定向:
     命令 > file或文件操作符或设备

     将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)  重定向其它输出设备(文件,打开文件操作符,或打印机等等)。
     如果该文件不存在系统将自动创建该文件并将结果写入。
     另外的>>重定向符会以添加的方式来打开一个文件

输入重定向:
     命令 < file 或文件描述符&设备

     命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入。执行这个命令,将标准输入0,与文件或设备绑定。将由它进行输入。
exec:
     exec 文件描述符
<或> file或文件描述符或设备

     在上面讲的输入,输出重定向 将输入,输出绑定文件或设备后。只对当前那条指令是有效的。如果需要在绑定之后,接下来的所有命令都支持的话。就需要用exec命令



命令ls的结果被重定向到了文件test.txt里
有了这个命令之后我们接下来的操作都会被重定向到该文件里,那么我们如何解绑这层关系呢?
使用命令exec 文件名/文件描述符 > &- 解除绑定
要指定重定向句柄到现有的句柄可以使用&字符,后面接上重定向的句柄号 eg:2>&1
**bash执行命令的过程:分析——变量求值——命令替代——重定向——通配符展开——确定路径——执行命令

eg: exec 1>test.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 操作系统