Linux 命令之 cat -- 在终端设备上显示文件内容(查看文件内容/浏览文件内容)

一、命令介绍

cat 的英文全称是 concatenate,该命令用来连接文件并将文件内容打印到标准输出设备上,cat 经常用来显示文件的内容,类似于 Windows 下的 type 命令。

注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用 more 等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按 Ctrl+C(中断)键可以终止该命令的执行,并且返回 Shell 提示符状态。

二、命令选项

选项说明
-n显示行数,即从1开始对所有输出的行数编号(空行也编号)
-s或者--squeeze-blank显示行数(多个空行算一个编号),即遇到有连续两行以上的空白行,就替换为一行的空白行
-b或者--number-nonblank-n相似,只不过空白行不编号
-E或者--show-ends在每行结束处显示$符号
-T或者--show-tabs将TAB字符显示为 ^I符号
-v或者--show-nonprinting使用 ^M- 引用,除了 LFDTAB 之外
-e等价于-vE选项
-t等价于-vT选项
-A 或者--show-all等价于 -vET选项
--help显示帮助信息
--version显示版本信息

三、参考示例

(一)查看文件的内容,并显示行数编号

[root@htlwk0001host qpw]# cat -n test4.txt
     1	laiba 
     2	wode
     3	xinzhong
[root@htlwk0001host qpw]# 

(二)把 test4.txt 的内容加上行号后输出到 test3.txt 这个文档里

[root@htlwk0001host qpw]# cat -n test4.txt > test3.txt
[root@htlwk0001host qpw]# cat test3.txt
     1	laiba 
     2	wode
     3	xinzhong
[root@htlwk0001host qpw]# 

注:如果文档 test3.txt 内有内容会被覆盖掉,追加可以使用追加重定向输出符 >>

(三)清空 test4.txt 的内容

[root@htlwk0001host qpw]# cat /dev/null > test4.txt

(四)往文件写入内容,碰到 EOF 符后结束并保存(如果文件内有内容会被覆盖掉)

[root@htlwk0001host qpw]# cat > test4.txt <<EOF
> laiba 
> hello
> EOF
[root@htlwk0001host qpw]# 

(五)把 test1.txt 和 test2.txt 的内容先合并,再加上行号(空白行不加),然后输出到test3.txt 文档中

[root@htlwk0001host qpw]# cat -b test1.txt test2.txt >> test3.txt 
[root@htlwk0001host qpw]# cat test3.txt
     1	liaowenxiong
     2	zhouxiaoyan
[root@htlwk0001host qpw]# 

(六)显示CPU的信息

[root@htlwk0001host ~]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 85
model name	: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
stepping	: 7
microcode	: 0x1
cpu MHz		: 2500.000
cache size	: 36608 KB
physical id	: 0
siblings	: 2
core id		: 0

(七)显示 Linux 内核的版本

[root@htlwk0001host ~]# cat /proc/version
Linux version 4.18.0-193.6.3.el8_2.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Wed Jun 10 11:09:32 UTC 2020

(八)根据 PID 查看某个进程的详情

[root@htlwk0001host ~]# cat /proc/1060114/status
Name:	mysqld
Umask:	0026
State:	S (sleeping)
Tgid:	1060114
Ngid:	0
Pid:	1060114
PPid:	1
TracerPid:	0
Uid:	27	27	27	27
Gid:	27	27	27	27
FDSize:	128
Groups:	27 
NStgid:	1060114
NSpid:	1060114
NSpgid:	1060113
NSsid:	1060113
VmPeak:	 1604620 kB
VmSize:	 1604620 kB
VmLck:	       0 kB
VmPin:	       0 kB
VmHWM:	  183668 kB
VmRSS:	  183632 kB
RssAnon:	  166396 kB
RssFile:	   17236 kB
RssShmem:	       0 kB
VmData:	  549388 kB
VmStk:	     132 kB
VmExe:	   25480 kB
VmLib:	    7596 kB
VmPTE:	     696 kB
VmSwap:	       0 kB
HugetlbPages:	       0 kB
CoreDumping:	0
Threads:	48
SigQ:	0/14419
SigPnd:	0000000000000000
ShdPnd:	0000000000000000
SigBlk:	0000000000084007
SigIgn:	0000000000003000
SigCgt:	00000001800006e8
CapInh:	0000000000000000
CapPrm:	0000000000000000
CapEff:	0000000000000000
CapBnd:	0000003fffffffff
CapAmb:	0000000000000000
NoNewPrivs:	0
Seccomp:	0
Speculation_Store_Bypass:	vulnerable
Cpus_allowed:	3
Cpus_allowed_list:	0-1
Mems_allowed:	00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list:	0
voluntary_ctxt_switches:	94
nonvoluntary_ctxt_switches:	194

(九)cat 命令和截止符

cat <<EOF>>~/.zshrc
export ZSH="/Users/lpc/.oh-my-zsh"
DEFAULT_USER="$USER"
ZSH_THEME="bira"
source $ZSH/oh-my-zsh.sh
EOF

说明:<<EOFEOF 是配对,你在命令行输入 cat <<EOF>>~/.zshrc,按下回车,就会提示你继续输入内容,直到你输入 EOF 才结束,并执行命令 cat。命令 cat 本来会将 <<EOFEOF 之间的内容输出到标准输出,但是上面使用了追加重定向输出符 >>,后面跟着文件路径,表示 cat 会将 <<EOFEOF 之间的内容输出到文件 ~/.zshrc 中。和第四个示例是一样的。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值