♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥
♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥
♥♥♥我们一起努力成为更好的自己~♥♥♥
♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥
♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥
✨✨✨✨✨✨ 个人主页✨✨✨✨✨✨
前面的两篇博客,我们已经对Linux命令行的基础指令进行了简单的学习,更多的使用指令需要我们在实践中去积累,这一篇博客,我们将开启Linux新篇章——Linux下的基础开发工具~准备好了吗~我们发车去探索Linux的奥秘啦~🚗🚗🚗🚗🚗🚗
目录
软件包管理器😎
Linux下软件安装、查找与卸载方法😘
Linux下安装软件有下面的几种方式,在此之前我们需要明确一点软件之间是存在着依赖关系的【即一个软件在运行或执行某些功能时,需要依赖另一个软件或库的存在和正常工作】,我们可以手动解决~也可以使用到软件包管理器~
源码安装:直接通过源代码进行安装~
rpm安装方式:平时使用到的安装包本质在Windows下编译源代码后打包~
yum/apt工具级别【软件包管理器】安装:
功能:自动提供软件并解决依赖关系~
比喻:软件包相当于APP,软件包管理器相当于应用商店~找到软件即可下载~
下面的图片显示了Linux下下载软件的过程:云服务器通过包管理器(如yum/apt)发起软件包查找和下载请求,软件包服务器响应并提供所需软件包~包管理器负责解决软件包间的依赖关系,确保软件正常运行,并执行下载、安装和卸载操作~
进一步理解软件包管理器:
软件包管理器是一个工具,它负责自动化软件包的安装、更新、卸载等操作,并处理软件包之间的依赖关系~软件包管理器通过维护一个软件包仓库(类似于应用商店),用户可以从仓库中搜索、下载和安装软件包~
操作系统生态😊
操作系统生态是以操作系统为核心,涵盖应用软件、硬件设备、开发者社区和用户群体的完整体系~它对于保障国家信息安全、推动技术创新和产业发展、提升操作系统市场竞争力和用户满意度具有重要意义~
评价一个操作系统的好坏是通过操作系统生态进行评估的,而不是单独某一个方面进行评估~
组成部分:
》操作系统内核和系统软件:
作为生态的基础,提供运行环境和支持,包括系统调用、编译环境等。
》应用软件:
满足用户在不同领域的需求,如办公、娱乐、教育等,是生态价值的重要体现。
》硬件设备:
确保操作系统与各种硬件的兼容性,包括计算机硬件、外设等,是生态稳定运行的基础。
》开发者社区:
活跃的开发者社区推动技术创新和生态发展,为开发者提供技术支持和分享经验。
》用户群体:
作为生态的最终受益者,用户的需求和反馈对生态发展至关重要。
软件包管理是操作系统生态中的重要环节,涉及软件的安装、更新和卸载。一个完善的操作系统生态应提供便捷、高效的软件包管理工具和服务,以满足用户的不同需求。同时,软件包管理流程的优化和改进也有助于提升操作系统生态的完善程度和用户体验。
也就有了下面的图片:
Linux安装/删除/搜索软件实践操作😁
我们知道在操作系统中,不同的用户具有不同的权限,普通用户通常只能访问和修改自己的文件和目录,而无法对系统级别的文件和目录进行更改,而安装软件通常涉及到将软件文件复制到系统目录(如/usr/bin
、/usr/lib
等),这些目录通常只有超级用户(如root)才有权限写入~所以Linux下安装软件,我们要以超级用户的身份进行安装!也就是说我们需要对普通用户进行权限提升(使用sudo)~
小编使用的Linux发行版是Centos版本,所以使用yum软件包管理器,如果是Ubuntu可以使用apt软件包管理器~
我们这里测试下载一个比较好玩的,命令行输入sudo yum install sl
询问是否安装,确认输入y,否定输入n
安装完成!
使用sl:
就会出现一个跑起来的小火车~
如果我们想要删除这个软件就可以命令行输入:sudo yum remove sl
确认删除:
删除成功:
我们可以发现安装的时候总是会询问我们是否安装,我们可以在命令行输入的时候加上【-y】选项就可以不询问直接进行安装了~
有了安装和删除软件,我们知道平时应用商店还支持搜索查找软件,那么使用软件包管理器怎么搜索查找呢?我们可以使用接下来的两条命令:
sudo yum list | grep sl
sudo
:以超级用户身份执行命令。yum list
:列出所有可用或已安装的软件包。|
:管道符,将前一个命令的输出作为后一个命令的输入。grep sl
:在yum list
的输出中搜索包含字符串“sl”的行。grep
是一个文本搜索工具,用于在输入中搜索匹配特定模式的行。
sudo yum search sl | grep sl.x86
sudo
:同样以超级用户身份执行命令。yum search sl
:搜索名称或描述中包含字符串“sl”的软件包,与yum list
不同,yum search
更灵活,它会在软件包的名称和描述中搜索匹配项。|
:管道符,将yum search sl
的输出传递给grep
。grep sl.x86
:在yum search sl
的输出中搜索包含字符串“sl.x86”的行。这通常用于筛选出特定架构(如x86)的软件包。
总结:
安装/删除软件【-y选项自己选择】
sudo yum install [-y] 你要安装的软件 sudo yum remove [-y] 你要删除的软件
搜索查找软件:
1、基于名称的直接过滤:使用
sudo yum list | grep <关键词>
,适用于已知软件包部分名称,快速列出匹配项。2、基于描述的灵活搜索:使用
sudo yum search <关键词> | grep <过滤条件>
,适用于不确定名称但了解功能,可进一步筛选结果。
知道了如何安装/删除/搜索软件查找,我们就可以根据自己的实际需要进行操作了~
安装源😜
安装源,也称为软件源或仓库,是操作系统用来获取和安装软件包的地方。它包含了软件包的元数据(如软件包名称、版本、依赖关系等)以及软件包本身。当用户使用软件包管理器(如yum
、apt
等)来安装、更新或删除软件时,软件包包管理器会从安装源中获取所需的信息和软件包。
在CentOS中,安装源通常通过.repo
文件配置在/etc/yum.repos.d/
目录下;而在Ubuntu中,标准源配置在/etc/apt/sources.list
文件中,扩展源则可以通过在/etc/apt/sources.list.d/
目录下添加配置文件来定义~
文本编辑器Vim🤔
Vim 是 Linux 系统下广泛使用的多模式的文本编辑器,它源自 Unix 系统的经典编辑器 Vi,但进行了功能扩展和改进,类似于记事本的操作~
多模式编辑模式
命令模式(默认进入时的模式):通过快捷键执行移动、复制、删除等操作(如 dd 删除整行,yy 复制)
插入模式(写代码):按 i 进入文本输入状态【插入模式】,Esc 返回命令模式
可视模式:按 v 选择文本块,支持批量操作
底行模式:输入分号【:】进入底行模式,可以执行保存(:w)、退出(:q)、搜索替换(:%s/旧/新/g)等高级命令~使用Esc 返回命令模式~
简单程序引入🙂
接下来我们使用vim来编写一个小程序打印hello xiaodu:
1、创建新文件
vim code.c
输入命令后按回车,Vim会创建并且打开一个空白文件
2、进入插入模式编写代码
按键盘 i
键进入插入模式
输入代码:
3、保存并退出Vim
按 Esc 键退出插入模式
输入:进入底行模式
底行输入:【 :w 表示写入(保存)】【 :q 表示退出】【组合使用 :wq
即可保存退出】
4、编译程序
命令行输入:
gcc code.c -o code//-o code:指定输出文件名为code
5、运行程序
我们可以修改一下代码:
重新编译运行:
我们知道默认进入的是命令模式,打开对应的文件的时候,我们可以命令行输入数字指定光标在第几行进行快速定位~注意带上【+】号~否则是其他的命令了~
通过这个小示例我们对vim的多模式编辑更加熟悉,接下来我们将更加详细的学习Vim这样一个强大的文本编辑器~
命令模式🤪
命令模式(是默认进入时的模式):通过快捷键执行移动、复制、删除等操作(如 dd 删除整行,yy 复制),键盘的输入就会默认当作命令来看待~实际上是用命令进行文本编辑,提高编辑效率~
光标移动与定位
gg
: 光标快速定位到文件最开始shift+g = G
: 光标快速定位到文件最结尾n + shift+g = nG
: 光标快速定位到文件的任意第n行shift+6 = ^
: 移动到当前行开始shift+4 = $
: 移动到当前行结尾hjkl
: 分别代表左、下、上、右方向移动(助记:jump向下跳,king王向上,键盘h在左、l在右)n+w
: 以“单词”为单位向后移动n个单词(可以跨行操作)n+b
: 以“单词”为单位向前移动n个单词(可以跨行操作)n
: 查找下一个匹配项
复制与粘贴
n+yy
: 复制当前行,或复制当前行之后的n行(例如,3yy复制当前行及之后两行,共三行)n+p
: 粘贴到下一行,可以进行重复粘贴n次
删除与剪切
n+dd
: 删除当前行及之后n-1行(例如,3dd删除当前行及之后两行,共三行),不做粘贴操作(p)即为剪切dd+p
: 剪切当前行并粘贴到下一行n+x
: 删除光标所在字符之后的内容(例,5x删除当前字符及之后4个字符,共5个字符)n + shift+x = X
: 删除光标所在字符之前的内容(例,2+X删除当前字符之前的2个字符)
修改与替换
n+r
: 修改光标所在字符开始的n个字符为其他字符shift+r = R
: 让Vim进入替换模式,覆盖式进行替换,以后输入的内容直接进行替换~shift+#
: 选中一个单词(高亮),按n到下一个高亮显示的单词
大小写切换
shift+
· = ~: 快速的进行内容的大小写切换
批量化注释与去注释
- 批量化注释:
ctrl+v
: 进入VISUAL BLOCK模式hjkl
: 在VISUAL BLOCK模式下移动光标,选中要注释的行或列,前面也可以加数字选择移动选择几位~shift+i = I
: 进入insert模式,输入注释符号(如//
)esc
: 退出insert模式,完成注释
- 批量化去注释:
ctrl+v
: 进入VISUAL BLOCK模式hjkl
: 在VISUAL BLOCK模式下移动光标,选中要取消注释的行或列,以及取消的字符区域~d
: 删除注释符号
撤销操作
u
命令用于撤销上一次的操作,ctrl+r
命令用于对u
命令进行的撤销操作进行重做,即恢复被撤销的内容~
- 未退出Vim时的撤销操作:
ctrl+r
命令可以对u
命令进行的撤销操作进行重做,即恢复被撤销的内容。- 即使保存了文件,仍然可以使用
u
命令进行撤销操作。
- 退出Vim后的撤销操作:
- 一旦退出Vim编辑器,就无法进行撤销操作了,这是因为Vim的撤销历史是保存在内存中的,退出后这些历史信息会被清除~
底行模式😘
在命令模式下输入【:】冒号,也就是Shift+【;】分号就可以进入底行模式,可以使用下面的命令~
1. 保存退出
w
: 保存当前文件。q
: 退出Vim编辑器。wq
: 保存当前文件并退出Vim编辑器。!
: 强制执行命令,通常用于覆盖文件或忽略警告(例如w!
强制保存只读文件,q!强制退出)。2. 显示与隐藏行号
set nu
: 在Vim编辑器中显示行号,方便定位和跳转。set nonu
: 隐藏Vim编辑器中的行号。3. 执行外部命令
:!command
: 在Vim编辑器中直接执行外部命令,例如:!ls
可以列出当前目录下的文件,执行完毕后按Enter
返回Vim4. 窗口分割与切换
vs newfile
: 垂直分割当前窗口,并在新窗口中打开一个新文件(或已存在的文件)
Ctrl + ww
: 在垂直分割的窗口之间快速切换光标,方便多文件进行跨越编辑~“光标在哪里,我们就在编辑那个文件!”,编辑操作始终围绕光标所在位置进行~
5. 文件打开与跳转
vim filename +n
: 打开指定文件filename
,并直接跳转到第n
行,方便快速定位到需要编辑的位置~6.字符替换
%s/src/des/
: src为需要替换的字符串,des为新替换的字符串~
7.选定字符串高亮
- /字符串 : 选定字符串会高亮显示,按n到下一个高亮显示的字符串
五种常用模式🤩
通过这些命令,我们可以发现还有替换模式和视图模式这两种常用模式~
模式切换:
命令模式 → 输入模式:
i
(插入,光标不动)、a
(光标向后面移动一个字符)、o
(光标向下移动有一个新行进行插入)等命令模式 → 替换模式:
R
(大写,也就是Shift+r)命令模式 → 视图模式:
Ctrl+V
(块选择)或v
(字符选择)命令模式 → 底行模式::(冒号,也就是Shift + ;)
返回命令模式:任何模式下按
Esc
vim的配置🤨
我们可以看到我们的vim是一个比较原生的状态,很多的功能没有,所以就需要进行配置~
Vim配置的核心目的是通过修改用户家目录下(不会影响别人)的.vimrc
文件,实现以下目标:
个性化定制:调整Vim编辑器的行为(如缩进方式、搜索设置)、界面(如行号显示、颜色主题)和功能(如快捷键映射),以适应不同用户的编码习惯和需求。
功能扩展:通过
.vimrc
文件,您可以安装和管理插件(如文件浏览器、代码补全工具),从而显著增强Vim的功能,使其成为一个更加强大和高效的开发环境。
配置文件位置:
- 在Linux系统中,Vim的配置文件
.vimrc
通常位于用户的家目录下,例如:/home/zs/.vimrc
。
配置内容示例:
- 通过编辑
.vimrc
文件,您可以设置诸多选项,例如:set number
:显示行号,方便定位代码位置syntax on
:启用语法高亮,提升代码可读性set autoindent
:自动缩进,保持代码格式整洁- 安装插件(如NERDTree、vim-plug等),扩展文件管理或插件管理功能
总结来说,Vim的配置是一个通过修改.vimrc
文件来个性化定制和增强Vim编辑器功能的过程,它使得Vim能够更好地适应我们的编码风格和工作流程~大家可以根据需要进行配置~
补充:【!char】指令🤗
!char
!
操作符与char
命令的结合使用!char
可重复执行历史最近以char
开头的命令,实现灵活高效的命令行交互~
♥♥♥本篇博客内容结束,期待与各位优秀程序员交流,有什么问题请私信♥♥♥
♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥
✨✨✨✨✨✨个人主页✨✨✨✨✨✨