linux输出管道到2,linux 输入输出重定向以及管道

输入/输出重定向,管道

1、标准输入:/dev/stdin(键盘),                 描述符号是0

2、标准输出:/dev/stdout(屏幕),                描述符号是1

3、错误输出:/dev/stderr(错误消息输出到屏幕上),描述符号是2

COMMAND_OUTPUT > OUTPUT_FILENAME

#重定向stdout到一个文件

#如果没有这个文件就创建一个,否则就覆盖原文件里面的内容

:> OUTPUTFILENAME

#如果文件没有,就创建一个0长度的文件(==touch)

#:是一个占位符,不产生任何输出

#>会把文件“FILENAME”截断为0长度

> FILENAME

#>会把文件“FILENAME”截断为0长度

#如果文件没有,就创建一个0长度的文件(==touch)

#(与上面的“:>”效果相同,但是在某些shell下可能不能工作)

如图所示

2d70d25692d4a545138cfb1a56ffb89f.png

COMMAND [options] > file.list

#创建一个包含目录树列表的文件

如图所示:

17569db22cdfe5b49a2cfbdd38141560.png

COMMAND_OUTPUT >> OUTPUT_FILENAME

#重定向stdout到一个文件

#如果没有这个文件就创建一个,否则就追加到文件后边

如图所示:

3ddde412dd52db2f75fadeb183ffa774.png

1>filename

#重定向stdout到文件filename中

1>>filename

#重定向并且追加stadout到文件filename中

如图所示

b654257d28c788a75964abc475831d14.png

2>filaname

#重定向stderr到文件filename中

2>>filename

#重定向并且追加staderr到文件filename中

如图所示

b94671cfd02a1b4b13a564cd22a82d28.png

&>filename

#把stdout和stderr都重定向到文件filename中

如图所示

d4760ce8573d65df4d7560095a28ec6a.png

2>&1

#重定向stderr到stdout

#得到的错误的消息与stdout一样,发送到一个地方

如图所示:

2f3b32620bb0479bbb8ee511d3156833.png

i>&j

#重定向文件描述符i到j中

#指向i文件的所有的输出都发送到j中去

>&j

#默认的重定向文件描述符1

#所有传递到stdout的传输都送到j中去

0

>filename

#从文件中接受输入

#与“>”是成对命令

#eg:grep "mota" < filename

[j]<>filename

#为了读写filename,把文件filename打开,并分配文件描述符“j”给他

#如果文件filename不存在,就创建他

#如果文件描述符“j”没指定,默认是fd 0,stdin。

#这种应用通常是为了写到一个文件指定的地方

下面看一个脚本:

dd3fcaf164a7358c4505e7e6abf83c0c.png这个实验

就是在指定的字符串的指定位置添加一个指定的符号,实验结果如下图所示

ab1542b6dd74a7a85fb3c97b1270adbb.png

关闭文件描述符

n

0

n>&-         关闭输出文件描述符n

1>&- 或>&-   关闭stdout

自定义输出重定向:

自定义重定向符号:>&

exec 3~9 filename  #定义n为自定义的重定向文件

COMMAND >&3        #输出到自定义重定向文件中

exec 3>&-          #撤销自定义

管道:用于连接多个命令,把前一个命令的输出结果当作第二个命令的输入结果

COMMAND1 | COMMAND2 | COMMAND3

eg: echo "123456" | passwd --stdin user

e6c4d57914dd3f06e5cad079c674fa4d.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值