文本处理工具及shell入门

一、文本处理常见工具

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脚本的用途大概为以下几点:

  1. 将简单的命令组合完成复杂的工作,自动化执行命令;
  2. 提高工作效率 减少手工命令的重复输入,一定程度上避免人为错误;
  3. 将软件或应用的安装及配置实现标准化;
  4. 用于实现日常性的,重复性的运维工作。

2.shell 脚本基本结构

编程语言的基本结构:

  1. 各种系统命令的组合
  2. 数据存储:变量、数组
  3. 表达式:a + b
  4. 控制语句: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脚本只是简单的写了一下,后面还要继续学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值