典型的 Linux 系统中默认的 stdin、stdout 和 stderr 到底是什么?

典型的 Linux 系统中默认的 stdin、stdout 和 stderr 到底是什么?

我曾听说默认的标准输入是键盘,默认的标准输出和标准错误是屏幕,但我发现这非常不准确。

如果那绝对准确,我认为像 cp file /dev/stdin 这样的命令永远不会被允许,并且如果 stdout 和 stderr 是屏幕,那么我应该能够准确控制它可能显示的内容(顺便说一句,这听起来非常危险)。

因此,我更倾向于将默认 stdin 定义为当前活动终端用于输入用户文本的方式,将 stdout 定义为当前活动终端用于向用户显示执行命令时非错误文本的方式,将 stderr 定义为当前活动终端用于向用户显示执行命令时错误文本的方式。但即便如此,这可能也不完全准确。

我对典型的 Linux 系统中 stdin、stdout 和 stderr 的具体定义是否正确,或者是否有更好的定义?

感谢您的关注。

相关内容