管道及重定向

管道及重定向

1、重定向

在Linux中有时我们在命令的执行过程中,不想将执行结果显示到屏幕上,或者将其结果输出到其他位置
这时就需要重定向来解决这个问题了
首先了解一下Linux中的3种I/O设备:
0:标准输入
1:标准输出
2:标准错误输出
输出重定向:>  >>  输入重定向: <  <<
>:将标准输出重定向到文件 
echo "Hello" > /app/test.tab
2>:将标准错误输出重定向到文件
ls /etc /error > /app/test.tab 2> /app/error.tab
&>:将所有输出重定向到文件
ls /etc /error &> /app/test.tab 
>>:将标准输出追加重定向到文件
2>>:将标准错误输出追加到文件
&>>:将所有标准输出追加到文件

<:标准输入重定向(单行重定向)
<<:(多行重定向)
eg:有些命令能够通过输入重定向接受来自文件的输入
wc -l < /etc/motd 统计motd文件的行数
mail -s "help" root << eof  此命令是给root用户发送一个邮件,其中指定多行重定向的终止符eof(也可是其它)来
                            指定退出时的终止符
>please help me
>thanks
>eof

2、管道

符号 "|" ,用来连接命令
CMD1 | CMD2 | CMD3 | …    
(1)将CMD1的标准输出传给CMD2,CMD2的标准输出输出再发给CMD3
(2)默认情况下标准错误输出不能通过管道转发,通过2>&1或|&来实现
eg: [root@Centos6 ~]#cat /etc/issue /error 2>&1 | sort
    cat: /error: No such file or directory
    CentOS release 6.9 (Final)
    Kernel \r on an \m
(3)最后一个命令会在当前shell进程的子shell进程中执行

3、”-“符号

在管道中"-"可以用来代替之前命令标准输出
eg: tar -cvf - /app | tar -xvf -   将/app下的文件打包,打包后不记录到文件里,而是传到标准输出在经管道传给后面的
                                   解包命令

4、tee 命令 重定向到多个目标

有时我们在使用管道时需要将不同阶段的数据输出到屏幕上,而还要将数据向下传递,我们就需要用到tee命令
eg: [root@Centos6 ~]#ls | tee | tr "a-z" "A-Z"

原创文章,作者:M25_ymd,如若转载,请注明出处:http://www.178linux.com/82651

(0)
M25_ymdM25_ymd
上一篇 2017-07-27 21:17
下一篇 2017-07-28 10:26

相关推荐

  • 携程全站瘫痪引发的思考

       为今年5月冠上多事之夏的名头已是无可厚非的一件事,自支付宝光纤被挖断后,携程又暴出全站瘫痪的风波,从5/28 11:00开始,直到晚上11:29分才全面恢复.互联网也是谣言四起,纷纷猜测百度腾讯谁会是下一个灾难的受害者。暂切抛开这些玩笑言论,就携程本次事情引发的思考太多,前车之鉴后事之师,如果携程的事情发生到我们身上,我们该怎么办,…

    Linux干货 2015-06-03
  • 系统管理之作业管理与计划任务

    作业管理: Linux的作业控制(job )     前台作业:通过终端启动,且启动后一直占据终端;     后台作业:可通过终端启动,但启动后即转入后台运行(释放终端) 如何让作业运行于后台?     (1) 运行中的…

    Linux干货 2016-09-13
  • GOPS 2016全球运维大会 • 北京站

    GOPS 2016全球运维大会 • 北京站已经圆满落幕,最新GOPS大会推荐:GOPS2017全球运维大会 • 深圳站 基本信息: GOPS2017全球运维大会 • 深圳站 时间:2017-04-21 08:00:00 至 2017-04-22 18:00:00结束 地点:深圳    会议规模:5000人 会议详情:http://www.…

    Linux干货 2016-11-03
  • 软连接与硬连接

    硬链接定义 新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用. 硬链接(hard link) ln   UNIX文件系统提供了一种将不同文件链接至同一个文件的机制,称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系统只存在一个文件的副本。系统简单地通过在目录中建立一个新的登记项来实现这种连接。该登记项…

    Linux干货 2017-07-22
  • SHELL网络爬虫实例剖析

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1552472        前天简单分享了用 shell 写网络爬虫的一些见解,今天特地把代码发出来与51博…

    Linux干货 2016-08-15
  • JoSQL内存数据库远程代码执行漏洞(含EXP)

    JoSQL全称SQL for Java Objects,提供了应用SQL语句的Java对象的集合的能力开发,JoSQL提供了搜索,排序,group等对Java对象的集合进行类似SQL的查询应该应用的功能。 例如,查找所有在2004年内修改过的html文件: SELECT * FROM   java.io.File WH…

    Linux干货 2015-03-06