电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

linux标准输入输出与重定向

6页
  • 卖家[上传人]:工****
  • 文档编号:497938279
  • 上传时间:2023-02-10
  • 文档格式:DOC
  • 文档大小:26.51KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、LINUX标准输入输出和重定向-1. 标准输入与输出我们知道,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。我们以cat命令为例,cat命令的功能是从命令行给出的文件中读取数据,并将这些数据直接送到标准输出。若使用如下命令:$ cat config将会把文件config的内容依次显示到屏幕上。但是,如果cat的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出。例如:$ catHello worldHello worldByeBye$用户输入的每一行都立刻被cat命令输出到屏幕上。另一个例子,命令sort按行读入文件正文(当命令行中没有给出文件名时,表示从标准输入读入),将其排序,并将结果送到标准输出。下面的例子是从标准输入读入一个采购单,并将其排序。$ sortbananascarrotsapplesapplesbanan

      2、ascarrots$ 这时我们在屏幕上得到了已排序的采购单。直接使用标准输入/输出文件存在以下问题:输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。为了解决上述问题,Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。 2. 输入重定向 输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。也就是说,输入可以不来自键盘,而来自一个指定的文件。所以说,输入重定向主要用于改变一个命令的输入源,特别是改变那些需要大量输入的输入源。例如,命令wc统计指定文件包含的行数、单词数和字符数。如果仅在命令行上键入:$ wcwc将等待用户告诉它统计什么,这时shell就好象死了一样,从键盘键入的所有文本都出现在屏幕上,但并没有什么结果,直至按下ctrl+d,wc才将命令结果写在屏幕上。如果给出一个文件名作为wc命令的参数,如下例所示,wc将返回该文件所包含的行数、

      3、单词数和字符数。$ wc /etc/passwd20 23 726 /etc/passwd$另一种把/etc/passwd文件内容传给wc命令的方法是重定向wc的输入。输入重定向的一般形式为:命令文件名。可以用下面的命令把wc命令的输入重定向为/etc/passwd文件:$ wc /etc/passwd20 23 726$另一种输入重定向称为here文档,它告诉shell当前命令的标准输入来自命令行。here文档的重定向操作符使用。它将一对分隔符(本例中用delim表示)之间的正文重定向输入给命令。下例将一对分隔符delim之间的正文作为wc命令的输入,统计出正文的行数、单词数和字符数。$ wcthis text forms the contentof the here document,whichcontinues until the end oftext delimterdelim4 17 98在文件名。例如:$ ls directory.out$ cat directory.outch1.doc ch2.doc ch3.doc chimp config mail/ test/$将

      4、ls命令的输出保存为一个名为directory.out的文件。注:如果符号后边的文件已存在,那么这个文件将被重写。为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,shell提供了输出重定向的一种追加手段。输出追加重定向与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。如果要将一条命令的输出结果追加到指定文件的后面,可以使用追加重定向操作符。形式为:命令文件名。例如:$ ls *.docdirectory.out$ cat directory.outch1.doc ch2.doc ch3.doc chimp config mail/ test/ch1.doc ch2.doc ch3.doc$和程序的标准输出重定向一样,程序的错误输出也可以重新定向。使用符号2(或追加符号2)表示对错误输出设备重定向。例如下面的命令:$ ls /usr/tmp 2 err.file可在屏幕上看到程序的正常输出结果,但又将程序的任何错误信息送到文件err.file中,以备将来检查用。还可以使用另一个输出重定

      5、向操作符(&)将标准输出和错误输出同时送到同一文件中。例如:$ ls /usr/tmp & output.file利用重定向将命令组合在一起,可实现系统单个命令不能提供的新功能。例如使用下面的命令序列:$ ls /usr/bin /tmp/dir$ wc w /tmp/dir459统计了/usr/bin目录下的文件个数。管 道将一个程序或命令的输出作为另一个程序或命令的输入,有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起,例如上个例子中的/tmp/dir文件将ls和wc命令联在一起;另一种是Linux所提供的管道功能。这种方法比前一种方法更好。 管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。通过使用管道符“|”来建立一个管道行。用管道重写上面的例子:$ ls /usr/bin|wc -w1789再如:$ cat sample.txt|grep High|wc -l管道将cat命令(列出一个文件的内容)的输出送给grep命令。grep命令在输入里查找单词High,grep命令的输出则是所有包含单词High的行,这个输出又被送给wc命令,wc命令统计出输入中的行数。假设sample.txt文件的内容如下:Things to do today:Low:Go grocery shoppingHigh:Return movieHigh:Clear level 3 in Alien vs. PredatorMedium:Pick up clothes from dry cleaner那么该管道行的结果是2。命令替换命令替换和重定向有些相似,但区别在于命令替换是将一个命令的输出作为另外一个命令的参数。常用命令格式为:command1 command2其中,command2的输出将作为command1的参数。需要注意的是这里的符号,被它括起来的内容将作为命令执行,执行后的结果作为command1的参数。例如:$ cd pwd该命令将pwd命令列出的目录作为cd命令的参数,结果仍然是停留在当前目录下。

      《linux标准输入输出与重定向》由会员工****分享,可在线阅读,更多相关《linux标准输入输出与重定向》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.