文章目录
- 文件内容查看
 - 查看文本文件内容
 - cat
 - tac
 - rev
 - nl
 
- 查看非文本文件内容
 - hexdump
 - od
 - xxd
 
- 分页查看文件内容
 - more
 - less
 
- 显示文本前后的行内容
 - head
 - tail
 - 文件描述符
 - 如果找到文件描述符
 
- 查看最新日志
 - 范例:找出IP地址的那一行
 
- cut--按列抽取文本
 - 按分隔符
 - 按字符位置
 - 取网卡ip
 
- tr--文本转换/删除/压缩
 - 转换字母大小写
 - 删除字符串中的数字
 - 压缩重复字符
 - 先替换再删除指定字符
 - 替换
 
- 分析文本的工具
 - wc--统计文本数据
 - 去掉df信息的头部注释行
 
- sort--文本排序
 - 找到磁盘利用率最大的数据
 
- uniq--去重
 - 统计曰志访问量最多的请求
 - 并发连接最多的远程主机IP
 
- 取两个文件的相同和不同的行
 
- 比较文件
 - diff
 
文件内容查看
查看文本文件内容
cat
cat可以查看文本内容
 格式
cat [OPTION]... [FILE]...
 
常见选项
-E: 显示行结束符$
-A: 显示所有控制符
-n: 对显示出的每一行进行编号
-b: 非空行编号
-s: 压缩连续的空行成一行
 

 
[root@rocky ~]# cat /data/fc.txt 
a
b
c
[root@rocky ~]# hexdump -C /data/fb.txt
00000000  61 0a 62 0a 63 0a 64 0a  0a                       |a.b.c.d..|
00000009
[root@rocky ~]# cat -A /data/fc.txt 
a^M$
b^M$
c^M$
[root@rocky ~]# file /data/fc.txt 
/data/fc.txt: ASCII text, with CRLF line terminators
[root@rocky ~]# 
 

 压缩连续的空行
 
 cat即支持输入又支持输出,如果想临时的创建一个文件的话就可以直接使用cat不必再用vim打开了。
 
tac
tac可读键盘输入
 
 
 
rev
rev也可读取键盘输入
 
 
 
nl
显示行号,相当于cat -b
 
查看非文本文件内容
hexdump

 
od
od即dump files in octal and other formats
 
xxd

分页查看文件内容
more
可以实现分页查看文件,可以配置管道实现输出信息的分页
格式
more [OPTIONS. . .] FILE. . .
 
选项:
-d: 显示翻页及退出提示
 
more一旦翻到底就退出了,less则不会。
less
less 也可以实现分页查看文件或STDIN输出,,less命令是man命令使用的分页器。less使用的更多
查看时有用的命令包括:
/文本 搜索 文本
n/N  跳到下一个 或 上一个匹配
PgUP/PgDn 上下翻页
 
[root@rocky ~]# ls -R /etc/ |less
 
显示文本前后的行内容
head
可以显示文件或标准输入的前面行
格式:
head [OPTION] ... [FILE]...
 
选项:
-c num   指定获取前num字节
-n num   指定获取前num行,num如果为负数,表示从文件头取到倒数第num前
-num     同上
 

 
 head也支持标准输入重定向和管道
 
tail
tail和head相反,查看文件或标准输入的倒数行
格式:
tail [OPTION].. . [FILE]...
 
常用选项
-c num   指定获取后num字节
-n num   指定获取后num行,如果num是负数,表示从第num行开始到文件结束-num同上
-f       跟踪显示文件fd(文件描述符)新追加的内容,常用日志监控,相当于--fo1low=descriptor, 
         当文件删除再新建同名文件,将无法继续跟踪文件
-F       跟踪文件名,相当于--fo11ow=name --retry,当文件删除再新建同名文件,将可以继续跟踪文件
tailf    类似 tail -f,当文件不增长时并不访问文件,节约资源, Centos8已经无此工具
 

 tail -fn0 只监控新日志内容。
 
文件描述符
tail -f xxx跟踪的是文件描述符,
如果找到文件描述符

 删除文件后,tail并没有报错,是因为此时f1.txt文件的描述符还在,使用-F选项则是跟踪文件名。
 
查看最新日志
[root@rocky ~]# tail -fn0 /var/log/messages
[root@rocky ~]# tail -0f /var/log/messages
 
范例:找出IP地址的那一行
ifconfig ens160 |head -2|tail -1
 

cut–按列抽取文本
cut命令可以提取文本文件或STDIN数据的指定列
格式
cut [OPTION]. .. [FILE]...
 
常用选项
-d delimiter:  指明分隔符,默认tab
-f fileds:
     num:  第num个字段,例如:3
     num,num[,num]: 离散的多个字段,例如:1,3,6
     num-num: 连续的多个字段,例如:1-6
     混合使用:1-3,7
-c  按字符切割
--output-de1imiter=STRING  指定输出分隔符
 
按分隔符

 
按字符位置

 打开Xshell显示已复制的字符数设置
 
 
取网卡ip

tr–文本转换/删除/压缩
tr(translate)命令是 Linux 中的一个简单但强大的命令行工具,用于替换或删除文本中的字符。它从标准输入读取数据,并将输出结果发送到标准输出。tr 命令特别适合处理字符转换、删除、压缩重复字符等任务。
格式
tr [OPTION]... SET1 [SET2]
SET1:指定要被替换或删除的字符集。
SET2:指定替换字符集(当执行替换操作时)。
 
常用选项
常用选项
  -d:删除指定的字符集,而不是转换。
  -s:替换连续重复的字符为单一字符。
  -c:对指定字符集的补集进行操作,即对不在集合中的字符进行处理
 
转换字母大小写

删除字符串中的数字

压缩重复字符

先替换再删除指定字符

替换

分析文本的工具
文本数据统计:wc
 整理文本:sort
 比较文件:diff和patch
wc–统计文本数据
wc命令可用于统计文件的行总数、单词总数、字节总数和字符总数,可以对文件或STDIN中的数据统计。
常用选项
-l  只计数行数
-w  只计数单词总数
-c  只计数字节总数
-m  只计数字符总数
-L  显示文件中最长行的长度
 

 


去掉df信息的头部注释行

 
sort–文本排序
把整理过的文本显示在stdout,不改变原始文件。默认安装字符顺序排序
格式:
sort [options] file(s)
 
常用选项
-r  执行反方向(由上至下)整理
-R  随机排序
-n  执行按数字大小整理
-h  人类可读排序,如:2K 1G
-f  选项忽略(fo1d)字符串中的字符大小写
-u  选项(独特,unique),合并重复项,即去重
-t c 选项使用c做为字段界定符
-k num  选项按照使用c字符分隔的num列来整理能够使用多次
 

 按数字正序排
 
 按数字倒序排
 
 
找到磁盘利用率最大的数据
df |tr -s ' ' '%'|cut -d% -f5|sort -nr|head -1
 

uniq–去重
uniq命令从输入中删除前后相邻的重复的行
 格式:
uniq [OPTION]... [FILE]...
 
常见选项:
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
 

 显示重复出现的次数
 
 
统计曰志访问量最多的请求
[root@centos8 ~]#cut -d' ' -f1 access_log |sort |uniq -c| sort -nr | head -3
4870 172.20.116.228
3429 172.20.116.208
2834 172.20.0.222
 
172.20.116.228的ip访问我的次数太多了4870次,肯定是个恶意请求,我要设置iptables规则,拒绝它的访问。
iptables -AINPUT -s 172.20.116.228
 
并发连接最多的远程主机IP
[root@centos8 ~]#ss -nt |tail -n+2 |tr -s ' ' : |cut -d: -f6 |sort |uniq -c |sort -nr |head -n2
  7 10.0.0.1
  2 10.0.0.7
 
取两个文件的相同和不同的行

比较文件
diff
diff命令比较两个文件之间的区别
-u选项来输出"统一的(unified)"diff格式文件,最适用于补丁文件
 




















