Linux开发工具

一、yum

1.1安装方式

1.源代码安装,较为复杂不建议;

2.rpm安装,此方式有许多的安装依赖,不见使用;

3.yum安装,解决了安装源,安装版本和安装依赖的问题;

1.2Linux的软件生态

​ 像手机,iPad,笔记本等都有一个类似软件管家的软件,这个客户端软件内置了服务器ip和port,可以直接找到各个商家上线的软件产品;好处就是不需要自己去网站上下载。

​ 公司为了盈利,个人为了提高知名度,会不断地上传软件产品,支持人们下载使用。

​ 而对于centos系列Linux,yum就相当于软件管家,支持去下载各种软件,ubantu使用的是apt-get;

1.3开源是一种商业战略
1.3.1Linux的生态

市场上存在着多种商业版本的Linux,对于使用者要进行操作系统的选型,评判标准如下:

​ 1.获取来源是否足够多,足够的官方;

​ 2.行业内共识是否比较好,比较稳定;

​ 3.是否有健全的社区,社区是否足够活跃,社区里面暴露了许多问题,同时有解决方案;

​ 4.是否有提供成熟的开发文档,各种实践场景;

​ 5.是否有良好的软件生态;

​ 开源的优势是一个人维护大型项目,不如多个人来维护,同时开源有利于形成良好的Linux生态,有利于快速占据市场;

1.4开源产生依赖

​ 操作系统的设计者和推动者要共同维护Linux的生态。

​ 推动者如:顶尖的工程师或者黑客,为了实现价值提高知名度,维护软件生态;

​ 由于Linux开源免费,所以很多互联网公司主要使用Linux并且会产生使用依赖。使用者们的目的为了产生企业级软件,所以购买Linux服务器,鼓励工程师和黑客们开发服务。开源免费注定资金不足,难以维持生态,这时候使用者们就会以提供钱或者设备的捐赠之类的方式维护其生态。

1.5yum使用

​ yum的使用必须联网,可以使用ping指令进行验证。

ping www.baidu.com

yum list
#列举一下所有软件包,但是由于很多需要搭配grep过滤出来需要的
sudo yum install -y 软件包名
#需要注意的是普通用户安装软件需要提权
sudo yum remove -y 软件包名
#进行软件的卸载

1.5.1rz/sz软件的安装和使用
sudo yum install -y lrzsz
rz
#将文件从Windows传到Linux上
sz 文件名
#将文件发送到Windows

1.5.2yum源

​ yum内置了app下载链接,即yum源。

​ Base指的是官方yum源,epel指的是扩展yum源。

​ yum源存放在/etc/yum.repos.d这个目录下。

sudo yum install -y eple-release
#安装扩展yum源

二、vim编辑器

​ vim是一种多模式编辑器,常见的是三种模式。以下是三种模式及切换方式。在底行模式下,:!wq。!表示强制执行,w表示写入保存,q表示退出。

在这里插入图片描述

命令模式

​ 使用n可以进行性n行操作;

​ 光标定位:

​ gg:定位光标到文本起始行开始的位置;

​ G:定位光标到文本最后一行的开头位置;

​ ng:定位到n行开头;

​ $:光标定位到当前行结尾;(锚点)

​ ^:光标定位到当前行开头;(锚点)

​ w:光标向右移动;

​ 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格式的二进制文件;



### 最后的话

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

### 资料预览

给大家整理的视频资料:

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

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

  

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



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

详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK

4.readelf

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



### 最后的话

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

### 资料预览

给大家整理的视频资料:

[外链图片转存中...(img-pkLddVQR-1724345637504)]

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

  

[外链图片转存中...(img-ZF0HMvXt-1724345637505)]



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

详情docs.qq.com/doc/DSmdCdUNwcEJDTXFK
  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值