一、文本处理常见工具
Linux下包含各种各样的文本处理工具,常用的有cat、head、tail、cut、sort、wc等等,各个工具各自处理不同的东本,如cat可能文本进行查看,sort可以对文本内进行排序,wc可以进行统计。
当然,还有功能强大的grep工具,正因为其功能强大,所以grpe也被称为文本处理三剑客之一。文本处理三剑客的另外两个工具,留待后续再介绍。
一、文本处理举例
1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
[root@CentOS7 ~]# grep /sbin/nologin /etc/passwd -v | cut -d: -f1,7 | uniq -c
1 root:/bin/bash
1 sync:/bin/sync
1 shutdown:/sbin/shutdown
1 halt:/sbin/halt
1 jiangde:/bin/bash
1 mageia:/bin/bash
1 user1:/bin/bash
1 user2:/bin/bash
1 user3:/bin/bash
[root@CentOS7 ~]#
2.查出用户UID最大值的用户名、UID及shell类型
[root@CentOS7 ~]# sort -t: -k3 -nr /etc/passwd | head -1 | cut -d: -f1,3,7
user1:2022:/bin/bash
[root@CentOS7 ~]#
3.统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
kant@kant1804:~$ ss -nt | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]{5}' | cut -d: -f1 | sort -nr | uniq -c
4 192.168.1.3
1 192.168.1.2
二、Linux之shell脚本首次接触
1.Shell 简介
Linux中最常用的 shell 是 Bash,也是大多数 Linux 系统默认的 Shell。shell脚本的用途大概为以下几点:
- 将简单的命令组合完成复杂的工作,自动化执行命令;
- 提高工作效率 减少手工命令的重复输入,一定程度上避免人为错误;
- 将软件或应用的安装及配置实现标准化;
- 用于实现日常性的,重复性的运维工作。
2.shell 脚本基本结构
编程语言的基本结构:
- 各种系统命令的组合
- 数据存储:变量、数组
- 表达式:a + b
- 控制语句:if,for等
3.编写shell脚本
3.1 编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
jiangde@ubuntu1804:~$ cat disk.sh
value1=`df | grep '^/dev/' | grep -Eo '[0-9]+\%' | sort -nr | head -1`
echo '当前硬盘分区中空间利用率最大值是:'$value1
jiangde@ubuntu1804:~$ sh disk.sh
当前硬盘分区中空间利用率最大值是:9%
jiangde@ubuntu1804:~$
3.2 脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
kant@kant1804:~$ cat systeminfo.sh
value1=`hostname`
value2=`hostname -I | cut -d' ' -f1`
value3=`grep VERSION= /etc/os-release | cut -d'"' -f2`
value4=`uname -r`
value5=`lscpu | grep ^"Model name" | tr -s ' ' | cut -d':' -f2`
value6=`lsblk | grep "sda " | tr -s ' ' | cut -d' ' -f4`
value7=`free -h | grep ^Mem: | tr -s ' ' | cut -d' ' -f2`
echo "主机名: "$value1
echo "IPv4地址: "$value2
echo "操作系统版本:"$value3
echo "内核版本: "$value4
echo "CPU型号: "$value5
echo "内存大小: "$value7
echo "硬盘大小: "$value6
kant@kant1804:~$ bash systeminfo.sh
主机名: kant1804
IPv4地址: 192.168.1.4
操作系统版本:18.04.5 LTS (Bionic Beaver)
内核版本: 4.15.0-112-generic
CPU型号: Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz
内存大小: 1.9G
硬盘大小: 200G
kant@kant1804:~$
总结
文本工具好多,很多参数选项不常用,也记不太住。还有就是正规表达式花式多样,更要多加练习才记得住。:
shell脚本只是简单的写了一下,后面还要继续学习。