===============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. Http协议中常用字段总结(不定时完善中)

    1.Http协议概述 关于Http协议的发展,各种资料有很多,在此不再赘述,不明白的小伙伴儿可以去搜一下,Http报文分为请求报文和相应报文,由于Http是面向文本的,因此在报文中的每一个字段都是一些 ...

  2. 没有公网的IP的用户有福了,即使您没有公网IP,我们要一样可以让您与ER对接,同时可远程访问

    EasyRadius从7.10起,开始向使用者平摊使用费用,即服务器托管费用.维护费用,向用户征收少量费用.即300元/年/1000用户,600元/年/无限制用户. 按比较高的费用1000用户计费,即 ...

  3. .net 图片上传

      /// <summary>      /// asp.net上传图片并生成缩略图      /// </summary>      /// <param name=& ...

  4. Spring AOP的日志记录

    现在的项目是Spring+MyBatis,前段时间项目经理让我干了一个活,就是给所有的controller里的所有方法加上日志记录的代码,其实没有多少,也就300来个方法,也没有抱怨什么,一边打着瞌睡 ...

  5. jquery获取表单数据方法$.serializeArray()获取不到disabled的值

    $.serializeArray()获取不到disabled的值 经实验,$.serializeArray()获取不到disabled的值,如果想要让input元素变为不可用,可以把input设为re ...

  6. IT运维队伍的管理

    如何建设一支能够解决问题.创造价值.有活力的.不断进取的IT运维团队,并带领这支团队,充分发挥这个团队的优势力量,是运维业务有效开展的关键.运维 策略是直接体现运维业务的经济价值所在.好的运维措施.方 ...

  7. oracle创建HR示例数据库脚本hr_main.sql分享

    需求描述: 今天一同事想要在测试库上进行SQL练习,帮忙安装下这个示例数据库,在此记录下. 操作过程: 1.上传hr_main.sql脚本(10g 11g都可用) 脚本下载链接: https://pa ...

  8. apache 配置会话保持

    1.修改apache_home/conf/httpd.conf,增加以下模块(取消注释,如有其他依赖, 则相应取消注释) LoadModule proxy_module modules/mod_pro ...

  9. Android播放器推荐:可以播放本地音乐、视频、在线播放音乐、视频、网络收音机等

    下载链接:http://www.eoeandroid.com/forum.php?mod=attachment&aid=MTAxNTczfGMyNjNkMzFlfDEzNzY1MzkwNTR8 ...

  10. SpringMVC------pom.xml添加spring依赖,统一管理版本

    如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...