重定向与管道

 

   本次内容

   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

相关推荐

  • linux进程管理

    进程概念 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、 安全功能等 Process:  运行中的程序的一个 副本,是被 载入内存的一个指令集合     进程ID (Process ID,PID)号码被用来标记各个进程  &…

    Linux干货 2016-09-12
  • shell脚本实现MD5破解的相关小计

    分享编写shell脚本暴力破解md5的方法 方法一 单个破解法(以10位数为例) #!/bin/bash read -p “please input strings:”string for n in {0..33000} do Md5=`echo $n |md5sum|cut -c 1-10`      …

    Linux干货 2017-03-26
  • keepalived+varnish+haproxy+LNAMP

      nfs: 192.168.1.40 rp1: 192.168.1.41 rp2: 192.168.1.42 mariadb: 192.168.1.43 web1: 192.168.1.110 web2: 192.168.1.111 app1: 192.168.1.112 app2: 192.168.1.113 实验效果:用keepalived高…

    2018-02-18
  • 基于Redis的开源分布式服务Codis

    Redis在豌豆荚的使用历程——单实例==》多实例,业务代码中做sharding==》单个Twemproxy==》多个Twemproxy==》Codis,豌豆荚自己开发的分布式Redis服务。在大规模的Redis使用过程中,他们发现Redis受限于多个方面:单机内存有限、带宽压力、单点问题、不能动态扩容以及磁盘损坏时的数据抢救。 Redis通常有3个使用途径…

    Linux干货 2015-02-25
  • 第一周作业

    计算机的组成以CPU/存储/IO设备 硬件层次 CPU以完成运算和控制 存储包含 I/O设备为连接计算机的多样性输入输出设备(包含打印机/显示器等) 软件层次 以机器语言为基础,到符合使用的应用程序, Linux的发行版本 RedHat(商业组织维护版本,有enterprise version)-CentOS-主要以此为主 Debian(community)…

    Linux干货 2016-12-04
  • PS进程命令常用选项参数详解

    PS命令是什么 ps命令能够给出当前系统中进程的快照。它能捕获系统在某一时间的进程状态。如果想要不断更新查看这个状态,可以配合watch命令或使用top命令。ps命令支持三种使用的语法格式 UNIX 风格:选项可以组合在一起,并且选项前必须有”-“连字符。 BSD 风格 :选项可以组合在一起,但是选项前不能有”-&#822…

    2017-07-09