当前位置: 首页 > news >正文

第五章 文件内容显示

5.1 浏览普通文件内容
[root@master test]# cat /etc/ssh/sshd_config
[root@master test]# head /etc/ssh/sshd_config
[root@master test]# tail /etc/ssh/sshd_config
[root@master test]# more /etc/ssh/sshd_config
[root@master test]# less /etc/ssh/sshd_config
5.2 过滤文件内容显示 ——grep
1 )功能:在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用
2 )格式: grep 选项 …… 关键字符串 文件名称 ……

3 )简单示例
Linux 系统中, /etc/passwd 文件是保存着所有的用户信息,而一旦用户的登录终端被设置成 /sbin/nologin ,则不再允许登录系统,因此可以使用grep 命令来查找出当前系统中不允许登录系统的所有用户信息:
[root@kongd ~]# grep /sbin/nologin /etc/passwd
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
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
………………省略部分输出过程信息………………
4 )使用特殊符号进行字符串的匹配

[root@master test]# grep a /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
………………省略部分输出过程信息………………
[root@master test]# grep ^a /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@master test]# grep h$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
centos:x:1000:1000:centos:/home/centos:/bin/bash
[root@master test]# grep -v h$ /etc/passwd
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
sync:x:5:0:sync:/sbin:/bin/sync
#同时过滤多个文件
[root@localhost ~]# grep root /etc/passwd /etc/shadow /etc/group
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
/etc/shadow:root:$6$a77.FJemVmiUfVvO$/zks5NepAMVj6kUZtACVEsV7DezhIQ19KF64u4.fjbLXbkgvwcqI9
7iiVleMvf0vZuwWZubYX8LaiS3YKzx8u1::0:99999:7:::
/etc/group:root:x:0:
………………省略部分输出过程信息………………
#-i不区分大小写
[root@localhost ~]# grep -ri ^root /etc/
#过滤一个目录下的所有文件的内容
[root@localhost ~]# grep -r ^root /etc/
/etc/pki/ca-trust/extracted/README:root CA certificates.
/etc/pki/ca-trust/extracted/java/README:root CA certificates.
/etc/pki/ca-trust/extracted/openssl/README:root CA certificates.
/etc/pki/ca-trust/extracted/pem/README:root CA certificates.
/etc/gshadow-:root:::
/etc/group-:root:x:0:
/etc/shadow-:root:$6$a77.FJemVmiUfVvO$/zks5NepAMVj6kUZtACVEsV7DezhIQ19KF64u4.fjbLXbkgvwcqI
97iiVleMvf0vZuwWZubYX8LaiS3YKzx8u1::0:99999:7:::
/etc/group:root:x:0:
/etc/gshadow:root:::
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/services:rootd 1094/tcp # ROOTD
/etc/services:rootd 1094/udp # ROOTD
/etc/shadow:root:$6$a77.FJemVmiUfVvO$/zks5NepAMVj6kUZtACVEsV7DezhIQ19KF64u4.fjbLXbkgvwcqI9
7iiVleMvf0vZuwWZubYX8LaiS3YKzx8u1::0:99999:7:::
grep: /etc/selinux/targeted/policy/policy.33:匹配到二进制文件
/etc/selinux/targeted/seusers:root:unconfined_u:s0-s0:c0.c1023
/etc/passwd-:root:x:0:0:root:/root:/bin/bash
/etc/kernel/cmdline:root=UUID=5513881a-df41-46c1-8b45-78c447999438 ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=3408d23d-d0a6-42df-8fac-5fcff03d3deb rhgb quiet
/etc/cockpit/disallowed-users:root
/etc/sudoers:root ALL=(ALL) ALL
[root@localhost ~]# grep -v [#] /etc/httpd/conf/httpd.conf
[root@localhost ~]# grep -v [#] /etc/httpd/conf/httpd.conf | cat -b
5.3 切割显示 cut
cut 命令用于按列提取文本内容,语法为: cut [ 选项 ] 文件名称
系统文件在保存用户数据信息时,每一项值之间是采用冒号来间隔的,先查看一下:
[root@kongd ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
一般而言,按基于 的方式来提取数据是比较简单的,只需要设置好要搜索的关键词即可。但是如果按列搜索,不仅要使用-f 参数来设置需要看的列数,还需要使用 -d 参数来设置间隔符号。
接下来使用下述命令尝试提取出 passwd 文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容
[root@kongd ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
………………省略部分输出信息………………
[root@server ~]# cut -c 3 /etc/passwd | head -3
o
n
e
[root@linuxcool ~]# cut -c 1-4 /etc/passwd | head -6
root
bin:
daem
adm:
lp:x
sync
5.4 排序显示 sort
sort 命令用于对文本内容进行排序显示,语法为: sort [ 选项 ] 文件名称
首先, sort 命令执行后默认会按照字母顺序进行排序,非常方便:
[root@kongd ~]# cat fruit.txt
banana
pear
apple
orange
raspaberry
[root@kongd ~]# sort fruit.txt
apple
banana
orange
pear
raspaberry
sort -u 参数进行去重操作:
[root@kongd ~]# cat number.txt
45
12
3
98
82
67
24
56
9
[root@kongd ~]# sort -n number.txt
3
9
12
24
45
56
67
82
98
最后,我们挑战一个 高难度 的小实验。下面的内容是节选自 /etc/passwd 文件中前五个字段的内容,并进行混乱排序后的样子:
[root@kongd ~]# cat user.txt
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon
polkitd:x:998:996:User for polkitd
geoclue:x:997:995:User for geoclue
rtkit:x:172:172:RealtimeKit
pulse:x:171:171:PulseAudio System Daemon
qemu:x:107:107:qemu user
usbmuxd:x:113:113:usbmuxd user
unbound:x:996:991:Unbound DNS resolver
rpc:x:32:32:Rpcbind Daemon
gluster:x:995:990:GlusterFS daemons
不难看出上面其实是五个字段,各个字段之间是用了冒号进行间隔,如果想以第三个字段中的数字作为排序依据,那么就可以用-t 参数指定间隔符, -k 参数指定第几列, -n 参数进行数字排序来搞定:
[root@kongd ~]# sort -t : -k 3 -n user.txt
rpc:x:32:32:Rpcbind Daemon
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon
qemu:x:107:107:qemu user
usbmuxd:x:113:113:usbmuxd user
pulse:x:171:171:PulseAudio System Daemon
rtkit:x:172:172:RealtimeKit
gluster:x:995:990:GlusterFS daemons
unbound:x:996:991:Unbound DNS resolver
geoclue:x:997:995:User for geoclue
polkitd:x:998:996:User for polkitd
5.5 去重显示 uniq
uniq 命令用于去除文本中连续的重复行,语法为: uniq [ 选项 ] 文件名称
我们对两个文本内容进行操作,区别一目了然:
[root@kongd ~]# cat uniq.txt
Welcome to kongd.com
Welcome to kongd.com
Welcome to kongd.com
Welcome to kongd.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
[root@kongd ~]# uniq uniq.txt
Welcome to kongd.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
[root@master ~]# uniq -c uniq.txt
4 Welcome to kongd.com
1 Red Hat certified
1 Free Linux Lessons
1 Professional guidance
1 Linux Course
5.6 替换文件中的字符显示 tr
tr 指令从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出。
语法 tr [OPTION]…SET1[SET2]
参数说明:
        -c 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
        -d 删除指令字符
        -s 缩减连续重复的字符成指定的单个字符
示例:将文件 testfile 中的小写字母全部转换成大写字母,可使用如下命令:
[root@master ~]#cat testfile |tr a-z A-Z
#将指定文件中的小写字母转换成大写字母后输出内容到终端界面: [root@linuxcool ~]# tr [a-z] [A-Z] <
File.cfg
#VERSION=RHEL8
IGNOREDISK --ONLY-USE=SDA
AUTOPART --TYPE=LVM
# PARTITION CLEARING INFORMATION
CLEARPART --ALL --INITLABEL --DRIVES=SDA
# USE GRAPHICAL INSTALL
………………省略部分输出信息………………

相关文章:

  • Java设计模式之职责链模式详解
  • 尚硅谷redis7 47-48 redis事务之理论简介
  • 【Vue3】生命周期 hook函数 toRef
  • Foupk3systemX5OSNTXPro引擎
  • 什么是MCP技术,跟http技术有什么区别
  • SpringBoot集成Tika实现文档解析
  • 互联网医疗问诊APP原型设计:12个实战案例解析
  • 计算机组成与体系结构:硬盘驱动器(Hard Disk Drives)
  • 有趣的游戏化单词学习 APP
  • 【FAQ】spring boot 3 集成 nacos
  • MyBatis-Plus一站式增强组件MyBatis-Plus-kit(更新2.0版本):零Controller也能生成API?
  • 数据库MySQL学习——day13(索引与查询优化)
  • 深度解读 Qwen3 大语言模型的关键技术
  • 2025年上半年软考系统架构设计师--案例分析试题与答案
  • 使用Auto-Coder对js文件进行审计并修复漏洞1.3 1.4 1.5版本
  • 组合API-provide和inject函数
  • 颠覆传统,智领未来——UMI企业智脑:重新定义企业智能化转型的全新可能
  • SIGGRAPH 2025 | 快手可灵团队提出3D感知的电影级文本到视频生成框架CineMaster
  • 视频监控联网系统GB28181协议中历史视音频的回放流程详解以及查询失败常见原因
  • 测试 Gemini Pro 2.5
  • dw网站建设模板/站长统计app软件下载官网
  • 武汉做网站优化的公司/手机清理优化软件排名
  • 网站策划流程/游戏优化大师官方下载
  • 做旅行社网站/爱站网seo工具包
  • 如何帮客户做网站/今天热搜榜前十名
  • 柳州正规网站制作公司/seo外链怎么做