欢迎来到天天文库
浏览记录
ID:12671263
大小:26.30 KB
页数:0页
时间:2018-07-18
《数据流重定向与管道命令》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、数据流重定向数据流重定向就是将某个命令执行后应该要出现在屏幕上的数据传输到其他的地方,例如文件或者是设备(例如打印机之类的)。1、standardoutput与standarderroroutput(标准输出与标准错误输出)。(1)标准输出指的是命令执行所回传的正确的信息,而标准错误输出可理解为命令执行失败后,所回传的错误信息。(2)数据流重定向可以将standardoutput(简称stdout)与standarderroroutput(简称stderr)分别传送到其他的文件或者设备,而分别传送到
2、所用的特殊字符则如下所示:--标准输入(stdin):代码为0,使用<或<<;--标准输出(stdout):代码为1,使用>或>>;--标准错误输出(stderr):代码为2,使用2>或2>>范例:ll/>~/rootfileß-----屏幕并无任何信息,因为所显示的数据(根目录下的信息)已经被重新导向到~/rootfile文件中了(同时,若rootfile文件不存在,系统会自动创建它;若存在,则系统就会先将这个文件内容清空,然后将数据写入)cat~/rootfileß------查看数据ll/home
3、>~/rootfileß----rootfile文件的内容被/home里面的内容覆盖了ll/home>>~/rootfileß----把/home里的内容追加到rootfile文件中(若文件不存在,系统会自动创建文件)(3)标准错误输出(stderr)也是一样的道理:范例:find/home–name.bashrcß----当用一般用户的身份执行时,由于权限的问题可能会产生一些错误信息.如:find:/home/lost+found:Permissiondeniedß----Standarderrorf
4、ind:/home/alex:Permissiondeniedß----Standarderrorfind:/home/arod:Permissiondeniedß----Standarderror/home/dmtsai/.bashrcß----Standardoutputfind/home–name.bashrc>list_right2>list_errorß----屏幕上不会出现任何信息;因为错误信息和正确信息分别存到了list_right和list_error文件中find/home–name.
5、bashrc2>/dev/nullß----/dev/null垃圾桶黑洞设备,可以吃掉任何导向这个设备的信息,即相当于把错误信息忽略掉而不显示或存储,屏幕上只显示stdout信息(特殊写法):find/home–name.bashrc>list2>&1或find/home–name.bashrc&>listß---将正确与与错误数据通通写入同一个文件中2、<与<<(由于加入<、<<在cat后,所以,如果文件不存在都会自动创建)<就是将原来需要由键盘输入的数据改由文件内容来代替。#cat>catfileT
6、estingCatfiletestß---按ctrl+d离开,TestingCatfiletest就写入文件catfile了,用catcatfile可以看到cat>catfile<~/.bashrcß-----把bashrc的内容copy到了catfile文件中cat>catfile<<“eof”thisisatest.OKnowstopeofß----利用<<右侧的控制符,可以终止一次输入,而不必输入ctrl+d来结束.cat>catfile<7、e`ß----当`date`这里用反撇号时,执行catcatfile的时候这行显示的是当前系统时间,相当一个命令eof3、;,&&,8、9、(1)cmd;cmd(不考虑命令相关性的连续命令执行)(2)$?(命令回传码)与&&或10、11、两个命令之间是有相依性而这个相依性主要判断的地方就在于前一个命令执行的结果是否正确(正确回传一个$?=0的值)命令执行情况说明cmd1&&cmd2若cmd1执行完毕且正确执行($?=0),则开始执行cmd2,否则cmd2不执行cmd112、13、cmd2若cmd1执行完毕且正确执行($?=14、0),则cmd2不执行;否则开始执行cmd2ls/tmp/abc&&touch/tmp/abc/heheß----如果/tmp/abc不存在时,touch就不会执行,若存在,那么touch就会开始执行ls/tmp/abc15、16、mkdir/tmp/abc/heheß----如果/tmp/abc不存在时,那么就会执行mkdir,若存在,那么mkdir就不会执行当不清楚/tmp/abc是否存在,但就是要创建/tmp/abc/hehe文件时,可以这样
7、e`ß----当`date`这里用反撇号时,执行catcatfile的时候这行显示的是当前系统时间,相当一个命令eof3、;,&&,
8、
9、(1)cmd;cmd(不考虑命令相关性的连续命令执行)(2)$?(命令回传码)与&&或
10、
11、两个命令之间是有相依性而这个相依性主要判断的地方就在于前一个命令执行的结果是否正确(正确回传一个$?=0的值)命令执行情况说明cmd1&&cmd2若cmd1执行完毕且正确执行($?=0),则开始执行cmd2,否则cmd2不执行cmd1
12、
13、cmd2若cmd1执行完毕且正确执行($?=
14、0),则cmd2不执行;否则开始执行cmd2ls/tmp/abc&&touch/tmp/abc/heheß----如果/tmp/abc不存在时,touch就不会执行,若存在,那么touch就会开始执行ls/tmp/abc
15、
16、mkdir/tmp/abc/heheß----如果/tmp/abc不存在时,那么就会执行mkdir,若存在,那么mkdir就不会执行当不清楚/tmp/abc是否存在,但就是要创建/tmp/abc/hehe文件时,可以这样
此文档下载收益归作者所有