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

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

目录

一、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 expandtabset 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.mrgr.cn/news/75220.html

相关文章:

  • 【多线程-第一天-多线程的执行原理-多线程的优缺点-主线程 Objective-C语言】
  • RT-DETR融合[TIP2023]DehazeFormer中的SKFusion模块及相关改进思路
  • “乐鑫组件注册表”简介
  • 【C++习题】10.反转字符串中的单词 lll
  • 【npm设置代理-解决npm网络连接error network失败问题】
  • 开源宝藏:Smart-Admin 重复提交防护的 AOP 切面实现详解
  • 绝对路径和相对路径的区别
  • 搜维尔科技:我们使用Xsens动作捕捉技术创建的短片
  • 行驶证 OCR 识别 API 接口的优势分析
  • Python中,处理日期和时间的库
  • GCN基于图卷积神经网络多特征分类预测(多输入单输出) Matlab代码
  • springboot039基于Web足球青训俱乐部管理系统
  • 似然函数解析
  • LeetCode 每日一题 统计满足 K 约束的子字符串数量 I
  • AI视觉小车基础--2.按键读取
  • 【MYSQL】数据库日志 (了解即可)
  • Linux 驱动
  • 机器学习(1)
  • [DB]
  • [ICML 2024]Learning High-Order Relationships of Brain Regions
  • 超全面!一文带你快速入门HTML,CSS和JavaScript!
  • pip install volcengine-python-sdk报错
  • 【027B】基于51单片机模拟电梯(点阵)【Proteus仿真+Keil程序+报告+原理图】
  • Spring Validation参数校验
  • CDA LEVEL 2考试大纲
  • 从源码一把聊清楚nacos2.x的事件驱动架构,从迷茫到精通!!