- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
字符界面进阶(第五章重定向和管道)概要1
第五章 字符界面操作进阶 使用命令通配符 通配符 通配符主要用于用户方便描述目录或文件。 常用的通配符 * 匹配任何字符和任何数目的字符 ? 匹配单一数目的任何字符 [ ] 匹配[ ]之内的任意一个字符 [! ] 匹配除了[! ]之外的任意一个字符,!表示非的意思 “*” 不能匹配首字符是“.”的文件或目录名。 例如 当前目录下有个文件: a.c d.c n1.conf n11.conf test1.txt text11.txt 1.c $ ls *.c $ ls n*.conf $ ls test?.* $ ls [abcd]* $ ls [!abcd]* $ ls [a-zA-Z]* 本章目标 Introduction 本章我们将涉及到 重定向标准 I/O 管道和过滤 Command Input and Output 标准的I/O stdin 标准输入,命令的默认输入位置 stdout 标准输出,命令的默认输出位置 stderr 标准的错误输出,命令的另一个输出位置,用于输出错误和各种诊断信息 这三种流可以想像成一个有3个元素的数组,stdin,stdout,stderr分别对应0,1,2 Command Input and Output Standard I/O stdin 就是从键盘输入的字符 标准的输出会显示在终端屏幕上 标准的错误输出也会显示在终端屏幕上 Command Input and Output 重定向 可以改变一个命令的标准输入或输出,使输出的结果不显示在终端屏幕上,而是存入文件中 如在命令的末尾添加: filename 实际执行命令这前,命令解释程序会自动打开(如果文件不存在则自动创建)且清空文件内容(文件中已有数据将被删除)。 命令执行完毕会自动关闭该文件。 Stderr也是显示到终端,但他和stdout是不同的流,当重定向stdout后,stderr仍输出到终端可以通过 : 2filename来重定向stderr流 2errs可以把错误信息重定向到errs文件中。 将把错误信息及标准信息重定向到一个文件中 Command Input and Output Redirection 输入重定向 标准输入流也可以重定向到文件而不是键盘 从一个文件重定向标准输入允许事先输入所有要求输入的信息,检查并更正错误,同时还可以重复利用这些信息,对于较长的输入比较有利。 重定向标准输入的方法:filename 追加重定向 正常重定向会删除文件内容,如果我们想添加内容到其后面。 filename 对于stderr , 2filename Command Input and Output Redirection /dev/null 空设备 /dev/null,作为输入时仅产生一个文件结束符(no data),做为输出时,丢弃所有数据 空设备的一个典型用法就是丢弃从 grep or find等命令送来的错误信息. $grep delegate /etc/* 2/dev/null 我们可以只在屏幕上看到有用的输出。 Command Input and Output 命令 简单命令 $date 复杂命令 $who am i who为命令,am 和 i 为参数 复合命令 date ; who am i 每条命令按顺序执行 命令分隔符 | ; 一条命令的结束,另一条命令的开始 Pipes and Filters管道和过滤器 管道允许一系列进程的输入输出流连接在一起,而将这些命令连接成为管道 过滤程序应用于管道,从而实现对管道的过滤 Pipes and Filters Pipes管道 如果用户希望通过一个命令来处理另一个命令的输出,可以通过重定向来完成。先重定向到一个临时文件,再把临时文件做为另一命令的输入。 $who tmpfile $ wc –l tmpfile 通过管道符|,我们就可以把以上命令写为一个$who|wc –l 管道符告诉shell 将左边的命令输出做为右边命令的输入 管道是shell在命令执行前建立起来的 管道可以连接2个以上命令,通过过滤器服务程序,多级管道在linux中是非常常见的 过滤器只是一段程序,它从自己标准输入流读入数据,然后写到自己标准输出流中,这样就可以沿着管道过滤数据。 管道示例: $who |grep ttyp |wc –l 统计出网络用户人数 Pipes and Filters Filters过滤器 上节提过,过滤器是一段程序,它从标准输入中读入数据,然后写到标准输出中。 通常情况,过滤器输入数
文档评论(0)