CentOS软件安装与vim使用操作

目录

CentOS软件安装

软件生态的概念

CentOS软件安装

CentOS软件卸载

CentOS查看软件包

rz和sz命令

vim多模式文本编辑器

vim 的使用

命令模式

输入模式

底线命令模式

vim 按键说明

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

光标移动

搜索替换

删除、复制与贴上

第二部分:一般模式切换到编辑模式的可用的按钮说明

进入输入或取代的编辑模式

第三部分:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令

vim 环境的变更

额外补充(注释)

Vim的配置


CentOS软件安装

软件生态的概念

软件生态:一款操作系统是否可以在市场上有一席之地最主要看的还是操作系统的软件生态,软件生态包括:论坛、官方文档、软件体系……

CentOS软件安装

在CentOS下,使用yum指令进行软件安装,但是安装软件只能是root用户,如果普通用户想安装只可以使用sudo提权(前提是在sudoers文件中),例如安装tree命令:(root用户下)yum install -y tree

yum命令使用使用-y选项可以在安装软件的过程中不询问用户

CentOS软件卸载

软件卸载同软件安装,只有root用户和可以sudo提权的用户可以执行,例如卸载tree命令:(root用户下)yum remove tree

CentOS查看软件包

使用yum list可以罗列出远端服务器中可以下载的所有软件,结合管道和grep指令可以筛选出需要的软件,例如查找tree命令:yum list | grep tree

rz和sz命令

rzsz用于Windows机器和云服务器的Linux机器通过XShell传输文件,使用rz可以从Windows机器中选择文件发送给Linux机器,使用sz可以从Linux机器向Windows机器中发送文件

vim多模式文本编辑器

vim 的使用

基本上vim共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)

命令模式

用户刚刚启动 vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符,比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是普通模式常用的几个命令:

  • i -- 切换到输入模式,在光标当前位置开始输入文本。

  • x -- 删除当前光标所在处的字符。

  • :shift+;) -- 切换到底线命令模式,以在最底一行输入命令。

  • a -- 进入插入模式,在光标下一个位置开始输入文本。

  • o --在当前行的下方插入一个新行,并进入插入模式。

  • O -- 在当前行的上方插入一个新行,并进入插入模式。

  • dd -- 剪切当前行。

  • yy -- 复制当前行。

  • p (小写) -- 粘贴剪贴板内容到光标下方。

  • P (大写)-- 粘贴剪贴板内容到光标上方。

  • u -- 撤销上一次操作。

  • Ctrl + r -- 重做上一次撤销的操作。

  • :w -- 保存文件。

  • :q -- 退出 Vim 编辑器。

  • :q! -- 强制退出Vim 编辑器,不保存修改。

若想要编辑文本,只需要启动Vim,进入了命令模式,按下i切换到输入模式即可。

命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式,使用Esc键可以返回到普通模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合:输入字符

  • ENTER:回车键,换行

  • BACKSPACE:退格键,删除光标前一个字符

  • DEL:删除键,删除光标后一个字符

  • 方向键:在文本中移动光标

  • HOME或者END:移动光标到行首/行尾

  • Page Up或者Page Down:上/下翻页

  • Insert:切换光标为输入/替换模式,光标将变成竖线/下划线

  • ESC:退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有:

  • :w :保存文件。

  • :q :退出 Vim 编辑器。

  • :wq :保存文件并退出 Vim 编辑器。

  • :q! :强制退出Vim编辑器,不保存修改。

按ESC键可随时退出底线命令模式。

vim 按键说明

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

光标移动
移动光标的方法
h 或 向左箭头键(←)光标向左移动一个字符
j 或 向下箭头键(↓)光标向下移动一个字符
k 或 向上箭头键(↑)光标向上移动一个字符
l 或 向右箭头键(→)光标向右移动一个字符
[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]屏幕『向下』移动半页
[Ctrl] + [u]屏幕『向上』移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
n<space>那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的n个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
H光标移动到这个屏幕的最上方那一行的第一个字符
M光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
G移动到这个档案的最后一行(常用)
nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg移动到这个档案的第一行,相当于 1G 啊! (常用)
n<Enter>n 为数字。光标向下移动 n 行(常用)

对于光标的移动,如果你将右手放在键盘上的话,你会发现hjkl是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动 30 行,可以使用30j30↓的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!

搜索替换
搜索替换
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向光标之上寻找一个字符串名称为 word 的字符串。
n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g或:%s/word1/word2/g从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc或:%s/word1/word2/gc从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)

使用 /word 配合 nN 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!

删除、复制与贴上
删除、复制与贴上
x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd剪切游标所在的那一整行(常用),用 p/P 可以粘贴。
nddn 为数字。剪切光标所在的向下 n 行,例如 20dd 则是剪切 20 行(常用),用 p/P 可以粘贴。
d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$删除游标所在处,到该行的最后一个字符
d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G复制游标所在行到第一行的所有数据
yG复制游标所在行到最后一行的所有数据
y0复制光标所在的那个字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据
p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
J将光标所在行与下一行的数据结合成同一行
c重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)
.不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』(需要注意会覆盖光标所在位置的内容) (常用)

这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!

第二部分:一般模式切换到编辑模式的可用的按钮说明

进入输入或取代的编辑模式
选择两个中的一个即可进入输入或取代的编辑模式
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 为止;(常用)
[Esc]退出编辑模式,回到一般模式中(常用)

上面这些按键(除了Esc按键),在vim画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,上面也提过了,想要在档案里面输入字符时, 一定要在左下角处看到INSERTREPLACE才能输入

第三部分:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令
指令行的储存、离开等指令
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)
ZQ不保存,强制退出。效果等同于:q!。
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
:! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

需要注意,那个惊叹号 (!) 在 vim 当中,常常具有『强制』的意思

vim 环境的变更
vim 环境的变更
:set nu显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu与 set nu 相反,为取消行号!

特别注意,在vim中,数字是很有意义的!数字通常代表重复做几次的意思!也有可能是代表去到第几个什么什么的意思。

举例来说,要删除50行,则是用50dd,数字加在动作之前,如我要向下移动 20 行呢?那就是20j或者是20↓即可。

额外补充(注释)

vim下快速进行注释的方法:

  1. Ctrl+v:切换到Visual Mode,使用jk选择需要注释的行(或者使用数字选择,方式见前面操作)

  2. shift+i:切换到Insert Mode

  3. 输入行注释符,例如//

  4. 连续按下两次Esc

vim下快速取消注释的方法:

  1. Ctrl+v:切换到Visual Mode,使用hl选择需要一个需要取消的注释,再使用jk选择行(或者使用数字选择)

  2. 输入dd删除即可

Vim的配置

vim配置需要用到.vimrc文件,该文件放置在用户的家户目录下,也可以放置在/etc/vimrc作为系统级配置,常见的配置有:

 设置语法高亮: syntax on显示行号: set nu设置缩进的空格数为4: set shiftwidth=4

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

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

相关文章

JUC并发编程01-基础概念

概念 进程 进程可以视为程序的一个实例&#xff0c;进程就是用来加载指令、管理内存、管理I0 线程 一个进程内可以有多个线程&#xff0c;一个线程就是一个指令流。 在Java中&#xff0c;线程作为最小调度单位&#xff0c;进程作为资源分配的最小单位&#xff0c;可以说进程…

Mysql数据库第二次作业

(1)显示所有职工的基本信息。 mysql> select * from t_worker; (2)查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 mysql> select distinct department_id from t_worker; (3)求出所有职工的人数。 mysql> select count(1) from t_worker; (4)列…

Figma 中文版指南:获取和安装汉化插件

Figma是一种主流的在线团队合作设计工具&#xff0c;也是一种基于 Web 端的设计工具。在当今的设计时代&#xff0c;Figma 的使用满足了每个人的设计需求&#xff0c;不仅可以实现在线编辑&#xff0c;还可以方便日常管理&#xff0c;有效提高工作效率。然而&#xff0c;相信很…

分页查询与分页条件查询

--------------- 无PageHelper插件分页查询 1.创建PageBean实体类 Data NoArgsConstructor AllArgsConstructor public class PageBean<T> {private Long total;//总条数private List<T> items;//当前页数据集合 }类型安全性 泛型&#xff1a;提供了编译时的类型…

【Apache Doris】周FAQ集锦:第 15 期

【Apache Doris】周FAQ集锦&#xff1a;第 15 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户…

JMeter:BeanShell到JSR223迁移中的注意事项

前言 在之前的文章JMeter&#xff1a;BeanShell向JSR223迁移过程遭遇的java标准库不可用问题-如何切换JDK版本中引用了一段使用BeanShell对入参进行加密的脚本&#xff0c;迁移到JSR223&#xff0c;虽然更换JDK后编译通过&#xff0c;看似也可以执行了&#xff0c;但是其实那段…

windows USB 设备驱动开发-开发Type C接口的驱动程序(二)

编写 USB Type C 连接器驱动程序 在以下情况下&#xff0c;需要编写 USB Type-C 连接器驱动程序&#xff1a; 如果 USB Type-C 硬件能够处理电源输送 (PD) 状态机。 否则&#xff0c;请考虑编写 USB Type C 端口控制器驱动程序&#xff1b; 如果硬件没有嵌入式控制器。 否则&…

(10)深入理解pandas的核心数据结构:DataFrame高效数据清洗技巧

目录 前言1. DataFrame数据清洗1.1 处理缺失值&#xff08;NaNs&#xff09;1.1.1 数据准备1.1.2 读取数据1.1.3 查找具有 null 值或缺失值的行和列1.1.4 计算每列缺失值的总数1.1.5 删除包含 null 值或缺失值的行1.1.6 利用 .fillna&#xff08;&#xff09; 方法用Portfolio …

Python本地安装whl文件详解与高级pip命令技巧

有些情况我们pip一下包的时候会报错&#xff0c;可能因为延时或许其他不兼容的情况&#xff0c;这时候我们可以通过去网上下载该包的原文件&#xff0c;进行本地物理pip &#xff0c;在安装网上下载的whl之前&#xff0c;先明白不同后缀的差异&#xff1b;whl下载网址&#xff…

Linux 下部署 syncthing 中继服务器

来自&#x1f96c;&#x1f436;程序员 Truraly | 田园 的博客&#xff0c;最新文章首发于&#xff1a;田园幻想乡 | 原文链接 | github &#xff08;欢迎关注&#xff09; 文章目录 安装apt 安装(Ubuntu/Debian) syncthing 配置发现服务器和中继服务器 Syncthing 是一个连续的…

解答word图标变白

把WPS卸载了之后就变成白色了&#xff0c;然后在注册表中把word的地址改成office word的地址之后图标变成这样了&#xff0c;怎么办 1.winR打开命令提示符 2.输入regedit&#xff0c;打开注册表编辑器 3.找到下面这个路径 计算机\HKEY_CLASSES_ROOT\Word.Document.8\Defaul…

【C#】已知有三个坐标点:P0、P1、P2,当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致,该如何计算P3、P4?

问题描述 已知有三个坐标点&#xff1a;P0、P1、P2&#xff0c;当满足P3和P4连成的一条直线 与 P0和P1连成一条直线平行且长度一致&#xff0c;该如何计算P3、P4&#xff1f; 解决办法 思路一&#xff1a;斜率及点斜式方程 # 示例坐标 x0, y0 1, 1 # P0坐标 x1, y1 4, 4 # …

跟ChatGPT学习go语言--time.Sleep 方法 单位是什么

在 Go 语言中&#xff0c;time.Sleep 方法用于让当前的 Goroutine 休眠一段时间。time.Sleep 方法的参数是一个 time.Duration 类型&#xff0c;表示休眠的时间长度。time.Duration 是一个以纳秒为单位的整数类型。 使用示例 以下是一个简单的示例&#xff0c;展示如何使用 tim…

自适应键盘,自带隐藏键盘的输入框(UITextField)

引言 在iOS开发中&#xff0c;输入框占据着举足轻重的地位。与安卓不同&#xff0c;iOS输入框经常面临键盘遮挡的问题&#xff0c;或者无法方便地取消键盘。为了解决这些问题&#xff0c;有许多针对iOS键盘管理的库&#xff0c;如IQKeyboardManager、TPKeyboardAvoiding和Keyb…

一个PCIe设备可以既是主设备也是从设备吗?主设备与根节点的关系?

PCIe设备也可以既是主设备&#xff08;Master&#xff09;又是从设备&#xff08;Slave&#xff09;&#xff0c;这是因为PCIe总线的设计允许设备在不同的事务中扮演不同的角色&#xff0c;具体取决于设备的功能和总线控制器的支持。以下是几个主要的原因&#xff1a; 灵活性和…

分库分表 [ 技术 ] 指南 ✨

目录 ✨探索 技术 分库分表✨ 数据库分库分表指南 一、什么是分库分表 二、分库分表策略 三、分库分表的实现 四、分库分表的常见问题及解决方案 五、总结 相关面试题目 1. 解释什么是数据库分库分表&#xff0c;以及它的主要目的是什么&#xff1f; 2. 描述垂直分库…

STM32学习(1)--STM32介绍

STM32介绍 1.STM32简介2.ARM3.STM32F103C8T64.外设5.命名规则6.系统结构7.引脚定义8.启动配置9.最小系统电路10.新建工程步骤11.工程架构 课程知识及代码来源均来自b站 江协科技&#xff0c;下学期即将做毕设&#xff0c;需要用到STM32单片机&#xff0c;在这个假期我将持续学…

Python热门面试题(六)

请解释Python中的map()函数和filter()函数及其应用场景 在Python中&#xff0c;map()函数和filter()函数是两个非常有用的内置高阶函数&#xff0c;它们允许你以函数式编程的方式处理可迭代对象&#xff08;如列表、元组等&#xff09;。下面分别解释这两个函数的工作原理及其…

摸鱼大数据——Spark Structured Steaming——新零售数据分析案例

1、数据源介绍 数据内容 字段说明 2、分析需求 数据清洗需求 清洗需求&#xff1a;1) 将客户id&#xff08;CustomerID&#xff09;不为0的数据保留下来: CustomerID ! 02) 将商品描述&#xff08;Description&#xff09;不为空的数据保留下来: Description !3) 将日期&#…

gds-linkqueue:泛型链式队列

类似于C的queue的泛型容器&#xff0c;初始化、销毁、清空、入队、出队、取队首/尾、队空。 ​​​​​​​ ​​​​​​​