Linux开发工具,2024最新阿里Linux运维高级面试题及答案

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

​ b:光标向左移动;

​ hjkl:分别对应光标向左下上右移动;

​ 复制:

​ yy:复制光标所在行的内容;

​ nyy:复制光标开始n行的内容;

​ 粘贴:

​ p:将拷贝内容粘贴到光标的下一行;

​ np:将n份拷贝内容粘贴到光标的下一行;

​ 撤销:

​ u:撤销上次操作;

​ ctrl+r:反撤销;

​ 剪切:

​ dd:剪切光标所在行内容;

​ ndd:剪切光标所在行开始n行的内容;

​ 其他:

​ shift+~:快速大小写转换;

​ nr:将光标当前位置的往后n个字符替换;

​ nx:将光标当前位置的往后n个字符删除;

批量化替换模式

​ 使用R进入,按两下insert键;

插入模式

​ 使用i进入,或者I,或者按一下insert键;

批量选择模式:

​ 使用ctrl+v进入;要注意使用hjkl进行移动,再次进入插入模式要使用I;

多文件模式

​ 使用vs 文件名进入;

​ 使用ctrl+ww实现光标在不同文件的切换;

底行模式

​ 1.!wq:!表示强制执行,w表示写入保存,q表示退出;

​ 2./+文本关键词:搜索功能,搜索文本关键词匹配的子串;

​ 3.!+各种指令操作:在vim里执行各种指令;

​ 4.set nu/nonu:显示行号/去掉行号;

三、编译工具gcc/g++

3.1gcc的使用

​ g++与gcc类似,只是编译.cc/.cpp./cxx结尾的文件,gcc编译的是.c文件。

​ 要注意的是,能够开发是因为安装了相关的头文件和库文件,头文件在/user/include/路径下存放着,库文件在/lib64下存放着;

​ 对一份源代码编译可细分为四个阶段,分别是预处理、编译、汇编、链接;

预处理阶段:

gcc -E test.c -o test.i -g
#这个阶段主要进行了去注释、头文件展开、条件编译、宏替换;
#E表示执行到预处理阶段结束,o表示以此方式命名,D表示定义一个量,用来进行条件编译;生成的.i文件本质上是一个较为干净的源文件,g表示以debug的方式进行编译,会留下许多调试信息;

编译阶段:

gcc -S test.i -o test.s
#这个阶段主要进行了语法检查,符号汇总,生成了汇编文件;
#S表示执行到编译阶段结束

汇编阶段:

gcc -c test.s -o test.o
#这个阶段是将汇编文件转换成二进制文件,形成符号表(注意此时的符号表不一定是有效的)
#c表示执行到汇编阶段结束,.o文件是可重定位目标二进制文件

链接阶段:

gcc test.o -o test.exe
#这个阶段会将多个二进制文件进行连接形成可执行文件或者库文件,进行合并符号表(此时的符号表才是有效的)
#不加选项直接生成的就是可执行程序,Windows下要求可执行程序必须是以.exe后缀结尾的;

​ 条件编译可以实现同时维护专业版和社区版的软件,具体使用不同的版本是使用条件编译就可以对代码进行切割;

3.2、编译完成常用的一些指令

1.od

od 二进制文件名
#进行二进制文件的查看

2.ldd

ldd test.exe
#查看可执行程序的依赖情况

3.file

file 可执行程序
#显示链接方式

4.readelf

readelf 可执行程序
#查看可执行程序的二进制构成,可执行程序一般是elf格式的二进制文件;

5.stat

stat 文件名
#可以查看文件的属性

3.3链接

​ Linux中.so是动态库,.a是静态库,Windows中.dll是动态库,.lib是静态库,库文件其实就是对.o文件进行打包。一般libname.so中name就是库文件的名字。

​ 安装开发包的本质就是安装头文件和对应的库文件,头文件提供声明,库文件提供实现和定义;默认使用的是动态库的方式进行链接。

​ 链接方式分为静态链接和动态链接;

​ 对于动态链接,动态库又被称为共享库,不同的程序都可以访问,只存在一份即可,但是程序对动态库的依赖性较大。

​ 对于静态库,是将库文件的内容拷贝到自己的可执行文件中,用哪些拷贝哪些,依赖性较弱,可以独立运行程序,但是会导致代码膨胀;

​ 形成可执行程序时,默认使用的连接方式是动态链接,所以必须提供动态库,进行静态链接时需要加选项-static;

四、自动化构建工具make/makefile

​ make:一条指令,makefile:是一个当前目录下的文件,通过依赖关系和依赖方法,进行栈结构的推导来完成自动化构建;

​ 注意依赖方法不可以顶格写。可执行程序和源程序的更新是通过时间戳来进行比较的,如果时间戳更新了就可以make重新构建,时间戳不更新,make就不会执行,这是做为了提高编译效率。

​ 如果想让对应的依赖关系总是被执行,.PHONY:伪目标,就会强制执行伪目标。

​ 特殊符号:

@

:表示左边的目标文件,

@ :表示左边的目标文件,

@:表示左边的目标文件,^表示右边的目标文件;

​ 不想让依赖方法回显,可以在依赖方法前面+@;

.PHONY:all
all:tcpserverd tcpclient
tcpclient:TcpClient.cc
	@g++ -o $@ $^ -std=c++11 
tcpserverd:Main.cc
	@g++ -o $@ $^ -std=c++11 -lpthread
.PHONY:clean
clean:
	@rm -f tcpserverd tcpclient

五、git版本控制器

​ git是具有网络功能的版本控制器,是开源的并且既可以是客户端也可以是服务端,其功能主要是:1.本地开发进行版本管理;2.在企业进行多人协作;

​ 出现了基于git的商业化网站:gitee、github;

5.1git三板斧
git clone 网址
#将网络远端的分支拉取到本地
git add .
#将当前所有没被添加到仓库的东西添加到仓库暂存区里
git commit -m"message"
#提交到本地仓库
git push
#将本地仓库的内容推送到远端
git log
#查看提交历史记录
git status
#查看git状态,该执行哪一步了


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

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

![](https://img-blog.csdnimg.cn/img_convert/f251e09b7b149154e26bf3c7fbd5be84.png)

本份面试集锦涵盖了

*   **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密码?

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

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/ae9d2117dae7b177901e5e5d22774582.jpeg)

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

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

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

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

> 17、如何重置mysql root密码?

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

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-yNk0ytoq-1713366667108)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值