从终端到 IDE:Linux 开发工具的全面指南
在正式了解开发工具之前,需要了解什么是软件包管理器。
一、软件包管理器
先提几个小问题:
1 在linux下,如何进行软件安装,查找,卸载?
.
源码安装,下载源码,进行编译,得到可执行程序。(暂不考虑)
.
rpm安装方式。
解释、理解:比如说在windows下安装软件,它不可能给你提供源代码,让你去进行编译等一系列操作。在windows上下载的这些都叫做安装包。
那么,什么是安装包呢?
安装包:就是把源代码在windows下编译好,然后打包
。(相当于有人提前给你把这些工作做好了)
我们所做的安装其实就是把编译好的二进制文件拷贝到指定的目录下。
在linux中,将软件进行打包往往打包成rpm方式(安装包的格式)
在软件安装过程中,有时候软件之间是存在依赖关系的。比如,我们都学习过某种编程语言吧,都使用过库函数吧,那我们就应该知道,库函数是需要依赖于对应的库文件的,如果没有这个库,这个程序肯定是无法运行的。
ldd 可执行文件:查看可执行文件或共享库所依赖的动态链接库
rpm无法解决软件之间的依赖关系,所以这种方式也不考虑。
.
yum/apt工具级别安装
推荐使用这种方式。它不仅会把你需要的软件给你,还会自动解决软件之间的依赖关系。
那么,什么是yum/apt呢?
举个简单的例子,大家应该都在电脑上下载过应用吧,是不是有时候想要下载的是某一个应用,但是动不动就会安装一些不相关的应用,所以,有了应用商店这类的应用。而yum/apt就像是应用商店。
2 linux软件的生态问题。
在应用商店里,我们想要下载抖音或者快手,只需要点击安装就可以了,这些软件一定是由开发者设计出来的,那么凭什么给我们免费使用呢?虽然应用是免费的,但是他们肯定直接或间接的赚取了利益。那么linux上的软件也一定是开发者或公司开发的。linux是开源的,为什么要给我们开发软件,给我们用?
软件包服务器:把程序提前编译好,做成软件包(可以理解成windows上的可执行程序)放在一个服务器上,通过包管理器(yum/apt)可以很方便的获取到这个编译好的软件包,进行安装。
在windows上,我们要下载的软件都有对应的软件包服务器,给用户会提供应用商店,应用商店(yum/apt)里会内置要下载的软件对应的软件包服务器的网络地址
,给用户提供图形化界面去搜索。linux也是一样的,它也有软件包服务器,开发者会把软件进行编译,打包放在软件包服务器上,让linux用户下载安装。
总结:我们下载的软件是在远端的。
为了更好地了解软件的生态问题,用一个简单的例子来说明。比如说你要去买衣服,你不仅会考虑衣服的观赏性,也会考虑它的质量以及它的价格是否划算。那么如何来评估操作系统的好坏呢?衣服的观赏性好他就一定好吗?当然不是,所以一款操作系统的好坏需要从操作系统的软件生态来进行整体评估,包括用户群体是否够多,社区论坛是否活跃。软件体系是否丰富等综合方面。
假如,你现在是一个操作系统的编写者,你编写操作系统的目的就是为了让更多的人去使用,那么你就不能仅仅只编写操作系统,还要去维护操作系统的生态问题,即使你没有时间你也要支持这种操作,拥护这款操作系统的人就会帮你去建设生态问题,自发的开始给Linux系统开发大量的上层软件,这也就是为什么有人会给我们开发软件的原因。
开发者编写程序,在不同的平台上进行编译发布(为了生成适合于不同平台的可执行程序文件),用户在不同的平台上下载软件就会下载适合自己系统的应用程序。这也是为什么语言要支持跨平台的原因,这样无形当中就可以提高用户的使用量,使语言更具有竞争力。
linux操作系统,ubuntu,centos等都是国外的,所以软件包服务器也是国外的。应用商店里内置的链接也是国外的,如果你是使用虚拟机下载软件,可能不会允许你访问。所以,才有了镜像,它将国外的软件包服务器拷贝了一份,用国内的软件包服务器重新搭建,内置国内软件包服务器的地址。
二、yum/apt 的具体操作
安装软件,要以超级用户的身份进行安装。我们已经知道了安装软件其实就是把已经编译好的二进制文件拷贝到指定目录下,这也就意味着安装过程中要受到权限的约束(至少你要进入目录就需要x权限)
。
apt install -y command安装软件apt remove -y command删除软件apt list | grep command搜索apt search command普通用户可以使用sudo提权
安装软件
sl运行结果
删除软件
有的时候你去安装软件未必能够成功,这是因为软件源的原因。软件源包括稳定软件源和扩展软件源。一般比较新的软件会放在扩展软件源里。
yum install -y epel-release更新扩展源(centos)ls /etc/yum.repos.d/查看这个目录下的配置文件,内置链接就在配置文件里ls /etc/apt/sources.list查看ubuntu的内置链接
证明:yum/apt里是有软件包服务器内置链接的
三、编辑器vim
1. vim模式关系图
vim是一个编辑器,多模式的编辑器。
它既然是多模式,那我们就来看看它的几种模式。用一张简图来清晰的表述它们之间的关系。
注:
.
vim + 文件名(回车键)所处的模式就是命令模式
。
.
退出vim编辑器,在命令模式下按 shift + ; 进入底行模式,输入q(未添加新内容)或wq(添加了新内容)就可以退出vim编辑器
。
.
命令模式下 shift + zz也可以退出编辑器(前提是未添加新内容)
。
2. 命令模式
接下来,就来详细谈谈命令模式?
命令模式:键盘上的输入,会被当做命令来看待。
既然是命令模式,那肯定是少不了命令的。
我们就直接列举命令模式下的命令吧,就不演示结果了(也没啥结果可以演示的)。
.
vim 文件名 数字--------将光标定位到某一行
.
gg 光标快速定位在最开始
.
shift + g = G光标快速定位到结尾
.
n + shift + g = G光标快速定位到任意一行
.
shift + 6 = ^光标定位在行开始
.
shift + 4 = $光标定位在行结尾
.
hjkl依次代表左、下、上、右
.
yy复制当前行
.
p粘贴到下一行
.
n + yy复制当前行之后的n行
.
n + p可以进行重复粘贴n次
撤销操作都是基于没有退出vim编辑器的情况下
.
u(undo)撤销
.
Ctrl + r对u进行撤销(反撤销)
.
dd删除当前行
.
dd + p剪切,相当于windows上的Ctrl + x
shift + ` = ~ 快速的对内容进行大小写切换
.
n + w 以单词为单位,向后移动
.
n + b 以单词为单位,向前移动
.
n + x删除光标所在字符之后的内容
.
n + shift + x = X删除光标所在字符之前的内容
.
n + r修改光标所在字符
.
shift + r = R让vim进入替换模式,覆盖式的进行替换
shift + #选中一个单词 n查找下一个
批量化注释
Ctrl + v进入视图模式hjklshift + i进入插入模式//(如果是//就是批量化注释,反之也可以是批量化文本插入)Esc
批量化去注释/删除
Ctrl + vhjkld
这些就是命令模式的基本操作啦。
3. 底行模式
.
w 保存
.
q 退出
.
wq 保存并退出
.
! 强制
.
set nu 设置行号
.
set nonu 去掉行号
.
!command 执行该命令且不退出vim
.
vs newfile创建新文件(需按下wq)
.
Ctrl + ww 切换光标
.
%s/src/dst 批量化替换
四、vim的基本配置
1. vim的配置是在做什么?
vim的基本配置是给普通用户用的,vim打开文件,里面是什么都没有的,它本质上是去自动扫描用户家目录下的.vimrc的内容
。
2.vim的一键化配置
在gitee上搜vimforcpp,目前只支持centos7或者vimplus。按照教程安装即可。也可以用大模型帮你生成一份。
今天的内容分享到此告一段落了,觉得不错的小伙伴给个一键三连吧。