Linxu学习007管道和重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linxu学习007管道和重定向相关的知识,希望对你有一定的参考价值。

一、管道

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

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

    示例:

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

二、重定向

    在线文档: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). 输入重定向

[email protected]:~$ tr [:lower:] [:upper:] < /etc/passwd

        (2). 此处文档

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

    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管道和重定向的主要内容,如果未能解决你的问题,请参考以下文章

管道和重定向

4. Linux中的管道和重定向

Shell 脚本 - 管道和重定向

linux中的管道和重定向

4.3管道和重定向

Linux学习之管道符和重定向详解