【Linux环境】基础开发工具的使用:yum软件安装、vim编辑器的使用

news2024/11/24 14:48:00

在这里插入图片描述

​👻内容专栏: Linux操作系统基础
🐨本文概括: yum软件包管理、vim编辑器的使用。
🐼本文作者: 阿四啊
🐸发布时间:2023.9.12

Linux软件包管理 yum

什么是软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。
  • 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系。
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,
    Centos等发行版上。

关于rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。
安装完毕之后可以通过拖拽的方式将文件上传过去。
注意事项
关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!
可以通过 ping 指令验证。

ping www.baidu.com

查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如:

yum list | grep lrzsz

结果如下:

lrzsz.x86_64 	0.12.20-36.el7 	@base

如何安装软件

通过 yum, 我们可以通过很简单的一条命令完成 gcc 的安装

sudo yum install lrzsz

yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装。出现 complete 字样, 说明安装完成。

注意事项:

  • 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
  • yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外
    一个软件, yum会报错。

如何卸载软件

sudo yum remove lrzsz

vim编辑器

vim的基本概念

我们讲解vim的三种模式(其实有好多模式,目前掌握这3种即可,文章后面会介绍到替换模式和视图模式),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。
  • 插入模式(Insert mode) 也称编辑模式
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 底行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

vim的基本操作

  • 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

    [Asi@localhost ~]$ vim test.c
    

    ⚠️注:进入vim之后,默认是在命令模式下,要切换到插入模式才能输入文字。

  • 命令模式切换到插入模式

    • 输入a、i 、o三种其一即可。
  • 插入模式切换到命令模式

    • 目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
  • 命令模式切换到底行模式

    • 按住shift键 + ;,也就是冒号:
  • 退出vim及保存文件,在命令模式下,按下:进入底行模式。

    • :w(保存当前文件)
    • :wq(保存并退出)
    • :q!(不保存强制退出)

📌命令助记图:
在这里插入图片描述

vim命令模式命令集

  • 插入模式

    按「i」切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件;
    按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
    按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

  • 从插入模式切换为命令模式

    按「ESC」键

  • 移动光标

    vim可以直接用键盘上的方向键来进行上下左右移动,但正规的vim是用小写英文字母「h」、「j」 「k」、「l」,分别控制光标左、下、上、右移一格
    -速记h在最左边,左移。l在最右边,右移。j可以看做是jump单词,表示下移。k可以看做是king,表示上移
    按[gg]:进入到文本开始
    按「G」:移动到文本末尾
    按「^」:移动到光标所在行的“行首”
    按「 $ 」:移动到光标所在行的“行尾”
    按「w」:光标跳到下个单词的开头,支持跨行
    按「b」:光标回到上个单词的开头,支持跨行
    按「e」:光标跳到下个单词的字尾,支持跨行
    按「#l」:光标移到该行的第#个位置,如:5l,56l
    按 「#G」:光标移动到第#行的位置,如:15G,跳转到15行
    按「ctrl」+「b」:屏幕往“后”移动一页
    按「ctrl」+「f」:屏幕往“前”移动一页
    按「ctrl」+「u」:屏幕往“后”移动半页
    按「ctrl」+「d」:屏幕往“前”移动半页

  • 复制

    yy」:复制光标所在行到缓冲区。
    #yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
    p」:将缓冲区内的字符粘贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
    #p」执行#次粘贴操作。
    yw」:将光标所在之处到单词尾的字符复制到缓冲区中。
    #yw」:复制#个单词到缓冲区

  • 撤销上一次操作

    u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次恢复。
    ctrl」+「r」: 撤销的恢复

  • 删除

    x」:每按一次,删除光标所在位置的一个字符
    #x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
    X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
    #X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
    dd」:删除光标所在行(配合「p」使用的话,就是剪切功能)
    #dd」:从光标所在行开始删除#行

  • 替换

    r」:替换光标所在处的字符。比如,输入r,之后输入x,光标处的字符被替换为了x
    #r」:替换光标位置开始的#个字符。比如,5r,之后输入x,光标位置开始的连续5个字符被替换为了x
    ~」:即「shift」+ 「`」,可进行字母的大小写转换。

    R」:替换光标所到之处的字符,直到按下「ESC」键为止

    ⚠️注意:当命令模式下输入大写的R,也就是shift + r,此时,vim会进入替换模式【REPLACE】,可以一直进行替换操作,即将原来的值给覆盖了,如果想要退出替换模式,需要按Esc键退出。

  • 查找

    #」:即ctrl + 3,光标移动到想要查找的单词位置,查找同名单词, 按n进行跳转。

文本注释

批量化注释:
ctrl + v进入视图模式【VISUAL BLOCK】,然后根据jk进行上下选中区域,然后按I键跳转到插入模式下,在文本前面加上//即可,此时选中的区域都被注释掉了,然后可按Esc键退出。

批量化取消注释:
ctrl + v进入视图模式【VISUAL BLOCK】,然后根据h``j k l选中区域,按d键,取消选中区域的注释。

vim支持多文件编辑

vim编译器下,是支持多文件同时编辑的,在一个文件的底行模式下,输入vs + 文件名,就能打开另一个文件。(这个文件可以不存在,不存在的话,写入保存就会被创建。目前有三种创建文件的方式:1.touch file.c;2.>file.c;3.vim file.c ,一旦vim保存文件,那么文件就会被创建。)
⚠️注意:

  1. 无论你打开多少个文件,光标只有一个!光标在哪个区域,表示正在编辑哪一个文件。利用ctrl + ww快捷键可进行文件之间的切换操作。
  2. 底行模式只有一个,那么多个文件,怎么底行模式只有一个呢?一切以光标为主!光标在哪个位置,表示的就是哪个文件的底行模式。

小技巧

vim filename +n:用来在 Vim 中打开名为 “test.c” 的文件并将光标定位到第 n 行的命令。
例如:

[Asi@localhost ~]$ vim test.c +7

那么有小伙伴们会问,这条命令有何意义呢?意义就是假设文件编译报错的时候,系统会显示报错在哪一行,此时以上这条命令增加了查找代码Bug的效率!

简单vim配置

vim的基础配置

  • 在root用户的/etc目录下,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为.vimrc
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
  • 在家目录下,可以创建私有配置文件,执行touch .vimrc

常用配置选项

  • 常见配置选项转自CSDN博主「一般市民Young」的原创文章,原文链接:vim基础配置 侵删。
 "====== Basic Configuration ======                                                                                                                           
set number             		 " 显示行号
set cursorline             	 " 突出显示当前行
hi Cursorline cterm=bold ctermbg=black ctermfg=green guibg=green "粗体显示选中行,用黑色框,字体标绿
set cursorcolumn             " 设置列高亮 
hi Cursorcolumn cterm=bold ctermbg=black ctermfg=green guibg=green "粗体显示选中列,用黑色框,字体标绿
set autoindent 		         " 自动缩进
set cindent
set tabstop=4 				 " Tab键的宽度
set softtabstop=4 		     " 统一缩进为4
set shiftwidth=4
set noexpandtab 			 " 不要用空格代替制表符 或者使用expandtab将tab保存为space
set smarttab 			     " 在行和段开始处使用制表符
set ignorecase 			     "搜索忽略大小写
set hlsearch 			     "搜索逐字符高亮
set incsearch 				 "增强搜索
set smartindent 			 " 提供自动缩进
syntax on					 " 语法高亮

" 突出显示81列
set textwidth=80
set colorcolumn=+1
  • 测试:小伙伴们可以根据自己喜欢的选项写自己私有的配置文件,比如,在.vimrc中写入set nu,那么再打开任何一个文件,系统都会自动添加上行号了!

vim安装插件

要配置好看的vim,功能更强大的vim,原生的基本配置功能有限,可以选择安装插件来完善配置。下面我们开始:

VimForCpp:

说明:本项目来源于gtiee用户「 HGtz2222 」 详情请跳转:VimForCpp 侵删

项目简介:

本项目主要目标是帮助对vim配置方法不熟悉的新手封装的一键式vim环境安装包. 主要针对终端vim用户, 适合远程ssh连接Linux服务器进行开发的场景(例如使用阿里云服务器或者腾讯云服务器等)

支持环境:

目前只支持 Centos7 x86_64. 后面会考虑 Ubuntu 等发行版的支持.

安装方法

在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 “不推荐” 直接在 root 下执行):

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

最后安装提示要求:

手动执行 "source ~/.bashrc" 或者重启终端, 使 vim 配置生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1004350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2+three.js实现宇宙(进阶版)

2023.9.12今天我学习了vue2three.js实现一个好看的动态效果&#xff1a; 首先是安装&#xff1a; npm install three 相关代码如下&#xff1a; <!--3d宇宙效果--> <template><div><div id"content" /></div> </template> <…

无涯教程-JavaScript - RATE函数

描述 RATE函数返回年金每个周期的利率。 RATE通过迭代计算得出,可以有零个或多个解。如果RATE的连续输出在20次迭代后未收敛到0.0000001以内,则RATE返回#NUM!错误值。 语法 RATE (nper, pmt, pv, [fv], [type], [guess])有关参数nper,pmt,pv,fv和type的完整说明,请参见PV Fu…

二刷力扣--链表

链表 链表类型&#xff1a; 单链表&#xff08;可以访问后面的一个节点&#xff09; 双链表&#xff08;可以访问前后节点&#xff09; 循环链表&#xff08;最后一个节点指向首节点&#xff09; 在Python中定义单链表节点&#xff1a; class ListNode:def __init__(self, v…

TypeScript泛型

什么是泛型&#xff1f; "泛"就是广泛的意思&#xff0c;"型"就是数据类型。顾名思义&#xff0c;泛型就是适用于多种数据类型的一种类型。 泛型的作用 它能够帮助我们构建出复用性更强的代码 function getResult(value: number): number {return value…

高效办公必备,批量重命名与翻译一气呵成

在电脑使用中&#xff0c;我们常常需要批量修改文件名或对文件进行翻译。这时候&#xff0c;有一个得力的工具可以助你一臂之力&#xff0c;那就是“固乔文件管家”。下面就教你如何使用这个软件&#xff0c;轻松完成批量重命名和翻译大量文件的操作。 首先&#xff0c;你需要下…

基于 Alpine 环境构建 aspnetcore6-runtime 的 Docker 镜像

关于 Alpine Linux 此处就不再过多讲述&#xff0c;请自行查看相关文档。 .NET 支持的体系结构 下表列出了当前支持的 .NET 体系结构以及支持它们的 Alpine 版本。 这些版本在 .NET 到达支持终止日期或 Alpine 的体系结构受支持之前仍受支持。请注意&#xff0c;Microsoft 仅正…

mysql技术文档--之与redo log(重做日志)庖丁解析-超级探索!!!

阿丹&#xff1a; 在刚开始写本文章的是还不太清楚要如何去细啃下这两个体系&#xff0c;在查阅资料的过程中。发现大厂阿里的庖丁解InnoDB系列&#xff0c;详细了的写了很多底层知识&#xff0c;于是基于这个这两个文章才有了阿丹的这篇文章。 整体认知&#xff1a; 在 MySQ…

数据结构——排序算法——插入排序

交换法插入排序 void swap(vector<int> arr, int i, int j) {int temp arr[i];arr[i] arr[j];arr[j] temp;}void insertSort(vector<int> arr) {// 从第二个数开始&#xff0c;往前插入数字for (int i 1; i < arr.size(); i) {// j 记录当前数字下标int j …

骨传导耳机的危害有哪些?会损害听力吗?

如果正常的使用&#xff0c;骨传导耳机是没有危害的&#xff0c;由于骨传导耳机独特的传声方式&#xff0c;所以并不会对人体造成损伤&#xff0c;还可以在一定程度上保护听力。 如果想更具体知道骨传导耳机有什么危害&#xff0c;就要先了解什么是骨传导耳机&#xff0c;骨传…

虚拟机Ubuntu操作系统常用终端命令(1)(详细解释+详细演示)

虚拟机Ubuntu操作系统常用终端命令 本篇讲述了Ubuntu操作系统常用的三个功能&#xff0c;即归档&#xff0c;软链接和用户管理方面的相关知识。希望能够得到大家的支持。 文章目录 虚拟机Ubuntu操作系统常用终端命令二、使用步骤1.归档1.1创建档案包1.2还原档案包1.3归档并压缩…

〔022〕Stable Diffusion 之 生成视频 篇

✨ 目录 &#x1f388; 视频转换 / mov2mov&#x1f388; 视频转换前奏准备&#x1f388; 视频转换 mov2mov 使用&#x1f388; 视频转换 mov2mov 效果预览&#x1f388; 视频无限缩放 / Infinite Zoom&#x1f388; 视频无限缩放 Infinite Zoom 使用 &#x1f388; 视频转换 /…

ACL(访问控制列表)

文章目录 一、ACL定义常见功能 二、基于ACL的包过滤定义包过滤的方向包过滤的工作流程注意事项 三、ACL分类四、常用命令 首先可以看下思维导图&#xff0c;以便更好的理解接下来的内容。 一、ACL 定义 ACL&#xff0c;也称为访问控制列表&#xff0c;是一种网络安全工具&…

8个免费的AI和LLM游乐场

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 在本文中&#xff0c;我们的目标是通过引入八个用户友好的平台来弥合这一差距&#xff0c;这些平台使任何人都可以免费测试和比较开源AI模型。此外&#xff0c;它们还提供多种更新型号&#xff0c;确保您及时了解最新进…

浅谈前后端分离的网络拓扑

前后端分离大体分为两种拓扑结构&#xff0c;前端和后端通过开放对外端口的拓扑结构和只有前端开放端口的拓扑结构 前端和后端通过开放对外端口的拓扑结构 比如说前端通过 80 端口对外提供服务&#xff0c;后端通过 8080 端口对外提供服务&#xff0c;前端和后端搭建在同一台服…

sqlserver2012 完全卸载

使用工具 我用的是64位的 双击打开 等待处理完成 输入sql 查询&#xff0c;对查询出来的程序选择批处理&#xff0c;进行批处理卸载 等待卸载完成&#xff0c;期间可能 需要多次点击确认

java授权码方案 软件实现时间授权 离线授权 夏末版

java项目在离线状态下部署到客户端,很容易被反编译,授权容易被破解, 给项目盈利带来很大的困难, 特别是小项目很容易失败, 小项目特别需要完善可靠的授权加密解决方案 本方案只需要集成一个jar包就可以实现在关键节点完成,授权验证,离线时间验证等功能,特别是个中小项目的开发…

解决three.js中加载纹理贴图时,初次渲染不显示的问题

效果&#xff1a; 解决方法&#xff1a;主要是将一些构建网格对象的操作放在了textureLoader.load()方法中&#xff0c;加载图片也用了require init() {// 1, 创建场景对象this.scene new this.$three.Scene();// 2, 创建立方缓冲几何体this.geometry new this.$three.BoxGe…

抖店产品曝光率低怎么解决?提高曝光、点击、转化的技巧,可收藏

我是王路飞。 我之前一直在强调&#xff0c;抖店的核心有且只有一个&#xff0c;就是选品。 店铺内的所有问题&#xff0c;都是产品的问题&#xff0c;而你的运营手段&#xff0c;黑科技等等&#xff0c;终究只是外力罢了&#xff0c;既没办法让你赚到钱&#xff0c;也对你个…

59从零开始学Java之StringBuilder与StringBuffer

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 最近的这几篇文章&#xff0c;壹哥一直在给大家讲解字符串相关的内容。其实字符串按照可变性&#xf…

Linux内核分析与应用8-文件系统

本系列是对 陈莉君 老师 Linux 内核分析与应用[1] 的学习与记录。讲的非常之好&#xff0c;推荐观看 留此记录&#xff0c;蜻蜓点水,可作抛砖引玉 8.1 虚拟文件系统的引入 Linux文件系统中最重要的一个概念: 索引节点 Inode 文件系统是具体到分区的,所以不同分区格式化时,可以是…