Linux命令:CAT
使用权限:所有用户(即root帐号和所有普通帐号)使用方法:cat [参数] 文件名
说明:
cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat linuxyw.txt
cat --help可以查看cat帮助信息,如各种参数使用方法,当然也可以用man cat来查看,建议大家养成遇到命令不懂用法时,用--help或man来查看帮助信息,养成好习惯。filename为文件名,即系统中需要查看的文件名字。
与这个命令相似功能的命令有:tac,less,tail,more
参数说明:
-A:--show-all 等价于 -vET
-b:--number-nonblank 对非空输出行编号,即在每行前显示所在行号
-e:等价于 -vE
-E: --show-ends 在每行结束处显示 $
-n:--number 对输出的所有行编号,即在每行前显示所在行号
-s:--squeeze-blank 不输出多行空行
-t:与 -vT 等价
-T:--show-tabs 将跳 字符显示为 ^I
-u :(被忽略)
-v: --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开
使用范例:(在以下的例子中,linuxyw.txt是文件的名字)
cat linuxyw.txt查看文件名为linuxyw.txt的内容,如下图所示默认为三行内容:
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456.jpg)
-A 带上参数示范:(--show-all 等价于 -vET),不常用
cat -A linuxyw.txt
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-50.jpg)
-b 对非空行输出行号:
cat -b linuxyw.txt
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-51.jpg)
-e 等价于 -vE(--show-ends 在每行结束处显示 $),不常用
cat -e linuxyw.txt
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-52.jpg)
-n 对所有行显示行号
cat -n linuxyw.txt
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-53.jpg)
-s:--squeeze-blank 不输出多行空行,其实就是当多行空格在一起的时候,只输出一行空格。不常用,其它参数不作演示,可自行操作下,有利于自己学习。
--help
(以后对于不懂的命令或软件安装时,都可以用--help来获取帮助)
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-54.jpg)
cat 创建文件或连接文件范例:
用cat创建文件时,需要使用EOF结束(非必须用EOF,推荐初学者只管知道用EOF就行)
如果手动用cat创建文件时,结束时需要按Ctrl+D组合键。
如图:
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-55.jpg)
当输完www.linuxyw.com后,按键盘Ctrl+D结束输入,这样文件就被创建,文件里面的内容就是输入的i love linuxyw.com和www.linuxyw.com这2行内容:
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-56.jpg)
在用cat > linuxyw.com时,用到>符号,这个符号是重定向的意思,会覆盖原来文件的内容,没有文件时会自动创建。如果用>>符号,即表进追加内容,不会覆盖原文件内容,只会在原文件内容下面追加你所输入的内容。>和>>千万别搞混了,用错可能会出大问题的。
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24456-57.jpg)
如果不用手动,则用EOF符号即可,如图:
当第一行用<<EOF的时候,结束也需要用EOF,注意也可以使用>和>>,如上例。
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24457.jpg)
如果你是初学者,以下内容看不懂的话,可以先略过,日后再回来。
如果在写shell脚本的时候,需要生成一个配置文件,但这配置文件带变量,这时就需要把EOF用单引号括起来,否则变量会被解析掉。而且在写脚本时,EOF后面不能带空格等其它符号,否则会出错。
以下图是我在写脚本时,要求原本不动地把cat下的内容生成到脚本配置文件中,如果EOF不用单引号引起来,就会使下面的${VIP}等变量被解析掉,就造成生成一个错误的配置文件了。
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24457-50.jpg)
下面这个脚本是我需要在生成配置文件时,在cat时去解析变量,这样则不需要使用单引号引起来。
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24457-51.jpg)
用个简单的方法示例吧:
以下是写的shell脚本内容:上面cat是生成linux_cat1.txt文件,下面cat是生成linux_cat2.txt文件。
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24457-52.jpg)
执行完脚本后,我们cat查看这二个文件。
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24457-53.jpg)
cat把一个或多个文件合并成一个文件:
如把文件1,文件2,文件3的内容,重新合并到文件4中。如下图示例。
![](http://www.linuxyw.com/uploads/allimg/130427/1-13042H24457-54.jpg)
转载请注明linux系统运维:
http://www.linuxyw.com/a/wenjianguanli/20130427/132.html