一. 标准输入与输出
执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕.进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中.
直接使用标准输入/输出文件存在以下问题:
1.输入数据从终端输入时,用户费了半天劲输入的数据只能用一次.下次再想用这些数据时就得重新输入.在终端上输入时,若输入有误修改起来不是很方便.
2.输出到终端屏幕上的信息只能看不能动.我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等.
为了解决上述问题,Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道.
标准输入、输出和错误输出的问及那描述符分别为:0、1、2.
二.重定向
1.输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件 中.也就是说,输入可以不来自键盘,而来自一个指定的文件.说, 输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入 的输入源.
2.输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中.这样,该命令的输出就不显示在屏幕上,而是写入到指定文件中.
3.输入、输出重定向的符号:
STDIN为“>”;STDOU为“<”;STDERR为“2>”.另外,“&>”表示把错误输出和标准输出重定向到同一位置.输出重定向命令格式为:command > filename,其多次重定向到同一文件内会覆盖以前的内容,,要使用“>>”代替“>”可以是实现内容的追加.或者,使用命令“set C”也可以.利用“>>”也可是实现复制功能,例如:cat /etc/passwd >> /tmp/passwd 可以把/etc/passwd复制为/tmp/passwd.
4.管道(pipe):把前面命令的输出当作后面命令的输入使用.其格式为:command1 | command2 | command3 ...
5.命令tr(translate):转换或者删除字符.其格式为:tr [options] 字符集1 字符集2.例如:ls /var | ''a-z'' ''A-Z''
同一命令行下连续执行多个命令需要“;”隔开,多个命令使用同一管道需用“()”.
命令tree可以实现一个输入多个输出.例如:ls /etc | tree /tmp/etc.out
本文出自 “点点滴滴” 博客,请务必保留此出处http://dongni80.blog.51cto.com/1983698/550060
|