command>file >& &

命令的最后一个&表示把该命令以后台的job的形式运行

一个命令的执行伴随着三种输入输出

标准输入(stdin):默认指向键盘的输入,可以通过标准输入重定向<,让标准输入指向文件输入

标准输出(stdout) :指命令产生的正常的输出,如echo aaa,标准输出默认指向终端显示器,可以通过输出重定向>,让标准输出重定向到文件

标准错误输出(stderr):指命令产生的错误信息的输出,如执行了不存在的命令t,标准错误输出也默认指向终端显示器,同样可以通过输出重定向>,让标准错误输出重定向到文件

所谓的输出重定向到文件,是指把默认输出到终端显示器的信息写入到指定文件

标准输入,标准输出,标准错误输出的文件描述符分别时0,1,2。

上面命令中

command 为要执行的命令

> 表示输出重定向

file 表示要重定向的文件名

2和1 分别指标准错误输出和标准输出,

而&1表示标准输出的引用,所以2>&1是指把标准错误输出重定向到标准输出的引用,即也重定向到file

例子

脚本

#!/bin/sh

t       //t命令不存在,会产生标准错误输出
date //会产生标准输出

执行脚本:未重定向的情况下标准错误输出和标准输出都显示在终端显示器

[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh
/var/www/pyxis2/system/fortest/test1.sh: line : t: コマンドが見つかりません //标准错误输出显示到显示器
2019年 1月 18日 金曜日 :: JST //标准输出显示到显示器
[vagrant@vmp2-local-dva01 ~]$

标准输出重定向到testlog文件,标准错误输出不重定向

[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh > testlog
/var/www/pyxis2/system/fortest/test1.sh: line : t: コマンドが見つかりません //标准错误输出未重定向,错误信息默认显示到显示器
[vagrant@vmp2-local-dva01 ~]$ cat testlog //标准输出重定向到testlog文件,所以标准输出写入到testlog文件,而没有显示到显示器
2019年 1月 18日 金曜日 :: JST
[vagrant@vmp2-local-dva01 ~]$

command >file   就相当于  command 1>file

标准输出不重定向,标准错误输出重定向到testlog

[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh > testlog
2019年 1月 18日 金曜日 :: JST //标准输出未重定向,标准输出默认输出到显示器
[vagrant@vmp2-local-dva01 ~]$ cat testlog //标准错误输出重定向到testlog文件,所以错误信息写入到testlog文件,而没有在显示器显示
/var/www/pyxis2/system/fortest/test1.sh: line : t: コマンドが見つかりません
[vagrant@vmp2-local-dva01 ~]$

标准输出重定向到testlog1,标准错误输出重定向到testlog2

[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh >testlog1 >testlog2
[vagrant@vmp2-local-dva01 ~]$ cat testlog1
2019年 1月 18日 金曜日 :: JST
[vagrant@vmp2-local-dva01 ~]$ cat testlog2
/var/www/pyxis2/system/fortest/test1.sh: line : t: コマンドが見つかりません
[vagrant@vmp2-local-dva01 ~]$

标准输出重定向到文件testlog,标准错误输出重定向到标准输出的引用

[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh >testlog >&
[vagrant@vmp2-local-dva01 ~]$ cat testlog
/var/www/pyxis2/system/fortest/test1.sh: line : t: コマンドが見つかりません
2019年 1月 18日 金曜日 :: JST
[vagrant@vmp2-local-dva01 ~]$

标准错误输出重定向到文件testlog,标准输出和重定向到标准错误输出的引用

[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh >testlog >&
[vagrant@vmp2-local-dva01 ~]$ cat testlog
/var/www/pyxis2/system/fortest/test1.sh: line : t: コマンドが見つかりません
2019年 1月 18日 金曜日 :: JST
[vagrant@vmp2-local-dva01 ~]$

标准输出重定向到testlog文件,标准错误输出也重定向到testlog文件

[vagrant@vmp2-local-dva01 ~]$ sh /var/www/pyxis2/system/fortest/test1.sh >testlog >testlog
[vagrant@vmp2-local-dva01 ~]$ cat testlog
2019年 1月 18日 金曜日 :: JST
ne : t: コマンドが見つかりません //输出不完全
[vagrant@vmp2-local-dva01 ~]$

command>a 2>a 与 command>a 2>&1的区别

对于command>a 2>&1这条命令,等价于command 1>a 2>&1

可以理解为执行command产生的标准输入重定向到文件a中,标准错误也重定向到文件a中。

那么是否就说command 1>a 2>&1等价于command 1>a 2>a呢。

其实不是,command 1>a 2>&1与command 1>a 2>a还是有区别的,区别就在于前者只打开一次文件a,后者会打开文件两次,并导致stdout被stderr覆盖,可能导致某些输出错误。

&1的含义就可以理解为用标准输出的引用,引用的就是重定向标准输出产生打开的a。从IO效率上来讲,command 1>a 2>&1比command 1>a 2>a的效率更高。

linux command>file 2>&1 & 命令详解的更多相关文章

  1. 云计算:Linux运维核心管理命令详解

    云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...

  2. LINUX的磁盘管理du命令详解

    LINUX的磁盘管理du命令详解 du(disk usage)命令可以计算文件或目录所占的磁盘空间.没有指定任何选项时, 它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作 ...

  3. linux sort,uniq,cut,wc命令详解

    linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...

  4. Linux的chattr与lsattr命令详解

    Linux的chattr与lsattr命令详解 这两个命令是用来查看和改变文件.目录属性的,与chmod这个命令相比,chmod只是改变文件的读写.执行权限,更底层的属性控制是由chattr来改变的. ...

  5. (转)linux sort,uniq,cut,wc命令详解

    linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...

  6. (转)Linux内核参数设置sysctl命令详解

    Linux内核参数设置sysctl命令详解 原文:https://www.zhukun.net/archives/8064 sysctl是一个允许您改变正在运行中的Linux系统的接口. 它包含一些 ...

  7. Linux就业技术指导(五):Linux运维核心管理命令详解

    一,Linux核心进程管理命令 1.1 ps:查看进程 1.1.1 命令解释 功能说明 ps命令用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片.如果想要动态地显示进程,就需要使 ...

  8. Linux下的压缩解压缩命令详解

    linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o - ...

  9. 【Linux基础】crontab定时命令详解

    周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“crontab”,是 ...

随机推荐

  1. [UE4]Get All Widgets Of Class、Get All Widgets with Interface,根据类名或者接口UI实例对象

    Get All Widgets Of Class.Get All Widgets with Interface,是系统蓝图函数库提供的方法,可以在任何蓝图中使用. 可以方便地获得UI实例对象,进而使用 ...

  2. 20165312 预备作业3 Linux安装及学习

    Linux安装及学习 一.安装Vmware虚拟机以及Ubuntu中遇到的问题 因为之前安装过Vmware虚拟机,考虑到两者没有太大的差别,就所以就没有再安装Vbox虚拟机. 在安装Vmware虚拟机增 ...

  3. 如何使用Python操纵Postgres数据库

    pip install psycopg2 psycopg2-binary #!/usr/bin/python import psycopg2conn = psycopg2.connect(databa ...

  4. U3D学习004——核心类和代码运行

    1.U3D核心类 2.变量 只有public变量才可以显示在inspector面板中,[serializeField]可以使private和protected变量显示在inspector面板中. 3. ...

  5. js中基本数据类型和引用数据类型的区别

    1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...

  6. Linux性能优化 第一章 性能追踪建议

    1.1常用建议1.1.1记大量的笔记(记录所有的事情)在做性能调优问题的时候很重要的一个操作就是记录下所有的事情,包括每一个输出.执行的结果.可以新建一个文件夹,然后把结果的文件都塞到该文件夹内.包括 ...

  7. spring-data-redis 中使用RedisTemplate操作Redis

    Redis 数据结构简介 Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串).List(列表).Set(集合).Hash(散列)和 Zset(有序集合 ...

  8. show processlist结果筛选(转)

    在MySQL里面 show variables where variable_name like '%auto%' 这条语句可以正常执行,但是 show processlist where host ...

  9. vue-demo

    github地址:  https://github.com/TingtingYin/vue-demo

  10. WPF Storyboard 动画播放完毕时触发的事件

    /*故事版*/ Storyboard ClSto2; public PopUpWindow() { /*播放完毕,将当前窗体关闭*/ ClSto2.Completed += (s, e) => ...