当前位置: 主页 > Linux安装教程 > 系统设置 >

Linux shell编程 12 shell输入输出之 cat、管道、tee

时间:2018-01-11 16:19来源:未知 作者:Linux先生 举报 点击:
cat是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示控制字符。

  c a t是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示控制字符。在使用 c a t命令时要注意,它不会在文件分页符处停下来;它会一下显示完整个文件。如果希望每次显示一页,可以使用 m o r e命令或把c a t命令的输出通过管道传递到另外一个具有分页功能的命令中,请看下面的例子:

  
  $ cat myfile | more 或 $ cat myfile | pg
  
  c a t命令的一般形式为:
  
  cat [options] filename1 ... filename2 ...
  
  c a t命令最有用的选项就是:
  
  -v 显示控制字符
  
  如果希望显示名为m y f i l e的文件,可以用:
  
  $ cat myfile
  
  如果希望显示m y f i l e 1、 m y f i l e 2、 m y f i l e 3这三个文件,可以用:
  
  $ cat myfile1 myfile2 myfile3
  
  如果希望创建一个名为 b i g f i l e的文件,该文件包含上述三个文件的内容,可以把上面命令的输出重定向到新文件中:
  
  $ cat myfile1 myfile2 myfile3 > bigfile
  
  如果希望创建一个新文件,并向其中输入一些内容,只需使用 c a t命令把标准输出重定向到该文件中,这时 c a t命令的输入是标准输入 — 键盘,你输入一些文字,输入完毕后按< C T R L - D >结束输入。这真是一个非常简单的文字编辑器!
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  还可以使用c a t命令来显示控制字符。这里有一个对从 D O S机器上f t p过来的文件进行检察的例子,在这个例子中,所有的控制字符 < C T R L - M >都在行末显示了出来。
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  有一点要提醒的是,如果在敲入了 c a t以后就直接按回车,该命令会等你输入字符。如果你本来就是要输入一些字符,那么它除了会在你输入时在屏幕上显示以外,还会再回显这些内容;最后按< C T R L - D >结束输入即可。
  
  5.4 管道
  
  可以通过管道把一个命令的输出传递给另一个命令作为输入。管道用竖杠 |表示。它的一般形式为:
  
  命令1 |命令2
  
  其中|是管道符号。
  
  在下面的例子中,在当前目录中执行文件列表操作,如果没有管道的话,所有文件就会显示出来。当 s h e l l看到管道符号以后,就会把所有列出的文件交给管道右边的命令,因此管道的含义正如它的名字所暗示的那样:把信息从一端传送到另外一端。在这个例子中,接下来g r e p命令在文件列表中搜索 q u a r t e r 1 . d o c:
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  s e d、 a w k和g r e p都很适合用管道,特别是在简单的一行命令中。在下面的例子中, w h o命令的输出通过管道传递给 a w k命令,以便只显示用户名和所在的终端。
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  如果你希望列出系统中所有的文件系统,可以使用管道把 d f命令的输出传递给 a w k命令,a w k显示出其中的第一列。你还可以再次使用管道把 a w k的结果传递给 g r e p命令,去掉最上面的题头f i l e s y s t e m。
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  当然,你没准还会希望只显示出其中的分区名,不显示 / d e v /部分,这没问题;我们只要在后面简单地加上另一个管道符号和相应的 s e d命令即可。
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  5.5 tee
  
  t e e命令作用可以用字母 T来形象地表示。它把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命令再合适不过了。
  
  它的一般形式为:
  
  tee -a files
  
  其中, - a表示追加到文件末尾。
  
  当执行某些命令或脚本时,如果希望把输出保存下来, t e e命令非常方便。
  
  下面我们来看一个例子,我们使用 w h o命令,结果输出到屏幕上,同时保存在 w h o . o u t文件中:
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  在下面的例子中,我们把一些文件备份到磁带上,同时将所备份的文件记录在 t a p e . l o g文件中。由于需要不断地对文件进行备份,为了保留上一次的日志,我们在 t e e命令中使用了 - a选项。
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  在上面的例子中,第一行末尾的反斜杠 告诉s h e l l该命令尚未结束,应从下面一行继续读入该命令。
  
  可以在执行脚本之前,使用一个 e c h o命令告诉用户谁在执行这个脚本,输出结果保存在什么地方。
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee
  
  如果不想把输出重定向到文件中,可以不这样做,而是把它定向到某个终端上。在下面的例子中,一个警告被发送到系统控制台上,表明一个磁盘清理进程即将运行。
  
  $ echo "stand-by disk cleanup starting in 1 minute"| tee /dev/console可以让不同的命令使用同一个日志文件,不过不要忘记使用 - a选项。
  
  Linux shell编程 12 shell输入输出之 cat、管道、tee

推荐内容