liunx标准输入与输出

一、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. 后台程序运行,分别将标准输出与标准错误写入不同的日志文件内。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统中,标准输入(stdin)、标准输出(stdout)和标准错误(stderr)是三个常用的输入输出设备。 标准输入设备(stdin)是用于接收用户输入的设备。在Linux终端中,通常使用键盘作为标准输入设备。用户可以通过向程序提供输入数据,与程序进行交互。比如,当我们在终端输入命令时,输入的内容就是通过标准输入设备传递给程序的。 标准输出设备(stdout)是用于向用户显示输出信息的设备。在Linux终端中,默认情况下,标准输出设备就是终端屏幕。程序中通过调用输出函数,将需要显示的信息发送到标准输出设备上。例如,我们在终端执行一个命令时,命令的输出结果就会显示在标准输出设备上。 标准错误设备(stderr)用于输出错误信息。和标准输出设备类似,标准错误设备默认情况下也是终端屏幕。程序可以通过将错误信息发送到标准错误设备上,通知用户当前程序执行遇到了错误或异常。与标准输出不同的是,标准错误的输出可以与标准输出分开。可以将标准输出保存到文件中,并将标准错误信息显示在终端上,或者将标准错误重定向到另外一个文件中。 使用这些标准输入输出设备,可以使程序与用户进行交互,接收输入数据,展示输出结果,并及时通知用户错误信息。同时,通过将标准输出标准错误输出重定向到不同的位置,可以方便地进行日志记录和错误排查。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值