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

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

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

键盘                                    /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

时间: 2024-12-19 07:21:20

小蚂蚁学习Linux(10)——Linux输出重定向和输入重定向的相关文章

linux shell数据重定向(输入重定向与输出重定向)详细分析(转载)

本文为转载 原文链接 http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会

RDP协议集、音频输出、音频输入重定向虚拟通道

一.RDP协议集及子协议之间如何交互 由于目前Windows Server的版本已经进入到了2016版,因此在本文中,终端服务一律称为其最新名称:远程桌面服务(RDS). 以下组件对于了解远程桌面服务协议至关重要: RDP客户端:支持远程桌面服务协议的客户端称为RDP客户端,因为客户端安装了支持远程处理的软件组件.使用此RDP客户端,用户连接到RD会话主机服务器以登录到远程桌面计算机或远程应用程序. 远程桌面会话主机(RD会话主机):RDP客户端与之通信的服务器称为远程桌面会话主机(RD会话主机

输出重定向与输入重定向

三种工作中最长用到的输出重定向方法: 以ls /home 为例:(下面的两种方法都是把正确的输出结果和错误的输出结果都保存到abc.log文件中) ① ls /home >> abc.log 2>&1 ② ls /home &>> abc.log 还有一种就是充当垃圾回收站的输出方法: ls /home >> /dev/null 输入重定向: wc -l 显示行数 -w 显示多少英文单字 -c 统计字节数 使用方法很简单,自己试着在终端敲一下就会了

Linux学习笔记10——管道和重定义

计算机的组成有:运算器,控制器,存储器,输入输出设备.于是就有了地址总线,数据总线,控制总线.事实上在机器里面总线是复用的,一个总线三种功能.地址总线:内存寻址数据总线:传输数据控制总结:控制指令 寄存器:CPU暂时存储器 程序在运行时要从输入设备获取指令,通过输出设备输出作为人机交互.那么系统在什么地方获取输入输出键盘鼠标硬盘还是哪里?那么系统就需要设定默认的输入输出. 系统设定 默认输出设备:标准输出,STDOUT, 1(1为描述符号) 默认输入设备:标准输入, STDIN, 0 标准错误输

[鸟哥linux视频教程整理]04_03_Linux 管理及IO重定向

一.计算机的几大部件: 运算器.控制器:CPU 存储器:RAM 输入/输出设备: 程序:指令和数据组成 整个计算过程由运算器来完成 控制器:读取指令,并在指令的控制下去读取要进行的运算,包括数据和要执行                    的计算.因此控制器控制着运算器到哪去取数据,然后由运算器做运                    算,运算的结果由控制器的控制下输出到存储器当中去. 运算器: 存储器: 地址总线:内存寻址 数据总线:传输数据 控制总线:控制指令 寄存器:CPU暂时存储器

Linux运维学习历程-第六天-Linux重定向和管道

本章内容我们将学习linux中的重定向和管道两大用法 I/O输入与输出设备 重定向 管道 tee命令与tr命令 一.I/O设备 1.什么是I/O设备 管理和控制计算机的所有输入/输出(I/O)设备是操作系统的主要功能之一,主要分为字符设备和块设备.一般由机械和电子两个部分组成. 功能介绍 输入/输出(Input /Output ,简称I/O),指的是一切操作.程序或设备与计算机之间发生的数据传输过程. 输入/输出系统(Input/Output System) ,指控制计算机数据流动的体制,包括程

Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)

1. 输出重定向 最基本的重定向是将命令的输出发送到一个文件中.在bash shell中用大于号(>) ,格式如下:command > inputfile.例如:将date命令的输出内容,保存到指定的输出文件中. 如果文件已存在,重定向操作符会用新的文件数据覆盖已有文件.这种情况下可以用双大于号(>>) 来追加数据.如下图所示: 2. 输入重定向 输入重定向和输出重定向正好相反.输入重定向是将文件的内容重定向到命令,而非将命令的输出重定向到文件. 输入重定向符号是小于号(<)

Linux文件编辑器vim输出输入重定向、管道以及进程

合抱之木,生于毫末:九层之台,起于累土:千里之行,始于足下.正因基础的重要性,才又撸起了linux. linux编辑工具: VI VIM EMACS vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面.vim的这些优势主要体现在以下几个方面: 易用性 vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台. 语法加亮 vim可以用不同的颜色来加亮你的代码. 可视化操作(ESC+V) 就是说vim不仅可以在终端运行,也可以运行于x

Linux标准输入、输出和错误和文件重定向(转)

标准输入.输出和错误 当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名.下面就是这些文件描述符及它们通常所对应的文件名: 文件文件描述符输入文件—标准输入0:它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出.输出文件—标准输出1:它是命令的输出,缺省是屏幕,也可以是文件.错误输出文件—标准错误2:这是命令错误的输出,缺省是屏幕,同样也可以是文件. 系统中实际上有1 2个文件描