rhcsa第四次作业#文件内容的浏览查看

rhcsa第四次作业#文件内容的浏览查看


前言

因为在Linux系统中所有的内容都是以文件的形式存在的,所以对文件操作是非常实用的。这些命令均可使用管道符


一、查看文件内容

cat命令

查看文件内容
cat -n 对输出内容中的所有行标注行号。
cat -b 对输出内容中的非空行标注行号。

head命令

默认查看文件前十行内容
head -num 指定需要显示文件num行的内容。

tail命令

默认查看文件后十行内容
tail -num 指定需要显示文件num行的内容。
tail -f 使tail不停地去读取和显示文件最新的内容, 这样有实时监视的效果。
tail命令更多的用于查看系统日志文件,按 Ctrl+C 键终止显示和跟踪。

more命令

分页查看文件内容,按Enter键向下逐行滚动
按空格键向下翻一屏,按b键向上翻一屏
文件末尾时more会自动退出
more -c 从顶部清屏然后显示文件内容。

less命令

分页查看文件内容,按Enter键向下逐行滚动
按空格键向下翻一屏,按b键向上翻一屏
按q键退出
less -c 从顶部清屏然后显示文件内容。
less -N 其作用是在每行前添加输出行号。

grep命令

在指定的普通文件中查找并显示含有指定字符串的行
grep [选项] 关键字符串 文件
grep -c 仅显示找到的行数
grep -i 忽略大小写
grep -n 显示行号
grep -d 查找目录必须使用
grep -v 反向选择——仅列出没有“关键词”的行
grep -A :-A 2 搜索时显示匹配到的那一行以及下2行
grep -B :-B 2 搜索时显示匹配到的那一行以及上2行
grep -C :-C 2 搜索时显示匹配到的那一行以及上下2行
使用特殊字符匹配

匹配模式说明
grep h 文件名查找文件里有字符h的行
grep ^[q] 文件名匹配以q开始的行
grep ^[qf] 文件名匹配以q或者f开头的行
grep ^[ ^qf ] 文件名不匹配以q或者f开头的行
grep ^[0-9] 文件名匹配以数字开头的行
grep \q$ 文件名匹配以q结束的行
grep ^$过滤空白行
grep -r h ./*如果要明确搜索当前目录中的子目录有h的行
grep -d skip h ./*忽略当前目录下的子目录下的普通文件

cut 命令

用于根据字段提取文本内容
cut [选项]文件名
cut -b 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
cut -c 以字符为单位进行分割。
cut -d 自定义分隔符,默认为制表符。
cut -f 与-d一起使用,指定区域显示。
cut -n 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除

uniq命令

用于去除文本中连续的重复行
uniq [选项]文件名
uniq -c 行前显示行号
uniq -d 仅打印重复行,每组只显示一行
uniq -D 打印所有重复行

sort 命令

用于对文本内容进行排序显示,默认字母排序显示
sort [选项] 文件名
sort -f 忽略大小写
sort -b 忽略缩进和空格
sort -n 以数值排序
sort -r 反向排序
sort -u 去除重复行
sort -t 指定间隔符
sort -k 设置字段范围

tr命令

从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出。
tr [选项]…SET1[SET2]
tr -c 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
tr -d 删除指令字符
tr -s 缩减连续重复的字符成指定的单个字符
示例:将文件中的字母全部转化成大写

[root@server ~]# cat file | tr a-z A-Z

clear 清屏但是不清内容

二、实操部分

1.文件查看

cat查看/etc/passwd文件内容,并显示行号

[root@server ~]# cat -n /etc/passwd

使用more/less查看/etc/passwd内容,且每页显示10行

[root@server ~]# more -10 /etc/passwd
[root@server ~]# less /etc/passwd

使用head/tail 分别查看文件前5行内容和后5行

[root@server ~]# head -5 /etc/passwd
[root@server ~]# tail -5 /etc/passwd

使用grep查看/etc/passwd中和root相关的内容

[root@server ~]# grep root /etc/passwd

2.cut命令使用

给定文件cut_data.txt且内容为:

[root@server data1]# cat cut_data.txt
No	 Name	 Score 
1	 zhang	 20 
2	 li				80 
3	 wang	 90
4	 sun			60 

使用默认定界符切割文件内容,且输出切割后的第一个字段

[root@server data1]# cut -f1 cut_data.txt
No
1
2
3
4

切割文件内容,且输出切割后的第一个字段和第三个字段

[root@server data1]# cut -d ' ' -f 1,3 cut_data.txt
No	 Score
1	 20
2	
3	 90
4	

按字节切割:输出切割的第一个字节到第10个字节的内容

[root@server data1]# cut -b 1-10 cut_data.txt
No	 Name	 
1	 zhang	 
2	 li		80
3	 wang	 9
4	 sun		60

按字符切割:输出切割后的第一个字符和第5个字符的内容

[root@server data1]# cut -c 1,5 cut_data.txt
NN
1h
2i
3a
4u

按指定分界符去切割:内容如下,输出第一个字段和第三个字段内容

No|Name|Score
1|zhang|20
2|li80
3|wang|90
4|sun|60
[root@server data1]# cut -d'|' -f 1,3 cut_data.txt
No|Score
1|20
2|80
3|90
4|60

3.uniq命令使用

新建文件uniq_data.txt,文件内容为

[root@server data2]# cat uniq_data.txt 
Welcome to Linux
Windows
Windows
Mac
Mac
Linux

使用uniq命令输出去重后的结果

[root@server data2]# uniq uniq_data.txt 
Welcome to Linux
Windows
Mac
Linux

使用uniq命令只输出重复的行

[root@server data2]# uniq -d uniq_data.txt 
Windows
Mac

使用uniq命令输出不重复的行

[root@server data2]# sort uniq_data.txt | uniq
Linux
Mac
Welcome to Linux
Windows

使用uniq命令统计重复次数

[root@server data2]# uniq -c uniq_data.txt 
      1 Welcome to Linux
      2 Windows
      2 Mac
      1 Linux

4.sort命令使用

给定文件 num.txt,args.txt
文件内容:num.txt

[root@server data1]# cat num.txt 
1
3
5
2
4

文件内容:args.txt

[root@server data1]# cat args.txt 
test
args1
args2
args4
args4
args3

对num.txt进行排序,且将结果输出到sorted_num.txt中

[root@server data1]# sort num.txt >sorted_num.txt
[root@server data1]# cat sorted_num.txt 
1
2
3
4
5

对args.txt进行排序,且将结果输出到sorted_args.txt中

[root@server data1]# sort args.txt >sorted_args.txt
[root@server data1]# cat sorted_args.txt 
args1
args2
args3
args4
args4
test

对num.txt和args.txt进行排序,且将结果输出到sorted_merge.txt中

[root@server data1]# sort num.txt>sort args.txt>sorted_merge.txt
[root@server data1]# cat sorted_merge.txt 
1
2
3
4
5
args1
args2
args3
args4
args4
test

对args.txt排序后去重输出

[root@server data1]# sort -u args.txt
args1
args2
args3
args4
test

合并sorted_args.txt和sorted_num.txt且输出

[root@server data1]# sort -m sorted_num.txt sorted_args.txt
1
2
3
4
5
args1
args2
args3
args4
args4
test

给定文件info.txt:按第二列作为key进行排序

[root@server data1]# cat info.txt
No	 Name	 Score 
1	 zhang	 20 
2	 li				80 
3	 wang	 90
4	 sun			60 
[root@server data1]# sort -k 2 info.txt
2	 li		80
No	 Name	 Score
4	 sun		60
3	 wang	 90
1	 zhang	 20

5.替换

将26个小写字母的后13个字母替换成大写字母

[root@server data1]# cat letter.txt
abcdefghijklmnopqrstuvwxyz
[root@server data1]# wc -L letter.txt 
26 letter.txt
[root@server data1]# cat letter.txt|tr n-z N-Z
abcdefghijklmNOPQRSTUVWXYZ

将hello 123 world 456中的数字替换成空字符

[root@server data1]# cat tr.txt 
hello 123 world 456
[root@server data1]# cat tr.txt|tr 1-9 ' '
hello     world    

将hello 123 world 456中字母和空格替换掉,只保留数字

[root@server data1]# cat tr.txt 
hello 123 world 456
[root@server data1]# cat tr.txt | tr -d a-z|tr -d ' '
123456

总结

以上为查看浏览文件内容的命令以及部分方法,包括cat,head,tail,more,less,grep,cut ,uniq,sort ,tr等,以及使用实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值