当前位置: 首页 > news >正文

【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)提供了自动解决依赖关系下载安装软件包的功能

一般来说,我们可以通过两种方式来获取可执行程序:

  1. 直接下载源代码 → \rightarrow 编译 → \rightarrow 可执行程序

  2. 直接下载可执行程序

看见直接下载源代码再编译太麻烦了,于是有人就把一些常用的软件提前编译好,做成软件包(可以理解成 w i n d o w s windows windows 上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。

软件包软件包管理器,就好比 A p p App App应用商店 这样的关系。

  1. 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 等发行版上。

  2. 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 UbuntuCentosother)和手机的软件应用商城类似,通过云服务器内置的包管理器 y u m yum yum),就可以自动去软件包服务器进行查找和下载:

在这里插入图片描述

1 1 1

为什么会有人免费特定社区提供软件,还发布?还提供云服务器让你下载?

在这里插入图片描述

2 2 2

开源:本质上是一种商业模式。

因为要想使一款操作系统的生态变好,必然要提供软件,才会有更多人使用,如果开源软件被某个公司或个人所使用,那么就会产生依赖行为,我们当然不希望我们所使用的软件倒闭掉,因此就会有人发起募捐,从而将操作系统的整个生态发展起来。

操作系统的好坏评估 —— —— —— 生态问题

在这里插入图片描述

3 3 3

一个操作系统的生态主要包括:社区、文档、软件、人群、问题等。因此一个操作系统背后的软件体系一定程度上影响了这个操作系统的生态。

因此一些开发者就会在软件包管理器的服务器上上线开发好的产品:

在这里插入图片描述

4 4 4

由于 L i n u x Linux Linux 操作系统是国外的,因此操作系统的生态也主要是国外的生态,而我们访问国外的网站会很卡或者根本访问不了,这个时候,国内的一些开发者就在国内建立了镜像源,将国外网站的软件链接拷贝到国内,我们的云服务器的 y u m yum yum 源就都是国内网站了,以下是几个常见的国内镜像源

  1. 阿里巴巴镜像源:【官方链接】https://developer.aliyun.com/mirror/。

  2. 清华大学开源软件镜像站:【官方链接】https://mirrors.tuna.tsinghua.edu.cn/。

  3. 中国科学技术大学开源镜像站:【官方链接】http://mirrors.ustc.edu.cn/。

  4. 中国科学院软件研究所镜像站 I S C A S ISCAS ISCAS)【官方链接】http://mirror.iscas.ac.cn/。

  5. 网易开源镜像站:【官方链接】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 
  1. 软件包名称主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构

  2. 软件包系统架构x86_64 后缀表示 64 64 64 位系统的安装包,i686 后缀表示 32 32 32 位系统安装包。

  3. 操作系统发行版本el7 表示的是 c e n t o s 7 / r e d h a t 7 centos\ 7/redhat\ 7 centos 7/redhat 7el6 表示 c e n t o s 6 / r e d h a t 6 centos\ 6/redhat\ 6 centos 6/redhat 6

  4. 软件源的名称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 的基本功能:

  1. 命令行模式下的文本编辑器。

  2. 根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能。

  3. 使用方式: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),各模式的功能区分如下:

  1. 命令模式 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 默认模式。

  1. 插入模式 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】键可回到命令行模式。

  1. 底行模式 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文件即可


三、gcc/g++(编译器)


四、make/makefile(自动化构建)


五、git(版本控制器)


六、gdb(调试器)


总结

http://www.xdnf.cn/news/302923.html

相关文章:

  • Flutter开发HarmonyOS实战-鸿蒙App商业项目
  • Mac电脑,idea突然文件都展示成了文本格式,导致ts,tsx文件都不能正常加载或提示异常,解决方案详细说明如下
  • Mathematica中的ResourceFunction
  • Oracle中游标和集合的定义查询及取值
  • 使用 git subtree 方法将六个项目合并到一个仓库并保留提交记录
  • Python Cookbook-7.4 对类和实例使用 cPickle 模块
  • 家庭宽带IP与IDC机房IP
  • 第100+40步 ChatGPT学习:R语言实现多轮建模
  • 用 Tailwind CSS 优化你的 Vue 3 项目! ! !
  • MySQL从入门到精通(一):MySQL介绍及数据库相关概念
  • 高级java每日一道面试题-2025年5月02日-基础篇[反射篇-编码]-使用反射,获取Class对象
  • WPF MVVM入门系列教程(五、命令和用户输入)
  • 如何使用vmstat 和 free 查看内存碎片化信息?
  • Qwen3与Deepseek R1对比(截止20250506)
  • C++ - 仿 RabbitMQ 实现消息队列(1)(环境搭建)
  • 典籍知识问答模块AI问答功能feedbackBug修改+添加对话名称修改功能
  • MySQL基础关键_009_DDL 和 DML(二)
  • vue源代码采用的设计模式分解
  • Hive优化秘籍:大数据处理加速之道
  • Excel 数据 可视化 + 自动化!Excel 对比软件
  • Excel Vlookup
  • Tomcat中Web应用程序停止时为了防止内存泄漏,JDBC驱动程序被强制取消注册出现原因
  • 荣耀A8互动娱乐组件部署实录(终章:后台配置系统与整体架构总结)
  • 链表的面试题2反转单链表
  • 第三章:langchain加载word文档构建RAG检索教程(基于FAISS库为例)
  • 5.6 react组件化开发基础
  • Elasticsearch知识汇总之ElasticSearch部署
  • conda 环境克隆
  • ϵ-prediction和z0-prediction是什么意思
  • 关于EIDE中debug的使用问题