重定向与管道

 

   本次内容

   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

相关推荐

  • 处理交换文件和分区

    处理交换文件和分区 交换分区是系统RAM的补充   基本设置包括:  1 创建交换分区或者文件  2 使用mkswap写入特殊签名  3 在/etc/fstab文件中添加适当的条目  4 使用swapon -a 激活交换空间 挂载交换分区  启用:swapon swapon [OPTION]……

    Linux干货 2016-09-01
  • 自己做一个CA

    构建CA服务器    CA配置文件位置:        /etc/pki/tls/openssl.cfg           &n…

    Linux干货 2017-04-11
  • 计算机的发展及组成

    计算机发展 计算机(Computer):俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。 1946年,世界上诞生了第一台计算机,用于军事,计算弹道。 1946年数学家冯.诺依曼提出冯诺依曼体系结构,即所有计算机由运算器、控制器、存储器、输入设备、输出设备组成,所有遵循冯.诺依曼…

    Linux干货 2017-07-13
  • 第二十一周作业

    1、回顾并详细总结MySQL的存储引擎、索引; 常用存储引擎的对比: 特点 MyISAM InnoDB MEMORY MERGE NDB 存储限制 有 64TB 有 没有 有 事务安全 支持 锁机制 表锁 行锁 表锁 表锁 行锁 B树索引 支持 支持 支持 支持 支持 哈希索引 支持 全文索引 支持 集群索引 支持 数据缓存 支持 支持 支持 索引缓存 支持…

    2017-07-19
  • 2018/8/3作业

    问题: 在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。 groupadd g1         &…

    Linux干货 2016-08-05
  • 第二周相关习题。

    习题 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。 [root@localhost /]# ls -d /var/l*[0-9]*[[:lower:]] 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。 [root@localhost&n…

    Linux干货 2016-11-05