先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
正文
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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**