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

【Linxu学习007】管道和重定向

时间:2016-01-31 17:24:47      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:linux   管道   bash   重定向   

一、管道

    使用管道能够很方便的实现一个程序的输出作为另外一个程序的输入。管道符号为‘|‘,用法:

COMMEND | COMMEND | COMMEND| ......

    示例:

kdyzm@kdyzm:~$ echo "abcdefg" | tr [:lower:] [:upper:]
ABCDEFG
kdyzm@kdyzm:~$ more /etc/passwd | grep ‘kdyzm‘
kdyzm:x:1000:1000:kdyzm,,,:/home/kdyzm:/bin/bash
kdyzm@kdyzm:~$

二、重定向

    在线文档:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07

    1.输入输出描述

英文名称    中文名称    文件描述符
STDIN     标准输入         0
STDOUT    标准输出         1
STDERR    标准错误输出      2

    2.输入重定向

<     :输入重定向(Redirecting Input)
<<    :此处文档(Here-Document)

        (1). 输入重定向

kdyzm@kdyzm:~$ tr [:lower:] [:upper:] < /etc/passwd

        (2). 此处文档

kdyzm@kdyzm:~$ tr [:lower:] [:upper:] << EOF
> nihao
> hello
> world
> EOF
NIHAO
HELLO
WORLD
kdyzm@kdyzm:~$

    3.输出重定向

>        :覆盖输出重定向
>>       :追加输出重定向
&>       :重定向错误输出和标准输出到同一个文件
2>       :错误输出重定向(覆盖)
2>>      :错误输出重定向(追加)
|>       :在设置了set -C的情况下仍然允许使用覆盖输出重定向

    说明:

        默认情况下允许覆盖输出重定向,但是很明显有安全性问题,所以可以使用“开关”进行控制

set -C    :使用输出重定向的时候,如果文件已经存在,则不允许使用覆盖输出重定向(>)
set +C    :关闭上述功能

        如果在设置了set -C的情况下还想要使用覆盖输出重定向,那么使用|>即可。

    4.如何将输出显示在屏幕上的同时保存到文件?

tee

    示例:

tee /tmp/temp.txt


本文出自 “狂盗一枝梅的博客” 博客,请务必保留此出处http://kdyzm.blog.51cto.com/8316029/1740150

【Linxu学习007】管道和重定向

标签:linux   管道   bash   重定向   

原文地址:http://kdyzm.blog.51cto.com/8316029/1740150

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