快速业务通道

Linux标准输入、输出与重定向

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-23

标准输出指程序输出信息的地方.程序从来都不“知道”它发出送到标准输出的信息究竟要送往何处.这些信息可以输出到打印机、普通文件或屏幕.但在默认情况下,shell将把命令的执行结果标准输出到屏幕,也可以将输出重定向到普通文件.对于一个运行的程序,除了标准的输入和标准输出,通常还有输出错误的地方,称为标准错误.

标准输入可以是键盘或文件,标准输出可以是屏幕、文件或打印机,标准错误可以是屏幕、文件或打印机.

重定向(redirection)包含改变shell标准输入来源和标准输出去向的各种方式.在默认情况下,shell将命令的标准输入关联到键盘,标准输出关联到屏幕.但也可以将标准的输入、输出对应的文件重定向到某个命令或文件.

当重定向输出到某个文件时,要特别小心.在执行重定向命令前,如果该文件已经存在,那么shell将重写它并销毁其原来的内容. 要防止这种事情的发生,我们可以设定set –o noclobber来防止或避免文件被重写.

例如:

$ cat orange pear > orange

cat : orange : input file is output file

虽然cat报告了错误信息,但shell在给出报告前就已经销毁了已存在的orange的内容.在执行命令后,orange文件的内容与pear相同.这是shell当遇到重定向符号(>)时,它采取的行动是删除原来的orange文件的内容.

1:重定向标准输出

重定向输出符号(>)可以将命令的输出重定向到指定的文件,而不是屏幕.它可以在不使用编辑器的情况下创建文件,但其缺点是:只能在输入行的过程中使用字符删除键和行删除键来删除输入内容,而当输入一行并按下Enter键后,就无法再对该行进行编辑.因此此方法只适用于创建简短的文件.

例:ls –lh >1.txt -- 将ls –lh输出的内容写进1.txt,而不是将结果输出到屏幕

2:重定向标准输入

与重定向标准输出一样,也可以重定向标准输入.通过标准重定向标准输入符号(<)可以使shell将命令的输入重定向到来自指定的文件,而不是键盘.

例:cat <1.txt --将1.txt作为cat的输入源

-rw-r--r-- 1 root root 0 Nov 25 16:15 1.txt
-rw-rwxr-- 1 root root 1.1K Nov 21 18:18 anaconda-ks.cfg
-rwxrwxrwx 1 root root 0 Nov 22 16:34 anaconda-ks.dll
drwxr-xr-x 2 root root 4.0K Nov 21 18:30 Desktop
-rw-r--r-- 1 root root 27K Nov 21 18:18 install.log
-rw-r--r-- 1 root root 3.8K Nov 21 18:17 install.log.syslog

本文出自 “探索与发现” 博客,请务必保留此出处http://misujun.blog.51cto.com/2595192/724479

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号