首页 > 系统 > Linux > 正文

Linux base shell重定向详解

2019-10-26 18:40:19
字体:
来源:转载
供稿:网友

一、标准输入,标准输出与标准错误输出

在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 > filename2Command命令以filename文件作为标准输入,以filename2文件作为标准输出
Command < filenameCommand命令以filename文件作为标准输入
Command << delimiter 从标准输入中读入,知道遇到delimiter分界符
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表