【Linux】基础开发工具
L i n u x Linux Linux 环境下的开发工具非常丰富,是程序员和开发人员进行高效开发的必备基础。 L i n u x Linux Linux 环境下的开发工具主要包括 y u m yum yum 软件包管理器、 v i m vim vim 文本编辑器、 g c c / g gcc/g gcc/g++ 编译器、 g d b gdb gdb 调试工具、 m a k e f i l e makefile makefile b以及 g i t git git 版本管理工具等。
文章目录
- 一、yum(软件包管理器)
- 1. 什么是软件包
- 2. Linux 软件生态
- 3. yum 具体操作
- 3.1 查看软件包
- 3.2 安装软件
- 3.3 卸载软件
- 4. 安装源
- 二、vim(编辑器)
- 1. vim 基本功能和介绍
- 2. vim 基本模式
- 三、gcc/g++(编译器)
- 四、make/makefile(自动化构建)
- 五、git(版本控制器)
- 六、gdb(调试器)
- 总结
一、yum(软件包管理器)
1. 什么是软件包
在 L i n u x Linux Linux 下安装一个软件,本质上是拷贝文件,得到可执行程序,可执行程序又需要各种依赖的库。软件包管理器( y u m / a p t yum/apt yum/apt)提供了自动解决依赖关系、下载和安装软件包的功能。
一般来说,我们可以通过两种方式来获取可执行程序:
-
直接下载源代码 → \rightarrow → 编译 → \rightarrow → 可执行程序
-
直接下载可执行程序
看见直接下载源代码再编译太麻烦了,于是有人就把一些常用的软件提前编译好,做成软件包(可以理解成 w i n d o w s windows windows 上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。
软件包和软件包管理器,就好比 A p p App App 和 应用商店 这样的关系。
-
y u m \color{blue}yum yum:是 L i n u x Linux Linux 下非常常用的一种包管理器。主要应用在 F e d o r a Fedora Fedora, R e d H a t RedHat RedHat, C e n t o s \color{blue}Centos Centos 等发行版上。
-
a p t \color{red}apt apt:也是 L i n u x Linux Linux 下非常常用的一种包管理器。主要应用在 U b u n t u \color{red}Ubuntu Ubuntu 等发行版上。
关于软件包依赖的问题
2. Linux 软件生态
L i n u x Linux Linux 下载软件的过程( U b u n t u 、 C e n t o s 、 o t h e r Ubuntu、Centos、other Ubuntu、Centos、other)和手机的软件应用商城类似,通过云服务器内置的包管理器( y u m yum yum),就可以自动去软件包服务器进行查找和下载:
为什么会有人免费特定社区提供软件,还发布?还提供云服务器让你下载?
开源:本质上是一种商业模式。
因为要想使一款操作系统的生态变好,必然要提供软件,才会有更多人使用,如果开源软件被某个公司或个人所使用,那么就会产生依赖行为,我们当然不希望我们所使用的软件倒闭掉,因此就会有人发起募捐,从而将操作系统的整个生态发展起来。
操作系统的好坏评估 —— —— —— 生态问题
一个操作系统的生态主要包括:社区、文档、软件、人群、问题等。因此一个操作系统背后的软件体系一定程度上影响了这个操作系统的生态。
因此一些开发者就会在软件包管理器的服务器上上线开发好的产品:
由于 L i n u x Linux Linux 操作系统是国外的,因此操作系统的生态也主要是国外的生态,而我们访问国外的网站会很卡或者根本访问不了,这个时候,国内的一些开发者就在国内建立了镜像源,将国外网站的软件链接拷贝到国内,我们的云服务器的 y u m yum yum 源就都是国内网站了,以下是几个常见的国内镜像源:
-
阿里巴巴镜像源:【官方链接】https://developer.aliyun.com/mirror/。
-
清华大学开源软件镜像站:【官方链接】https://mirrors.tuna.tsinghua.edu.cn/。
-
中国科学技术大学开源镜像站:【官方链接】http://mirrors.ustc.edu.cn/。
-
中国科学院软件研究所镜像站( I S C A S ISCAS ISCAS)【官方链接】http://mirror.iscas.ac.cn/。
-
网易开源镜像站:【官方链接】http://mirrors.163.com/。
3. yum 具体操作
安装软件到系统中,始终要使用 r o o t root root 权限,将软件安装到系统当中,只要安装一次,所有人都能使用。
3.1 查看软件包
我们可以通过
yum list
命令来查看所有的软件包,由于软件包的数量可能非常多,因此我们可以使用grep
命令来过滤出我们想要的包。
[root@VM-8-4-centos ~]# yum list | grep gcc.x86_64
gcc.x86_64 4.8.5-44.el7 @os
libgcc.x86_64 4.8.5-44.el7 @os
avr-gcc.x86_64 4.9.2-1.el7 epel
gcc-x86_64-linux-gnu.x86_64 4.8.5-16.el7.1 epel
-
软件包名称:
主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构
。 -
软件包系统架构:
x86_64
后缀表示 64 64 64 位系统的安装包,i686
后缀表示 32 32 32 位系统安装包。 -
操作系统发行版本:
el7
表示的是 c e n t o s 7 / r e d h a t 7 centos\ 7/redhat\ 7 centos 7/redhat 7,el6
表示 c e n t o s 6 / r e d h a t 6 centos\ 6/redhat\ 6 centos 6/redhat 6。 -
软件源的名称:
os
表示的是系统软件源,epel
表示的是扩展软件源,base
表示的是标准软件源,类似于小米应用商店、华为应用商店这样的概念。
3.2 安装软件
安装软件的命令为:
sudo yum install [软件名]
。 y u m yum yum 会自动找到都有哪些软件包需要下载,这时候敲 y y y 确认安装,出现 c o m p l e t e complete complete 字样或者中间未出现报错,说明安装完成。
如果不想敲 y y y 确认安装,我们可以在后面添加一个 -y
选项,表示自动确认安装:
[root@VM-8-4-centos ~]# yum install -y sl
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package sl.x86_64 0:5.02-1.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved========================================================================================================================================================================Package Arch Version Repository Size
========================================================================================================================================================================
Installing:sl x86_64 5.02-1.el7 epel 14 kTransaction Summary
========================================================================================================================================================================
Install 1 PackageTotal download size: 14 k
Installed size: 17 k
Downloading packages:
sl-5.02-1.el7.x86_64.rpm | 14 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : sl-5.02-1.el7.x86_64 1/1 Verifying : sl-5.02-1.el7.x86_64 1/1 Installed:sl.x86_64 0:5.02-1.el7 Complete!
注意: y u m yum yum 安装软件只能一个装完了再装另一个,正在 y u m yum yum 安装一个软件的过程中,如果再尝试用 y u m yum yum 安装另外一个软件, y u m yum yum 会报错。
3.3 卸载软件
卸载软件的命令为:
sudo yum remove [软件名]
。这时候敲 y y y 确认卸载,出现 c o m p l e t e complete complete 字样或者中间未出现报错,说明卸载完成。
如果不想敲 y y y 确认卸载,我们可以在后面添加一个 -y
选项,表示自动确认卸载:
[root@VM-8-4-centos ~]# yum remove -y sl
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package sl.x86_64 0:5.02-1.el7 will be erased
--> Finished Dependency ResolutionDependencies Resolved========================================================================================================================================================================Package Arch Version Repository Size
========================================================================================================================================================================
Removing:sl x86_64 5.02-1.el7 @epel 17 kTransaction Summary
========================================================================================================================================================================
Remove 1 PackageInstalled size: 17 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionErasing : sl-5.02-1.el7.x86_64 1/1 Verifying : sl-5.02-1.el7.x86_64 1/1 Removed:sl.x86_64 0:5.02-1.el7 Complete!
4. 安装源
C e n t O S CentOS CentOS 安装源路径是在
/etc/yum.repos.d
目录下,一般来说国内的云服务器默认软件源都是国内的。
[root@VM-8-4-centos ~]# ll /etc/yum.repos.d
total 16
-rw-r--r-- 1 root root 614 Sep 8 2024 CentOS-Base.repo # 标准源
-rw-r--r-- 1 root root 230 Sep 8 2024 CentOS-Epel.repo # 扩展源
二、vim(编辑器)
1. vim 基本功能和介绍
v i / v i m vi/vim vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 v i m vim vim 是 v i vi vi 的升级版本,它不仅兼容 v i vi vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x w i n d o w x\ window x window、 m a c o s mac\ os mac os、 w i n d o w s windows windows。因此,我们主要介绍的是 v i m vim vim 编辑器。
v i m vim vim 的基本功能:
-
命令行模式下的文本编辑器。
-
根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能。
-
使用方式:
vim [filename]
。(1) 如果已有该文件,则打开它。
(2) 如果没有该文件,则打开个一个新的文件,并命名为 f i l e n a m e filename filename。
2. vim 基本模式
v i m vim vim 主要有三种基本模式(其实有好多模式,掌握最常用的 3 3 3 种即可)。分别是:命令模式( n o r m a l m o d e normal\ mode normal mode)、插入模式( i n s e r t m o d e insert\ mode insert mode)和底行模式( l a s t l i n e m o d e last\ line\ mode last line mode),各模式的功能区分如下:
- 命令模式( n o r m a l m o d e normal\ mode normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段。
可以进入到 i n s e r t m o d e insert\ mode insert mode 下,或者到 l a s t l i n e m o d e last\ line\ mode last line mode 默认模式。
- 插入模式( i n s e r t m o d e insert\ mode insert mode):进行文字输入操作。(编辑器核心模式)
在命令模式下,按下 a / i / o a/i/o a/i/o 三个字母中的任意一个会进入编辑模式;按【 E s c Esc Esc】键可回到命令行模式。
- 底行模式( l a s t l i n e m o d e last\ line\ mode last line mode):进行文件保存或退出,文件替换,找字符串,列出行号等操作。
在命令模式下,按下 : / ? :\ /\ ? : / ? 三个字母中的任意一个即可进入底行模式;按【 E s c Esc Esc】键可回到命令行模式。
要查看你的所有模式:打开 v i m vim vim,底行模式直接输入
:help vim-modes
。
操作:
(1) i:进入编辑模式
(2) ESC:进入一般命令模式
(3) h 或 左箭头键:光标向左移动一个字符
(4) j 或 向下箭头:光标向下移动一个字符
(5) k 或 向上箭头:光标向上移动一个字符
(6) l 或 向右箭头:光标向右移动一个字符
(7) n:n表示数字,按下数字后再按空格,光标会向右移动这一行的n个字符
(8) 0 或 功能键[Home]:光标移动到本行开头
(9) $ 或 功能键[End]:光标移动到本行末尾
(10) G:光标移动到最后一行
(11) :n 或 nG:n为数字,光标移动到第n行
(12) gg:光标移动到第一行,相当于1G
(13) n:n为数字,光标向下移动n行
(14) /word:向光标之下寻找第一个值为word的字符串。
(15) ?word:向光标之上寻找第一个值为word的字符串。
(16) n:重复前一个查找操作
(17) N:反向重复前一个查找操作
(18) :n1,n2s/word1/word2/g:n1与n2为数字,在第n1行与n2行之间寻找word1这个字符串,并将该字符串替换为word2
(19) :1, s / w o r d 1 / w o r d 2 / g :将全文的 w o r d 1 替换为 w o r d 2 ( 20 ) : 1 , s/word1/word2/g:将全文的word1替换为word2 (20) :1, s/word1/word2/g:将全文的word1替换为word2(20):1,s/word1/word2/gc:将全文的word1替换为word2,且在替换前要求用户确认。
(21) v:选中文本
(22) d:删除选中的文本
(23) dd: 删除当前行
(24) y:复制选中的文本
(25) yy: 复制当前行
(26) p: 将复制的数据在光标的下一行/下一个位置粘贴
(27) u:撤销
(28) Ctrl + r:取消撤销
(29) 大于号 >:将选中的文本整体向右缩进一次
(30) 小于号 <:将选中的文本整体向左缩进一次
(31) :w 保存
(32) :w! 强制保存
(33) :q 退出
(34) :q! 强制退出
(35) :wq 保存并退出
(36) :set paste 设置成粘贴模式,取消代码自动缩进
(37) :set nopaste 取消粘贴模式,开启代码自动缩进
(38) :set nu 显示行号
(39) :set nonu 隐藏行号
(40) gg=G:将全文代码格式化
(41) :noh 关闭查找关键词高亮
(42) Ctrl + q:当vim卡死时,可以取消当前正在执行的命令
异常处理:
每次用vim编辑文件时,会自动创建一个.filename.swp的临时文件。
如果打开某个文件时,该文件的swp文件已存在,则会报错。此时解决办法有两种:
(1) 找到正在打开该文件的程序,并退出
(2) 直接删掉该swp文件即可