版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7-1单元7标准I/O和管道7-1单元7标准I/O和管道17-2目标学习了本单元后,大家应该能够:把I/O频道重导向入文件使用管道连接命令使用for循环来逐项处理一组数值7-2目标学习了本单元后,大家应该能够:2标准管道的输入与输出标准输入stdin默认接受来自键盘的输入标准输出stdout默认输出到终端窗口标准错误输出stderr默认输出到终端窗口Stdin文件描述码0Stdout文件描述码1Stderr文件描述码2标准管道的输入与输出标准输入stdin默认接受来3首先查看std先关的设备文件[root@station20test]#ls-l/dev/std*lrwxrwxrwx.1rootroot15Sep242011/dev/stderr->/proc/self/fd/2lrwxrwxrwx.1rootroot15Sep242011/dev/stdin->/proc/self/fd/0lrwxrwxrwx.1rootroot15Sep242011/dev/stdout->/proc/self/fd/1[root@station20test]#首先查看std先关的设备文件[root@station204下面是一个例子查看标准输出和标准错误输出ls-la/etc/password/etc/passwd上面输出的信息都显示在屏幕上,实际上第一导向标准错误流和第二行导向标准输出下面是一个例子查看标准输出和标准错误输出ls-la/et57-6把输出重新导向到文件STDOUT和STDERR可以被重导向到文件:命令操作符号文件名支持的操作符号包括:1>把STDOUT重导向到文件(1>)2>把STDERR重导向到文件&>把所有(标准输出和标准错误输出)输出重导向到文件文件内容被默认覆盖。>>会后补。7-6把输出重新导向到文件STDOUT和STDERR可以被重6常见的重定向操作符命令>文件-把命令标准输出重定向文件命令>>文件-把命令标准输出追加到文件最后命令<文件–把文件作为输入发送给命令命令2>文件-把命令中错误的输出重定向到文件命令2>>把命令的错误输出追加到文件最后常见的重定向操作符命令>文件-把命令标准输出重定向文77-8把输出重新导向到文件
例子当使用非根用户身份运行时,该命令会同时生出输出和错误:$
find
/etc
-name
passwd
可以使用操作符号来保存输出和错误:$
find
/etc
-name
passwd
>
find.out$
find
/etc
-name
passwd
2>
/dev/null$
find
/etc
-name
passwd
>
find.out
2>
find.err
下一张幻灯片会显示结果7-8把输出重新导向到文件
例子当使用非根用户身份运行时,该8这个是标准输出流,只输出正确的结果下面就是将错误消息导入到/dev/null(黑洞),只显示标准输出这个是标准输出流,只输出正确的结果9下面就是将标准输出导出到find.out,错误的导出到find.err.下面就是将标准输出导出到find.out,错误的导出到fin10这个例子就是把文件作为输入发送给cat命令#cat<find.out这个例子就是把文件作为输入发送给cat命令117-12把STDOUT重导向给程序
(管道输入)管道(|符号)可以用来连接命令:命令1|命令2把命令1的STDOUT发送给命令2的STDINSTDERR不能通过管道转发用来组合多种工具的功能命令1|命令2|命令3……等等7-12把STDOUT重导向给程序
(管道输入)管道(|符号12下面把stdout重导向给程序例子#ls–C|tr‘a-z’‘A-Z’将文件名的都转换成为大写-C表示显示目录下面把stdout重导向给程序例子#ls–C|tr‘a137-14
less:一页一页地查看输入:$
ls
-l
/etc
|
less
输入可以使用/来搜索mail:通过电子邮件发送输入:
$
echo
"test
email"
|
-s
"test"
user@
lpr:把输入发送给打印机$
echo
"test
print"
|
lpr$
echo
"test
print"
|
lpr
-P
printer_name
7-14
less:一页一页地查看输入:14下面就是发送给本地打印机的例子下面就是发送给本地打印机的例子157-16组合输出和错误某些操作符号使STDOUT和STDERR都受影响&>:重导向所有输出:$
find
/etc
-name
passwd
&>
find.all
2>&1:把STDERR重导向给STDOUT要通过管道来发送所有输出时有用$
find
/etc
-name
passwd
2>&1
|
less
():合并多个程序的STDOUT$
(
cal
2007
;
cal
2008
)
|
less(现场演示)7-16组合输出和错误某些操作符号使STDOUT和STDER16下面就是上面的例子运行结果截图下面就是上面的例子运行结果截图17[经管营销]RHCE-7管道课件187-19重导向到多个目标(tee)$命令1|tee文件名|命令2把命令1的STDOUT保存在文件名中,然后管道输入给命令2使用:复杂管道的故障排除同时查看和记录输出7-19重导向到多个目标(tee)$命令1|tee文19下面就是一个重定向到夺目标的例子[student@station20~]$ls-lR/etc/|teestage1.out|sort|teestage2.out|uniq-c|teestage3.out|sort-r|teestage4.out下面就是一个重定向到夺目标的例子[student@stati207-21从文件中导入STDIN使用<来重导向标准输入某些命令能够接受从文件中导入的STDIN:$
tr
'A-Z'
'a-z'
<
.bash_profile
该命令会把.bash_profile中的大写字符都转换成小写字符相当于:$
cat
.bash_profile
|
tr
'A-Z'
'a-z'
7-21从文件中导入STDIN使用<来重导向标准输入217-22把多行发送给STDIN使用<<终止单词
命令:从键盘把多行重导向给STDIN直到终止单词
为止的所有文本都被发送给STDIN有时被称为就地文本(heretext)7-22把多行发送给STDIN使用<<终止单词命令:从键22下面是我的测试例子下面是我的测试例子237-24脚本:for循环对一组值中的每个成员执行行动例如:7-24脚本:for循环对一组值中的每个成员执行行动24运行结果如下[root@station20home]#forNAMEinbossbilloracledoADDRESS="$NAME@"Message="projectsareduetoday“echo$Message|mail-sreminder$ADDRESSdoneYouhavenewmailin/var/spool/mail/root运行结果如下[root@station20home]#f257-26脚本:for循环
继续也可以使用命令输出和文件列表:fornumin$(seq110)把从1到10的数字分配给变量$numseqXY会显示X到Y之间的数字forfilein*.txt把通配文本文件的文件名分配给变量$file7-26脚本:for循环
继续也可以使用命令输出和文件列表:26[经管营销]RHCE-7管道课件277-28结束单元7答疑总结标准I/O频道文件重导向标准输入(<)标准输出(>)标准错误(2>)管道会把标准输出重导向到标准输入for循环可以对程序的标准输出中的项目或一个明确列表中的项目执行命令7-28结束单元7答疑28实验例子(5,6)实验例子(5,6)29如果去掉括号的话就会出现如下结果Date会作为标准输出显示在屏幕邮件中的内容开头就没有了时间如果去掉括号的话就会出现如下结果30测试网络中计算机的网络连通性脚本[root@station20test]#vimalive.sh#!/bin/bashfornin{1..20};dohosts=192.168.25.$nping-c2$hosts&>/dev/nullif[$?==0];thenecho"$hostsisup"elseecho"$hostsisdown"fidone测试网络中计算机的网络连通性脚本[root@station2317-32单元7标准I/O和管道7-1单元7标准I/O和管道327-33目标学习了本单元后,大家应该能够:把I/O频道重导向入文件使用管道连接命令使用for循环来逐项处理一组数值7-2目标学习了本单元后,大家应该能够:33标准管道的输入与输出标准输入stdin默认接受来自键盘的输入标准输出stdout默认输出到终端窗口标准错误输出stderr默认输出到终端窗口Stdin文件描述码0Stdout文件描述码1Stderr文件描述码2标准管道的输入与输出标准输入stdin默认接受来34首先查看std先关的设备文件[root@station20test]#ls-l/dev/std*lrwxrwxrwx.1rootroot15Sep242011/dev/stderr->/proc/self/fd/2lrwxrwxrwx.1rootroot15Sep242011/dev/stdin->/proc/self/fd/0lrwxrwxrwx.1rootroot15Sep242011/dev/stdout->/proc/self/fd/1[root@station20test]#首先查看std先关的设备文件[root@station2035下面是一个例子查看标准输出和标准错误输出ls-la/etc/password/etc/passwd上面输出的信息都显示在屏幕上,实际上第一导向标准错误流和第二行导向标准输出下面是一个例子查看标准输出和标准错误输出ls-la/et367-37把输出重新导向到文件STDOUT和STDERR可以被重导向到文件:命令操作符号文件名支持的操作符号包括:1>把STDOUT重导向到文件(1>)2>把STDERR重导向到文件&>把所有(标准输出和标准错误输出)输出重导向到文件文件内容被默认覆盖。>>会后补。7-6把输出重新导向到文件STDOUT和STDERR可以被重37常见的重定向操作符命令>文件-把命令标准输出重定向文件命令>>文件-把命令标准输出追加到文件最后命令<文件–把文件作为输入发送给命令命令2>文件-把命令中错误的输出重定向到文件命令2>>把命令的错误输出追加到文件最后常见的重定向操作符命令>文件-把命令标准输出重定向文387-39把输出重新导向到文件
例子当使用非根用户身份运行时,该命令会同时生出输出和错误:$
find
/etc
-name
passwd
可以使用操作符号来保存输出和错误:$
find
/etc
-name
passwd
>
find.out$
find
/etc
-name
passwd
2>
/dev/null$
find
/etc
-name
passwd
>
find.out
2>
find.err
下一张幻灯片会显示结果7-8把输出重新导向到文件
例子当使用非根用户身份运行时,该39这个是标准输出流,只输出正确的结果下面就是将错误消息导入到/dev/null(黑洞),只显示标准输出这个是标准输出流,只输出正确的结果40下面就是将标准输出导出到find.out,错误的导出到find.err.下面就是将标准输出导出到find.out,错误的导出到fin41这个例子就是把文件作为输入发送给cat命令#cat<find.out这个例子就是把文件作为输入发送给cat命令427-43把STDOUT重导向给程序
(管道输入)管道(|符号)可以用来连接命令:命令1|命令2把命令1的STDOUT发送给命令2的STDINSTDERR不能通过管道转发用来组合多种工具的功能命令1|命令2|命令3……等等7-12把STDOUT重导向给程序
(管道输入)管道(|符号43下面把stdout重导向给程序例子#ls–C|tr‘a-z’‘A-Z’将文件名的都转换成为大写-C表示显示目录下面把stdout重导向给程序例子#ls–C|tr‘a447-45
less:一页一页地查看输入:$
ls
-l
/etc
|
less
输入可以使用/来搜索mail:通过电子邮件发送输入:
$
echo
"test
email"
|
-s
"test"
user@
lpr:把输入发送给打印机$
echo
"test
print"
|
lpr$
echo
"test
print"
|
lpr
-P
printer_name
7-14
less:一页一页地查看输入:45下面就是发送给本地打印机的例子下面就是发送给本地打印机的例子467-47组合输出和错误某些操作符号使STDOUT和STDERR都受影响&>:重导向所有输出:$
find
/etc
-name
passwd
&>
find.all
2>&1:把STDERR重导向给STDOUT要通过管道来发送所有输出时有用$
find
/etc
-name
passwd
2>&1
|
less
():合并多个程序的STDOUT$
(
cal
2007
;
cal
2008
)
|
less(现场演示)7-16组合输出和错误某些操作符号使STDOUT和STDER47下面就是上面的例子运行结果截图下面就是上面的例子运行结果截图48[经管营销]RHCE-7管道课件497-50重导向到多个目标(tee)$命令1|tee文件名|命令2把命令1的STDOUT保存在文件名中,然后管道输入给命令2使用:复杂管道的故障排除同时查看和记录输出7-19重导向到多个目标(tee)$命令1|tee文50下面就是一个重定向到夺目标的例子[student@station20~]$ls-lR/etc/|teestage1.out|sort|teestage2.out|uniq-c|teestage3.out|sort-r|teestage4.out下面就是一个重定向到夺目标的例子[student@stati517-52从文件中导入STDIN使用<来重导向标准输入某些命令能够接受从文件中导入的STDIN:$
tr
'A-Z'
'a-z'
<
.bash_profile
该命令会把.bash_profile中的大写字符都转换成小写字符相当于:$
cat
.bash_profile
|
tr
'A-Z'
'a-z'
7-21从文件中导入STDIN使用<来重导向标准输入527-53把多行发送给STDIN使用<<终止单词
命令:从键盘把多行重导向给STDIN直到终止单词
为止的所有文本都被发送给STDIN有时被称为就地文本(heretext)7-22把多行发送给STDIN使用<<终止单词命令:从键53下面是我的测试例子下面是我的测试例子547-55脚本:for循环对一组值中的每个成员执行行动例如:7-24脚本:for循环对一组值中的每个成员执行行动55运行结果如下[root@station20home]#forNAMEinbossbilloracledoADDRESS="$NAME@"Mes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030星球探测空间科技行业市场现状供需分析及投资评估规划研究报告
- 2025-2030新资源食品申报流程与技术壁垒突破研究
- 2025-2030新西兰肉类加工出口行业市场发展前景分析及食品投资配置管理方案
- 2025-2030新西兰林业制造业产业现状供需平衡分析及投资布局规划研究报告
- 2026校招:广东粤科金融集团试题及答案
- 2026校招:儿童编程教育题库及答案
- 2026届宁夏石嘴山市三中高三4月综合测试物理试题理试题含解析
- 上海市交大附中2026年高中毕业班第一次诊断性检测试题生物试题试卷含解析
- 2026届广西钦州港经济技术开发区中学高三下学期第二次调研考试物理试题含解析
- 2025-2026学年四川省凉山彝族自治州高三下学期期中(第三次月考)考试物理试题含解析
- 企业销售团队绩效考核标准及方案
- 山东省潍坊市2025届高三高考模拟考试物理试题及答案
- 短暂性脑缺血发作课件
- DBJ51T 181-2021 地下工程水泥基渗透结晶型防水材料应用技术标准
- 造价咨询成果文件审核表-模板
- 奔腾B30EV汽车说明书
- 新教材北师大版高中英语必修第二册全册重点单词短语句型归纳总结
- 《功能材料制备与成形》全书教学课件
- 家装工程施工工艺流程
- m5水泥砂浆配合比计算书
评论
0/150
提交评论