linux中stdout是什么?
我的:stdout是终端的标准输出。
我的分析:在Linux中执行命令,一般会打开三个标准文件。包括:标准输入文件stdin,标准输出文件stdout和标准错误输出的文件stderr。
std代表标准的:standard,input/output表示输入/输出。err代表error错误。
标准输入文件,一般是stdin,对应的终端是键盘。
标准输出文件stdout和标准错误输出文件stderr,对应的终端是屏幕。
一般进程从标准输入文件中得到输入数据,比如参数。把正常输出数据输出到标准输出文件stdout,把错误信息送到标准错误输出文件中。
Linux中一般用0表示stdin标准输入,用1表示stdout标准输出,用2表示stderr标准错误输出。
一般在默认的情况下,标准输出stdout是行缓冲的,是把输出放到一个buffer里面,只有换行的时候,才会输出到屏幕。
一般标准错误输出stderr是无缓冲的,直接输出。
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 Mar 1 2008 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 User Users 15 Mar 1 2008 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 User Users 15 Mar 1 2008 /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 ‘+’ 2>&1 > /dev/null ; then echo “This is number.”; fi
This is number.
grep 标准输出和标准错误 都导向到系统‘黑洞’,不会再屏幕上显示什麼
, 明白了吧? 呵呵
linux下的tar.gz文件为什么解压时却提示gzip: stdin: not in gzip format?
原因是这个压缩包没有用gzip格式压缩,所以不用加z指令。在解压tar.gz文件的时候报错[Sun@localhost Downloads]$ tar -zxvf clion-141.351.4.tar.gzgzip: stdin: not in gzip formattar: Child returned status 1tar: Error is not recoverable: exiting now.改为[Sun@localhost Downloads]$ tar -xvf clion-141.351.4.tar.gz,这样就可以了。把下载下来的文件重命名:mvapache-tomcat-6.0.26.tar.gzapache-tomcat-6.0.26.tar再执行解压命令:tar-zxvfapache-tomcat-6.0.26.tar上面就是Linux解压tar.gz文件出错的解决方法介绍了,只要知道tar.gz文件出错的原因,就能快速解决问题.
stdin是什么类型符?
stdin是文件描述符,代表标准输入(键盘等),也就是说在linux中stdin称为终端(Terminal)的标准输入(standard input)。
在linux中经常会看到stdin,stdout和stderr,这3个可以称为终端(Terminal)的标准输入(standard input),标准输出( standard out)和标准错误输出(standard error)。
通过man stdin查看手册,可以看到它们都是在stdio.h中定义的。 当linux开始执行程序的时候,程序默认会打开这3个文件流,这样就可以对终端进行输入输出操作。
linux下and什么时候输出数字?
0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error)
2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到文件中。