重定向与管道

 

   本次内容

   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 17:45
下一篇 2017-07-23 18:02

相关推荐

  • N21沉舟13周作业

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;   3)添加s…

    Linux干货 2016-10-24
  • LVS实现

    一 LVS-NAT实验前的准备 操作系统:CentOS 6.7 64位 配置防火墙,iptables –F 清理防火墙规则或者关闭iptables 关闭SELINUX, setenforce 0  #立即生效(实际是宽容模式) Director ip:172.16.2.1  VIP:192.168.1.8 RS1 ip:172.16.2.…

    Linux干货 2016-12-29
  • 磁盘管理

    上图sda disk information中对 255 heads,63 sectors/track,1958 cylinders的解析: sda磁盘总共有1958个cylinder(柱面),每个cylinder(柱面)有63个sectors(扇区),每个sectors(扇区)有255个heads(磁头) 那么这块sda的总的磁头数量为:255*63*19…

    2017-08-20
  • python装饰器

    装饰器本质是一个装饰器函数,在不改变一个函数的函数体本身的情况下,实现函数体本身外其他的功能 1.实现一个装饰器 def  logger(fn):                         #装饰器函数必须只能传入一个参数,那就是被装饰函数     print(‘in’)     def wrapper(*args,**kwar…

    Linux干货 2017-10-23
  • 优云老王(四)干货总结:数据带来的奇妙世界

    作为产品经理的我们,不仅仅需要业务敏感的直觉,还需要数据驱动我们的产品不断创新!关于如何看数据,我列了主要的四个场景。 场景一:看页面点击,了解用户关注什么,卡在哪里 给谁看:产品经理和交互设计师 看什么: 由于我们对Web应用的所有界面,可交互元素都做了埋点,那么我们就可以看用户在页面里都做了哪些点击动作。首先是整个页面的横向比较,每个页面本身的操作数(重…

    2016-09-19
  • 搭建博客程序wordpress

    根据需求安装相关软件,搭建实验环境: #CentOS 6:Httpd,PHP,mysql-server,php-mysql #CentOS 7:Httpd,php,php-mysql mariadb-server 下载wordpress程序,并解压至/var/www/html/目录下 [root@centos077 html]# pwd /var/www/h…

    2017-04-28