一、简介
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 informationxconfig --startxonboot# License agreementeula --agreed# System authorization informationuth --enableshadow --passalgo=sha512# Use CDROM installation mediacdrom………………省略部分输出信息………………
2、查看指定文件,并显示行号
[root@app01 ~]# cat -n initial-setup-ks.cfg
1 #version=DEVEL2 # X Window System configuration information3 xconfig --startxonboot4 # License agreement5 eula --agreed6 # System authorization information7 auth --enableshadow --passalgo=sha5128 # Use CDROM installation media9 cdrom………………省略部分输出信息………………
3、创建文件
[]123343455446456456573634[]
将标准输入重定向到某个文件,同时覆盖该文件的内容
用这种方法需要注意的是,执行后,不会自动退出,需要手动ctrl+c或crtl+d退出。
此时可以输入内容,把内容生成到1.txt中。
[]ad
只有cat filename > 1.txt这种操作才出自动退出,并且把filename文件中的内容写到1.txt中,同时1.txt文件内容会覆盖
[]aaabbccbb[][]13344566
如果就想利用cat > 1.txt来置空文件。可以搭配空设备文件和输出重定向操作符,清空指定文件的内容。
[]13344566[][]
4、将多个文件合并到指定文件中
[]1.txt[]2.txt[][]1.txt
2.txt
5、将指文件内容追加到另一个文件中
[]4.txt[]1.txt2.txt[][]4.txt1.txt2.txt
6、同时查看多个文件内容
[]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%anacondapwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notemptypwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyokpwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty%end
该操作需要利用管道符来完成。如查看某个文件的最后10行。
管道符:管道操作符号 "|" 连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输入
8、仅显示非空行的行号
[root@app01 ~]# cat -b initial-setup-ks.cfg1 #version=DEVEL2 # X Window System configuration information3 xconfig --startxonboot4 # License agreement5 eula --agreed6 # System authorization information7 auth --enableshadow --passalgo=sha5128 # Use CDROM installation media9 cdrom10 # Use graphical install11 graphical12 # Run the Setup Agent on first boot13 firstboot --enable14 # System services15 services --enabled="chronyd"16 # Keyboard layouts17 keyboard --vckeymap=cn --xlayouts='cn'18 # System language19 lang zh_CN.UTF-820 ignoredisk --only-use=sda21 # Network information22 network --bootproto=dhcp --device=ens33 --ipv6=auto --activate23 network --bootproto=static --device=ens34 --gateway=192.168.2.1 --ip=192.168.2.2 --netmask=255.255.255.0 --ipv6=auto --activate24 network --bootproto=dhcp --hostname=app01………………省略部分输出信息………………
9、使用-s不显示多余的空行(输出中隐藏重复的空行)
[]ade[]ade
10、使用-t把tab键显示为^I制表符
[]1.txt^I2.txt^I3.txt^I4.txt 5.txt