2.2 管道与重定向的再研究

管道的理解

    管道是一种将有血缘关系的两个进程进行数据传递的一种机制。

  1. 管道是一个伪文件,其本质在内核的缓冲区中等待调用;
  2. 由两个文件的fd进行引用,一个是读端(Read),一个是写端(Wirte);
  3. 数据只能用管道的读端流入,在从写段流出;
  4. 数据在管道中是一次性的,一旦被读走,便在管道中消失;
  5. 进程间必须由血缘关系,且双方必须约定好数据格式。

    tee命令用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。使用-a选项可以向文件中重定向时使用追加模式。

    语法:命令 | tee [-a] 文件 | 命令

[root@CentOS7 ~]# ll /data | tee /data/file.txt |less



total 4
-rw-r--r--. 1 root root 0 Apr  3 04:26 file.txt
-rw-r--r--. 1 root root 8 Apr  3 04:21 tee.out

上述命令在管道中的过程大致为


重定向的文件访问与多行重定向

    对于重定向中">out 2>out"的文件访问,以cat命令来实验

[root@CentOS7 data]# cat > std.in
abcd
1234
[root@CentOS7 data]# cat std.in 
abcd
[root@CentOS7 data]# cat std.in 
abcd
1234

    所以">out 2>out"会访问out文件两次,而">out >&2"则只会访问一次out文件。

    <<可以将键盘上多行的数据重定向到stdin,且至访问一次文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值