RHEL文本文件编辑命令

简介: 1.cat命令2.more命令3.head命令4.tail命令5.tr命令6.wc命令7.stat命令8.grep命令9.cut命令10.diff命令11.uniq命令12.sort命令

在 Linux 系统中,一切都是文件,对服务程序进行配置自然也就是编辑程序的配置文件。

1.cat命令

cat 命令用于查看纯文本文件(内容较少的),英文全称为“concatenate”,语法格式为“cat  [参数] 文件名称”。

Linux 系统中有多个用于查看文本内容的命令,每个命令都有自己的特点,比如这个 cat 命 令就是用于查看内容较少的纯文本文件。

在查看文本内容时还想顺便显示行号的话,不妨在 cat 命令后面追加一个-n 参数:

[root@rhel-8 ~]# cat -n initial-setup-ks.cfg1#version=RHEL82# X Window System configuration information3  xconfig  --startxonboot4# License agreement5  eula --agreed

2.more命令

more 命令用于查看纯文本文件(内容较多的),语法格式为“more [参数] 文件名称”。

对于长篇的文本内容,推荐使用 more 命令来查看。more 命令会在最下面使用百分比的形式来提示您已经阅读了多少内容;还可以使用空格键或回车 键向下翻页:

[root@rhel-8 ~]# more initial-setup-ks.cfg#version=RHEL8# X Window System configuration informationxconfig  --startxonboot....
...
--More--(76%)

3.head命令

head 命令用于查看纯文本文件的前 N 行,语法格式为“head [参数] 文件名称”。

在阅读文本内容时,谁也难以保证会按照从头到尾的顺序往下看完整个文件。如果只想 查看文本中前 5 行的内容,该怎么办呢?head 命令就能派上用场了:

[root@rhel-8 ~]# head -n 5 initial-setup-ks.cfg#version=RHEL8# X Window System configuration informationxconfig  --startxonboot# License agreementeula --agreed

4.tail命令

tail 命令用于查看纯文本文件的后 N 行或持续刷新文件的最新内容,语法格式为“tail [参 数] 文件名称”

如需要查看文本内容的最后 5 行,这时就需要用到 tail 命令了。tail 命令的操作方法与 head 命令非常相似,只需要执行“tail -n 5 文件名称”命令就可以达到这样的效果:

[root@rhel-8 ~]# tail -n 5 initial-setup-ks.cfg%anaconda
pwpolicy 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

tail 命令最强悍的功能是能够持续刷新一个文件的内容,当想要实时查看最新的日志文件 时,这特别有用,此时的命令格式为“tail -f 文件名称”:

[root@rhel-8 ~]# tail -f /var/log/messagesNov 1219:26:58 rhel-8 dnf[4838]: Updating Subscription Management repositories.
Nov 1219:26:58 rhel-8 dnf[4838]: Unable to read consumer identity
Nov 1219:26:58 rhel-8 dnf[4838]: This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Nov 1219:26:59 rhel-8 dnf[4838]: CentOS - AppStream - mirrors.aliyun.com         3.7 kB/s | 4.3 kB     00:01

5.tr命令

tr 命令用于替换文本内容中的字符,英文全称为“translate”,语法格式为“tr [原始字符]  [目标字符]”。

在很多时候,我们想要快速地替换文本中的一些词汇,又或者想把整个文本内容都进行 替换。如果进行手工替换,难免工作量太大,尤其是需要处理大批量的内容时,进行手工替 换更是不现实。这时,就可以先使用 cat 命令读取待处理的文本,然后通过管道符把这些文本内容传递给 tr 命令进行替换操作即可。例如,把某个文本内容中的英文全部 替换为大写:

[root@rhel-8 ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]#VERSION=RHEL8IGNOREDISK --ONLY-USE=NVME0N1
AUTOPART --TYPE=LVM
# PARTITION CLEARING INFORMATIONCLEARPART --NONE--INITLABEL

6.wc命令

wc 命令用于统计指定文本文件的行数、字数或字节数,英文全称为“word counts”,语 法格式为“wc [参数] 文件名称”。

wc 命令用于统计文本的行数、字数、字节数等。

image.png

在 Linux 系统中,/etc/passwd 是用于保存所有用户信息的文件,要统计当前系统中有多 少个用户,可以使用下面的命令来进行查询:

[root@rhel-8 ~]# wc -l /etc/passwd46 /etc/passwd

7.stat命令

stat 命令用于查看文件的具体存储细节和时间等信息,英文全称为“status”,语法格式为 “stat 文件名称”。

Linux 系统中的文件包 含 3 种时间状态,分别是 Access Time(内容最后一次被访问的时间,简称为 Atime),ModifyTime(内容最后一次被修改的时间,简称为 Mtime)以及 Change Time(文件属性最后一次被 修改的时间,简称为 Ctime)。

下面使用 state 命令查看文件的这 3 种时间状态信息:

[root@rhel-8 ~]# stat anaconda-ks.cfg  File: anaconda-ks.cfg
  Size: 1289            Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 101517273   Links: 1Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:admin_home_t:s0
Access: 2022-11-1220:08:53.197037950 +0800Modify: 2022-11-0915:47:08.420741972 +0800Change: 2022-11-0915:47:08.420741972 +0800 Birth: -

8.grep命令

grep 命令用于按行提取文本内容,语法格式为“grep [参数] 文件名称”。

grep 命令是用途最广泛的文本搜索匹配工具。

grep 命令两个最常用的参数:

➢ -n 参数用来显示搜索到的信息的行号;

➢ -v 参数用于反选信息(即没有包含关键词的所有信息行)。

image.png

在 Linux 系统中,/etc/passwd 文件保存着所有的用户信息,而一旦用户的登录终端被设 置成/sbin/nologin,则不再允许登录系统,因此可以使用 grep 命令查找出当前系统中不允许登 录系统的所有用户的信息:

[root@rhel-8 ~]# grep /sbin/nologin /etc/passwdbin: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

9.cut命令

cut 命令用于按“列”提取文本内容,语法格式为“cut [参数] 文件名称”。

系统文件在保存用户数据信息时,每一项值之间是采用冒号来间隔的,先查看一下:

[root@rhel-8 ~]# head -n 2 /etc/passwdroot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

一般而言,按基于“行”的方式来提取数据是比较简单的,只需要设置好要搜索的关键 词即可。但是如果按“列”搜索,不仅要使用-f 参数设置需要查看的列数,还需要使用-d 参 数来设置间隔符号。

接下来使用下述命令尝试提取出 passwd 文件中的用户名信息,即提取以冒号(:)为间 隔符号的第一列内容:

[root@rhel-8 ~]# cut -d : -f 1 /etc/passwdroot
bin
daemon

10.diff命令

diff 命令用于比较多个文件之间内容的差异,英文全称为“different”,语法格式为“diff [参 数] 文件名称 A 文件名称 B”。

在使用 diff 命令时,不仅可以使用--brief 参数来确认两个文件是否相同,还可以使用-c 参数来详细比较出多个文件的差异之处。这绝对是判断文件是否被篡改的有力神器。例如, 先使用 cat 命令分别查看 a.txt 和 b.txt 文件的内容,然后进行比较:

[root@rhel-8 ~]# cat a.txt122[root@rhel-8 ~]# cat b.txt122333

接下来使用 diff --brief 命令显示比较后的结果,判断文件是否相同:

[root@rhel-8 ~]# diff --brief a.txt b.txtFiles a.txt and b.txt differ

最后使用带有-c 参数的 diff 命令来描述文件内容具体的不同:

[root@rhel-8 ~]# diff -c a.txt b.txt*** a.txt       2022-11-1220:24:05.869075411 +0800--- b.txt       2022-11-1220:23:55.444074983 +0800***************
*** 1,2 ****
---1,3 ----122+333

11.uniq命令

uniq 命令用于去除文本中连续的重复行,英文全称为“unique”,语法格式为“uniq [参数] 文 件名称”。

由 uniq 命令的英文全称 unique(独特的,唯一的)可知,该命令的作用是用来去除文本 文件中连续的重复行,中间不能夹杂其他文本行(非相邻的默认不会去重)—去除了重复 的,保留的都是唯一的,自然也就是“独特的”“唯一的”了。

我们使用 uniq 命令对两个文本内容进行操作,区别一目了然:

[root@rhel-8 ~]# cat c.txt112222333[root@rhel-8 ~]# uniq c.txt122333

12.sort命令

sort 命令用于对文本内容进行再排序,语法格式为“sort [参数] 文件名称”。

image.png

首先,在执行 sort 命令后默认会按照字母顺序进行排序,非常方便:

[root@rhel-8 ~]# cat d.txtf
h
c
e
b
a
[root@rhel-8 ~]# sort d.txta
b
c
e
f
h

此外,与 uniq 命令不同,sort 命令是无论内容行之间是否夹杂有其他内容,只要有两个 一模一样的内容行,立马就可以使用-u 参数进行去重操作:

[root@rhel-8 ~]# cat c.txt1222233322[root@rhel-8 ~]# sort -u c.txt122333

想对数字进行排序?一点问题都没有,而且完全不用担心出现 1 大于 20 这种问题(因为 有些命令只比较数字的第一位,忽略了十、百、千的位)

最后,我们挑战一个“高难度”的小实验。下面的内容节选自/etc/passwd 文件中的前 5 个字段,并且进行了混乱排序。

[root@rhel-8 ~]# cat user.txtbin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

不难看出,上面其实是 5 个字段,各个字段之间是用了冒号进行间隔,如果想以第 3 个 字段中的数字作为排序依据,那么可以用-t 参数指定间隔符,用-k 参数指定第几列,用-n 参 数进行数字排序来搞定:

[root@rhel-8 ~]# sort -t : -k 3 -n user.txtroot: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


相关文章
|
7月前
|
Shell Linux
【Shell 命令集合 文件管理】Linux 显示文本文件 命令 more命令使用教程
【Shell 命令集合 文件管理】Linux 显示文本文件 命令 more命令使用教程
107 0
|
7月前
|
Shell Linux C语言
【Shell 命令集合 文档编辑】Linux 显示文件的内容 mtype命令使用指南
【Shell 命令集合 文档编辑】Linux 显示文件的内容 mtype命令使用指南
70 0
|
数据可视化 Linux 开发工具
Linux文件内容查看和编辑指南:cat、less、grep等常用命令详解(二)
Linux文件内容查看和编辑指南:cat、less、grep等常用命令详解(二)
193 0
|
1月前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
136 4
|
Linux Shell 开发工具
Linux文件内容查看和编辑指南:cat、less、grep等常用命令详解(一)
Linux文件内容查看和编辑指南:cat、less、grep等常用命令详解(一)
1681 0
|
7月前
|
消息中间件 Linux Shell
Linux文件查看和编辑命令
Linux文件查看和编辑命令
69 0
|
7月前
|
存储 Shell Linux
⭐⭐⭐【Shell 命令集合 文档编辑 】Linux 文件内容处理 sed命令使用指南
⭐⭐⭐【Shell 命令集合 文档编辑 】Linux 文件内容处理 sed命令使用指南
76 0
|
安全 Linux
3.Linux文件管理命令-----cat 显示文本文件内容、rm 删除文件、less 分屏显示文件
3.Linux文件管理命令-----cat 显示文本文件内容、rm 删除文件、less 分屏显示文件
125 0
|
安全 Linux
6.Linux文件管理命令---mv更改文件名
6.Linux文件管理命令---mv更改文件名
145 0
|
Linux Perl
LINUX使用sed完成文本文件的修改
LINUX使用sed完成文本文件的修改
109 0