导航菜单

Linux命令大全-cat命令

陆兴东 2026-04-07 53 浏览 Linux命令

一、简介

cat(英文全拼:concatenate)命令用于在终端设备上显示文件内容,它的主要作用是用于查看文件内容。

二、语法

语法:cat [选项]... [文件]...

参数说明:

-n:显示行号,会在输出的每一行前加上行号。

-b:显示行号,但只对非空行进行编号。

-s:压缩连续的空行,只显示一个空行。

-E:在每一行的末尾显示 $ 符号。

-T:将 Tab 字符显示为 ^I。

-v:显示一些非打印字符。

三、实战

1、查看指定文件的内容

[root@app01 ~]# cat initial-setup-ks.cfg
#version=DEVEL# X Window System configuration information
xconfig  --startxonboot
# License agreement
eula --agreed
# System authorization information
uth --enableshadow --passalgo=sha512
# Use CDROM installation mediacdrom
………………省略部分输出信息………………

2、查看指定文件,并显示行号

[root@app01 ~]# cat -n initial-setup-ks.cfg
 
  1  #version=DEVEL
     2  # X Window System configuration information
     3  xconfig  --startxonboot
     4  # License agreement
     5  eula --agreed
     6  # System authorization information
     7  auth --enableshadow --passalgo=sha512
     8  # Use CDROM installation media
     9  cdrom
………………省略部分输出信息………………

3、创建文件

[root@app01 ~]# cat 1.txt
12334
34554
464564
5657
3634
[root@app01 ~]# cat > 1.txt

将标准输入重定向到某个文件,同时覆盖该文件的内容

用这种方法需要注意的是,执行后,不会自动退出,需要手动ctrl+c或crtl+d退出。

此时可以输入内容,把内容生成到1.txt中。

 

[root@app01 ~]# cat 1.txt
a
d

只有cat filename > 1.txt这种操作才出自动退出,并且把filename文件中的内容写到1.txt中,同时1.txt文件内容会覆盖

[root@app01 ~]# cat 1.txt
aaa
bb
cc
bb
[root@app01 ~]# cat 2.txt > 1.txt
[root@app01 ~]# cat 1.txt
1334
4566

如果就想利用cat > 1.txt来置空文件。可以搭配空设备文件和输出重定向操作符,清空指定文件的内容。

[root@app01 ~]# cat 1.txt
1334
4566
[root@app01 ~]# cat /dev/null > 1.txt
[root@app01 ~]# cat 1.txt

4、将多个文件合并到指定文件中

[root@app01 ~]# cat 1.txt
1.txt
[root@app01 ~]# cat 2.txt
2.txt
[root@app01 ~]# cat 1.txt 2.txt >3.txt
[root@app01 ~]# cat 3.txt
1.txt
2.
txt

5、将指文件内容追加到另一个文件中

[root@app01 ~]# cat 4.txt
4.txt
[root@app01 ~]# cat 3.txt
1.txt2.txt
[root@app01 ~]# cat 3.txt >> 4.txt
[root@app01 ~]# cat 4.txt
4.txt1.txt2.txt

6、同时查看多个文件内容

[root@app01 ~]# cat 1.txt
1.txt
[root@app01 ~]# cat 2.txt
2.txt
[root@app01 ~]# cat 1.txt 2.txt
1.txt2.txt

7、将cat命令的输出作为另一个命令的输入

[root@app01 ~]# cat initial-setup-ks.cfg |tail -n 10
%end

%addon com_redhat_kdump --enable --reserve-mb=auto

%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty%end

该操作需要利用管道符来完成。如查看某个文件的最后10行。

管道符:管道操作符号 "|" 连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输入

8、仅显示非空行的行号

[root@app01 ~]# cat -b initial-setup-ks.cfg 
     1  #version=DEVEL
     2  # X Window System configuration information
     3  xconfig  --startxonboot
     4  # License agreement
     5  eula --agreed
     6  # System authorization information
     7  auth --enableshadow --passalgo=sha512
     8  # Use CDROM installation media
     9  cdrom
    10  # Use graphical install
    11  graphical
    12  # Run the Setup Agent on first boot
    13  firstboot --enable
    14  # System services
    15  services --enabled="chronyd"
    16  # Keyboard layouts
    17  keyboard --vckeymap=cn --xlayouts='cn'
    18  # System language
    19  lang zh_CN.UTF-8
    20  ignoredisk --only-use=sda
    21  # Network information
    22  network  --bootproto=dhcp --device=ens33 --ipv6=auto --activate
    23  network  --bootproto=static --device=ens34 --gateway=192.168.2.1 --ip=192.168.2.2 --netmask=255.255.255.0 --ipv6=auto --activate
    24  network  --bootproto=dhcp --hostname=app01
………………省略部分输出信息………………

9、使用-s不显示多余的空行(输出中隐藏重复的空行)

[root@app01 ~]# cat 6.txt
a

d

e
[root@app01 ~]# cat -s 6.txt
a
d
e

10、使用-t把tab键显示为^I制表符

[root@app01 ~]# cat -t 
1.txt
1.txt^I2.txt^I3.txt
^I4.txt 5.txt