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

【小镇的技术天梯】Linux shell的标准输入、输出和错误

2016-02-25 10:28 246 查看
【小镇在有一篇文章里面介绍了Linux的文件描述符,在这里巩固一下文件描述符中的0、1、2】

在Unix/Linux/BSD中有三个特别的文件,分别是

1)标准输入 即 STDIN , 在 /dev/stdin ,一般指键盘输入, shell里代号是 0。

2) 标准输出 STDOUT, 在 /dev/stdout, 一般指终端(terminal), 就是显示器, shell里代号是 1。

3) 标准错误 STDERR, 在 /dev/stderr 也是指终端(terminal), 不同的是, 错误信息送到这里,shell里代号是 2。

【其实大家可以在Linux的系统中看到相应的文件链接,如下图所示:】



【相信大家一定非常的疑惑这个proc文件夹里面的内容究竟是用来干什么的,小镇会专门再写一篇文章来探讨一下】

【小镇在linux的文件描述符的文章里面说过,在Linux中,所有的一切都是文件】

然后呢,理解了这些之后,我们可以将文件重新定向,也就是改变程序运行的输入来源和输出地点。

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>&- 同上

比如说我们可以把一个命令的输出结果重定向到一个txt文件中,然后在txt文件中查看这个命令的输出结果,这样子做在查看查询结果的时候更加的高效和方便!如下图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: