重定向与管道

 

   本次内容

   1.三种I/O设备

   2.把I/O从定向入文件

   3.命令tr

   4.使用管道链接命令

   5.tee

 

我们都知道程序是由:指令+数据

       读入数据:Input

       输出数据:output

而打开的文件都有一个fd: file
descriptor (文件描述符)

同时也有三种I/O设备:

                标准输入 0  默认是由接受键盘输入

                标准输出 1  默认是输出到终端窗口显示屏

                标准错误 2   默认是输出到终端窗口显示屏

 

   I/O重定向:改变默认位置

   标准输出的不管是错误或默认输出都可以重定向到文件之中它的格式为:    

  命令  操作符号 文件名


   支持符号包括

   >  把标准输出重定向到文件中

   2> 把错误重定向到文件中

   &> 把所有(不管是正确还是标准输出错误)的重定向到文件中

 重定向与管道

 重定向与管道

 重定向与管道

 

注意:

       用重定向符号时> ,2> ,
&> 时原来的文件内容会被覆盖

 重定向与管道

 

在原来基础上,追加内容  >>

 重定向与管道

 

2>: 覆盖重定向错误输出数据流

2>>:
追加重定向错误输出数据流

重定向与管道


准输出和错误输出各自定向至不同位置

OMMAND >
/path/to/file.out2> /path/to/error.out

合并标准输出和错误输出为同一个数据流进行重定向

&>覆盖重定向

&>>
追加重定向

COMMAND
> /path/to/file.out 2>&1 (顺序很重要)

COMMAND
>> /path/to/file.out 2>&1

 

 重定向与管道

 

  注意:>>& 排序是错误的

 重定向与管道

 

  标准输出 <

 重定向与管道

    tr转换和删除字符

tr[OPTION]…
SET1 [SET2]

选项:

-c–C –complement:取反(除了)

-d–delete:删除所有属于第一字符集的字符

-s  连续的压缩

 重定向与管道

 

使用“<<终止词”命令从键盘把多行重导向给STDIN

直到终止词位置的所有文本都发送给STDIN

有时被称为就地文

 重定向与管道

 

   管道 

管道(使用符号“|”表示)用来连接命令

命令1 | 命令2 | 命令3 | … 

   表示用命令1的输出作为命令2的输入命令2的输出作为命令3的输入

   注意:STDERR默认不能通过管道转发,可利用2>&1 或|& 实现

 重定向与管道

 

将/home 里面的文件打包,但打包的数据不是记录到文件,而是传送到stdout,经过管道后,将tar -cvf-/home 传送给后面的tar -xvf-, 后面的这个-则是取前一个命令的stdout,因此,就不需要使用临时file了

tar -cvf-/home | tar -xvf-

 

命令1 | tee[-a ] 文件名| 命令2

把命令1的STDOUT保存在文件中,做为命令2的输入

-a 追加

使用:

保存不同阶段的输出

复杂管道的故障排除

同时查看和记录输出

重定向与管道

一道很有意思的题目,不用循环,可以用管道

   计算1+2+3+..+99+100的总和

重定向与管道

 

原创文章,作者:m25Chronos,如若转载,请注明出处:http://www.178linux.com/82473

(0)
m25Chronosm25Chronos
上一篇 2017-07-23
下一篇 2017-07-23

相关推荐

  • 8月11日shell编程脚本及课后作业

    shell脚本编程 本章内容 编程基础 脚本基础格式 变量 运算 条件测试 流程控制 函数 数组 高级字符串操作 高级变量 配置用户环境 编程基础 程序:指令+数据    程序编程风格:       过程式:以指令为中心,数据服务于指令   &nbs…

    Linux干货 2016-08-15
  • 配置路由实例

    路由的分类和管理 路由:跨网络通信; 路由分类:     主机路由     网络路由     默认路由 路由管理命令: route 命令是在本地 IP 路由表中显示和修改条目网络命令; 查看:route -n 添加:route add ro…

    Linux干货 2016-09-12
  • 详解Linux下用户和组的配置文件

    本文将介绍Linux下用户和组的概念及相关配置文件,通过本文,能更好的认识/etc/pssswd ,/etc/group,以及UID、GID的概念,最后将通过修改用户配置文件来实现用户和组的管理工作,对Linux的多任务、多用户有一个更清楚的认识。 一、用户(USER) 在LInux上用户的管理工作是通过修改相关的配置文件来实现的,在日常的工作中主要包含对用…

    Linux干货 2016-10-23
  • Linux基础知识(四)-正则表达式grep,egrep

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2016-10-17
  • DNS配置案例 二

    DNS配置案例 二 DNS配置案例 二 1 §·DNS的配置与案例 1 §·测试工具 3 §·主配置文件格式:/etc/named.conf 7 §·缓存名称服务器的配置: 8 §·配置解析一个正向区域 : 以loveme.com域为例: 10 §·配置解析一个反向区域 : 以loveme.com域为例: 15 §·配置从DNS服务器 19 §·问…

    Linux干货 2016-09-26
  • linux的发展史

                  linux的发展史     1  Linux的诞生:    1988年:芬兰赫尔辛基大学迎来一位新生-linus benedict torvalds (后面简称linus)   2 &nbsp…

    Linux干货 2016-10-19