`
sjk2013
  • 浏览: 2191997 次
文章分类
社区版块
存档分类
最新评论

数据流重定向

 
阅读更多

linux在你登入时,便将默认的标准输入、标准输出、标准错误输出安排成你的终端。I/O重定向就是你通过与终端交互,或者在shell script里设置,重新安排从哪里输入或者输出到哪里。每个程序都应该有标准输入/输出(错误输出)。

重定向的方法大抵有:>、<、<<、管道等

先了解stdin、stdout、stderr。

标准输出(stdout):代码为1,使用>或者>>,是命令执行所回传的正确的信息。
1>:以覆盖的方法将正确的数据输出到指定的文件或者设备上
1>>:以追加的方法将正确的数据输出到指定的文件或者设备上


标准错误输出(stderr):代码为2,使用2>或2>>,是命令执行失败后,所回传的错误信息。
2>:以覆盖的方法将错误的数据输出到指定的文件或者设备上
2>>:以追加的方法将错误的数据输出到指定的文件或者设备上

[root@localhost ~]# cat /etc/crontab /etc/thinksay
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
cat: /etc/thinksay: 没有那个文件或目录
[root@localhost ~]# cat /etc/crontab /etc/thinksay > list_right 2> list_error
[root@localhost ~]# cat list_error
cat: /etc/thinksay: 没有那个文件或目录
[root@localhost ~]# cat list_right
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


标准输入(stdin):代码为0,使用<或<<,是将原本需要由键盘输入的数据改由文件内容来替代。注意,<<代表的是结束输入的意思。

[root@localhost think]# cat > test <<"eof"
> my name is think
> hello world
> eof
[root@localhost think]# cat test
my name is think
hello world


可以把>、<、>>想象成漏斗:数据会从大的一端进入,由小的一端出来

>重定向符在目的文件不存在时,会新建一个。然而,目的文件已存在,它就会被覆盖掉,原本的数据都会丢失。而>>在目的文件不存在时,会新建一个;存在时会追加到文件尾。

管道可以把两个以上执行中的程序链接在一起,第一个程序的标准输出可以变成第二个程序的标准输入。因为,>或者<使用的是临时文件,管道在速度上比临时文件快上10倍。从最原始的数据开始,然后构造一条条管道,一步步地,管道中的每个阶段都会让数据更接近要的结果。请记得,构造管道时,应该试着让每个阶段的数据量变得更少。

[root@localhost think]# cat > test01 << "eof"
> 1 2 5
> eof
[root@localhost think]# tr -d 2 < test01 | sort > test02
[root@localhost think]# cat test02
1  5


有个特殊文件,便是大家耳熟能详的”位桶“--/dev/null。重定向到此文件的数据都会被系统丢掉。

最后介绍一下,什么时候重定向?

运用场景:
1)屏幕输出信息很重要,而且我们需要将其存下时
2)后台执行中的程序,不希望它打搅屏幕正常的输出结果时
3)一些系统的例行工作,希望它可以存下来时
4)一些执行命令的可能已知错误信息,想以“2> /dev/null"将其丢弃时
5)错误信息与正确信息需要分别执行时

分享到:
评论

相关推荐

    dearxuany#Sharon_Technology_learning_note#shell 特殊字符、数据流重定向1.MD

    ~ 使用者家目录(文件名没事不要用这符号)$ 取用变量前导符& 命令后台工作/ 目录符号&gt; 数据流导向,输出,“替换”&gt;&gt; 数据流导向,输出,“累加”数据流

    C++实验:输入输出流

    内容1:标准输入输出流重定向 (1) 新建一个工程demo1,设计一个类Time,成员变量为时(h)、分(m)、秒(s)。 (2) 分别为类Time重载提取运算符(&gt;&gt;)和插入运算符(&gt;&gt;)。 a. 输入格式:14 30 15 b. 输出格式:14.5042 (3) ...

    Python使用pandas处理CSV文件的实例讲解

    我用到的是自己用其他硬件工具抓取得数据,硬件环境是在Linux平台上搭建的,当时数据是在运行脚本后直接输出在terminal里的,数据量十分庞大,为了保存获得的数据,在Linux下使用了数据流重定向,把数据全部保存到了...

    python套接字流重定向实例汇总

    套接字是一种具有之前所说的“通信端点”概念的计算网络数据结构。相当于电话插口,没它无法通信,这个比喻非常形象。今天我们就来汇总一下套接字流重定向的实例

    c++实验08答案

    西工大杨帆老师c++上机实验课lab08答案

    HttpAnalyzerFull_V6 6.5版本(内含注册码)

    款实时分析 HTTP/HTTPS 数据流的工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、清理对话内容、HTTP...

    抓包工具HttpAnalyzerFull_V7.6.4.rar

    这是一款实时分析 HTTP/HTTPS 数据流的工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、清理对话内容、...

    HttpAnalyzerFull_V7最新版_内有注册码.zip

    HTTP Analyzer 为一款实时分析 HTTP/HTTPS 数据流的网络抓包工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区...

    [强烈推荐]HTTP/HTTPS抓包工具 HTTP Analyzer 5.1.1 破解版

    HTTP Analyzer 为一款实时分析 HTTP/HTTPS 数据流的工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、...

    Linux服务器配置与管理:输入输出与管道符号.pptx

    重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。 重定向操作符本身不是一条命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号, “&gt;”、“&gt;&gt;”称为输出重定向操作符, “&lt;”、“”称为...

    Http Analyzer Full V 7.0(最新版本含注册机)

    一款实时分析 HTTP/HTTPS 数据流的工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、清理对话内容、HTTP...

    Java中重定向输出流实现用文件记录程序日志

    主要介绍了Java中重定向输出流实现用文件记录程序日志,本文直接给出代码实例,并对代码做了详细注解,需要的朋友可以参考下

    StreamingServer:创建 lightstreamer 的订阅,然后将 lightstreamer 数据重定向到套接字服务器客户端

    流媒体服务器 创建 lightstreamer 的订阅,然后将 lightstreamer 数据重定向到套接字服务器客户端。 此应用程序中使用了 CityIndex 流媒体功能: ://docs.labs.cityindex.com/index.html

    HTTP Analyzer Full V7.0.2.431 英文特别版

    HTTP Analyzer 为一款实时分析 HTTP/HTTPS 数据流的网络抓包工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区...

    HTTP Analyzer Full Edition v7.5

    HTTP Analyzer Full Edition 为一款实时分析 HTTP/HTTPS 数据流的工具。 它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息 (包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址), 可以...

    论文研究-一种混合型蜜罐的研究与分析.pdf

    诱骗系统以弱化系统的方式动态配置高交互的蜜罐来引诱入侵者,再利用重定向技术将入侵数据流引向高伪装的服务系统中,同时部署蜜网网关进行数据控制和数据捕获。通过对相关技术指标的分析可知,该模型整体上具有较高...

    HTTP Analyzer Full Edition v7.5.3.455.zip

    这是一款实时分析 HTTP/HTTPS 数据流的工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的url地址),可以提供缓冲区信息、清理对话内容、...

    shell脚本编程基础(二)

    如果输出文件已经存在了,重定向操作符会用新的文件数据覆盖已有文件。 不想覆盖文件原有内容,而是想要将命令的输出追加到已有文件中,可以用双大于号( &gt;&gt;)来追加数据。 输入重定向 输入重定向将文件的内容重定向...

    HttpAnalyzerStdV7 Build:7.0.2.431 正式注册版

    HTTP Analyzer 为一款实时分析 HTTP/HTTPS 数据流的网络抓包工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区...

    Linux高性能服务器编程清晰PDF+源码

    3.7 TCP成块数据流 3.8 带外数据 3.9 TCP超时重传 3.10 拥塞控制 3.10.1 拥塞控制概述 3.10.2 慢启动和拥塞避免 3.10.3 快速重传和快速恢复 第4章 TCPIP通信案例:访问Internet上的Web服务器 4.1 ...

Global site tag (gtag.js) - Google Analytics