管道及重定向

管道及重定向

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
下一篇 2017-07-28

相关推荐

  • cat命令了解

    1 查看文件在LINUX下一切皆文件,光看见文件名和目录名对我们来说,还远远不够。今天,就来介绍一下可以打开文件的命令cat。当然,二进制的可执行文件,不能用cat。在CentOS7下,以/etc/profile文件为例,如下: 首先,怎么打开这个文件呢?直接执行:cat /etc/passwd. 这么多行,能不能看见行号呢?cat -n /etc/pass…

    Linux干货 2017-04-03
  • N26 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost ~]# cat /boot/grub/grub.conf | grep "^[[:space:]]" 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后…

    Linux干货 2017-01-26
  • 马哥linux0803课堂笔记

    课堂笔记   重定向的几种方式 标准输入 0 (stdin) 标准输出 1 (stdout) 标准错误 2 (stderr)   标准输入的重定向方法 cat < file cat << string (多行重定向) xxx aaa string结束 cat file | cat   标准输出的重定向 ls e…

    Linux干货 2016-08-08
  • Linux初探

    1.计算机组成: CPU:运算器(指令集)、控制器、寄存器、缓存; 存储器:内存,RAM; Input:下指令,提供数据; Ouput:输出数据加工的结果 一般来说,从磁盘中读取程序和数据放到内存中排队,由cpu从内存中读取执行。由于cpu处理速度远大于磁盘的I/O速度,因此引入缓存。在计算机中有缓存为王这个说法。 2.操作系统的背景: 1.统一规范 2.由…

    Linux干货 2016-10-30
  • iptables实验1

    Iptables 实验1 基于状态放行telnet, ftp, ssh, http, samba, icmp等服务; (1) 对本机的ping请求每分钟不得超出20个; (2) 每客户端对本机的ssh的并发连接数不得超过3个; (3) 本机的telnet服务仅允许工作时间内访问; 本机IP地址192.168.42.113 下面我们先放行所有入站状态为ESTA…

    Linux干货 2016-10-24
  • shell脚本之数组

    认识数组:    变量是存储单个元素的内存空间,而数组就是多个变量的合集,是一串连续的空间,但是,整个数组只能有一个名字。    数组内的数据都有指定的索引,以找到数组内指定的数据。索引的编号是从0开始,依次递增(0,1,2,3…),属于数值索引。索引也支持自定义的格式,而不仅是数值格式的索引,即为关联索引…

    Linux干货 2016-08-26