管道及重定向

管道及重定向

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

相关推荐

  • 揭开链接文件的面纱——从根本上剖析硬链接与软链接异同

    在linux的学习过程中,链接文件的学习让不少人头疼,很多同学往往分不清什么是硬链接,什么是软链接,对于两者的概念和区别常常容易混淆、搞不清楚。今天我们就从原理、从根本上为大家辨析一些两者之间的区别,相信大家在看完这篇文章之后对链接文件会有一个清晰正确的认识。 1、在实现原理上不同 硬链接,涉及到文件的底层模式,因此被称为硬链接文件。硬链接文件只是一个指针指…

    Linux干货 2016-10-20
  • linux系统上的特殊权限SUID,SGID,STICKY

    特殊权限:SUID SGID STICKY     linux的安全上下文:     1.进程以用户的身份运行,进程是发起此用户的代理,因此以此用户的身份和权限完成所有的操作。     2.权限匹配模型:     1)判断进程的属主,是否以被访问的文件属主。如果是,则应用属主权限…

    Linux干货 2016-08-05
  • 文件查找和压缩

    文件查找     在文件系统上查找符合条件的文件;       文件查找:locate, find        非实时查找( 数据库查找) :locate        实时查找:find locate &n…

    Linux干货 2016-08-18
  • Shell脚本编程 流程控制—选择

    流程控制可根据不同的情况做不同的处理,而且可重复执行指定的程序区域,在shell bash中流程控制可分为两大类: "选择"和"循环" 1.选择:if、case、select 2.循环:for、while、until、select 命令结束状态返回值: 在shell中命令执行状态返回值分两种,成功和失败,0表示成功,非…

    Linux干货 2016-08-24
  • 初学Linux之程序进程管理工具汇总

    pstree, ps, pidof, pgrep, top, htop, glances, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup 

    2017-12-16
  • 马哥教育网络班22期+第1周课程练习

    1.描述计算机的组成及其功能。    组成:CPU (运算器+控制器),存诸器(内存与硬盘),输入设备,输出设备。    运算器:对数据进行加工处理的部件(包括算述运算与逻辑运算)。    控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各部件协调的,一步步的完成各种操作。   …

    Linux干货 2016-08-22