RHCSA的学习(4)

一、vi编辑器

(1)为什么学vi?

  • 所有的Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在;
     
  • 很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令);
  • vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
  • 程序简单,编辑速度相当快速。

Vim的发布最早可以追溯到1991年,英文全称为:“Vi IMproved”,也就是对vi编辑器的提升版本,其中最大的改进当属对代码的着色功能,亦有些编程场景能够自动修正错误代码。

在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。在日常工作中大家也肯定免不了要编写文档,这些工作都是通过文本编辑器来完成的。Vim之所以能得到广大厂商与用户的认可,原因在于Vim编辑器中设置了三种模式:命令模式、末行模式编辑模式(插入模式),每种模式别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。

(2)使用vi/vim编辑文件

#在每次运行Vim编辑器时,默认进入命令模式
[root@master ~]# vim /etc/passwd  也可以就输入一个 vim,也是默认进入命令模式
[root@master ~]# vim

1、vim三种模式的切换

特点区分(都是看最后一行底部):

  • 命令模式:没有任何信息或显示文件名和相关信息
  • 插入模式:最后一行显示  insert
  • 末行模式:最后一行显示  :

2、命令模式下的常用按键

(1)光标跳转按键

(2)复制、粘贴、删除

补充:

d + enter删除光标所在行以及光标下一行
删除光标所在字符
Ndd(例:3,5dd)删除光标行开始3-5行内容
dG删除光标所在行到文档尾
dgg删除光标所在行到文档首
s字符替换,替换光标所在字符
cc剪切光标所在行
ctrl  +   r 向右撤销

命令模式进入插入模式的方式

按esc键可从编辑模式切换到命令模式

命令模式进入插入模式的方式

按 : 或者 / 可从命令模式切换到末行模式。按esc键可从末行模式切换到命令模式。

3、末行模式

(1)查找关键字并替换

(2)保存退出

(3)其他操作

补充:

取消高亮显示:noh
跳转到第5行:5
将所有行的0字符替换出2: s/0/2/g

4、vim的拓展用法

(1)可视化模式

按Ctrl+v进入可视化模式
该模式下通过光标移动选择文本,选取后按 y 可以把文本提取到缓冲区(即复制),c 可以剪切。之后可以使用p在光标后粘贴,P粘贴在光标前

(2)多文档编辑

在打开一个文件的时候,输入 :sp /dir/file 可分屏显示另一个文件

光标在多个文件之间的切换按ctrl+w w

5、vim的配置文件

[root@master test]#vim /etc/vimrc
[root@master test]#vim ~/.vimrc
set hlsearch            "高亮度反白
set backspace=2      "可随时用退格键删除
set autoindent        "自动缩排
set tabstop=4        "缩进
set softtabstop=4   softtabstop是“逢4空格进1制表符”,前提是你tabstop=4
set shiftwidth=4     自动缩进空格长度
set mouse=a            "使用鼠标
set selection=exclusive
set selectmode=mouse,key
set ruler               "可显示最后一行的状态
set showmode            "左下角那一行的状态
set nu                  "可以在每一行的最前面显示行号啦!
set bg=dark             "显示不同的底色色调
syntax on               "进行语法检验,颜色显示

6、vim练习

(1)修改主机名

[root@localhost ~]# vim /etc/hostname

(2)设置登录欢迎语

[root@localhost ~]# vi /etc/motd
hello

(3)修改中断当前进程的快捷键

[root@localhost ~]# vi ~/.bashrc
stty intr "^b"
#中断当前进程的快捷键就会变成ctrl+b

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

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

相关文章

【笔记】Day2.4表设计说明

主键ID一般使用bigint类型 运送类型 使用比int更小的tinyint类型 eg:普快代表1 特快代表2(没写反) 关联城市 varchar 2代表京津冀 3代表江浙沪 4代表川渝 首重和续重都有小数点 故使用double 轻抛系数都为整数 故使用int 创建时间和修改…

【UI】将 naive ui 的 message 封装进axios 中,关于naiveui的message相关的用法

文章目录 前言在setup外进行使用直接包裹使用vue 单文件中使用 参考文章: 关于naiveui的message相关的用法 前言 最近新建了一个vite vu3 的项目,完全是从0 到1 ,封装到request 的时候 想对axios 请求做一个全局的处理,但发现…

【CSS】让元素消失的方式

1. display: none display: none 是最常用的隐藏元素的方法。它会完全将元素从文档流中移除,元素不再占据任何空间。 .element {display: none; }特点: 占位影响:元素完全从文档流中移除,不占据任何空间。事件响应:…

jmeter学习(7)beanshell

beanshell preprocessor 发送请求前执行 beanshell postprocessor 发送请求前执行 获取请求相关信息 String body sampler.getArguments().getArgument(0).getValue(); String url sampler.getPath(); 获取响应报文 String responseprev.getResponseDataAsString(); 获…

实战OpenCV之视频处理

基础入门 视频是由一系列连续的图像帧组成的,这些帧按照一定的速率连续播放,从而形成动态画面。与视频相关的主要参数有:分辨率、帧率、码率、编解码器、帧类型、文件格式等,下面分别进行介绍。 1、帧率。表示每秒显示的图像帧数&…

【devops】x-ui 实现一键安装 x-ray 打造高速国际冲浪 | xray管理平台

一、部署X-UI篇 1、Github 地址&说明 github地址如下: https://github.com/FranzKafkaYu/x-ui?tabreadme-ov-file 2、一键部署 2.1、更新并安装curl #Ubuntu、Deibian系统 apt update && apt upgrade -y apt install curl -y #CentOS7 系统 yum…

强大的JVM监控工具

介绍 在生产环境中,经常会遇到各种各样奇葩的性能问题,所以掌握最基本的JVM命令行监控工具还是很有必要的 名称主要作用jps查看正在运行的Java进程jstack打印线程快照jmap导出堆内存映像文件jstat查看jvm统计信息jinfo实时查看和修改jvm配置参数jhat用…

现代身份和访问管理 IAM 如何降低风险

您的公司是否仍在使用 1998 年时的身份管理系统?仅凭用户名和密码就能登录本地网络并访问几乎所有资源吗? 虽然大多数企业已经转向现代身份和访问管理(IAM) 平台,但成千上万的企业和其他组织仍然依赖过时的用户名/密码系统。 如果你看一下传…

SpringBoot 整合 阿里云 OSS图片上传

一、OOS 简介 ‌阿里云OSS(Object Storage Service)是一种基于云存储的产品,适用于存储和管理各种类型的文件,包括图片、视频、文档等。‌ 阿里云OSS具有高可靠性、高可用性和低成本等优点,因此被广泛应用于各种场景&…

简单的网络爬虫爬取视频

示例代码爬取一个周杰伦相关视频 import requests# 自己想下载的视频链接 video_url https://vdept3.bdstatic.com/mda-qg8cnf4bw5x6bjs5/cae_h264/1720516251158906693/mda-qg8cnf4bw5x6bjs5.mp4?v_from_shkapp-haokan-hbf&auth_key1728497433-0-0-4a32e13f751e04754e4…

Avalonia.Xaml.Behaviors开源库的使用

文章目录 简介1. 安装 Avalonia.Xaml.Behaviors2. 创建基本的 Avalonia 应用3. 设置 XAML 界面4. 创建 ViewModel 和 ICommand 实现5. 注册 DataContext6. 使用触发器7. 创建自定义行为8. 在 XAML 中使用自定义行为9. 命令参数传递10. 组合和复用行为总结简介 Avalonia.Xaml.Be…

oracle-函数-instr()的妙用以及相似功能like

INSTR(C1,C2[,I[,J]]) 【功能】在一个字符串中搜索指定的字符,返回发现指定的字符的位置; 【说明】多字节符(汉字、全角符等),按1个字符计算 【参数】 C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 第J次出现的位置,默认为1 【…

Ubuntu 24.04升级openssh9.8p1

Ubuntu 24.04升级openssh9.8p1 1、更新2、安装依赖3、新建文件夹4、进入新建文件夹5、下载openssh9.8p1安装包6、当前文件夹解压7、进入解压文件夹8、配置9、编译及安装10、重启ssh11、查看ssh及…

算法修炼之路之位运算

目录 一:位运算符及一些常用结论总结 1.给一个数n,确定它的二进制表示中的第x位是0还是1(位数从右向左0开始增加) 2.将一个数n的二进制表示形式的第x位修改成1 3.将一个数n的二进制表示的第x位修改为0 4.提取一个数n的二进制表示中最右侧的1 5.干掉一个数n的…

Java、PHP、ASP、JSP、Kotlin、.NET、Go

Java 1995年,Java诞生了,微软的Java是J#,早期是J. 它在C的基础上增强了安全性,不允许多重继承,堆栈不允许类对象,数组和枚举都是类对象。 Java的诞生 早期的Sun公司想要在消费级嵌入式设备编写可移植的代码…

单片机闪存,闪存缓冲取,闪存延迟

一、启用闪存预取缓冲区(FLASH_PrefetchBufferCmd (FLASH_PrefetchBuffer_Enable);) 闪存预取缓冲区的作用: 在微控制器中,闪存是用于存储程序代码和常量数据的非易失性存储器。当微控制器执行程序时,需要从闪存中读取…

Leetcode热题100-200 岛屿数量

Leetcode热题100-200 岛屿数量 1. 题目描述2. 代码实现1. dfs算法2. bfs算法 1. 题目描述 200 岛屿数量 2. 代码实现 1. dfs算法 class Solution { public:int numIslands(vector<vector<char>>& grid) {int m grid.size(), n grid[0].size();int res 0…

kubernetes-强制删除命名空间

一、故障现象 1、删除命名空间卡住、强制删除也卡住 2、其他终端显示命名空间下无资源 二、处理步骤 1、kubectl get namespace cilium-test -o json > temp.json 获取你需要删除的命名空间json描述文件。 2、修改finalize字段 3、替换 kubectl replace --r…

OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)

前言 由于我司一直在针对各个工厂、公司、客户特定的业务场景&#xff0c;做解决方案或定制开发&#xff0c;所以针对每一个场景&#xff0c;我们都会反复考虑用什么样的机器人做定制开发 于此&#xff0c;便不可避免的追踪国内外最前沿的机器人技术进展&#xff0c;本来准备…

信息安全工程师(42)VPN类型和实现技术

前言 VPN&#xff08;Virtual Private Network&#xff0c;虚拟专用网络&#xff09;是一种在公共网络上建立专用网络连接的技术。 一、VPN类型 VPN可以根据不同的分类标准划分为多种类型&#xff0c;主要包括以下几种&#xff1a; 按协议分类&#xff1a; PPTP&#xff08;Poi…