linux基本功系列之cat命令实战

时间:2022-12-12 00:41:38

前言

cat (全称 concatenate) 命令是 Linux/类 Unix 操作系统中最常用的命令之一。

1、cat命令的介绍

cat命令来自于英文单词concatenate的缩写,其功能是用于查看文件内容。

在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head……等等,每个命令都有各自的特点。

cat命令适合查看内容较少的、纯文本的文件。

对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+c键中断命令的执行,所以对于大文件,可以用more命令。

比如: cat a.txt |more

2、常用参数

linux基本功系列之cat命令实战

3、 应用案例示范:

3.1 查看某个文件

##  wc-l 在这里是统计行数

[root@mufenggrow ~]# cat /etc/passwd |wc -l

44

## 查看前三行,如果不加后面的head是查看所有的。

[root@mufenggrow ~]# cat /etc/passwd |head -3

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@mufenggrow ~]#

3.2 查看某个文件并显示行号

-n参数

[root@mufenggrow ~]# echo aaa >> a.txt

[root@mufenggrow ~]# echo bbb >> a.txt

[root@mufenggrow ~]# cat a.txt

aaa

bbb

## -n参数可以查看行号

[root@mufenggrow ~]# cat -n a.txt

    1 aaa

    2 bbb

[root@mufenggrow ~]#

3.3 跳过空行,不给空行加行号 -b参数

-b参数是不给空行加行号

[root@mufenggrow ~]# echo "" >> a.txt

[root@mufenggrow ~]# echo ccc >> a.txt

[root@mufenggrow ~]# cat -b a.txt

    1 aaa

    2 bbb

    3 ccc

[root@mufenggrow ~]#

3.4 如果有多个空行则合并成一行

## 追加三个空行到文件中

[root@mufenggrow ~]# echo "" >> a.txt

[root@mufenggrow ~]# echo "" >> a.txt

[root@mufenggrow ~]# echo "" >> a.txt

[root@mufenggrow ~]# echo ddd >> a.txt

## 使用-n参数查看行号

[root@mufenggrow ~]# cat -n a.txt

    1 aaa

    2 bbb

    3

    4 ccc

    5

    6

    7

    8 ddd

    ## 使用-s参数可以把多个空行压缩成一行

[root@mufenggrow ~]# cat -sn a.txt

    1 aaa

    2 bbb

    3

    4 ccc

    5

    6 ddd

## 使用bsn多行空行压缩成一行,然后跳过空行加行号

##直接用bs也一样可以。

[root@mufenggrow ~]# cat -bs a.txt

    1 aaa

    2 bbb

    3 ccc

    4 ddd

3.5 清空某个文件内容

# echo aaa  >> ks.cfg.bak

[root@master ~]# cat /dev/null>ks.cfg.bak

[root@master ~]# cat ks.cfg.bak

很多运维喜欢用echo “” >laoxin.txt来清空文件,殊不知这样清空完成之后,是多了个空行,w文件内容并不为空。

3.6 使用cat命令追加多行内容到文件中

我们使用echo命令,输入多行到文件中是很困难的,这时候就可以用cat

EOF是“end of file”,表示文本结束符

EOF只是标识,不是固定的

## 查看ip

[root@mufenggrow ~]# ifconfig |grep inet |awk 'NR==1{print $2}'

192.168.1.101

## 把ip映射关系追加到/etc/hosts里

[root@mufenggrow ~]# cat >>/etc/hosts << EOF

> 192.168.1.101 mufenggrow

> EOF

[root@mufenggrow ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.101 mufenggrow

3.7 使用cat命令创建文件

执行下列命令后,需要等待用户输入,键入所需文本,然后按 CTRL+D (按住 Ctrl key 并输入d) 退出。

root@mufenggrow test]# cat > a.txt

this is test

i am mufenggrow

[root@mufenggrow test]# ls

a.txt

[root@mufenggrow test]# cat a.txt

this is test

i am mufenggrow

3.8 cat命令在shell脚本中的应用

写一个购物清单脚本

[root@mufenggrow test]# cat list.sh

#!/bin/bash

list(){

       cat <<END

       1.apple

       2.banana

       3.pear

       4.orange

       please slect one that you like:

END

}

list

执行结果:

# bash list.sh

       1.apple

       2.banana

       3.pear

       4.orange    

       please slect one that you like: