Linux 中标准输出、错误输出及重定向操作的系统性总结

发布时间:2025-08-20 19:42

使用微信转账时避免输入错误:输入金额后,系统会自动检查,及时校正。 #生活知识# #生活经验# #软件#

原创

©著作权归作者所有:来自51CTO博客作者51的白开水的原创作品,请联系作者获取转载授权,否则将追究法律责任

✅ Linux 输出与重定向系统总结

一、基础概念:三个文件描述符(File Descriptor)

文件描述符

名称

说明

0

stdin

标准输入(通常来自键盘)

1

stdout

标准输出(正常信息,打印信息)

2

stderr

标准错误输出(错误或异常信息)

二、标准重定向语法

1. 重定向标准输出(stdout):

command > out.txt1.

等价于:

command 1> out.txt1.

将标准输出写入到 out.txt 中。

2. 重定向标准错误(stderr):

command 2> err.txt1.

将错误信息单独写入 err.txt。

3. 同时重定向 stdout 和 stderr 到不同文件:

command 1> out.txt 2> err.txt1.

正常输出到 out.txt,错误输出到 err.txt。

4. 将 stderr 合并到 stdout:

command > all.log 2>&11.

说明:

>:表示重定向2>:指重定向 stderr(错误输出)&1:表示“重定向到文件描述符 1”(即标准输出)

结果:所有输出(正常 + 错误)都进入 all.log

三、后台运行命令并记录日志

使用 nohup 保持后台运行,并记录所有日志到文件:

nohup java -jar myapp.jar > app.log 2>&1 &1.

含义总结:

片段

含义说明

nohup

忽略挂起信号,终端关闭程序仍运行

java -jar myapp.jar

启动 jar 应用

>

将标准输出写入文件

2>&1

将标准错误也重定向到标准输出(合并)

&

放到后台运行

四、同时输出到控制台和文件:tee 命令

nohup java -jar myapp.jar 2>&1 | tee app.log &1.

效果:

控制台能实时看到输出同时写入到 app.log 文件

五、测试命令示例

echo "标准输出" # 走 stdout(1) ls no-such-file.txt # 走 stderr(2)1.2.

# 把正常输出和错误信息都保存下来 ls exist.txt no-such.txt > all.log 2>&11.2.

✅ 推荐实用模板总结

场景

推荐命令

后台运行 + 日志文件输出

nohup java -jar app.jar > app.log 2>&1 &

前台运行 + 控制台输出

java -jar app.jar

后台运行 + 同时控制台和日志

`nohup java -jar app.jar 2>&1

✅ 拓展:& 和 文件描述符

&:用于引用文件描述符(例如 2>&1)1:标准输出2:标准错误输出

特别注意:

2>1 是错误写法,表示把 stderr 重定向到名为 1 的文件。正确写法是 2>&1:&1 表示“文件描述符 1”。 收藏 评论 举报

相关文章

网址:Linux 中标准输出、错误输出及重定向操作的系统性总结 https://klqsh.com/news/view/172055

相关内容

Linux重定向(输入输出重定向)详解
快速了解Linux中的网速测试命令! – Linux命令大全(手册)
Linux tar 命令
基于国家标准的 EndNote 输出样式模板(更新至参考国家标准 GB/T 7714
电脑锁屏快捷键是哪个?不同系统使用快捷键一键锁屏的方法详解
Linux speedtest
高效利用Linux命令行在线收听网络广播电台
大多数人在目标设定上容易出现的错误,你中招了吗?
【微信输入法】微信输入法 1.3.2
在 Windows 11 中修复 Windows 更新错误的 9 种方法 – 数字指南

随便看看