linux输出·输入文件和标准输入,标准输出是什么意思啊

问问题描述

linux输出·输入文件和标准输入,标准输出是什么意思啊,拜谢!求解答这个难题!

答精选答案

最佳答案

Unix/Linux/BSD 都有三个特别文件,分别

1)标准输入 即 STDIN , 在 /dev/stdin ,

一般指键盘输入, shell里代号是 0

2) 标准输出 STDOUT, 在 /dev/stdout,

一般指终端(terminal), 就是显示器, shell里代号是 1

3) 标准错误 STDERR, 在 /dev/stderr

也是指终端(terminal), 不同的是, 错误信息送到这里

shell里代号是 2

2, 3用些例子再表达一下

User@User-PC ~

$ ls /dev/stdin

/dev/stdin@

User@User-PC ~

$ ls -l /dev/std*

lrwxrwxrwx 1 User Users 15 Mar12008 /dev/stderr -> /proc/self/fd/2

lrwxrwxrwx 1 User Users 15 Mar12008 /dev/stdin -> /proc/self/fd/0

lrwxrwxrwx 1 User Users 15 Mar12008 /dev/stdout -> /proc/self/fd/1

就是这些东西了,呵呵

User@User-PC ~

$ ls 1> log1.txt

User@User-PC ~

$ cat log1.txt

Mail/

News/

a.txt

aa*

awkscr

b.txt

bb*

bin/

cc

cgitest.rex*

dd*

irc-sh*

junk

lib/

log1.txt

lynx.cfg

matrix/

perlscr*

pp*

rexx_script/

rrr

testawk

tmp/

trash

将标准输出导向到文件, 缩写就是 ls > log1.txt

User@User-PC ~

$ ls llll 1> log2.txt

ls: 无法存取 llll: No such file or directory

再次执行,但这次没有这个文件llll, 出现错误讯息

User@User-PC ~

$ cat log2.txt

User@User-PC ~

$ file log2.txt

log2.txt: empty

输出没有导向到文件,文件是空文件

User@User-PC ~

$ ls llll 2> log2.txt

User@User-PC ~

$ cat log2.txt

ls: 无法存取 llll: No such file or directory

User@User-PC ~

$

再次执行刚才的命令,只是将 1> log2.txt 改为 2> log2.txt

这次就成功把错误讯息导向至文件了,呵呵,

就是这样

所以,将标准输出和标准错误 一同导向到一个文件里,就得这样表达

命令 2>&1 > 档案, 如

User@User-PC ~

$ echo 123 | if grep -E '[0-9]+' 2>&1 > /devull ; then echo

"This is number.

"; fi

This is number.

grep 标准输出和标准错误 都导向到系统‘黑洞’,不会再屏幕上显示什麼

, 明白了吧呵呵

本文来自作者[掌桥科研]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/changshijingxuan/202609/1140393.html

赞 (0)

发表回复

本站作者后才能评论

评论列表(4条)

  • 掌桥科研
    掌桥科研 2026年09月30日

    我是公众科技网的签约作者“掌桥科研”!

  • 掌桥科研
    掌桥科研 2026年09月30日

    希望本篇文章《linux输出·输入文件和标准输入,标准输出是什么意思啊》能对你有所帮助!

  • 掌桥科研
    掌桥科研 2026年09月30日

    本站[公众科技网]内容主要涵盖:教育咨询,知识百科

  • 掌桥科研
    掌桥科研 2026年09月30日

    本文概览:Unix/Linux/BSD 都有三个特别文件,分别1)标准输入 即 STDIN , 在 /dev/stdin ,一般指键盘输入, shell里代号是 02) 标准输出 STDOUT, 在 /dev/stdout,一般指终端(terminal), 就是显示器, shell里代号是 13) 标准错误 STDERR, 在 /dev/stderr 也是指终端(terminal), 不同的是, 错误信息送到这里shell里代号是 22, 3用些例子再表达一下User@User-PC ~$ ls /dev/stdi

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们