18_LINUX操作系统基础_数据流重导向

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ITEducation&TrainingDate:23January2020计算机系罗海波luo-hb@neusoft.com第17讲数据流重导向ITEducation&TrainingDate:23January2020上讲内容1、掌握命令别名2、掌握历史命令3、了解登录消息显示数据4、了解环境设置文件5、熟悉终端的环境设置6、熟悉通配符与特殊符号ITEducation&TrainingDate:23January2020复习如何将历史操作命令,写入文件/tmp/his_test中。1分一般情况下,登录消息存在哪些文件中?1分如何让配置文件生效的方式?1分ITEducation&TrainingDate:23January2020#history-w/tmp/his_test/etc/issue/ect/motd第一种,先logout,再重新login,到bash内。第二种,用命令读到shell环境#sourcefile或.fileITEducation&TrainingDate:23January2020复习2只要文件名里含有至少一个小写字母时,就可以将文件复制到/tmp。1分要找出/etc下所有不含数字的文件1分ITEducation&TrainingDate:23January2020cp*[a-z]*/tmpls–al/etc/*[!0-9]*ITEducation&TrainingDate:23January2020本讲内容1、数据流重导向★1.1、传送命令★1.2、重导向命令格式★1.3、标准输出与标准错误输出分流★1.4、标准输入2、命令执行的判断依据ITEducation&TrainingDate:23January20201、数据流重导向数据流重导向(redirect)就是将某个命令执行后应该要出现在屏幕上的数据,传输到其他地方,例如文件或设备(如打印机)。简单理解:数据传到其他地方。ITEducation&TrainingDate:23January2020标准输入标准输出标准错误命令文件/设备文件/设备文件ITEducation&TrainingDate:23January2020执行命令的过程,可能会读入数据,经过处理后,再将数据输出到屏幕。标准错误和标准输出分别表示标准错误输出和标准输出,默认情况下是输出到屏幕上的。ITEducation&TrainingDate:23January20201.1、传送命令标准输入(stdin):代码为0,使用或标准输出(stdout):代码为1,使用或标准错误输出(stderr):代码为2,使用2或2ITEducation&TrainingDate:23January2020练习将根目录下的所有目录都记录到~/rootfile文件中,也即将ls–l/的结构记录下来。#ls–l/~/rootfile以上的过程不会显示在屏幕上,但可以用cat~/rootfile看到ITEducation&TrainingDate:23January2020那么重导向的过程应该是:第一,该文件(上例是~/rootfile)若不存在,系统将自动建立。第二,使用(单个)时,当文件存在,系统将先清空这个文件的内容,然后写入数据。ITEducation&TrainingDate:23January2020第三,使用(双个)时,当文件存在,则会在该文件的最下方累加数据。ITEducation&TrainingDate:23January20201.2、重导向命令格式命令或122设备或文件ITEducation&TrainingDate:23January2020练习将当前目录下的文件信息全部存储到list.txt文件中[root@lhb~]#ls–allist.txt将根目录下的数据也存储到list.txt文件中root@lhb~]#ls–al/list.txtITEducation&TrainingDate:23January20201.3、标准输出与标准错误输出分流标准输出与标准错误输出的符号是有区别的,标准输出有或标准错误输出有2或2,因此可将它们存储到不同文件中。ITEducation&TrainingDate:23January2020练习首先,在root用户操作[root@lhb~]#cd/home[root@lhbhome]#mkdirroot[root@lhbhome]#chmod744root(设定进入文件权限)[root@lhbhome]#cd/home/root[root@lhb/home/root]#touchtestingITEducation&TrainingDate:23January2020然后,切换到普通用户[lhb@lhb~]$find/home/root-nametestingfind:/home/root:权限不够[lhb@lhb~]$cd/home[lhb@lhb/home]$mkdirlhb[lhb@lhb/home]$cdlhb[lhb@lhb/home/lhb]$touchtesting[lhb@lhb~]$find/home-nametestinglist_right2list_error(分别存储)ITEducation&TrainingDate:23January2020查看分别存储的结果[lhb@lhb~]$catlist_errorfind:/home/root:权限不够[lhb@lhb~]$catlist_right/home/lhb/testing/home/testingITEducation&TrainingDate:23January2020如果想将标准输出和标准错误输出的信息保存到同一文件。[lhb@lhb~]$find/home-nametestinglist2&1(统一存储)[lhb@lhb~]$catlistITEducation&TrainingDate:23January2020如果只想保存标准输出,而丢弃标准错误输出的信息。[lhb@lhb~]$find/home-nametestinglist_right2/dev/nullITEducation&TrainingDate:23January20201.4标准输入这个符号想必大家都比较清楚了。最简单的理解就是:将原本需要由键盘输入的数据,通过文件来读入。ITEducation&TrainingDate:23January2020练习[lhb@lhb~]$catcatfiletestingcatfiletest(用ctrl+d结束输入)[lhb@lhb~]$catcatfiletestingcatfiletest[lhb@lhb~]$ITEducation&TrainingDate:23January2020上面输入内容也可以用已经编辑好的文件代替。[lhb@lhb~]$visomefilethisistestjustsomefile.保存后,继续往下做。ITEducation&TrainingDate:23January2020[lhb@lhb~]$catcatfilesomefile(代替键盘输入)[lhb@lhb~]$catcatfilethisistestjustsomefile.ITEducation&TrainingDate:23January2020这个符号的意思是:结束的输入字符。[lhb@lhb~]$catcatfileeofjusttesteof[lhb@lhb~]$catcatfilejusttestITEducation&TrainingDate:23January2020最后,让我们来总结一下,为什么要使用命令重导向?一、当屏幕输出的信息很重要,需要记录下来。二、后台执行的程序,不想让它干扰屏幕正常的输出结果。ITEducation&TrainingDate:23January2020三、一些错误信息,需要用到“2/dev/null”丢掉。四、错误消息与正确消息需要进行分别输出。ITEducation&TrainingDate:23January20202、命令执行的判断依据一、分号“;”表示依次执行分号前后的命令。[lhb@lhb~]$ls;morelist二、判断符号“&&”。若该/tmp目录存在,就建立文件testagain,若不存在,就不建立。[lhb@lhb~]$ls/tmp&&touch/tmp/testagainITEducation&TrainingDate:23January2020上面测试的时候目录/tmp是存在的,接下来测试不存在的目录/t[lhb@lhb~]$ls/t&&touch/t/testagainls:/t:没有那个文件或目录ITEducation&TrainingDate:23January2020三、判断符号“||”若该/tmp/testpd文件不存在,则建立。[lhb@lhb~]$ls/tmp/testpd||touch/tmp/testpdls:/tmp/testpd:没有那个文件或目录[lhb@lhb~]$ls/tmp/testpd/tmp/testpdITEducation&TrainingDate:23January2020复合练习用ls测试/tmp/testfh是否存在,若存在,则显示“exist”,若不存在,则显示“notexist”。ITEducation&TrainingDate:23January2020[lhb@lhb~]$ls/tmp/testfh&&echoexist||echonotexistls:/tmp/testfh:没有那个文件或目录notexistITEducation&TrainingDate:23January2020做一个反逻辑测试[lhb@lhb~]$ls/tmp/testfh||echoexist&&echonotexistls:/tmp/testfh:没有那个文件或目录existnotexistITEducation&TrainingDate:23January2020Thankyou!谢谢!

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功