前言
cat主要是用来查看文件内容的,一般也搭配管道符一起来使用,比如有时候要计算文件有多少行或者要截取里面的内容,都还是很实用的。
一、cat命令介绍
cat命令来自于英文单词concatenate的缩写,其功能是用于查看文件内容。当然在linux中有很多是用于查看文件内容的命令,例如more、tail、head、less等,每个命令都有自己的特点,后续也会讲到这些,cat命令适合查看内容较少的、纯文本的文件。
二、语法及参数
1)还是一样用help或者man查看语法
语法:cat 【参数】 文件
[root@localhost ~]# cat --help
用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
2)常用参数
-n | 显示行数(空行也编号) |
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
-T | 将TAB字符显示为 ^I符号 |
-v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-e | 等价于”-vE”组合 |
-t | 等价于”-vT”组合 |
-A | 等价于 -vET组合 |
三、参考实例
1) 查看文件内容;
[root@localhost ~]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
......
2)给文件内容加编号,空行也会加编号;
[root@localhost ~]# cat -n passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3
4 daemon:x:2:2:daemon:/sbin:/sbin/nologin
5 adm:x:3:4:adm:/var/adm:/sbin/nologin
6
7 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
3)只给有内容的加编号,不给空行加编号;
[root@localhost ~]# cat -b passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
4)若一个文件中并排多个空格,但只让它显示一行空行;
[root@localhost ~]# cat -n passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3
4
5 daemon:x:2:2:daemon:/sbin:/sbin/nologin
6 adm:x:3:4:adm:/var/adm:/sbin/nologin
7
8 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost ~]# cat -ns passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3
4 daemon:x:2:2:daemon:/sbin:/sbin/nologin
5 adm:x:3:4:adm:/var/adm:/sbin/nologin
6
7 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
可以看到3~4行有两个空行,用-s后只显示了一个空行。
5)显示行尾的$符号;
[root@localhost ~]# cat -E passwd
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@localhost ~]# cat -A passwd
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@localhost ~]# cat -e passwd
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$
$
$
daemon:x:2:2:daemon:/sbin:/sbin/nologin$
adm:x:3:4:adm:/var/adm:/sbin/nologin$
$
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
可以看到-E -A -e显示的结果都是一样的。
6)cat可以把文件内容给清空,这里需要搭配重定向操作符;
[root@localhost ~]# cat /dev/null > passwd
[root@localhost ~]# cat passwd
7)持续写入文件内容,碰到EOF符后才结束并保存;
[root@localhost ~]# cat >passwd << EOF
> hello world
> linux
> 关注CSDN
> EOF
[root@localhost ~]# cat passwd
hello world
linux
关注CSDN
8)搭配输出重定向操作符,将光盘设备制作成镜像文件;
[root@localhost ~]# cat /dev/cdrom > centos.iso
[root@localhost ~]# ll -h centos.iso
-rw-r--r--. 1 root root 4.4G 2月 12 09:51 centos.iso
[root@localhost ~]# file centos.iso
centos.iso: # ISO 9660 CD-ROM filesystem data 'CentOS 7 x86_64' (bootable)
总结
cat命令的内容不是很多,说起来命令的参数常用的只有两到三个,平时用来查看比较少内容的文件这个命令很实用,可以直接清空文件的内容,例如日志信息、历史文件等这种,与其删除重新创建,不妨使用这个方法直接清空;提到删除,如果重要信息,记得先做备份。命令就讲到这里,觉得内容还行的,可以留个赞!