2024年shell面试题,2024年最新35岁以后的Linux运维程序员出路在哪里

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

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

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

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

第1章 选择
1.1 退出交互模式的 shell,应键入()
A: B:^q C:exit D:quit

1.2 下列变量名中有效的 shell 变量名是:C
-2-time _2$3 trust_no_1 2004file

1.3 在 shell 编程中关于$2 的描述正确的是 B
程序后携带了两个位数参数
宏替换
程序后面携带的第二个位置参数
携带位置参数的个数

1.4 在 shell 环境下想把‘gyyx’值赋给变量 company,下面哪个是正确的:
company = gyyx
$company=gyyx
company=‘gyyx’
company=gyyx

1.5 下面表述错误的是
n 表示程序的第 n 个参数值 $* 表示程序的所有参数个数 $$表示程序的 PID

1.6 shell 脚本中的注释符
// /**/ " " #

1.7 采用 bash 执行 shell 脚本时加上哪个参数可以跟踪执行脚本过程
-x -u -f -p

1.8 在 shell 比较运算符中,数值测试“等于则为真”的是()
-ne -ge -eq -le

第2章 填空
2.1 在 shell 编程中,如果要访问变量值,可以变量前加一个—$—符号

2.2 请说出以下符号在 bash shell 中的意义
n

{#aa}
2

2.3 编写 shell 程序之前必须赋予该脚本_____

2.4 Linux 系统 shell 脚本第一行需写______代表什么意义_____

第3章 简答
3.1 写一个脚本实现判断 192.168.1.0/24 网络里,当前在线的 ip 有哪些,能 ping 通则认为在线

3.2 在 shell 中变量的赋值有四种方法,其中采用 name=jfedu.net 的方法称:

3.3 检查 IP 地址合规,请用 shell 编写代码,列出不以 199 或 200 开头的 IP 地址,如 199.x.x.x 或
200.x.x.x
Eth1/0/1 up up 199.11.250.1
Eth1/0/2 up up 200.11.250.5
Loop0 up up(s) 199.11.250.1
Vlan1 *down down unassigned
Vlan500 down down 139.100.1.157
Vlan900 up up 140.11.250.41

egrep -o '[0-9.]{7,15}' 1.txt |egrep -v '^199|^200'

3.4 通过 shell 如何删除文档中的注释和空白行。

3.5 如果在/home/pushmail 目录下不存在 leadtone 目录,则创建该目录,并将/var/sync/bin 目录下
的所有文件拷贝到 leadtone 目承下,但是不能够拷贝文件大于 1M 的文件。

3.6 写一个脚本,实现批量添加 20 个用户,用户名为 user01-20,密码 user 后面跟 5 个随机字符

3.7 对文件 test 中,
aaa 123.52
bbb 125.54
aaa 123.52
aaa 123.52
ccc 126.36
1>第一列为 aaa 的行求和;
2>对偶数行求和;
3>求文件 test 中的最大值
3

3.8 shell 脚本编程:显示 100 以内的质数

3.9 判断数字大于 500 则执行 big.sh 小于等于 500 则退出脚本,并输出报错信息

3.10 脚本测试 test.txt 文件,打印出每一列的累加值
1 2 3
4 5 6
7 8 9

3.11 试编写一个 Shell 程序,该程序能接收用户从键盘输入的 100 个整数,然后求出其总和、最大
值及最小值



1.1.1.1 改变bash的提示符实际上就是改变变量(C

$HOME $PWD $PS1 $PS2

1.1.1.2 在shell脚本中,用来读取文件内各个域的内容并将其赋值给shell变量的命令是______

Fold join tr read

1.1.1.3 从后台启动进程,应在命令的结尾加上符号()

A:& B:@ C:# D:$

1.1.1.4 不是shell具有的功能和特点是()

A:管道 B:输入输出重定向 C:执行后台进程 D:处理程序命令

1.1.1.5 退出交互模式的shell,应键入()

A: B:^q C:exit D:quit

1.1.1.6 shell不仅仅是用户命令解释器,同时一种强大的编程语言,linux缺省的shell是

bash ruby PHP perl

1.1.1.7 以下函数中,和其他函数不属于一类的是

Read pread write pwrite fseek lseek

1.1.1.8 下列变量名中有效的shell变量名是:______

-2-time _2$3 trust_no_1 2004file

1.1.1.9 下列对shell变量FRUTT操作,正确的是______

为变量赋值:$FRUTT=apple 显示变量的值:fruit=apple

显示变量的值:echo

F

R

U

T

T

[

f

FRUTT 判断变量是否有值:[ -f –

FRUTT判断变量是否有值:[−f−−FRUTT || ]

1.1.1.10 在shell编程中关于$2的描述正确的是

程序后携带了两个位数参数 宏替换

程序后面携带的第二个位置参数 携带位置参数的个数

1.1.1.11 在shell环境下想把‘gyyx’值赋给变量company,下面哪个是正确的:

company = gyyx $company=gyyx company=‘gyyx’ company=gyyx

1.1.1.12 下面sed删除行,下面哪个脚本是错误的是

sed -e ‘/man/d’ filename sed -e ‘1,3d’ filename sed -e ‘1,/man/d’ filename sed -e ‘/man/3d’ filename

1.1.1.13 下面表述错误的是

$0表示程序的执行名字 $n 表示程序的第n个参数值

$* 表示程序的所有参数个数 $$表示程序的PID

1.1.1.14 下列代码样例中,哪个存在错误:

for filename in $(ls) do cat $filename done

for((i=0;i<10;i++)) do echo $i done

x=1 sum=0 while [

x

l

e

10

]

d

o

l

e

t

s

u

m

=

s

u

m

x -le 10 ] do let sum=sum+

x−le10]doletsum=sum+x let x=x+1 done echo $sum

for $i in 1 2 3 4 5 do echo $i done

1.1.1.15 在shell脚本中,用来读取文件内各个域的内容并将其赋值给shell变量的命令是:

Fold join tr read

1.1.1.16 shell中如何跳出当前循环继续之后的循环

break continue exit kill

1.1.1.17 shell脚本中的注释符

// /**/ " "

1.1.1.18 采用bash执行shell脚本时加上哪个参数可以跟踪执行脚本过程

-x -u -f -p

1.1.1.19 以下命令执行后,结果为()

var1=abcdedf

var2=abcded

echo “

v

a

r

1

g

r

e

p

q

var1” |grep -q “

var1”∣grep−q“var2” && echo  “yes” ||echo “no”

无结果 语法错误 yes no

1.1.1.20 在shell比较运算符中,数值测试“等于则为真”的是()

-ne -ge -eq -le

1.1.1 填空
1.1.1.1 在shell编程中,如果要访问变量值,可以变量前加一个——符号
1.1.1.2 请说出以下符号在bash shell中的意义

$0 $n $# $? $* $$ ${#aa}

1.1.1.3 编写shell程序之前必须赋予该脚本_____
1.1.1.4 Linux系统shell脚本第一行需写______代表什么意义_____
1.1.1.5 编写shell脚本时注释符是_________
1.1.1.6 **shell命令“sed -i s/******r/ /g test.txt”实现的是_______
1.1.2 简答
1.1.2.1 **在shell中,

0

,

0,

0,n,KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 1: #̲,*,

@

,

@,

@,?分别是什么含义?**

1.1.2.2 统计/var/log下文件的个数。
1.1.2.3 如何将F1文件的运行结果输出到F2.txt里?
1.1.2.4 一个脚本实现判断192.168.1.0/24 网络****里,当前在线的ip有哪些,能拼通则认为在哪
1.1.2.5 根据以下信息:

IP_Address MAC_Address Interface Static

10.66.10.250 80:71:7A:33:CA:A7 br on

10.66.10.249 5C:50:15:7F:3B:F5 br on

将以上文件名称test.txt文件中IP_Address,MAC_Address, Interface三项下的内容取出来,值以“:”分割,并呈格式显示出来。注:

10.66.10.250:80:71:7A:33:CA:A7:br

10.66.10.249:5C:50:15:7F:3B:F5:br

1.1.2.6 在shell中变量的赋值有四种方法,其中采用name=jfedu.net的方法称:

直接复制 使用read命令 使用命令行传参 使用命令输出

1.1.2.7 编写一个脚本,5分钟检查一次日志,发现有暴力SSH破解现象的,提取此类IP地址,并去重,并按降序排序。

要求:同一个IP暴力破解超过10次,自动屏蔽IP地址,指定办公室IP地址(192.168.100.100)为可信任IP地址,不受屏蔽规则限制,以下为日志格式:

日志样式:

May  4  03:43:07  tz-monitor  sshd{14003}:  Failed  password  for  root  from  124.232.135.84  port  25251  ssh2

Myy  4  03:43:07  tz-monitor  sshd{14082}:  invalid  user  postgres  from  124.232.135.84

1.1.2.8 检查OSPF route-ID配置,配置如下,请用shell编写代码,条件如下:检查ospf的route-id值,route-id值必须与interface LoopBack0的IP地址值相同,如果两个值不相等打印出ospf的route-id的值,并且ospf的route-id值必须以139开头,如139.xx.xx.xx,否则也打印出route-id的值

ofpf 100

route-id 139.11.0.1

area 0.0.0.0

network 139.11.0.1 0.0.0.0

network 140.11.0.0 0.0.0.3

network 140.11.0.8 0.0.0.3

network 140.11.0.16 0.0.0.3

network 140.11.0.24 0.0.0.3

network 140.11.0.32 0.0.0.3

interface LoopBack0

ip address 139.11.0.1 255.255.255.255

1.1.2.9 检查IP地址合规,请用shell编写代码,列出不以199或200开头的IP地址,如199.x.x.x 或200.x.x.x

Interface Physical Protocol IP Adderss

Eth1/0/1 up up 199.11.250.1

Eth1/0/2 up up 200.11.250.5

Loop0 up up(s) 199.11.250.1

Vlan1 *down down unassigned

Vlan500 down down 139.100.1.157

Vlan900 up up 140.11.250.41

1.1.2.10 处理以下文件内容,将域名提取并进行计数排序,如处理:

http://www.baidu.com/index.html

http://www.baidu.com/1.html

http://post.baidu.com/index.html

http://mp3.baidu.com/index.html

http://www.baidu.com/3.html

http://post.baidu.com/2.html

得到如下结果:

域名的出现次数  域名

3 www.baidu.com

2 post.baidu.com

1 mp3.baidu.com

可以使用bash/per/php任意一种

1.1.2.11 在单台服务器Linux操作系统环境下,写一行命令,将所有该机器的所有以“.log.bak“为后缀的文件,打包压缩并上传到ftp上,FTP地址为123.234.25.130的/home/bak文件夹
1.1.2.12 Linux脚本:现在要删除本机中若干文件,/root/file.list中记录了这些文件的绝对路径,请用脚本实现。/root/file.list内容范例:/tmp/1.file
1.1.2.13 说出shell的种类,已经常用的shell
1.1.2.14 下面代码会输出什么:

def f(x,1=[]);

for i in range(x);

1.append(i*i)

print 1

f(2)

f(3,[3,2,1])

f(3)

1.1.2.15 根据以下nginx日志信息格式,统计全天PV、UV及UV的前十、PV前十页面;分别列出状态码499、500、502按次数统计的前三位

36.110.86.173 - - [30/Otc2017:09:38:30 +0800] “POST /index.php?r=tuiguang%2Fdelete HTTP/1.1” 200 385 0.036 “http://backend.lepu.cn/index.php?r=tuiguang%2Findex&id=535634“ “Mozilla/5.0 (windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Fecko) Chrome/55.0.2883.87 Safari/537.36” “0.68”

全天PV: 全天UV: PV前十:

UV前十: 499前三: 500前三: 502前三:

1.1.2.16 创建一个函数,能接受两个参数;

(1) 第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存位置;

(2) 如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则函数返回一个51的错误值给调用脚本

(3) 如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功,如果成功,则返回0给调用脚本,否则,返回52给调用脚本;

1.1.2.17 有一个长度为n序列,需要移除掉里面的重复元素,但是对于每种元素保留最后出现的那个。输入描述:输入包括两行

第一行为序列长度n(1≤ n≤ 50)

第二行为n个数scqucencel,以空格分隔

输出描述

输出消除重复元素之后的序列,以空格分隔,行末无空格

输入例子

100 100 100 99 99 99 100 100 100

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

dis面试题**

  • 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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值