Linux软件包管理与Vim编辑器使用指南

news2024/12/25 23:59:02

目录

一、Linux软件包管理器yum

1.什么是软件包?

2.什么是软件包管理器?

3.查看软件包

4.安装软件

​编辑

 5.卸载软件

Linux开发工具:

二、Linux编辑器---vim

1.vim的基本概念

(1) 正常/普通模式(Normal mode)

(2) 插入模式(insert mode)

(3) 底行模式(last line mode)

(4) vim三种模式的相互关系

2.vim的简易执行范例

(1) 使用【vim filename】

(2) [正常模式]切换至[插入模式]

(3) [插入模式]切换至[正常模式]

(4) [正常模式]切换至[底行模式]

(5) 退出vim环境

3.vim编辑模式命令集

(1) 移动光标

(2) 查找与替换

(3) 删除、复制与粘贴 

4.普通模式切换到编辑模式命令集

5.vim底行模式命令集

6.可视化模式(Visual Mode)

7.总结

8.简单配置vim

(1) 配置文件的位置

(2) 常用配置选项用来测试

(3) 使用插件

9.参考资料


一、Linux软件包管理器yum

1.什么是软件包?

在Linux下安装软件:

(1) 通常的办法是下载到程序的源代码,并对其进行编译,得到可执行程序。

(2) 但是这样太麻烦,于是有人把一些常用的软件提前编译好,做成软件包---rpm(可以理解成Windows上安装程序)放在一个服务器上。(rpm是一种以数据库记录的方式将所需要的软件安装到Linux系统的一套软件管理机制 => 需要满足软件的依赖属性需求,满足版本兼容性需求)

(3) 通过包管理器 --- yum(Centos) / apt / apt-get(ubuntu)可以很方便的获取到这个编译好的软件包,直接进行安装(本质就是拷贝 => 必须使用root权限 => 安装到系统里,只要安装一次,所有人都能使用)。

2.什么是软件包管理器?

 yum是Linux下非常常用的一种包管理器。软件包和软件包管理器,就好比“App”和“应用商店”的关系。主要应用于Fedora,RedHat,Centos等发行版上。

由于Linux发行版必须要先发布软件,然后软件放置于yum服务器上,以提供客户端来安装与升级之用。因此我们要使用yum功能时,必须要先找到合适的yum服务器才行。而每个人yum服务器可能都会提供许多不同的软件功能,因此,我们必须要前往yum服务器查询到想换的软件源网址后,再继续处理后续的设置事宜。但Centos在发布软件时已经制作出多个镜像站(国内知名的有阿里云、清华大学、163),提供全世界的软件更新之用。所以理论上我们不需要处理任何设置值,只要能连上网就可以使用yum(操作系统内部内置链接)。也就是说包管理器会自动解决软件的依赖关系。 

3.查看软件包

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

yum list | grep sl

4.安装软件

用 yum 完成 sl 的安装,yum会自动找到都有哪些软件包需要下载,这是敲 "y" 确认安装,出现“complete”说明安装成功。

sudo yum install sl

注意:

• 关于yum的所有操作必须保证主机(虚拟机)网络畅通!!!可以用ping指令验证:如果能够收到响应,说明主机可以访问互联网。

ping www.baidu.com

• 安装软件时由于需要向系统目录中写入内容,一般需要sudo或者切到root用户下才能完成。

• yum安装软件只能一个装完了再装另外一个。正在yum安装一个软件的过程中,如果在尝试用yum安装另外一个软件,yum会报错。

• /etc/yum.repos.d/*里面的文件称之为yum源。也就是我们开头所提到的yum服务器。更新yum源也就是更新里面的文件。Base 是稳定软件源,epel 是扩展软件源(新软件)。

[zyt@iZ2vcf9wvlgcetfeub9f11Z ~]$ cd /etc/yum.repos.d/
[zyt@iZ2vcf9wvlgcetfeub9f11Z yum.repos.d]$ ll
total 16
-rw-r--r-- 1 root root  675 Nov 11 17:01 CentOS-Base.repo
-rw-r--r-- 1 root root  230 Nov 11 17:01 epel.repo
-rw-r--r-- 1 root root 1358 Sep  5  2021 epel.repo.rpmnew
-rw-r--r-- 1 root root 1457 Sep  5  2021 epel-testing.repo

 5.卸载软件

sudo yum remove sl

下面这些命令通常一起使用,以确保软件包管理器的缓存是最新的,并且软件包是最新版本的。首先移除软件包,然后清理缓存,接着更新缓存,最后重新安装软件包。 

sudo yum remove sl #移除软件包
sudo yum clean all #清除软件包缓存
sudo yum makecache #生成元数据缓存
sudo yum install sl #安装软件包

Linux开发工具:

二、Linux编辑器---vim

前面的学习,我们一直都是使用命令行模式来处理Linux系统的设置问题。但在Linux的系统中使用文本编辑器来编辑你的Linux参数配置文件,可是一件很重要的事情,也因此,系统管理员至少应该熟悉一种文本处理工具。在Linux命令行模式下的常听的文本编辑器就有emacs、pico、nano、joe和vim等。之前我们已经介绍的简单好用的nano,为什么还要学vim?

因为,所有的 UNIX-like 系统都会内置vi文本编译器,其他的文本编译器则不一定会存在;很多软件的编辑接口都是主动调用vi(之后会讲的crontab,visudo,edquota等命令)等优点。

那什么是vim?vi/vim的区别简单来说,它们都是多模式编译器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x windows、mac os、windows。

1.vim的基本概念

讲解vim的三种模式(其实有好多种模式,目前掌握这三种即可)分别是普通模式(command mode)、插入模式(insert mode)和 底行模式(last line mode)。

(1) 正常/普通模式(Normal mode

以vim打开一个文件就直接默认是普通模式。在这个模式中,可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入insert mode模式下,或者last line mode。(帮助我们快速编辑)

(2) 插入模式(insert mode)

在普通模式下可以进行删除、复制、粘贴等操作,但是却无法编辑文件的内容,作文字的输入。要等到按下【i,I,o,O,a,A,r,R】等任何一个字母才能后才能进入编辑模式。通常在Linux中,界面左下方会出现【INSERT】或【REPLACE】等字样,才可以进行编辑。而要回到普通模式要按下【Esc】。

(3) 底行模式(last line mode)

在命令模式中输入【:   /   ?】三个中的任何一个按钮,就可以将光标移动到最下面那一行。该模式下,文件保存(w)或退出(q),也可以进行文件替换,找字符串,列出行号等操作。

(4) vim三种模式的相互关系

2.vim的简易执行范例

(1) 使用【vim filename】

【vim filename】进入vim全屏幕编辑画面,进入后,是处于[普通模式],要切换到[插入模式]才能够输入内容。整个界面分为两部分,上半部分与最下面一行可以视为独立的。上半部分展示的是文件的实际内容,最下面一行则是状态显示行,或命令执行行。 

● 用vim创建一个新文件node.c

vim node.c

● 用vim打开一个已有文件

man printf > code.c
vim code.c

【vim filename + num】

执行命令时加上数字,进入vim后光标位置就在所输数字行。

●【!v】

自动匹配上次执行过的v开头的命令

●【ctrl + r】

输入要查找的历史命令

(2) [正常模式]切换至[插入模式]

按下a,i,o等字符就可以从普通模式进入插入模式,在插入模式中,左下角会出现-INSERT-字样,键盘上出来【ESC】按键之外其他的按键都可以视为一般的输入按键,所以你可以进行任何编辑。

(3) [插入模式]切换至[正常模式]

按左上角的【ESC】即可。

(4) [正常模式]切换至[底行模式]

「shift + ;」, 其实就是输入「:」

(5) 退出vim环境

在 [普通模式下] 按「:」进入底行模式后,再输入下面所需要的命令:

w:保存当前文件

wq:存盘并退出vim

q!:不存盘强制退出vim 

3.vim编辑模式命令集

(1) 移动光标

h 或 ←光标左移一个字符
j 或 ↓光标下移一个字符
k 或 ↑光标上移一个字符
l 或 →光标右移一个字符
[ctrl] + [f]屏幕【向下】移动一页,相当于【pgdn】按键(常用)
[ctrl] + [b]屏幕【向上】移动一页,相当于【pgup】按键(常用)
[ctrl] + [d]屏幕【向下】移动半页
[ctrl] + [u]屏幕【向上】移动半页
0 或 ^ 或 [Home]移动到这一行的最前字符串处(常用)
$ 或 [End]移动到这一行的最后字符(常用)
G移动到这个文件的最后一行(常用)
nGn为数字,移动到这个文件的第n行
gg移动到这个文件的第一行,相当于1G(常用)
w以单词为单位右移
b以单词为单位左移
n<Enter>n为数字,光标向下移动n行(常用)

(2) 查找与替换

~切换光标位置大小写
#选中单词
nn是英文按键,代表【重复上一个查找的操作】,向下查找
NN是英文按键,与n刚好相反,是【反向】查找
/word向光标之下找一个名为word的字符串
?word向光标之上找一个名为word的字符串

 #选中word(或/word)配合n及N是非常有帮助的,可重复的查找的关键单词

(3) 删除、复制与粘贴 

x 与 X在一行中,x为向后删除一个字符(相当于[del]),X为向后删除一个字符(相当于[Backspace])(常用)
nxn为数字,连续向后删除n个字符
dd剪切光标所在的那一整行(常用)
nddn为数字,剪切光标所在的向下n行(常用)
yy复制光标所在的那一行(常用)
nyyn为数字,复制光标所在的向下n行(常用)
p 与 Pp为将已复制的数据在光标下一行粘贴,P为粘贴在光标的上一行(常用)
u撤销历史操作(常用)
[Ctrl] + r撤销u的操作(常用)
.小数点,重复上一个操作的含义(常用)

 注意:u 和 [Ctrl] + r 这两个操作一旦退出文件编辑就无法再撤销,但如果只是保存过没有退出文件就还能使用。

4.普通模式切换到编辑模式命令集

i 与 I

进入插入模式(Insert mode)

i 为【从目前光标所在处插入】,I 为【在目前所在行的第一个非空空格符开始插入】(常用)

a 与 A

进入插入模式(Insert mode)

a 为【从目前光标所在的下一个字符处开始插入】,A 为【从光标所在行的最后一个字符处开始插入】(常用)

o 与 O

进入插入模式(Insert mode)

这是英文字母的小写o,o 为【在目前光标所在的下一行处插入新的一行】,O 为【在目前光标所在处的上一行插入新的一行】(常用)

r 与 R

进入替换模式(Replace mode)

r 会【替换光标所在的那一个字符一次】,R 会【一直替换光标所在的文字(可移动)】,直到按下[Esc]为止(常用)

[Ctrl] + v

进入可视化模式(Visual Block)

【可视区块,可以用矩形的方式选择数据】,光标移动过的位置就会反白(只能用hjkl移动光标)(常用)

[Esc]退出编辑模式,回到普通模式(常用)

可视化模式举例:批量注释:

先【Ctrl + r】进入可视化模式,移动光标选择要注释的部分,再按【Ctrl + i】也就是【I】进入插入模式,输入【//】注释符,最后按【Esc】退出插入模式就实现了。

批量去掉注释:【Ctrl + r】进入可视化模式,选中注释符【//】,再按 d(删除)就完成去注释。

使用上面这些按键,再vim界面的左下角会出现【--INSERT--】,【--REPLACE--】,【--VISUAL-BLOCK--】的字样。

5.vim底行模式命令集

:w将编辑的数据写入硬盘文件中
:w!若文件属性是【只读】时,强制写入该文件。到底能不能写入,跟你对该文件的文件权限有关
:q退出vim(常用)
:q!若曾修改过文件,又不想保存使用 ! 为强制退出不保存
:wq保存后退出,若为 :wq! 则为强制保存后退出(常用)
ZZ快捷键,若文件没有被修改,则不保存退出;若文件已经被修改过,则保存退出
:!command执行command命令,显示结果。
:%s/x/y/用 x 批量化替换 y
:vs dst.c纵向屏幕创建一个新窗口,打开的是名为dst.c的文件(可能是新建的)。([Ctrl] + ww 可以切换窗口)
:set nu显示行号,设置之后会在每一行的前缀显示该行的行号
:set nonu与 set nu 相反,为取消行号

6.可视化模式(Visual Mode)

当我们按下v或V或[Ctrl] + v时,光标移动过的地方会反白

v

进入字符可视化模式(Character Visual Mode)

字符选择,会将光标经过过的地方会反白选择

V

进入行可视化模式(Line Visual Mode)

会将光标经过过的地方会反白选择

[Ctrl] + v

进入区块可视化模式(Block Visual Mode)

可以用矩形的方式选择数据(只能用hjkl控制移动)

y将反白的部分复制
d将反白的地方删除
p将刚刚复制的区块,在光标所在处粘贴

7.总结

8.简单配置vim

(1) 配置文件的位置

• 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
• 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如 /root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。

 下面是Vim 编辑器的配置文件和相关路径,这些文件和变量共同定义了 Vim 的行为和外观。用户可以通过修改 .vimrc.exrc 文件来定制自己的 Vim 环境,而系统管理员可以通过修改 /etc/vimrc 文件来为所有用户提供统一的配置。

系统 vimrc 文件: "/etc/vimrc"
     用户 vimrc 文件: "$HOME/.vimrc"
 第二用户 vimrc 文件: "~/.vim/vimrc"
      用户 exrc 文件: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
         $VIM 预设值: "/etc"
  $VIMRUNTIME 预设值: "/usr/share/vim/vim81"
• 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
• 打开自己目录下的.vimrc文件,执行 vim .vimrc(此时还是空文件)

(2) 常用配置选项用来测试

我们写入常用配置项,测试一下:

set nu             "显示行号
syntax on      "语法检验,颜色显示
set shiftwidth=4   "缩进空格数为4
set tabstop=4
set expandtab

set autoindent     "自动缩进
set showmode       "显示左下角那一行状态

(3) 使用插件

要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完成配置,保证用户是你要配置的用户,然后:

安装 TagList 插件

  1. 下载 taglist_xx.zip 文件。
  2. 解压该文件。
  3. 将解压出来的 doc 目录下的内容放到 ~/.vim/doc 目录中。
  4. 将解压出来的 plugin 目录下的内容拷贝到 ~/.vim/plugin 目录中。
  5. 在 ~/.vimrc 文件中添加以下配置:vim
    let Tlist_Show_One_File=1
    let Tlist_Exit_OnlyWindow=1
    let Tlist_Use_Right_Window=1
  6. 重启 Vim。

安装 WinManager 插件

  1. 下载 winmanager.zip 文件,确保是 2.X 版本以上。
  2. 解压该文件。
  3. 将解压出来的 doc 目录下的内容放到 ~/.vim/doc 目录中。
  4. 将解压出来的 plugin 目录下的内容拷贝到 ~/.vim/plugin 目录中。
  5. 在 ~/.vimrc 文件中添加以下配置:vim
    let g:winManagerWindowLayout=‘FileExplorer|TagList'
    nmap wm :WMToggle<cr>
  6. 重启 Vim。

使用方法

  • 打开 ~/XXX.c 或 ~/XXX.cpp 文件。
  • 在普通模式(Normal mode)下输入 wm,你将看到下面文件浏览器和标签列表的效果。
  • 手把手教你把Vim改装成一个IDE编程环境(图文)_vim 打造成 ide-CSDN博客

其他手册

  • 要查看更多手册信息,请执行 vimtutor 命令。

请注意,上述步骤假设你已经有一定的 Vim 插件安装经验,并且你的 Vim 环境已经配置好了相应的路径。如果你在执行这些步骤时遇到任何问题,可能需要检查文件路径和权限设置是否正确。

(4) 一键式配置vim

目前只支持 Centos7 x86_64. 具体操作查看文档

VimForCpp: 快速将vim打造成c++ IDE

9.参考资料

GitHub - wsdjeg/vim-galore-zh_cn: Vim 从入门到精通

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

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

相关文章

标准库 -- 为什么 EXTI中断需要使能复用时钟与为什么不需要使能?

在STM32中&#xff0c;使用外部中断&#xff08;EXTI&#xff09;时需要使能复用功能&#xff0c;这和其他中断&#xff08;如串口中断、定时器中断&#xff09;有所不同。以下是为什么在使用外部中断时需要使能复用&#xff0c;以及其他中断不需要复用的原因。 一、为什么 EX…

深入理解ECDSA:椭圆曲线数字签名算法的原理与应用

目录 引言一、什么是ECDSA二、ECDSA的基本原理三、椭圆曲线四、ECDSA签名生成过程1、 生成私钥和公钥2、签名3、签名对的保存 五、ECDSA签名验证过程六、ECDSA的安全性七、篡改的消息如何被检测到八、 为什么B能够知道篡改&#xff1f;九、python代码示例总结 引言 在数字通信…

rocketmq——docker-compose安装

rocketmq安装 创建文件夹&#xff0c;这里我们分别部署namesrv和broker 1、namesrv.conf listenPort98762、broker.conf # 所属集群名字 brokerClusterNameDefaultCluster # broker 名字&#xff0c;注意此处不同的配置文件填写的不一样&#xff0c;如果在 broker-a.propert…

微积分复习笔记 Calculus Volume 1 - 5.5 Substitution

5.5 Substitution - Calculus Volume 1 | OpenStax

初试js反混淆

一、目标 ​ 最近js玩的花样越来越多了&#xff0c;本来简洁方便的一门开发语言&#xff0c;现在混淆的一塌糊涂。今天我们就介绍几种常见的反混淆方案。 混淆的本质就是等价替换&#xff0c;把 a 12 ,替换成 a 100 - 8 5 - 15 - 70。 把 “push” 替换成 “\u0070\u0075…

基于微信小程序的乡村研学游平台设计与实现,LW+源码+讲解

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自…

odoo17 前端 在头像下拉 dropdown 自定义菜单

odoo17 前端 在头像下拉 dropdown 自定义菜单 其实很简单, 我们先找到原来已经创建好的, 找到代码位置 使用 我的资料 为例 odoo-17.0\addons\hr\static\src\user_menu\my_profile.js /** odoo-module **/import { _t } from "web/core/l10n/translation"; import …

【解决】Layout 下创建槽位后,执行 Image 同步槽位位置后表现错误的问题。

开发平台&#xff1a;Unity 6.0 编程语言&#xff1a;CSharp 编程平台&#xff1a;Visual Studio 2022   一、问题背景 | 开发库存系统 图1 位置同步失败问题 图2 位置正常同步效果表现 黑框 作用于 UnityEngine.UI.GridLayoutGruop&#xff0c;形成 4x6 布局&#xff0c;如…

2023年MathorCup数学建模B题城市轨道交通列车时刻表优化问题解题全过程文档加程序

2023年第十三届MathorCup高校数学建模挑战赛 B题 城市轨道交通列车时刻表优化问题 原题再现&#xff1a; 列车时刻表优化问题是轨道交通领域行车组织方式的经典问题之一。列车时刻表规定了列车在每个车站的到达和出发&#xff08;或通过&#xff09;时刻&#xff0c;其在实际…

07-案例-图书管理

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

vue 依赖注入(Provide、Inject )和混入(mixins)

Prop 逐级透传问题​ 通常情况下&#xff0c;当我们需要从父组件向子组件传递数据时&#xff0c;会使用 props。想象一下这样的结构&#xff1a;有一些多层级嵌套的组件&#xff0c;形成了一棵巨大的组件树&#xff0c;而某个深层的子组件需要一个较远的祖先组件中的部分数据。…

九州未来再度入选2024边缘计算TOP100

随着数智化转型的浪潮不断高涨&#xff0c;边缘计算作为推动各行业智能化升级的重要基石&#xff0c;正在成为支持万物智能化的关键点。近日&#xff0c;德本咨询(DBC)联合《互联网周刊》(CIW)与中国社会科学院信息化研究中心(CIS)&#xff0c;共同发布《2024边缘计算TOP100》榜…

git相关知识

前言&#xff1a;在学习git之前首先需要了解几个概念&#xff1a;工作区&#xff0c;暂存区&#xff0c;版本库。 工作区&#xff1a;是电脑上写代码或者文件的目录。 暂存区&#xff1a;一般存放在.git目录下的index中&#xff0c;也称索引。&#xff08;git add&#xff09…

应用程序部署(IIS的相关使用,sql server的相关使用)

数据服务程序&#xff08;API&#xff09;部署 1、修改配置文件 打开部署包中的web.config配置文件&#xff0c;确认数据库登录名和密码正确 修改ip为电脑IP&#xff08;winR输入cmd&#xff0c;输入ipconfig&#xff0c;IPv4对应的就是本机IP&#xff09; 2、打开IIS&#x…

conda和conda的常用命令

目录 一、什么是conda 1. conda的定义和作用 2. conda的特点 3. conda与pip的区别 二、conda的常用命令 1. 环境管理 2.包管理 3. 查看信息 4. 清理和维护 5. 频道(channel)管理 6. 导出和复制环境 7. 加速相关(镜像) 一、什么是conda 1. conda的定义和作用 2. co…

mysql每日一题(上升的温度,date数据的计算)

日期之间的运算 日期类型的加法运算 data_add(now_data,interval 1 month) select date_add(now(), interval 1 day); -- 加1天 select date_add(now(), interval 1 hour); -- 加1小时 select date_add(now(), interval 1 minute); -- 加1分钟 select date_add(now(), inter…

kafka生产经验——消费者事务

如果想完成Consumer端的精准一次性消费&#xff0c;那么需要Kafka消费端将消费过程和提交offset 过程做原子绑定。此时我们需要将Kafka的offset保存到支持事务的自定义介质&#xff08;比 如MySQL&#xff09;。这部分知识会在后续项目部分涉及。 事务的四大特征&#xff1a;AC…

2024 年 Apifox 和 Postman 对比介绍详细版

Apifox VS Postman &#xff0c;当下流行的的两款 API 开发工具&#xff0c;2024 版对比&#xff01;

Rust @绑定(Rust@绑定)(在模式匹配的同时将值绑定到变量)

文章目录 Rust中的绑定基础概念示例&#xff1a;基本模式匹配 绑定的使用示例&#xff1a;范围匹配并绑定变量 深入探索绑定的好处示例&#xff1a;复杂数据结构中的应用 总结 附加 Rust中的绑定 Rust 语言以其强类型系统和内存安全的特性著称。在进行模式匹配时&#xff0c;R…

可靠UDP协议(KCP)使用说明

希望这篇文章&#xff0c;对学习和使用 KCP 协议的读者&#xff0c;有帮助。 1. KCPUDP 流程图 2. 示例代码&#xff08;待补充&#xff09; #include <iostream>int main() {// TODO: kcp examplereturn 0; }