当前位置

5.3.10 管道和重定向

主标签

[b]5.3.10 管道和重定向[/b]

管道和重定向是字符操作模式下特殊命令的使用方法。使用它组合常用命令可以大大方便用户,并提供很多强大的功能。

[b]1、重导向标准输出 ">" [/b]

使用 ">"可以使Shell(终端)改变它所认定的标准输出,或者改变标准输出的目标。

把>符号放在cat命令或在使用任何写入标准输出的工具程序和应用程序之后,会把它的输出重导向到跟在>符号之后的文件中。

[b]为了更好地理解这个">"的使用,我们来实践下面的例子。[/b]

(1)我们准备创建一个文件,内容如下。

[i]
rpm最常用的命有:
1、安装软件,执行rpm -ivh rpm包名

#rpm -ivh software-1.2.3-1.i386.rpm 

2、升级软件:执行rpm -Uvh rpm包名

#rpm -Uvh software-1.2.3-1.i386.rpm

3、卸载软件:执行rpm -e rpm包名

#rpm -e software-1.2.3-1.i386.rpm

4、强行安装软件:执行rpm -ivh rpm包名 --force

#rpm -ivh software-1.2.3-1.i386.rpm --force

5、查询软件包在系统中的注册名称

#rpm -qa |grep software

6、查询软件包的详细信息:执行rpm -qpi rpm包名

#rpm -qpi software-1.2.3-1.i386.rpm

7、查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名

#rpm -qf software-1.2.3-1.i386.rpm

8、查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名

#rpm -qpl software-1.2.3-1.i386.rpm[/i]

在shell里输入:
#cat > file1.txt

[i]按回车键后,shell会把你带到下一个空白行,在空白行输入以下内容。(每输入一行就回车一次)。[/i]

rpm最常用的命有:
1、安装软件,执行rpm -ivh rpm包名

#rpm -ivh software-1.2.3-1.i386.rpm 

2、升级软件:执行rpm -Uvh rpm包名

#rpm -Uvh software-1.2.3-1.i386.rpm

3、卸载软件:执行rpm -e rpm包名

#rpm -e software-1.2.3-1.i386.rpm

输完后,按回车键到一个空白行,然后使用Crtl+D 键退出cat命令。这样就建立了第一个文件file1.txt,里面的内容就是刚才输入的。可能#cat file1.txt 来验证。

用同样的方法建立第二个文件file2.txt,内容为:


4、强行安装软件:执行rpm -ivh rpm包名 --force

#rpm -ivh software-1.2.3-1.i386.rpm --force

5、查询软件包在系统中的注册名称

#rpm -qa |grep software

6、查询软件包的详细信息:执行rpm -qpi rpm包名

#rpm -qpi software-1.2.3-1.i386.rpm

7、查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名

#rpm -qf software-1.2.3-1.i386.rpm

8、查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名

#rpm -qpl software-1.2.3-1.i386.rpm



现在我们把file1.txt和file2.txt合并为成上面我们想建立的文件file.txt。命令如下:

#cat file1.txt file2.txt >file.txt

现在用#cat file.txt看看,是不是成功了。

[color=red]注:1、这例子要输入这么多,主要是让读者学会这个知识点的同时学好rpm安装软件的方法。

2、在用输出重导向入文件时,要谨慎从事,因为只要重导向的文件名与原来就有的文件同名,就会把原文件的内容覆盖。
[/color]



[b]2、后补重导向 ">>"[/b]

你可以使用输出重导向在一个现在文件之后添加新的信息。当你使用>>时,你是在添加信息,不是替换文件内容。

如下面中,如果我们不想单独再建立一个文件file.txt.而是把file2.txt的内容直接添加到file1.txt后面,使之形成我们想建立的文件。可能下面的命令。

#cat file2.txt>>file1.txt

现在我们#cat file1.txt,看是不是与上面的file.txt内容一样。没错,还真是一样。



[b]3、重导向标准输入 "
当你使用重导向标准输入
我们来用上面建立的文件file.txt来试试看。命令如下:

#cat
怎样,file.txt的内容被cat命令读取并输出到屏幕上了吧!。




[b]4 管道 "|" [/b]

在Linux中,管道连接着一个命令的标准输出和另一个命令的标准输入,使用方法是用符号"|"将两个命令连接起来。

我们还是用例子来学这工具更OK些。好,现在进入/dev目录,用ls命令看看。

#cd /dev

#ls -al

My god,是不是屏幕闪个不停呀,什么也看不清楚,那我们就用"|",结合换页工具less,慢慢看它。命令如下:

#ls -al /dev | less

这回你慢慢看吧,按空格键前翻,按B键后翻页,累了想退出就按Q键。当然你也可以用箭头和page up 及page down来前后移动。

还有一个例子就是使用grep查看某个词的内容。例,我们想看我们上面建立的file.txt文件,里面含有"软件”的地方。可输入以下命令:

#cat file.txt | grep 软件

这样,只要一行里有"软件" 这个词,它都被打印出到屏幕。