Linux base shell重定向详解重定向详解
主要介绍了Linux base shell重定向的相关资料,并用一个简明例子总结了常见用法(在第三节),需要的朋友可以
参考下
一、标准输入,标准输出与标准错误输出一、标准输入,标准输出与标准错误输出
在linux shell执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易
记忆,shell同时也给出了相应的文件名:
文件 文件描述符
输入文件—标准输入
0(缺省是键盘,为0时是文件或者其他命令的输
出)
输出文件—标准输出 1(缺省是屏幕,为1时是文件)
错误输出文件—标准错
误
2(缺省是屏幕,为2时是文件)
系统中实际上有12个文件描述符,我们可以任意使用文件描述符3到9.
标准输入:从键盘输入数据,即从键盘读入数据。
标准输出:把数据输出到终端上。
标准错误输出:把标准错误输出到终端上。
默认的标准输入指的是键盘,默认的标准输出与标准错误输出指的是屏幕或者是终端。
系统为这三个文件分配了文件标识符fd(file descripter).
在Linux系统下,一切皆是文件,对文件的操作,一般要用到文件标识符。它们的文件标识符,分别为0,1,2。他们的关系如下
表:
文件描述符文件描述符 名称名称 通用缩写通用缩写 默认值默认值
0 标准输入 stdin 键盘
1 标准输出 stdout 屏幕
2 标准错误 stderr 屏幕
二.文件重定向:改变程序运行的输入来源和输出地点
1.输出重定向:输出重定向:
Command > filename 把标准输出重定向到一个新文件中
Command >> filename 把标准输出重定向到一个文件中(追加)
Command > filename 把标准输出重定向到一个文件中
Command > filename
2>&1
把标准输出和错误一起重定向到一个文件中
Command 2 > filename 把标准错误重定向到一个文件中
Command 2 >> filename 把标准输出重定向到一个文件中(追加)
Command >>
filename2>&1
把标准输出和错误一起重定向到一个文件
(追加)
2.输入重定向:输入重定向:
Command < filename >
filename2
Command命令以filename文件作为标准输入,以filename2文件作为
标准输出
Command < filename Command命令以filename文件作为标准输入
Command << delimiter 从标准输入中读入,知道遇到delimiter分界符
3.绑定重定向绑定重定向
Command >&m 把标准输出重定向到文件描述符m中
Command < &- 关闭标准输入
Command 0>&- 同上
三、使用实例三、使用实例
复制代码 代码如下:
cmd > file