第八章 Linux系统之查看文件内容命令
一、查看文件内容命令-echo
1.含义
cho是用于在终端设备上输出指定字符串或变量提取后值的命令,能够给用户一些简单的提醒信息,也可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息再来进行二次处理,又或者同输出重定向符一起操作,将信息直接写入到文件中。
如需提取变量值,需在变量名称前加入$符号做提取,变量名称一般均为大写形式。
语法格式:echo [参数] 字符串/变量
2.常用参数:
-n | 不输出结尾的换行符 |
---|---|
-e “\a” | 发出警告音 |
-e “\b” | 删除前面的一个字符 |
-e “\c” | 结尾不加换行符 |
-e “\f” | 换行,光标扔停留在原来的坐标位置 |
-e “\n” | 换行,光标移至行首 |
-e “\r” | 光标移至行首,但不换行 |
-e “\t” | tab键 |
-E | 禁止反斜杠转移,与-e参数功能相反 |
—version | 查看版本信息 |
--help | 查看帮助信息 |
3.常用示例
输出指定字符串到终端设备界面(默认为电脑屏幕):
[root@jindada ~]# echo jindada
jindada
输出某个变量值内容:
[root@jindada ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin
搭配转义符一起使用,输出纯字符串内容:
[root@jindada ~]# echo \$PATH
$PATH
搭配输出重定向符一起使用,将字符串内容直接写入文件中:
[root@jindada ~]# echo "Hello World" > Document
搭配反引号执行命令,并将执行结果输出:
[root@jindada ~]# echo `uptime`
16:16:12 up 52 min, 1 user, load average: 0.00, 0.00, 0.00
输出带有换行符的内容:
[root@jindada ~]# echo -e "First\nSecond\nThird"
First
Second
Third
指定删除字符串中某些字符,随后将内容输出:
[root@jindada ~]# echo -e "123\b456"
12456
打印不同颜色字体
#字体颜色
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
#字背景颜色
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
#最后的控制选项
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m — \33[37m 设置前景色
\33[40m — \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标
[root@jindada ~]# echo -e "\033[31mHello world\033[0m"
Hello world
[root@jindada ~]# echo -e "\033[43;32m 红底白字 \033[0m"
红底白字
二、查看文件内容命令-cat
1.含义
at命令来自于英文单词concatenate的缩写,其功能是用于查看文件内容。在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head……等等,每个命令都有各自的特点。cat命令适合查看内容较少的、纯文本的文件。
对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+c键中断命令的执行,所以对于大文件,干脆用more命令吧~
语法格式:cat [参数] 文件
2.常用参数:
-n | 显示行数(空行也编号) |
---|---|
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
-T | 将TAB字符显示为 ^I符号 |
-v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-e | 等价于”-vE”组合 |
-t | 等价于”-vT”组合 |
-A | 等价于 -vET组合 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
3.常用示例
查看某个文件的内容
[root@jindada ~]# cat test.txt
hello world
查看某个文件的内容,并显示行号
[root@jindada ~]# cat -n test.txt
1 hello world
给文件每一行的结尾加上标识符 主要是查看每行的最后面是否存在空格或者tab键
[root@jindada ~]# cat -A test.txt
hello world$
搭配空设备文件和输出重定向操作符,将某个文件内容清空
[root@jindada ~]# cat /dev/null > anaconda-ks.cfg
[root@jindada ~]# cat anaconda-ks.cfg b
[root@jindada ~]#
同时查看多个文件
[root@jindada ~]# cat hosts test.txt
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
hello world
将两个文件合并成一个文件
[root@jindada ~]# cat hosts test.txt > 123.txt
[root@jindada ~]# cat 123.txt
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
hello world
持续写入文件内容,直到碰到EOF符后才会结束并保存
[root@jindada ~]# cat > anaconda-ks.cfg << EOF
> Hello,World
> Linux!~
> EOF
[root@jindada ~]# cat anaconda-ks.cfg
Hello,World
Linux!~
搭配输出重定向操作符,将光盘设备制作成镜像文件
[root@jindada ~]# cat /dev/cdrom > rhel.iso
[root@jindada ~]# ls rhel.iso -lh
-rw-r--r--. 1 root root 6.7G May 2 00:43 rhel.iso
[root@jindada ~]# file rhel.iso
rhel.iso: DOS/MBR boot sector; partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 23128, 19888 sectors
三、查看文件内容命令-more
1.含义
more命令的功能是用于分页显示文本文件内容。如果文本文件中的内容较多较长,使用cat命令读取后则很难看清,这时使用more命令进行分页查看就更加合适了,可以把文本内容一页一页的显示在终端界面上,用户每按一次回车即向下一行,每按一次空格即向下一页,直至看完为止。
语法格式:more [参数] 文件
2.常用参数:
-num | 指定每屏显示的行数 |
---|---|
-l | more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性 |
空格/f | 向下翻页 |
b | 向上翻页 |
回车 | 向下一行 |
-p | 先清除屏幕再显示文本文件的剩余内容 |
-c | 与-p相似,不滚屏,先显示内容再清除旧内容 |
-s | 多个空行压缩成一行显示 |
-u | 禁止下划线 |
+/pattern | 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示 |
+num | 从第 num 行开始显示 |
h | 帮助信息 |
q | 退出 |
n | 向下查找 不能向上查找 |
= | 显示当前光标所在的行号 |
3.常见示例
分页显示指定的文本文件内容:
[root@jindada ~]# more anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical
# Use CDROM installation media
cdrom
………………省略部分输出信息………………
先进行清屏操作,随后以每次10行内容的格式显示指定的文本文件内容:
[root@jindada ~]# more -c -10 anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical
repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
# Use CDROM installation media
cdrom
--More--(20%)
分页显示指定的文本文件内容,遇到连续两行以上空白行的情况,则以一行空白行显示:
[root@jindada ~]# more -s anaconda-ks.cfg
………………省略输出信息………………
从第10行开始,分页显示指定的文本文件内容:
[root@jindada ~]# more +10 anaconda-ks.cfg
cdrom
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=static --device=ens160 --ip=192.168.10.10 --netmask=255.255.255.0 --onboot=off --ipv6=auto --activate
network --hostname=linuxprobe.com
# Root password
………………省略部分输出信息………………
四、查看文件内容命令-less
1.含义
ess命令的功能是用于分页显示文件内容。分页显示的功能与more命令很相像,但more命令只能从前向后浏览文件内容,而less命令则不仅能从前向后(PageDown键),还可以从后向前(PageUp键)浏览文件内容,更加灵活。
语法格式:less [参数] 文件
2.常用参数:
-b | 设置缓冲区的大小 |
---|---|
-e | 当文件显示结束后自动退出 |
-f | 强制打开文件 |
-g | 只标志最后搜索的关键词 |
-i | 忽略搜索时的大小写 |
-m | 显示阅读进度百分比 |
-N | 显示每行的行号 |
-o | 将输出的内容在指定文件中保存起来 |
-Q | 不使用警告音 |
-s | 显示连续空行为一行 |
-S | 在单行显示较长的内容,而不换行显示 |
-x | 将TAB字符显示为指定个数的空格字符 |
= | 显示当前页是第几行到第几行 总行数 总字节 显示已经显示多少字节 显示已经查看文件内容的比例 |
h | 显示帮助 |
3.常见示例
分页查看指定的文件内容:
[root@jindada ~]# less anaconda-ks.cfg
分页查看指定的文件内容及行号:
[root@jindada ~]# less -N anaconda-ks.cfg
分页显示指定命令的输出结果:
[root@jindada ~]# history | less
忽略大小写 搜索的时候
[root@sh-jindada ~]# less -i services
显示文件内容的时候,显示行号
[root@sh-jindada ~]# less -N services
五、查看文件内容命令-head
1.含义
head命令的功能是显示文件开头的内容,默认为前10行。
语法格式:head [参数] 文件
2.常用参数:
-n <数字> | 定义显示行数 |
---|---|
-c <数字> | 指定显示头部内容的字符数 |
-v | 总是显示文件名的头信息 |
-q | 不显示文件名的头信息 |
3.常见示例
默认显示文件的前10行内容:
[root@jindada ~]# head -n 10 anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical
repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
# Use CDROM installation media
cdrom
指定显示文件的前5行内容:
[root@jindada ~]# head -n 5 anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
指定显示文件的前20个字符:
[root@jindada ~]# head -c 20 anaconda-ks.cfg
#version=RHEL8
六、查看文件内容命令-tail
1.含义
tail命令的功能是用于查看文件尾部内容,例如默认会在终端界面上显示出指定文件的末尾十行,如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。
高阶玩法的-f参数作用是持续显示文件的尾部最新内容,类似于机场候机厅的大屏幕,总会把最新的消息展示给用户,对阅读日志文件尤为适合,而不需要手动刷新。
语法格式:tail [参数] 文件
2.常用参数:
-c | 输出文件尾部的N(N为整数)个字节内容 |
---|---|
-f | 持续显示文件最新追加的内容 |
-F |
与选项“-follow=name”和“--retry”连用时功能相同 |
-n |
输出文件的尾部N(N位数字)行内容 |
--retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。 |
--pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 |
--help | 显示指令的帮助信息 |
--version | 显示指令的版本信息 |
3.常用示例
默认显示某个文件尾部的后10行内容:
[root@linuxcool ~]# tail initial-setup-ks.cfg
%addon com_redhat_subscription_manager
%end
%addon ADDON_placeholder --disable --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
指定显示某个文件尾部的后5行内容:
[root@linuxcool ~]# tail -n 5 initial-setup-ks.cfg
%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
指定显示某个文件尾部的后15个字节:
[root@linuxcool ~]# tail -c 30 initial-setup-ks.cfg
t --nochanges --notempty
%end
持续刷新显示某个文件尾部的后10行内容:
[root@linuxcool ~]# tail -f /var/log/messages
………………省略输出信息………………
七、查看文件内容命令-tailf
1.含义
tailf命令几乎等同于tail -f,严格说来应该与tail --follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件。tailf特别适合那些便携机上跟踪日志文件,因为它既能省电,也减少了磁盘访问。
tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令。
语法格式:tailf [参数] [文件]
2.常用参数:
-n | 输出最后数行 |
---|---|
-NUMBER | 与NUMBER相同 |
-V | 输出版本信息并退出 |
-h | 显示帮助并退出 |
3.常见示例
显示文件最后5行内容:
[root@jindada ~]# tailf -n 5 log2022.log
显示文件内容:
[root@jindada ~]# tailf log/access.log