一、Linux提供了三种输入/输出通道给程序
在linux中,每个进程都会有三个文件,并且这三个文件会进行重定向处理:
1. 标准输入(STDIN) - 缺省为键盘
2. 标准输出(STDOUT) - 默认为终端窗口
3. 标准错误(STDERR) - 默认为终端窗口

4. 2>&1中的数字就是上面重定向后的数字
  0: 表示键盘输入
  1:将信息输入到屏幕(一般linux命令都是默认为1)
  2:将信息输入到错误输出

二、标准输出和标准错误能重定向到文件中: 

1. 命令 > 文件:重定向标准输出到文件

2. 命令 2> 文件:重定向标准错误到文件

3. 命令 &> 文件:重定向所有的输出到文件

ps:使用>时会将文件内容会覆盖,使用>>时文件内容追加

三、示例:重定向输出给一个文件示例

当前文件夹存在内容为hello world的test001.txt的文件,但是没有test002.txt

1. cat两个文件时将标准输出与标准错误至控制台:

cat test001.txt test002.txt

2. 重定向标准输出到文件,不包含标准错误 

cat test001.txt test002.txt  > 1.out

3. 重定向标准错误到文件

cat test001.txt test002.txt  2> 1.out

4. 重定向准输出与标准错误输出至文件

cat test001.txt test002.txt  &> 1.out

5. 重定向准输出与标准错误输出至两个不同的文件

cat test001.txt test002.txt  > 1.out  2> 2.out

三、常见用法:

1. 后台程序运行并,并将日志保存至默认地址nohup.out:

nohup java -jar wiremock-jre8-standalone-2.33.2.jar --port 7777 2>&1 &

nohup 命令含义:运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部
如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中

2. 同上的命令简化命令,日志保存至log日志内:

nohup java -jar wiremock-jre8-standalone-2.33.2.jar --port 7777 &>log &

3. 后台程序运行,并在日志输入至黑洞,即不保存日志:

nohup java -jar wiremock-jre8-standalone-2.33.2.jar --port 7777 >/dev/null 2>&1 &

4. 后台程序运行,分别将标准输出与标准错误写入不同的日志文件内。

liunx标准输入与输出的更多相关文章

  1. Linux shell的标准输入、输出和错误

    编译文件时,若编译过程时间长,可以将  标准错误  重定向  输出到一个文件中   2 > 1.txt         也可以通过管道  重定向 到 标准输出    2 > &1 ...

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

    标准输入.输出和错误 当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名.下面就是这些文 ...

  3. 编程语言的分类及其优缺点,Python标准输入与输出

    一. 编程语言分类 1.机器语言 以0,1的组合作为指令集,用二进制指令来编写程序: 优点:执行效率高 缺点:开发效率低 2.汇编语言 用英文标签代替二进制指令集来编写程序,比机器语言稍微高级,但本质 ...

  4. Linux标准输入、输出和错误和文件重定向 专题

    当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名. 下面就是这些文件描述符及它们通常所 ...

  5. php的标准输入与输出是什么?

    php的标准输入与输出是什么? 一.总结 php的标准输入与输出(STDIN是一个文件句柄,等同于fopen("php://stdin", 'r')) 1.STDIN是一个文件句柄 ...

  6. K8S学习笔记之使用Fluent-bit将容器标准输入和输出的日志发送到Kafka

    0x00 概述 K8S内部署微服务后,对应的日志方案是不落地方案,即微服务的日志不挂在到本地数据卷,所有的微服务日志都采用标准输入和输出的方式(stdin/stdout/stderr)存放到管道内,容 ...

  7. 【C++札记】标准输入与输出

    概述 C语言中使用函数scanf和printf作为标准输入和输出,在C++中引入了类cin和cout进行标准输入和输出,所需头文件为<iostream>,命名空间是std.这里所说的标准输 ...

  8. python调用外部子进程,通过管道实现异步标准输入和输出的交互

    我们通常会遇到这样的需求:通过C++或其他较底层的语言实现了一个复杂的功能模块,需要搭建一个基于Web的Demo,方法查询数据.由于Python语言的强大和简洁,其用来搭建Demo非常合适,Flask ...

  9. C语言学习007:重定向标准输入和输出

    先来完成一个将输入数据转换成json格式输出的小任务 #include <stdio.h> int main(){ float latitude; float longtitude; ]; ...

随机推荐

  1. git 删除、合并多次commit提交记录

    合并多次记录 1. git log找到要合并的记录的数量. 2. git rebase -i HEAD~5 将最上面一个的记录选为pack,下面记录都改为s. ================= 删除 ...

  2. PTA(BasicLevel)-1031 查验身份证

    一.问题定义 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,1 ...

  3. Tapdata Cloud 2.1.5来啦:新增支持Amazon RDS数据库,错误日志查询更便捷,Agent部署细节再优化

      需求持续更新,优化一刻不停--Tapdata Cloud 2.1.5 来啦!   最新发布的版本中,数据连接再上新,同时新增任务报错相关信息快速查询入口,开始支持 JVM 参数自定义设置.   更 ...

  4. Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo

    前言   上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍.基础使用,并将其封装一层Qt.  本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt ...

  5. day09 集合排序_Collection接口与Collections工具类

    集合的排序 java.util.Collections类 Collections是集合的工具类,里面定义了很多静态方法用于操作集合. Collections.sort(List list)方法 可以对 ...

  6. Blazor快速实现扫雷(MineSweeper)

    如何快速的实现一个扫雷呢,最好的办法不是从头写,而是移植一个已经写好的! Blazor出来时间也不短了,作为一个.net开发者就用它来作吧.Blazor给我的感觉像是Angular和React的结合体 ...

  7. Windows下通过dos来编译c语言源代码文件

    笔者阅览过网上许多的推荐,基本上都是推荐cl命令,但是因为笔者是通过dev c++入门的,不想放弃dev所以就强行使用dev来实现在dos下的编译以及运行 编译 注意:这边涉及到环境变量的配置,环境变 ...

  8. .NET WebAPI 使用 GroupName 对 Controller 分组呈现 Swagger UI

    在日常开发 webapi 时,我们往往会集成 swagger doc 进行 api 的文档呈现,当api数量比较多的时候就会导致 swagger ui 上的 api 因为数量太多而显得杂乱,今天教大家 ...

  9. mysql导出导入数据库和表学习笔记

    一.mysql导出数据库和表 1.导出单个数据库 mysqldump [-h Host] -u Username -p [PASSWORD] db_name > db_name.sql 2.导出 ...

  10. Go语言基础四:数组和指针

    GO语言中数组和指针 数组 Go语言提供了数组类型的数据结构. 数组是同一数据类型元素的集合.这里的数据类型可以是整型.字符串等任意原始的数据类型.数组中不允许混合不同类型的元素.(当然,如果是int ...