标准输入输出和管道及字符处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

标准输入输出和管道实验

估计时间:20 分钟

目标:熟悉Red Hat Linux 中的标准输入输出和管道

试验的起点:标准的Red Hat Linux

步骤1:标准输入和输出

任务:

1.使用vi编辑器创建两个文件:

packages1.txt 应该包含以下八行:

amanda

galleon

metacity

mozilla

postgresql

procinfo

rpmfind

squid

packages2.txt 应该包含以下6 行

anaconda

openssh

gnome-core

samba

sendmail

xscreensaver

2.cat 工具是最简单的linux 过滤器,它会默认把跟在后面的参数当作文件名,并把这个文件作为输入,如果没有文件名则把标准的输入作为自己的输入,然后将它们发送到标准的输出上去。现在我们来实验一下:

$cat packages1.txt

amanda

galleon

metacity

mozilla

postgresql

procinfo

rpmfind

squid

3.如果cat 后没有参数,则它会等待标准的输入,所以当你输入cat 命令后,再回车,然后什么也没有显示。输入cat后,cat 命令会监视标准输入,等待输入的到达。如果这个时候输入一些文本,再按回车,cat 就会把输入的内容当作自己

的输入,然后输出到标准的输出——显示器上,结束cat 的命令为按下ctrl-d,这是结束输

入的标志。

$ cat

输入一些文字,然后按回车。

^d (就是按ctrl-d)

abcdefg

abcdefg

4.大多数的文本处理命令是执行过滤操作,他们可以读标准输入,对输入做一些动作,然后把结果发送到标准输出去。这些命令就向cat 一样,只是对输入的处理不太一样。

tr 命令,也是过滤器命令,如果给tr 后加两个字符串做为参数,它会读取标准输入,然后把输入中包含着前一个字符串的字符变成第二个字符串,然后输出到标准输出去。

把刚才的命令换成tr,tr 将把字符串中有的字符变成大写的。

$ tr 'aeiou' 'AEIOU'

输入一些文字,然后按回车。

^d

abc

Abc

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*

amanda

galleon

metacity

mozilla

postgresql

procinfo

rpmfind

squid

-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.catfile

amanda

galleon

metacity

mozilla

postgresql

procinfo

rpmfind

squid

anaconda

openssh

gnome-core

samba

sendmail

xscreensaver

7.如果输出重定向时cat 没有直接跟文件名的参数,那么cat 就会等待标准的输入,直到按下ctrl-d 作为结束,然后把

所有输入的东西重定向到这个文件中去。这样可以很容易的创建一个文本文件,

$ cat > typedin.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.

^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.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.

^d

相关文档
最新文档