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

Linux开发环境配置(上)

请添加图片描述

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
🌟🌟 追风赶月莫停留 🌟🌟
🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀
🌟🌟 平芜尽处是春山🌟🌟
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅

🍋Linux开发环境配置

  • 🍑软件包管理器yum
    • 🍍什么是软件包
    • 🍍管理器yum
    • 🍍软件安装
    • 🍍软件卸载
  • 🍑编辑器vim的使用
    • 🍍vim概念
    • 🍍vim操作
      • 🍌进入vim
      • 🍌模式切换
      • 🍌退出vim
    • 🍍vim模式命令集合
      • 🍌命令模式
      • 🍌底行模式
    • 🍍vim配置

🍑软件包管理器yum

🍍什么是软件包

在Linux系统中,软件包的安装和管理是操作系统使用和定制的关键环节。Linux支持多种软件包管理工具,每种工具都有其特定的用途和优势,使得用户可以根据不同的需求选择合适的工具进行软件安装、更新、删除等操作。

以下是Linux下常见的软件包管理工具及其特点:

‌APT‌:主要用于基于Debian的发行版,如Ubuntu。它提供了一个命令行工具apt-get,用于安装、更新、升级和删除软件包。APT管理的是.deb格式的软件包,这些软件包包含了应用程序的文件,类似于Windows上的安装文件。APT的优势在于其包管理功能强大,能够自动处理软件包的依赖关系,确保系统的稳定性和兼容性‌。

‌dpkg‌:是Debian系统的另一个重要工具,用于安装、创建和管理.deb软件包。dpkg命令提供了安装、删除、列出已安装软件包等多种功能,它是APT包管理系统的底层工具,用于处理单个的软件包‌。

‌YUM‌ 和 ‌DNF‌:主要用于Red Hat系的发行版,如CentOS和Fedora。这些工具用于管理.rpm格式的软件包,提供了安装、更新、删除等操作。YUM已被DNF逐步取代,提供了更快的搜索和依赖解析功能,使得软件包的安装和管理更加高效‌

以上都是通过命令行来安装软件包,当然Linux不仅仅可以进行命令行安装
还可以进行手动安装,如下:

手动安装‌:手动安装也是一种常见的软件获取方式。这包括从官方网站下载源代码进行编译安装,或者下载已经编译好的二进制包进行安装。这种方式需要用户自行解决软件包的依赖关系,适用于特殊需求或特定系统的定制‌。

不管是命令行安装还是手动安装都是Linux下软件包安装的几种形式,唯一的区别可能是手动安装比命令行安装要繁琐许多。

🍍管理器yum

yum全称是Yellow dog Updater Modified,它是一个开源的软件包管理工具,主要用于Linux系统,特别是Red Hat、CentOS、Fedora等发行版,可以自动化地下载、安装、升级和删除软件包。

yum具有以下主要功能和特点:

(1)自动化管理:自动处理软件包的下载、安装、升级和删除,无需用户手动操作。
(2)依赖关系解决:在安装软件包时,yum会自动检查并下载所需的依赖关系,确保软件包的正确安装和运行。
(3)仓库配置:yum可以同时配置多个软件仓库,用户可以根据需要添加、禁用或启用不同的软件仓库。
(4)软件包信息查询:提供丰富的命令来查询软件包的信息,如列出已安装的软件包、搜索软件包、查看软件包的详细信息等。

yum的使用极大地简化了Linux系统下的软件包管理过程,提高了系统管理员的工作效率。

🍍软件安装

  • 指令:
yum install 软件名
yum install -y 软件名

两条安装的指令唯一差的就是那个-y,它的意思是让系统在安装该软件时不用询问你,直接安装即可;如果没有-y系统就会询问你是否确认安装该软件。

  • 实例:

在这里插入图片描述

在这里插入图片描述
上述两幅图中就分别用-y和不用-y作了程序输出,也是简单的安装了一个sl的图形展示,其它软件的安装也和这个一样,不过大家要展示图形输入,要提前先安装

yum install -y epel-release

🍍软件卸载

  • 指令:
yum remove 软件名
yum remove -y 软件名
  • 实例:

在这里插入图片描述

在这里插入图片描述

🍑编辑器vim的使用

🍍vim概念

Vim是一个文本编辑器,基于vi发展而来,提供了更多的功能和命令,它还有多种模式;主要包括底行模式、插入模式和命令行模式,用户可以通过按键在模式间切换。
在普通模式下,用户可以浏览文本、复制、粘贴、删除等,但不进行文本输入;插入模式用于文本输入,用户可以从普通模式通过按’i’等键进入;命令行模式允许用户执行更复杂的命令,如保存文件、退出vim等,可以通过按’:'键从底行模式进入。Vim支持丰富的插件和配置,使其功能更强大,我们可以根据自己或者其他的需求进行定制。

🍍vim操作

🍌进入vim

  • 指令:
vim 文件名
  • 实例:

在这里插入图片描述

在这里插入图片描述

🍌模式切换

Vim模式总共分为三种:命令模式、插入模式、底行模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每种模式可以互相切换,方便执行不同的命令,它们三者的关系如下:

在这里插入图片描述

三者可以互相来回切换,执行各种所需命令。

注意底行模式不可以和插入模式直接进行互相切换,只能通过命令模式间接到达切换的目的。这是因为在插入模式下的所有输入都会被当初文本输入,没有被解释成命令。

🍌退出vim

如果要退出vim,只能在底行模式下退出:

  • :w表示保存当前文件
  • :wq表示保存当前文件并退出vim
  • ==:q!==不保存,强制退出vim

🍍vim模式命令集合

🍌命令模式

命令含义
shift+$光标定住在当前行的最右侧结尾处
shift+^光标定住在当前行的最左侧开头处
shift+g光标定住在文本结尾处
n+shift+g光标定住在文本n处,从当前行开始算
gg光标定住在文本的最开始
h光标往左移动
j光标往下移动
k光标往上移动
l光标往右移动
yy复制当前行
n+yy复制n行,从当前行算起
p在下一行粘贴
n+p进行n次粘贴
u撤销编辑操作
ctrl+r对撤销操作进行撤销
n+dd删除多行/剪切多行
~大小写快速切换

🍌底行模式

命令含义
w保存文件
q退出文件
w+q保存并退出文件
w+!强制保存文件
q+!强制退出文件
w+q+!强制保存退出文件
!+man+指令可以在底行模式查看手册中该指令的意思
vs+文件名可以同时写多个文件,光标在哪一个界面,我们就正在编辑哪一个界面
ctrl+ww可以改变光标的位置(适用于多个文件界面场景)
ZZ保存退出vim(不建议使用,建议使用底行模式退出vim)

上述两个表列出了常用的一些指令,插入模式是文本形式,不用执行命令指令,我们就是在插入模式下写代码。

🍍vim配置

关于vim配置,如果我们没有进行配置,写代码时就没有任何语法提醒,也没有自动补齐功能,也没有高亮处理,使用起来就比较让人不是那么舒服,这就需要我们自行对vim进行配置。

vim配置的位置是在家目录下.vimrc中,如果没有该文件可以自己创建个该文件。

最后把配置选项写进去就可以了。

  • 常用的配置选项:

显示行号:
set nu:在编辑器左侧显示行号,便于定位代码位置。
语法高亮:

syntax on:开启语法高亮功能,使代码更加易于阅读。
设置背景颜色主题:

colorscheme 主题名:设置vim的背景颜色主题,例如colorscheme molokai。
自动缩进:

set autoindent:根据上一行的缩进自动缩进当前行。

set cindent:C/C++语言的智能缩进。

Tab键设置:
set tabstop=4:设置Tab键等于4个空格宽度。
set softtabstop=4:设置退格键和光标左右移动时经过的“Tab”宽度。
set shiftwidth=4:设置自动缩进时使用的空格数。
set noexpandtab:使用Tab键时不将其展开为空格。

编码设置:
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936:设置vim支持的文件编码格式。
set termencoding=utf-8:设置终端使用的编码。
set encoding=utf-8:设置vim内部使用的编码。
set fileencodings=ucs-bom,utf-8,cp936:设置vim打开文件时自动检测的编码顺序。

文件自动读写:
set autoread:当文件被外部程序修改后,vim自动重新读取文件内容。
set autowrite:在切换文件时自动保存当前文件。
set nocompatible:关闭vi兼容模式,使vim表现更像vim而不是vi。
set ruler:在右下角显示光标位置信息,便于编辑时定位。
set showcmd:在底部命令行显示当前输入的命令,便于确认。
set cursorline:突出显示当前行,便于阅读。

关于本章知识点如果有不足或者遗漏,欢迎大家指正,谢谢!!!

请添加图片描述

请添加图片描述


http://www.kler.cn/a/320807.html

相关文章:

  • 类与对象;
  • 跨平台WPF框架Avalonia教程 十五
  • 基于视觉智能的时间序列基础模型
  • 串口DMA接收不定长数据
  • 中仕公考怎么样?事业编面试不去有影响吗?
  • vue 中监听页面尺寸变化就调用函数
  • 分布式环境中解决主从延时的一些思路
  • Session和Cookie是什么?有什么区别?分布式Session问题又是什么?
  • 2206. 将数组划分成相等数对(排序/哈希)
  • Exception in thread “main“ java.lang.CloneNotSupportedException 解决方案
  • MySQL 8 查看 SQL 语句的执行进度
  • 通信工程学习:什么是VLAN虚拟局域网
  • 【数据库】深入解析 MySQL 语法
  • 在IDEA中如何用git拉取远程某一分支的代码
  • Apollo自动驾驶项目(二:cyber框架分析)
  • if语句的艺术:如何写出Pythonic的条件判断
  • Ubuntu 安装配置nginx
  • 以Flask为基础的虾皮Shopee“曲线滑块验证码”识别系统部署
  • 【最新华为OD机试E卷-支持在线评测】分苹果(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • QT 如何判断电脑已安装某个软件
  • ffmpeg常用命令大全
  • 记一次sql查询优化
  • 《深度学习》ResNet残差网络、BN批处理层 结构、原理详解
  • JavaScript优化性能的几个方法和技巧
  • 人工智能-大语言模型-微调技术-LoRA及背后原理简介
  • HarmonyOS鸿蒙开发实战(5.0)自定义安全键盘场景实践