Linux 输入输出重定向, &>file, 2>&1, 1>&2
Linux 输入输出重定向, &>file, 2>&1, 1>&2
相关博文原文地址:
CSDN:一个行走的民:Linux shell中2>&1的含义解释 (全网最全,看完就懂)
一、1和2在Linux中代表什么
在 Linux 下几乎一切都号称是文件,标准输入、输出也不例外,它们是叫做 fd (File Descriptor) 文件描述符。
| 名称 | 代码 | 操作符 | Java中表示 | Linux 下文件描述符(Debian 为例) |
|---|---|---|---|---|
| 标准输入(stdin) | 0 | < 或 << | System.in | /dev/stdin -> /proc/self/fd/0 -> /dev/pts/0 |
| 标准输出(stdout) | 1 | >, >>, 1> 或 1>> | System.out | /dev/stdout -> /proc/self/fd/1 -> /dev/pts/0 |
| 标准错误输出(stderr) | 2 | 2> 或 2>> | System.err | /dev/stderr -> /proc/self/fd/2 -> /dev/pts/0 |
使用 > 或 >> 时,默认为标准输出 1 重定向, 所以 > file 就是 1> file 的省写,1 与 > 之间不能有空格。
比如 ls -l > a.txt 就是 ls -l 1> a.txt ,数字 0, 1, 2 与它后面的操作符 > 或 < 等 总是一个整体。
2>&1 表示把 标准错误输出 重定向到 标准输出, 这在控制台下看到的效果 2>&1 和 1>&2 可能是一样的,因为标准输出或标准错误输出的目的地默认都为屏幕。
2>&1 是最常见到的写,这样就是把错误信息与标准输出都收集到一块了
&> file 表示把 标准输出 和 标准错误输出 都重定向到文件 file 中
>& file 把标准输出和标准错误输出都重定向到文件 file, 由于 > 默认为重定向标准输出,所以和 1>& file 是一个意思
1.1 输出重定向

1.2 输入重定向

1.3 绑定重定向

二、关于2>&1的含义
含义:将标准错误输出重定向到标准输出
三、为什么2>&1要放在后面
nohup java -jar app.jar >log 2>&1 &
&表示把条命令放到后台执行.
为什么2>&1一定要写到>log后面,才表示标准错误输出和标准输出都定向到log中?
把1和2都理解是一个指针,然后来看上面的语句就是这样的:
- 本来1----->屏幕 (1指向屏幕)
- 执行>log后, 1----->log (1指向log)
- 执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log)
nohup java -jar app.jar 2>&1 >log &
- 本来1----->屏幕 (1指向屏幕)
- 执行2>&1后, 2----->1 (2指向1,而1指向屏幕,因此2也指向了屏幕)
- 执行>log后, 1----->log (1指向log,2还是指向屏幕)
四、每次都写">log 2>&1"太麻烦,能简写吗?
&>log
>&log
nohup java -jar app.jar &>log &
Linux 输入输出重定向, &>file, 2>&1, 1>&2的更多相关文章
- Linux输入输出重定向和文件查找值grep命令
Linux输入输出重定向和文件查找值grep命令 一.文件描述符Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2.Linux系统实际上有12个文件描述 ...
- [转帖]Linux教程(12)- linux输入输出重定向
Linux教程(12)- linux输入输出重定向 2018-08-21 22:57:02 钱婷婷 阅读数 49更多 分类专栏: Linux教程与操作 Linux教程与使用 版权声明:本文为博主原 ...
- 全面理解Linux输入输出重定向
全面理解Linux输入输出重定向 本教程通过视频方式讲解shell操作,理解感念,教程通俗易懂,比起看一大堆文档要舒服的多.本次教程主要讲解 Linux Shell 中支持输入输出重定向,用符号&l ...
- linux 输入输出重定向
输入输出重定向 1,输入输出重定向,是针对过滤器的,不针对,编辑器和交互工具 2,>号只把正确的标准输出重定向,输出错误信息,可以用2> 3,新建或清空文件可以直接用>filenam ...
- linux输入输出重定向
http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html 在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据 ...
- [100]linux输入输出重定向
一目了然版本: &号含义: 参考 参考:非常经典,值得一看,我是在linux爱好者公众号里发现的. 下面是我自己的一些总结. linux的命令数据流 在Linux下,当一个用户进程被创建的时候 ...
- 6. Linux输入输出重定向
1.输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中. 输入重定向中用到的符号及其作用 输出重定向中用到的符号及其作用 1)通过输出重定向将原本要输出到 ...
- linux - 输入输出重定向 及 管道
> 正确结果重定向 2> 错误结果重定向 &> 正确和错误全部重定向 >> 追加,其它同> 标准输出实际上就是显示器,比如我们使用cat命令打开一个文件,文 ...
- Linux输入输出重定向练习
1.date >> 123 date > 123 2.abc 2>123 abc 2>>123 abc 2>/dev/null 标准输出重定向到回收站 3. ...
随机推荐
- Python & Matplotlib: Monte Carlos Method
Hey! 这里是Lindy:) Hope you guys are doing well! 今天想记录的概念叫做 蒙特·卡罗 方法,是今年在cs课上老师做的扩展延伸.其实我在初次接触这个概念时觉得很新 ...
- Docker下配置KeepAlive支持nginx高可用
案例子任务一.安装配置keepalived 步骤1:使用nginx镜像生成nginx-keep镜像 1) 启动nginx容器并进入 docker run -d --privileged nginx / ...
- 大数据量查询容易OOM?试试MySQL流式查询
一.前言 程序访问 MySQL 数据库时,当查询出来的数据量特别大时,数据库驱动把加载到的数据全部加载到内存里,就有可能会导致内存溢出(OOM). 其实在 MySQL 数据库中提供了流式查询,允许把符 ...
- 技术基础 | 监测Apache Cassandra的简明方式——MCAC
点击这里在GitHub上访问我们,以便深入了解DataStax的开源项目--Apache Cassandra指标收集器(Metric Collector for Apache Cassandra, o ...
- CentOS7搭建svn部署项目
一.安装SVN[root@client ~]# yum install -y subversion查看安装了哪些文件[root@client ~]# rpm -ql subversion/etc/su ...
- hbase:ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
hbase连接deug:DEBUG [main-SendThread(bigdata.server1:2181)] - Reading reply sessionid:0x16f764e7f6e000 ...
- volatile 关键字精讲
1.错误案例 通过一个案例引出volatile关键字,例如以下代码示例 : 此时没有加volatile关键字两个线程间的通讯就会有问题 public class ThreadsShare { priv ...
- 非root用户安装centos的jdk
1. 下载linux的jdk到自定义目录(以下简称安装目录),解压. 2. 在安装目录下新建文件局部环境变量文件:bash_profile 内容为:(注意修改JAVA_HOME目录) export J ...
- Nginx Consul nginx-upsync-module
nginx consul nginx-upsync-module 依赖包: yum -y install libpcre3 libpcre3-dev ruby zlib1g-dev patch 下载n ...
- rename 表名
rename table 旧表名1 to 新表名1,旧表名2 to 新表名2;