像/dev/null一样, /dev/zero也是一个伪文件, 但它实际上产生连续不断的null的流(二进制的零流,而不是ASCII型的)。 写入它的输出会丢失不见, 而从/dev/zero读出一连串的null也比较困难, 虽然这也能通过od或一个十六进制编辑器来做到。
/dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件。
(1)舍弃标准输出,将错误输出到log文件中
nohup node bin/www >/dev/null 2>log &
(2)如果错误信息也不想要的话:
nohup node bin/www >/dev/null 2>&1 &
注:其中node bin/www是项目node启动
https://blog.csdn.net/wufaliang003/article/details/80275055
https://www.cnblogs.com/yanzibuaa/p/7808437.html
https://blog.csdn.net/u014284252/article/details/51784217
https://www.cnblogs.com/kcxg/p/11076461.html
https://blog.51cto.com/ibmcn/2348741
https://msd.misuland.com/pd/3255817963235708312
https://blog.csdn.net/cristik/article/details/82785847
linux shell下常用输入输出 *** 作符是:1. 标准输入 (stdin) :代码为 0 ,使用 <或 <<; /dev/stdin ->/proc/self/fd/0 0代表:/dev/stdin
2. 标准输出 (stdout):代码为 1 ,使用 >或 >>; /dev/stdout ->/proc/self/fd/1 1代表:/dev/stdout
3. 标准错误输出(stderr):代码为 2 ,使用 2>或 2>>; /dev/stderr ->/proc/self/fd/2 2代表:/dev/stderr
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 标准输出和标准错误 都导向到系统‘黑洞’,不会再屏幕上显示什麼
, 明白了吧? 呵呵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)