2024年运维最全linux3剑客学习笔记_三剑客超全超详情 笔记

awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出 (屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母。因为它的作者是三个人,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell实验室和GNU的一些扩展。下面介绍的awk是以GUN的gawk为例的,在 linux系统中已把awk链接到gawk,所以下面全部以awk进行介绍。
3.awk的内置变量

$0:当前记录

1

1~

1 n:当前记录的第n个字段
FS:输入字段分隔符,默认是空格
RS:输入记录分割符,默认为换行符
NF:当前记录中的字段个数,就是有多少列
NR:已经读出的记录数,就是行号,从1开始
OFS:输出字段分隔符,默认也是空格
ORS:输出的记录分隔符,默认为换行符
例如:
awk -F ‘:’ ‘{print “username:” $1 “\t\tuid:” $3}’ /etc/passwd
awk ‘BEGIN{FS=“\t+”}{print $1,$2,$3}’ tab.txt
awk -F [" “:]+ ‘{print $1,$2,$3}’ /etc/passwd
awk -F “:” 'NF7{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 0}̲’ /etc/passwd … awk 'KaTeX parse error: Unexpected character: ‘’ at position 133: …) 模式可以是以下任意一个: ̲/正则表达式/:使用通配符的扩…NF]++}END{for (key in s) print s[key]”\t"key}’|sort -rn
关系表达式:可以用下面运算符表中的关系运算符进行操作,可以是字符串或数字的比较,如$2>%1选择第二个字段比第一个字段长的行。
awk ‘$2!=$3 || $3!=$4 {print $0}’ table_size//
模式匹配表达式:用运算符(匹配)和!(不匹配)。
cat pv.date +%Y%m%d%H.txt|awk -F’|’ ‘{if ($1 ~ /^-/) {print $3} print $1}’
模式,模式:指定一个行的范围。该语法不能包括BEGIN和END模式。
BEGIN:让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量。
END:让用户在最后一条输入记录被读取之后发生的动作。
action(操作)
操作由一人或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内。主要有四部份:
变量或数组赋值
输出命令
内置函数
控制流命令
5.运算符
运算符 描 述
=、+=、-=、=、/=、%=、^=、**= 赋值语句
||、&& 逻辑或、逻辑与
~ 、!~ 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
+、-、
、/、&、^、*** 加减乘除求余幂
+、-、! 一元加,减和逻辑非
++、-- 增加或减少,作为前缀或后缀
$ 字段引用
空格 字符串链接符
? 三目运算符
in 数组成员
范例:
[root@mysql ~]# awk ‘BEGIN{a=5;a+=5;print a}’ #算术运算符
10
[root@mysql ~]# awk ‘BEGIN{a=1;b=2;print (a>2&&b>1,a=1||b>1)}’ #逻辑运算符
0 1
[root@mysql ~]# awk ‘BEGIN{a=“100testaaa”;if(a~/100/){print “ok”}}’ #正则运算符
ok
[root@mysql ~]# awk ‘BEGIN{a=11;if(a>=9){print “ok”}}’ #关系运算符
ok
[root@mysql ~]# awk ‘BEGIN{a=“b”;print a++,++a}’ #算术运算符
0 2
[root@mysql ~]# awk ‘BEGIN{a=“20b4”;print a++,++a}’
20 22
[root@mysql ~]# awk ‘BEGIN{a=“b”;print a==“b”?“ok”:“err”}’ #三目运算符
ok
[root@mysql ~]# awk ‘BEGIN{a=“b”;print a==“c”?“ok”:“err”}’
err
6.记录和域
记录
awk把每一个以换行符结束的行称为一个记录。
记录分隔符:默认的输入和输出的分隔符都是回车,保存在内建变量ORS和RS中。
$0变量:它指的是整条记录。如awk ‘{print KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 2: 0}̲’ test将输出test文件… awk ‘{print NR,KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 2: 0}̲’ test将输出test文件… awk ‘{print $1,$3}’ test将打印test文件中第一和第三个以空格分开的列(域)。
7.awk正则
元字符 功能 示例 解释
^ 行首定位符 /^root/ 匹配所有以root开头的行
$ 行尾定位符 /root$/ 匹配所有以root结尾的行
. 匹配任意单个字符 /r…t/ 匹配字母rxxt的行

  • 匹配0个或多个前导字符(包括回车) /a*ool/ 匹配0个或多个a之后紧跟着ool的行,比如ool,aaaaool等

  • 匹配1个或多个前 /a+b/ 匹配1个或多个a加b的行,比如ab,aab等
    ? 匹配0个或1个前导字符 /a?b/ 匹配b或ab的行
    [] 匹配指定字符组内的任意一个字符 /1/ 匹配以字母a或b或c开头的行
    [^] 匹配不在指定字符组内任意一个字符 /[abc]/ 匹配不以字母a、b或c开头的行
    () 子表达式组合 /(rool)+/ 表示一个或多个rool组合,当有一些字符需要组合时,使用括号括起来
    | 或者的意思 /(root)|B/ 匹配root或者B的行
    \ 转义字符 /a/// 匹配a//
    ,! 匹配,不匹配的条件语句 $1~/root/ 匹配第一个字段包含字符root的所有记录
    x{m} x重复m次 /(root){3} 需要注意一点的是,root加括号和不加括号的区别,x可以表示字符串也可以只是一个字符
    x{m,} x重复至少m次 /(root){3,}/
    X{m,n} x重复至少m次,但不超过n次 /(root){5,6}/


  1. abc ↩︎

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
术提升。**

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值