===============1.有些人经常问我这个问题问题===========

经常在脚本里面看到这个    2>&1     表示什么意思啊?

==============2.理论==========================

在linux中,每个进程都会有三个文件,并且这三个文件会进行重定向处理:

/dev/stdin          ----->/proc/self/fd/0             //表示标准输入,即键盘输入

/dev/stdout        ----->/proc/self/fd/1     //表示标准输出,即显示屏,屏幕

/dev/stderr         ---->  /proc/self/fd/2           //表示标准错误输出,有些脚本运行时会报错,就会输入到这。

你看到的2>&1中的数字就是上面重定向后的数字。

0: 表示键盘输入

1:将信息输入到屏幕(一般linux命令都是默认为1)

2:将信息输入到错误输出

===================3.举个栗子====================

在终端中写一个sh文件

>>>>>>>>>>>>>>

$cat  demo.sh

#!/bash/bin

xxxx

date

<<<<<<<<<<<<<<

执行这个sh文件,并将输出到demo.log中

./demo.sh > demo.log
./demo.sh: line 2: xxxx: command not found

由于xxxx不是linux命令会报错,并且将错误信息输出到屏幕(标准输出),而date是linux

命令,会正确输出,并将正确的信息输出到demo.log文件中

cat demo.log
Sat Mar  5 09:49:11 HKT 2016

==============4.再回头看最开始的问题============

2>&1  意思就很明了了,就是讲执行linux命令时的错误信息也输出到屏幕上。

./demo.sh 2>&1
./demo.sh: line 2: xxxx: command not found
Sat Mar  5 09:57:09 HKT 2016

===============收工======================

linux中的标准输出和输入的更多相关文章

  1. linux中Shell标准输出错误 >/dev/null 2>&1 分析【转】

    Shell中可能经常能看到:>/dev/null  2>&1 eg:sudo kill -9 `ps -elf |grep -v grep|grep $1|awk '{print ...

  2. linux中的输入从定向和输出重定向

    linux的标准的输入和输出为如下 我们在 linux中执行命令时,命令默认输出到console中,很多时候我们需要将命令输出到其他设备上如最常见的就文件中去,或者重文件中输入.那这时候就需要用到li ...

  3. 在Linux中输入命令时打错并按了enter

    今天在Linux中输入命令时,打错一个单词了,之后出现一串串的~,按ESC也没用, 并在底部出现:quit<enter> to exit vim 解决办法: 按几下 esc 确保 vim ...

  4. Linux中检索文件

    1 , Use locate command It is a fast way to find the files location, but if a file just created ,it w ...

  5. [转]linux shell数据重定向(输入重定向与输出重定向)详细分析

      在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件 ...

  6. <实训|第十一天>学习一下linux中的进程,文件查找,文件压缩与IO重定向

    [root@localhost~]#序言 在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h...每天都要检查一下服务器,看看是否出现异常.那么今天我们就 ...

  7. linux中socket的理解

    对linux中socket的理解 一.socket 一般来说socket有一个别名也叫做套接字. socket起源于Unix,都可以用“打开open –> 读写write/read –> ...

  8. Linux中exec命令相关

    Linux中exec命令相关 exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. b ...

  9. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

随机推荐

  1. Springboot学习笔记(七)-集成Redis

    redis下载地址 添加依赖 <dependencies> <dependency> <groupId>org.springframework.boot</g ...

  2. 利用Android NDK编译lapack

    最近有这方面的需要,但是在网上查了一下,几乎没有讲这个的.后来发现了外国某个大牛在github上的project.拉下来自己编译了一下竟然通过了,记录如下: 1.从https://github.com ...

  3. Lua获取系统时间和时间格式化方法及格式化参数

    一.系统当前时间对应的时间戳 复制代码代码如下: local ntime = os.timeprint(ntime) 二.格式化时间显示,参考下表常用于设置header等 复制代码代码如下: ngx. ...

  4. linux环境中如何删除文件的前n行?

    需求描述: 今天看了一个系统的临时文件,有5.6G的大小,这个文件也没有用了,想要将大部分的文件都删除掉. 在此记录下删除的过程.删除前n行的记录. 操作过程: 对于数据量比较大的情况(本例5800万 ...

  5. Apache中的Order Allow,Deny用法详解

    本文讲述了Apache中的Order Allow,Deny用法.分享给大家供大家参考,具体如下: Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directo ...

  6. MyBatis 支持的扩展点(version:3.2.7)

    从 [MyBatis 原码解析(version:3.2.7)] 中,我们得知,MyBatis去执行SQL都是通过 DefaultSqlSession 中的工具方法去执行的. 那么问题来了,MyBati ...

  7. NetBpm 配置篇(2)

    转载注明出处:http://www.cnblogs.com/anbylau2130/p/3877353.html 上一篇中介绍了Netbpm在IIS和CassiniWebServer服务器的安装 通过 ...

  8. 品鉴同事发来的炸金花的PHP程序代码

    今天同事发来了一个炸金花的PHP程序,这个代码实现了两个人通过各自的三张牌进行权重计算,得到分数进行比较得到谁的牌大,我觉得里面还有一些问题,代码如下: <?php /** 每张牌的分值为一个2 ...

  9. mysql 行转列 (case when的使用)

    现有 table1 如下 table2 如下 需要统计:各个部门每个月的绩效总和 实现如下:

  10. 邮件服务器日志:/var/log/maillog

    /var/log/maillog会记录包含系统上运行的邮件服务器的日志信息,比如记录 postfix 或 sendmail 运行时的日志信息 [root@localhost ~]# tail /var ...