精神病人思维广

一只大学狗的程序员之路

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

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 文件描述符[n] <或> file或文件描述符或设备
     在上面讲的输入,输出重定向 将输入,输出绑定文件或设备后。只对当前那条指令是有效的。如果需要在绑定之后,接下来的所有命令都支持的话。就需要用exec命令

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Monamokia/article/details/51754458
文章标签: linux 操作系统
个人分类: linux 操作系统
想对作者说点什么? 我来说一句

鸟哥的linux基础篇和网络篇

2009年08月01日 8.98MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭