为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
\n 标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
\nm 标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。
\nml 如果n为八进制数字(0-7),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
\un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。
\p{P} 小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。中括号内的“P”表示Unicode 字符集七个字符属性之一:标点字符。
其他六个属性:
L:字母;
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符。
*注:此语法部分语言不支持,例:javascript。
<
匹配词(word)的开始(<)和结束(>)。例如正则表达式能够匹配字符串"for the wise"中的"the",但是不能匹配字符串"otherwise"中的"the"。注意:这个元字符不是所有的软件都支持的。
( ) 将( 和 ) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域(一个正则表达式中最多可以保存9个),它们可以用 \1 到\9 的符号来引用。
| 将两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:这个元字符不是所有的软件都支持的。
在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,下面我们就为大家介绍三种文本处理工具/命令:grep、sed、awk,它们三者均可以解释正则。
一、Awk讲解
2.Awk介绍
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}/
- 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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!