cat命令主要是用来查看文件内容的。

cat主要有三大功能:

1.一次显示整个文件。
$ cat filename

2.从键盘创建一个文件。
$ cat > filename
只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件。
$cat file1 file2 > file

cat具体命令格式为 : cat [-AbeEnstTuv][–help] [–version] fileName
说明:把文件串连接后传到基本输出(屏幕或加 > fileName 到另一个文件,也可以是使用符号“>>”追加到另外一个文件中。)

使用方式:

[root@study ~]# cat [-AbEnTv]
选项与参数:
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字符 $ 显示出来;
-n :打印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符 

例子:

#范例1
~$ cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

#范例2
~$ cat -n /etc/issue    #加上行号
     1  Ubuntu 16.04.1 LTS \n \l
     2
# 如果不想要编排空白行的行号,可以使用“cat -b /etc/issue”

# 范例3  将/etc/hosts 的内容完整的显示出来(包含特殊字符)   
~$ cat -A /etc/hosts
127.0.0.1  localhost  localhost.localdomain  VM-129-165-ubuntu$
127.0.1.1^ITENCENT$
$
# The following lines are desirable for IPv6 capable hosts$
::1     localhost ip6-localhost ip6-loopback$
ff02::1 ip6-allnodes$
ff02::2 ip6-allrouters$
# 使用 [tab] 与空白键的效果差不多,都是一堆空白啊!我们无法知道两者的差别。
# 此时使用 cat -A 就能够发现那些空白的地方是啥鬼东西了![tab]会以 ^I 表示,
# 断行字符则是以 $ 表示,所以你可以发现每一行后面都是 $ 啊!不过断行字符
# 在Windows/Linux则不太相同,Windows的断行字符是 ^M$ 啰。

接下来,简单描述一下几种常见的使用方式及其作用:

接下来,简单描述一下几种常见的使用方式及其作用:
1、cat<<EOF,以EOF输入字符为标准输入结束:
2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:
注意:输入时是没有’>'的。
3、cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样。

cat 和EOF结合使用的例子

~# cat << EOF > test.sh 
> #!/bin/bash             #“shell脚本”
> #you Shell script writes here.
> EOF

结果:

# cat test.sh
#!/bin/bash
#you Shell script writes here.

可以看到,test.sh的内容就是cat生成的内容。
cat <<EOF >test.sh 内容 EOF

就是将内容写入test.sh,之前存在的内容会被覆盖掉。EOF可以换成其他符号比如EEE:cat <<EEE >test.sh 内容 EEE。 也就是说,那个EOF就是指定了一个输入结束的标识。

其他写法:

1、追加文件

# cat << EOF >> test.sh 内容 EOF
—将内容追加到 test.sh 的后面,不会覆盖掉原有的内容

2、换一种写法

# cat > test.sh << EOF 内容 EOF

3、EOF只是标识,不是固定的

# cat << HHH > iii.txt
> sdlkfjksl
> sdkjflk
> HHH
#这里的“HHH”就代替了“EOF”的功能。结果是相同的。
# cat iii.txt
> sdlkfjksl
> sdkjflk

4、非脚本中

如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识
# cat > iii.txt
skldjfklj
kljlk
Ctrl-D

结果:
引用# cat iii.txt
skldjfklj
kljlk

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐