




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
标准输入输出和管道实验估计时间: 20 分钟目标: 熟悉 Red Hat Linux 中的标准输入输出和管道试验的起点: 标准的 Red Hat Linux步骤 1:标准输入和输出任务:1 使用vi编辑器创建两个文件:packages1.txt 应该包含以下八行:amandagalleonmetacitymozillapostgresqlprocinforpmfindsquidpackages2.txt 应该包含以下 6 行anacondaopensshgnome-coresambasendmailxscreensaver2 cat 工具是最简单的 linux 过滤器,它会默认把跟在后面的参数当作文件名,并把这个文件作为输入,如果没有文件名则把标准的输入作为自己的输入,然后将它们发送到标准的输出上去。现在我们来实验一下:$cat packages1.txtamandagalleonmetacitymozillapostgresqlprocinforpmfindsquid 3 如果 cat 后没有参数,则它会等待标准的输入,所以当你输入 cat 命令后,再回车,然后什么也没有显示。输入 cat后,cat 命令会监视标准输入,等待输入的到达。如果这个时候输入一些文本,再按回车,cat 就会把输入的内容当作自己的输入,然后输出到标准的输出显示器上,结束 cat 的命令为按下 ctrl-d,这是结束输入的标志。$ cat输入一些文字,然后按回车。d (就是按 ctrl-d)abcdefgabcdefg 4 大多数的文本处理命令是执行过滤操作,他们可以读标准输入,对输入做一些动作,然后把结果发送到标准输出去。这些命令就向 cat 一样,只是对输入的处理不太一样。tr 命令,也是过滤器命令,如果给 tr 后加两个字符串做为参数,它会读取标准输入,然后把输入中包含着前一个字符串的字符变成第二个字符串,然后输出到标准输出去。 把刚才的命令换成 tr,tr 将把字符串中有的字符变成大写的。$ tr aeiou AEIOU输入一些文字,然后按回车。dabcAbc 5 定义 shell 不要把命令的输出发到标准输出上,而是重定向到一个文件中,我们使用 来重定向重复 cat 的例子重定向标准的输出到 packages1.catfile,这样把输出到屏幕的东西输出到了文件中,效果就和重新copy了一份文件是一样的,cat 这个输出文件,然后用 diff 和 ls 确认原文件与 package1.catfile 内容一样。$ cat packages1.txt packages1.catfile$ cat packages1.catfile$ diff packages1.txt packages1.catfile$ ls l packages1*amandagalleonmetacitymozillapostgresqlprocinforpmfindsquid-rw-r-r- 1 root root 67 Oct 26 17:16 packages1.catfile -rw-r-r- 1 root root 67 Oct 26 17:13 packages1.text-rw-r-r- 1 root root 67 Oct 26 17:14 packages1.txt 6 使用来重定向会把输出附加到已存在的文件的末尾。把 packages2.txt 文件中的内容附加到 packages1.catfile 之后,然后检验结果。$ cat packages2.txt packages1.catfile$ cat packages1.catfileamandagalleonmetacitymozillapostgresqlprocinforpmfindsquidanacondaopensshgnome-coresambasendmailxscreensaver 7 如果输出重定向时 cat 没有直接跟文件名的参数,那么 cat 就会等待标准的输入,直到按下 ctrl-d 作为结束,然后把所有输入的东西重定向到这个文件中去。这样可以很容易的创建一个文本文件,$ cat typedin.txtThis time, when text is typed at the keyboard,It is not echoed back to the screen.Instead, it is redirected to the file typedin.txt.d$ ls l typedin.txt$ cat typedin.txt-rw-r-r- 1 root root 131 Oct 26 17:28 typedin.txt Instead, it is redirected to the file typedin.txt. 8 使用 tr 取代 cat,重复刚才的命令$ tr aeiou AEIOU trfile.txtThis time, when text is typed at the keyboard,It is not echoed back to the screen.Instead, it is redirected to the file typedin.txt.d $ ls l trfile.txt$ cat trfile.txt -rw-r-r- 1 root root 136 Nov 2 16:10 trfile.txt ThIs timE, whEn tExt Is typEd At thE kEybOArd,It Is nOt EchOEd bAck tO thE scrEEn.InstEAd, It Is rEdIrEctEd tO thE fIlE typEdIn.txt. 9 使用 set o 命令,确认显示出目前 bash 的 noclobber 选项是关闭状态,确认当输出重定时向你可以重写文件$ set o$ ls l /tmp trifle.txt$ ls l trfile.txt$ cat trifle.txt-rw-r-r- 1 root root 341 Nov 2 17:02 trfile.txt total 44drwx- 3 root root 4096 Nov 2 16:04 gconfd-rootdrwx- 2 root root 4096 Nov 2 16:04 keyring-r0lHMJsrwxr-xr-x 1 root root 0 Nov 2 16:04 mapping-rootdrwx- 2 root root 4096 Nov 2 16:05 orbit-rootdrwx- 2 root root 4096 Nov 2 16:04 ssh-RMWQNy3540drwx- 2 root root 4096 Nov 2 16:04 virtual-root.ybelTr 10 使用 set 命令更改 noclobber 选项,如下操作:$ set o noclobber$ echo “new contents” trfile.txtYou have mail in /var/spool/mail/rootbash:trifle.txt:cannot overwrite existing file 11 cat 可以接受一个文件名或者是一个输入重定向的文件,测试以下两个命令:$ cat packages1.txt$ cat packages1.txtamandagalleonmetacitymozillapostgresqlprocinforpmfindsquidamandagalleonmetacitymozillapostgresqlprocinforpmfindsquid 12 但是 tr 不能接受文件名作为参数,它只希望输入是标准输入。$ tr aeiou AEIOU /tmp/ls.txt$ lpr /tmp/ls.txt$ rm /tmp/ls.txt使用管道,这些命令可以仅仅用以下短短的一条命令,将 ls l 的输出直接发送给 lpr 作为输入,lpr 也不需要别的参数。 $ ls l | lpr2 管道经常的用法是一个命令产生了很多页的输出,可以把这些输出直接给 less,管道左边是你的命令,右边是 less,less 不需要参数。(空格键是翻页,q 键是退出 less)$ ls l /usr/bin | less 试验 10字符串处理 估计时间:目标:熟悉字符串处理一个 Red Hat Linux 系统,把/etc/passwd 拷贝到你的主目录下。第一步:字符串处理基本知识任务:我们经常会遇到需要取出分字段的文件的某些特定字段,例如 /etc/password就是通过:分隔各个字段的。可以通过cut命令来实现。例如,我们希望将系统账号名保存到特定的文件,就可以:cut -d: -f 1 /etc/passwd /tmp/users-d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段当然也可以通过cut取得文件中每行中特定的几个字符,例如:cut -c3-5 /etc/passwd就是输出/etc/passwd文件中每行的第三到第五个字符。1.拷贝/etc/passwd 到你的主目录下:写出使用的命令: cut -d: -f 1 /etc/passwd home 列出passwd的头十行的命令是: 列出passwd的尾十行的命令是: 2. 在/etc/passwd 里面有系统里的每一个帐户.使用 wc,在 passwd 文件里计算有多少行。$ wc l passwd在你的系统里有多少个帐户_37_ 3. 找出本机中所有用户使用的各种 shell 并把其放置在一个文件内:$ cut d: -f7 passwd shells写出结果和命令含义:结果:You have new mail in /var/spool/mail/root 命令含义: 找出本机中所有用户使用的各种 shell 并把其放置在一个文件内 4. 使用 cat 命令查看你新的 shells 文件的内容,为了使输出结果更为友好.用 sort 命令输出这些数据在一个新的文件里:$ sort shells sorted.shells 5. 你的文件包含许多同样的内容.使用 uniq 命令可以计算出有多少个相同的行:$ uniq c sorted.shells uniq.sorted.shells14 /bin/bash1 /bin/sync1 /sbin/halt29 /sbin/nologin1 /sbin/shutdown 步骤 2:使用 grep 进行字符处理任务:1. 在 copy 到你主目录中的/etc/passwd 文件的副本中,使用 grep 显示出所有以“g”开头的帐户:gamesgopher gdm2. 显示出所有使用 bash shell 的帐户:$grep bash$ passwd3. 显示出没有使用 bash 作为 shell 的帐户:$ grep v bash$ passwd4. 为了做一个使用 diff 的例子,我们要更改这个 passwd 文件的拷贝,先用 grep 把原文件中所有含有“N”和“P”的行删除:$ g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乳制品产业链整合创新创业项目商业计划书
- 福建省宁德市福鼎市2026届九年级英语第一学期期末调研模拟试题含解析
- 2025至2030全球与中国西服定制服务行业市场调研及市场规模报告
- 培训师课件繁琐
- 2026届上海市建平西学校化学九年级第一学期期中检测模拟试题含解析
- 2025山东核电校园招聘考试模拟试题及答案解析
- 建筑施工防中暑培训课件
- 浙江部分地区2026届九上化学期中监测试题含解析
- 培训师专用课件下载
- 2025-2030肉牛养殖区域集群发展比较优势及产业协同效应分析
- 2025-2026学年人民版小学劳动技术六年级上册教学计划及进度表
- 新学期三年级班主任工作计划(16篇)
- 接种疫苗预防流感课件
- 游戏体验寻规律(教学设计)-2024-2025学年人教版(2024)小学信息技术五年级全一册
- 基于plc的恒压供水控制系统设计
- 环保设备加工处理方案(3篇)
- 《成人重症监护病房口腔护理专家共识》解读课件
- 2025中小学生法制知识竞赛题库及答案
- 恶性间皮瘤护理查房
- 2025新版劳动合同范本
- 喷锚支护施工技术
评论
0/150
提交评论