❶ 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 '[0-9]+' 2>&1 > /dev/null ; then echo "This is number."; fi
This is number.
grep 标准输出和标准错误 都导向到系统‘黑洞’,不会再屏幕上显示什麼
, 明白了吧? 呵呵
❷ Linux中,标准输入输出设备文件有个,文件名分别是
Linux中有以下三个标准设备:
标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr)
对应的文件描述符分别为:0、1、2
❸ Linux标准输入输出与重定向详解|果断收藏
linux中的>、>>、<、<<、2>、2>>、2>&1、&>、&<,总归要面对的
为了更好的理解这个问题,我们需要追本溯源。
执行一个shell命令行时通常会自动打开三个标准文件
(1) 、标准输入文件(stdin)
通常对应终端的键盘。
(2)、标准输出文件(stdout)。
(3)、标准错误输出文件(stderr)。
(2)和(3)这两个文件都对应终端的屏幕。
进程将从标准输入文件中得到输入数据。
将正常输出数据输出到标准输出文件[显示器]。
将错误信息送到标准错误文件中[显示器]。
下图所示:
0、1、2表示一个文件描述符
但是,有时候我们不想把一些进程处理后信息输出到显示器。
这时我们就引出了重定向。
改变标准输入/输出的方向
三种重定向:
1、重定向标准输出,包括两种。
(1)、>(覆盖),等价1>
将命令执行的结果输出到指定文件,非显示器。
(2) 、>>(追加),等价1>>
将命令执行的结果追加到指定文件,非显示器。
2、 重定向标准输入,包括两种。
(1) 、<
将命令中接收的输入途径,由键盘改为指定文件。
(2) 、<<[Here Document]
命令序列传递到一个交互程序或者命令中。
3、 重定向标准错误,包括两种。
(1) 、2>(覆盖)
将命令执行的结果输出到指定文件。
(2) 、2>>(追加)
将命令执行的结果追加到指定文件。
1、重定向标准输出和重定向标准错误到同一个文件中
有以下的几种方式
(1) 、2>&1
(2) 、>&
(3) 、&>
2、 两个特殊文件
(1) 、/dev/nul
过滤标准错误信息
意思就是不想显示结果就输出到这里面。
(2) 、/dev/zero
创建指定长度的文件
案例1:
测试> and >>
案例2:
测试< and <<
测试<
测试<<
案例3:
测试2> and 2>>
案例4:
测试重定向标准输出和重定向标准错误到同一个文件中
(1)、>&
(2)、&>
与上面的案例类似,不做解释
(3) 、2>&1
案例5:
使用/dev/nul文件
有时候我们使用命令,不想将输出的信息显示到界面
这时我们可以使用 &> /dev/nul[常用]
简单测试修改demo 用户密码
❹ linux中的标准输入输出
linux中的打印意思是显示在什么地方,一般使用 echo ,print 都可以如果是输出到打印机, linux打印是由一个打印服务来完成打印的。你可以把打印任务添加到
❺ linux 输入重定向符是()。
标准输入:stdin,文件描述符版为权0
标准输出:stdout,文件描述符为1
标准错误:stderr,文件描述符为2
输入重定向符<
从标准输入重定向到其它地方,例如文件。这个重定向意思就是改变输入源,不从键盘上读取输入,而从文件或者其它地方读取。
例子: