- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux系统如何重定向
Linux系统如何重定向数据流? 所谓的数据流就是按一定顺序读取的一串数据,所以数据流的方向就是数据流的读取顺序,Linux系统重定向数据流就是把数据读取后输出的结果导入到其他文件中。那么Linux系统如何重定向数据流呢? Linux系统如何重定向数据流? 数据流重定向 下面简单的回顾一下前面经常用到的两个重定向操作: $ echo ‘hello shiyanlou’ 》 redirect $ echo ‘’ 》》 redirect $ cat redirect 当然前面没有用到的《和《《操作也是没有问题的,如你理解的一样,它们的区别在于重定向的方向不一致而已,》表示是从左到右,《右到左。 Linux系统如何重定向数据流? 1.简单的重定向 在更多了解 Linux 的重定向之前,需要先知道一些基本的东西,前面已经提到过 Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin(标准输入,对应于你在终端的输入),stdout(标准输出,对应于终端的输出),stderr(标准错误输出,对应于终端的输出)。 Linux系统如何重定向数据流? 文件描述符 设备文件 说明 0 /dev/stdin 标准输入 1 /dev/stdout 标准输出 2 /dev/stderr 标准错误 Linux系统如何重定向数据流? 文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。 Linux系统如何重定向数据流? 另外还有一个符号-,它可以同时作为前一个命令的。 可以这样使用这些文件描述符: 默认使用终端的标准输入作为命令的输入和标准输出作为命令的输出 $ cat (按Ctrl+C退出) 将cat的连续输出(heredoc方式)重定向到一个文件 $ mkdir Documents $ cat 》 Documents/test.c\~ 《《EOF #include 《stdio.h》 int main() { printf(“hello world\n”); return 0; } EOF 将一个文件作为命令的输入,标准输出作为命令的输出 $ cat Documents/test.c\~ 将echo命令通过管道传过来的数据作为cat命令的输入,将标准输出作为命令的输出 $ echo ‘hi’ | cat 将echo命令的输出从默认的标准输出重定向到一个普通文件 $ echo ‘hello shiyanlou’ 》 redirect $ cat redirect Linux系统如何重定向数据流? Linux系统如何重定向数据流? 注意不要将管道和重定向混淆,管道默认是连接前一个命令的输出到下一个命令的输入,而重定向通常是需要一个文件来建立两个命令的连接,仔细体会一下上述第三个操作和最后两个操作的异同点。 Linux系统如何重定向数据流? 2.标准错误重定向 重定向标准输出到文件,这是一个很实用的操作,另一个很实用的操作是将标准错误重定向,标准输出和标准错误都被指向伪终端的屏幕显示,所以经常看到的一个命令的输出通常是同时包含了标准输出和标准错误的结果的。比如下面的操作: Linux系统如何重定向数据流? # 使用cat 命令同时读取两个文件,其中一个存在,另一个不存在 $ cat Documents/test.c\~ hello.c # 你可以看到除了正确输出了前一个文件的内容,还在末尾出现了一条错误信息 # 下面我们将输出重定向到一个文件,根据我们前面的经验,这里将在看不到任何输出了 $ cat Documents/test.c\~ hello.c 》 somefile Linux系统如何重定向数据流? Linux系统如何重定向数据流? 遗憾的是,这里依然出现了那条错误信息,这正是因为如我上面说的那样,标准输出和标准错误虽然都指向终端屏幕,实际它们并不一样。那有的时候我们就是要可以隐藏某些错误或者警告,那又该怎么做呢。这就需要用到前面讲的文件描述符了: # 将标准错误重定向到标准输出,再将标准输出重定向到文件,注意要将重定向到文件写到前面 $ cat Documents/test.c\~ hello.c 》somefile 2》1
文档评论(0)