文档章节

小蚂蚁学习Linux(10)——Linux输出重定向和输入重定向

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2015/11/05 18:02
字数 922
阅读 127
收藏 8
点赞 0
评论 2

说起输出重定向,先了解一下什么是标准的输入输出设备:

    设备                                    文件名                        文件描述符                            类型

    键盘                                    /dev/stdin                        0                                    标准输入

    显示器                                /dev/sdout                        1                                    标准输出

    显示器                                /dev/sdterr                        2                                    标准错误输出

    虽然在现代输入设备还有什么鼠标,游戏手柄什么的,输出设备还有什么投影仪了打印机了,但是在最早期就是一个键盘一个显示器走天下。


输出重定向

    >    大于号,把本来应该输出到屏幕上的内容显示在文件中,相当于保留了日志(就是这么一个意思)

    例如:    ls    >    test.log    把当前目录下的内容保存在test.log之中。但是这种方式只能是覆盖,只能看到最后一次重定向的内容。

    >>    双大于号,同样是把本来应该输出到屏幕上的内容显示在文件中,但是,这种方式是以追加的方式写入,之前的日志内容还保留,很显然,这种方式要比覆盖好的多。

    但是,有个问题,在命令执行成功的时候,它确实能把内容重定向到test.log,但是当命令不存在或者命令出错的时候,重定向就失效了,怎么把命令出错的信息重定向下来呢?

    2>    可以将错误信息重定向到日志文件,同样的,一个大于号是覆盖的意思。

    例如:    sldfo(随便写的一个命令)    2>test.log    注意:错误信息重定向的时候大于号前后不要加空格。

    2>>    同上,但是两个大于号是追加的意思。

    例如:    sldjfs    2>>test.log    同样的,大于号前后不要加空格


    其实,这两种写法都有一个弊端,不带2的重定向只能执行成功的命令,而带着2的重定向只能执行失败的命令,这使用起来就显得很纠结了,很不爽    (‧‧)nnn     要想爽一下,推荐使用以下命令:

    &>    不管命令是否能够正确执行,都会把输出的信息重定向到同一个文件中,当然,老惯例,这是覆盖。

    例如:  ls    &>    test.log

    &>>    同样的,这是追加。这样使用起来就爽快多了,正确的有正确的信息,错误的有错误的信息,多省心    ╰( ̄▽ ̄)╭   

    以上两种方法是推荐的写法,其实还有两个方法跟上面两个方法是一样的效果,有点啰嗦,知道就行:

    命令    >    文件    2>&1    以覆盖的方式,把正确输出和错误输出都保存到同一个文件中去。功能上完全等于    &>。

    命令    >>    文件    2>&1   以追加的方式……    功能上完全等同于    &>>

    注意的一点:无论哪一个错误输出命令,大于号前后都必要加空格。

    对了,还有一个使用方法

    命令    >>    文件1    2>>文件2        把正确的输出追加到文件1中,把错误的输出追加到文件2中,这个感觉就更加清晰明了了。


输入重定向

    和 > 正好相反,输入重定向用的是小于号 <    。可以使用wc命令测试一下。

    wc    【选项】    【文件名】

    选项    -c    统计字节数    -w    统计单词数    -l    统计行数

    例如:    wc    <    test.log    就回显示出字节数、单词数、行数。

    输入重定向不常用,了解一下。

学PHP的小蚂蚁 原创博客 http://my.oschina.net/woshixiaomayi/blog



© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 137
博文 161
码字总数 100864
作品 0
郑州
程序员
加载中

评论(2)

嗜学如命的小蚂蚁
嗜学如命的小蚂蚁

引用来自“单行道”的评论

学习
一起加油
单行道
单行道
学习
Linux技术学习:Io重定向 Redirection 详解

文件描述符在bash中比较少用,从0开始用户表示进行的数据流,0表示标准输入,1表示标准输出,2表示标注错误输出,其他从3开始。最为常用的场景是将错误消息输出到某个文件,可以加上2>file到...

长沙千锋
05/03
0
0
linux shell数据重定向(输入重定向与输出重定向)详细分析

导读小文:【http://www.ibm.com/developerworks/cn/linux/l-iotips/】 技巧:Linux I/O重定向的一些小技巧 简介: Linux I/O 重定向虽然很简单,但在脚本编写、系统管理时却要常常打交道,搞...

无明时空
2013/03/06
0
0
Linux通配符与特殊符号知识大全汇总

内容来源《跟老男孩学习Linux运维:核心基础实战》,预计于2018年7月出版,敬请期待,QQ群385168604交流。 Linux菜鸟及新手的福音,相当于是鸟哥私房菜(太老旧了)的2018最新企业级实战升级版...

老男孩oldboy
05/10
0
0
Linux下文件的打包、解压缩指令——tar,gzip,bzip2

Linux下文件的打包、解压缩指令——tar,gzip,bzip2   本文是对 鸟叔的Linux私房菜(基础学习篇) 第三版 的学习笔记,原文可参考原书中文网站 鸟叔的Linux私房菜。更多详细信息可直接参考对...

xiaocao13140
05/28
0
0
8.1 shell介绍 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向

8.1 shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,他只是系统的一个工具。在shell和计算机硬件之间还有一层东西——系统内核。用户直接面对的不是计算机硬件而是shell,用户把指...

oschina130111
06/29
0
0
管道输出到read中遇到的问题

管道输出到read命令中, 使用管道echo输出来设置变量将会失败. 然而, 使用管道cat输出看起来能够正常运行. cat file1 file2 | while read line 2 .while被放置在子shell中。 #!/bin/sh readpi...

fly_xiang
2014/11/12
0
0
linux重定向及nohup不输出的方法

linux重定向及nohup不输出的方法 先说一下linux重定向: 0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。 在一般使用时,默认的是标准输出...

aduan
2015/09/25
0
0
Linux究竟要学习哪些东西?

很多人想学习Linux,寻找linux基础学习线路,但是不知道从哪里着手。这里我为大家准备了Linux基础需要学习的一些东西,供大家借鉴使用,详细请参考下面给出的9点建议。Linux程序工程师非常吃...

小杰java
2017/10/23
0
0
I/O重定向和管道——《Unix/Linux编程实践教程》读书笔记(第10章)

1、I/O重定向的概念与原因 及 标准输入、输出的标准错误的定义 所以的Unix I/O重定向都基于标准数据流的原理。三个数据了分别如下: 1)标准输入——需要处理的数据流 2)标准输出——结果数...

木子叶
2014/08/06
0
0
树莓派学习笔记——Restful服务 采用slim php apache

0.前言 前些时间沉迷于Restful,采用PHP+Slim+MySQL实现了一些简单的API函数。但是这些工作都是在windows中实现(采用wamp server集成安装包),但是转到linux中还确实有些不一样,下面就使用...

thinkyoung
2014/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

面试感想(一)

最近跟北京的同事朋友聊天,深深的发现自己的技术已经和主流技术脱轨了,目前公司求稳为主,使用的技术略有些过时,因此萌生出了换工作的念头,正值三伏天,可以说真是顶着一颗偌大的决心去参加面试...

勤奋的蚂蚁
2分钟前
0
0
Kafka设计解析(一)- Kafka背景及架构介绍

原创文章,转载请务必将下面这段话置于文章开头处。(已授权InfoQ中文站发布) 本文转发自技术世界,原文链接 http://www.jasongj.com/2015/03/10/KafkaColumn1 摘要   Kafka是由LinkedI...

mskk
11分钟前
0
0
使用Service Mesh整合您的微服务架构

在微服务架构的世界中,它正在达到这样的程度,即管理系统的复杂性对于利用它带来的好处变得至关重要。 目前,如何实现这些微服务不再是一个问题,因为有很多可用的框架(Spring Boot,Vert....

xiaomin0322
14分钟前
0
0
看看 LinkedList Java 9

终于迎来了 LinkedList 类,实现的接口就有点多了 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>。LinkedList是一个实现了List接口和Deque接口的双端链......

woshixin
33分钟前
0
0
算法 - 冒泡排序 C++

大家好,我是ChungZH。今天我给大家讲一下最基础的排序算法:冒泡排序(BubbleSort)。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大(可以相反),就交换他们两个。 对每...

ChungZH
36分钟前
0
0
jquery ajax request payload和fromData请求方式

请求头的不同 fromData var data = { name : 'yiifaa'};// 提交数据$.ajax('app/', { method:'POST', // 将数据编码为表单模式 contentType:'application/x-ww...

lsy999
38分钟前
0
0
阿里P7架构师,带你点亮程序员蜕变之路

前言: Java是现阶段中国互联网公司中,覆盖度最广的研发语言。 掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,成为Java架...

Java大蜗牛
39分钟前
1
0
Ecstore 在没有后台管理界面(维护)的情况如何更新表的字段

window 系统: 切换到:app\base 目录下: C:\Users\qimh>d: D:\>cd D:\WWW\huaqh\app\base 执行:D:\WWW\huaqh\app\base>cmd update linux 系统: 1># cd /alidata/www.novoeshop.com/app/......

qimh
44分钟前
0
0
设计模式-策略模式

策略模式 解释 对工厂模式的再次封装,使用参数控制上下文信息(将工厂返回的实例赋值给context field) 不会返回bean实例,只是设置对应的条件 调用context的方法(调用field的方法) 用户只...

郭里奥
47分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部