码迷,mamicode.com
首页 > 其他好文 > 详细

重定向和管道

时间:2016-08-01 23:10:16      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:定向   file   管道   

标准输入和输出: 打开的文件都有一个fd:file description(文件描述符)  标准输入(0  STDIN)默认接受来自键盘的输入   标准输出(1  STDOUT)、标准错误(2  STDERR)的默认设备就是当前窗口     I/O重定向是改变默认位置

STDOUT和STDERR可以被重定向到文件:命令   操作符号   文件名            

支持的操作符号包括: > 把STDOUT重定向到文件   2>把STDERR重定向到文件  &>把所有输出重定向到文件

>文件内容会被覆盖 :set -C禁止将内容覆盖已有文件,但可追加    强制覆盖:>|  set +c允许覆盖

>>在原有内容上,追加内容   

标准输出和错误输出各自定向至不同位置:COMMAND > /path/to/file.out 2> /path/to/error.out

技术分享

合并标准输出和错误输出为同一个数据流进行重定向: &>:覆盖重定向 COMMAND > /path/to/file.out 2> &1

&>>:追加重定向 COMMAND >> /path/to/file.out 2>> &1

技术分享

():合并多个程序的STDOUT  (cal 2007;cal 2008)> all.txt

技术分享

标准输入的重定向:  例如要群发一封邮件 我们会到用命令:mail -s ____  用户名 

我们可以先用nano命令编辑好一封mail的txt文档  然后发邮件的时候 把编辑好的文档重定向给mail命令: mail -s hi guoquan <mail.txt技术分享另一位用户就会收到邮件

多行重定向:使用“<<终止词”命令从键盘把多行重导向给STDIN 直到“终止词”位置把文本发给STDIN

技术分享

tr命令:translate 转换删除字符   tr[OPTION]... SET1 [SET2]  只做显示结果的转换

选项:-c取字符集的补集  -d删除所有属于第一字符集的字符          

-s把重复的字符以单独一个字符表示   -t将第一个字符集对应字符转化成第二个字符集对应字符

例:把小写转换成大写 tr ‘a-z‘ ‘A-Z‘

技术分享

也可以利用重定向完成一些需求

例:技术分享

小练习:

一个linux 用户给root 发邮件,要求邮件标题为”help” ,邮件正文如下:Hello, I am 用户名,the system version is here,please help me to check it ,thanks!

技术分享

管道: | 表示,用来连接命令  命令1|命令2|命令3  只能处理正确结果

|&符号表示 无论对错都处理技术分享

前面所说的发邮件的命令可以用管道来表示:cat mail.txt | mail -s hi guoquan  结果是一样的

管道处理完是不在屏幕上显示的  既想在屏幕显示 还要处理结果 |tee命令可以实现

技术分享

练习: 将当前系统登录用户的信息转换为大写后保存至/tmp/who.out

技术分享

将/root/ 下文件列表,显示成一行,并文件名之间用 空格 隔开

技术分享


重定向和管道

标签:定向   file   管道   

原文地址:http://11863614.blog.51cto.com/11853614/1833154

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!