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

Linux高并发服务器开发 第五天(压缩解压缩/vim编辑器/查找替换/分屏操作/vim的配置)

目录

1.压缩和解压缩

1.1压缩

1.2解压缩

2.vim编辑器

2.1vim的3种工作模式

2.2切换编辑模式

2.3保存和退出

2.4光标移动

2.5复制粘贴

2.6剪切、删除

2.7查找 替换

2.7.1查找

2.7.2替换

3.分屏操作

3.1快速翻屏

3.2分屏

4.vim的配置

4.1系统配置

4.2用户配置


1.压缩和解压缩

- Linux 操作系统,默认支持的 压缩格式:gzip、bzip2。  默认,这两种压缩格式,只能压缩单个文件,不支持打包;压缩后,源文件消失。


- 在 Linux/unix 中 压缩、解压缩,借助 tar 命令来完成。 tar 的作用是 “打包”

1.1压缩

- 格式:tar zcvf  压缩包名.tar.gz   压缩原材料**

    - z:  使用 gzip 压缩格式。 如果选用 bzip2 。 将 z 替换为 j
    - c:创建压缩包。
    - v:显示压缩过程。
    - f:用来指定压缩包包名的。 f 必须是最后一个参数。后面紧跟 压缩包名称。

- 举例:

- 注意事项:

    - 压缩时,压缩包的后缀名,系统不做强制要求。但是,为了后期使用方便。我们应该根据实际压缩情况,选择合适的后缀名。

1.2解压缩

- 格式:tar zxvf  压缩包名.tar.gz**  —— 直接解压缩到 当前目录。
    
    - z:  使用 gzip 压缩格式。 如果选用 bzip2 。 将 z 替换为 j
    - x:解压缩。

    - 将解压缩的文件存储到指定目录。 使用 参数 -C


    
- 举例:

2.vim编辑器

2.1vim的3种工作模式

- 命令模式
    - 进入vim/vi 后,自动处于的一种模式。
    - 在此种模式下,用户键入的所有内容都被当做 “命令”看到。
- 编辑模式
    - 编写代码。
- 末行模式
    - 在此种模式下,键入的指令,都被当做末行命令。

 

2.2切换编辑模式

  • - **i:改变工作模式为 编辑模式,向光标 插入数据。**   —— 首选学习!
  • - a:改变工作模式为 编辑模式,向光标  插入数据。
  • - **o:改变工作模式为 编辑模式,向光标所在行的下一行插入数据。**   —— 首选学习!
  • - s:改变工作模式为 编辑模式,删除光标选中的字符。
  • - I(大i):改变工作模式为 编辑模式,向光标所在行的行首插入数据。
  • - A:改变工作模式为 编辑模式,向光标所在行的行尾插入数据。
  • - O:改变工作模式为 编辑模式,向光标所在行的上一行插入数据。
  • - S:改变工作模式为 编辑模式,删除光标所在行所有数据。

2.3保存和退出

- 命令模式:
    - ZZ(大写)保存、退出
- 末行模式:
    - w:保存
    - q:退出
    - q!:强制退出,不保存。
    - x:保存、退出

2.4光标移动

- **hjkl:左下上右
- **G:文件的末行!**
- **gg:文件的首行。**
- gg=G : 自动排版(缩进、对齐)
- 0:不改变工作模式,将光标移动至本行行首。
- $:不改变工作模式,将光标移动至本行行尾。
- **NG: 不改变工作模式, 跳转至第 N 行。—— 命令模式。**
- 末行模式,跳转至指定行:
    - :N 回车。 —— 跳转至第N行。

2.5复制粘贴

- 单行复制:
    - 光标移动至待复制行,放在任意字符上,yy复制本行。移动光标至目标位置。p向下粘,P向上粘。
- 多行复制:
    - 光标移动至待复制多行的首行任意字符上, 按 Nyy(N为行数)复制多行。移动光标至目标位置,p向下粘,P向上粘。
- 片段复制:
    - 光标移动至待复制区域的首个字符上,按v,左下角出现 “--可视--”提示,按 hjkl 移动光标,选中待复制区域。使用 y 复制,移动光标至目标位置,p向后粘,P向前粘。
- 复制一个单词:
    - 光标移动至待复制单词首字符上,按 yw 复制一个单词。移动光标至目标位置,p向下粘,P向上粘。

注意:是在命令模式下的

2.6剪切、删除

- vim中,剪切后,不粘贴,就是删除!
- 单行剪切:
    - 光标移动至待剪切行,放在任意字符上,dd剪切本行。移动光标至目标位置。p向下粘,P向上粘。
- 多行剪切:
    - 光标移动至待剪切多行的首行任意字符上, 按 Ndd剪切多行。移动光标至目标位置,p向下粘,P向上粘。
- 片段剪切:
    - 光标移动至待剪切区域的首个字符上,按v,左下角出现 “--可视--”提示,按 hjkl 移动光标,选中待剪切区域。使用 d 剪切,移动光标至目标位置,p向后粘,P向前粘。
- 剪切一个单词:
    - 光标移动至待剪切单词首字符上,按 dw 剪切一个单词。移动光标至目标位置,p向后粘,P向前粘。
- 剪切光标位置至本行行首:
    - 光标移动至待剪切起始字符上, 按 d0 剪切至,本行行首。移动光标至目标位置,p向后粘,P向前粘。
- 剪切光标位置至本行行尾:
    - 光标移动至待剪切起始字符上, 按 d$ 或者 D 剪切至本行行尾。移动光标至目标位置,p向后粘,P向前粘。

2.7查找 替换

2.7.1查找

- 想象一个关键词,在文件中查找。
    - 命令模式下,输入 “/” 在末行位置,可以输入待查找的关键词。使用 n 找下一个。找到文件末尾,自动循环查找。


- 看到一个关键词,查找在文件后续出现的位置。
    - 将光标放到单词的任意字符上:
        - 使用 * 向后查找
        - 使用 # 向前查找。

2.7.2替换

- 单行替换

    - 将光标置于待替换行的任意位置,进入末行模式

        ```shell
        #语法::s/旧字符串/新字符  --- 只能替换一行的首个。想替换本行的全部,使用 /g
        举例:
        :s/append/add/g

- 通篇替换
    #语法::%s/旧字符串/新字符/g  
    举例:
   

- 多行替换
    #语法::起始行号,终止行号s/旧字符串/新字符/g
    举例:
   

3.分屏操作

3.1快速翻屏

| **快捷键** | **操作**|
| ---------- | ----------------- |
| ctrl + u   | 向上翻半屏(up)    |
| ctrl + d   | 向下翻半屏(down)  |
| ctrl + f   | 向上翻一屏(front) |
| ctrl + b   | 向后翻一屏(back)  |

3.2分屏

- 横屏分:
    - sp:直接将当前文件 划分为两个屏幕。
    - sp 新文件名:将 新文件和 现有文件,在同一个vim中打开,方便两个文件相互拷贝。
- 竖屏分:
    - vsp:
    - vsp 新文件名:
- 切换:ctrl-w-w
- 退出:
    - 在哪个分屏窗口执行、q、wq,就退出哪个窗口。
    - wqall 可以一次性退出所有窗口。

4.vim的配置

vim中执行shell命令

在末行位置。使用 !shell命令。可以直接在 vim中执行shell命令。

4.1系统配置

- 配置文件: /etc/vim/vimrc   ---- 可以使用已经配置好的 vimrc 替换此文件。

    - 会在 每次,启动 vim工具时,生效。作用于整个Linux系统,所有用户。
    - 内容:一系列的 末行命令。上网搜

4.2用户配置

- 配置文件:~/.vimrc  ---- 该文件,不存在,需要手动创建!
    - 会在每次启动vim时,自动生效。作用于 当前用户。
    - 内容:一系列的 末行命令。上网搜

相关文章:

Linux高并发服务器开发 第五天(压缩解压缩/vim编辑器/查找替换/分屏操作/vim的配置)

目录 1.压缩和解压缩 1.1压缩 1.2解压缩 2.vim编辑器 2.1vim的3种工作模式 2.2切换编辑模式 2.3保存和退出 2.4光标移动 2.5复制粘贴 2.6剪切、删除 2.7查找 替换 2.7.1查找 2.7.2替换 3.分屏操作 3.1快速翻屏 3.2分屏 4.vim的配置 4.1系统配置 4.2用户配置…...

C++ 面向对象编程:关系运算符重载、函数调用运算符重载

对 、<、> 三个运算符分别进行重载&#xff0c;可见以下代码&#xff1a; #include<iostream> using namespace std;class location { public:location(int x1, int y1) :x(x1), y(y1){};bool operator(const location& l1) const{return x l1.x && …...

拉普拉斯分布极大似然估计

在拉普拉斯分布中&#xff0c;概率密度函数 (PDF) 表示为&#xff1a; f ( x ∣ μ , b ) 1 2 b exp ⁡ ( − ∣ x − μ ∣ b ) , f(x | \mu, b) \frac{1}{2b} \exp\left(-\frac{|x - \mu|}{b}\right), f(x∣μ,b)2b1​exp(−b∣x−μ∣​), 其中 μ \mu μ 是位置参数&…...

VLMs之Gemma 2:PaliGemma 2的简介、安装和使用方法、案例应用之详细攻略

VLMs之Gemma 2&#xff1a;PaliGemma 2的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年12月4日&#xff0c;PaliGemma 2是一个基于Gemma 2系列语言模型的开源视觉语言模型 (VLM) 家族。PaliGemma 2 通过提供一个规模化、多功能且开源的VLM家族&#xff0c;…...

qwenvl 代码中的attention pool 注意力池如何理解,attention pool注意力池是什么?

qwenvl 中的attention pool如何理解&#xff0c;其实这就是一个概念的问题 看qwenvl的huggingface的代码的时候&#xff0c;发现代码里有一个Resampler 以及attn_pool&#xff0c;这和之前理解的连接池 线程池 表示资源复用的意思不太一样&#xff0c;查了一下&#xff1a; 注…...

源码分析之Openlayers中GeometryCollection类

概述 本文主要介绍GeometryCollection类,GeometryCollection类继承于Geometry类,关于Geometry类,参考这篇文章源码分析之Openlayers中Geometry基类介绍 GeometryCollection类就是一组几何对象的集合. 源码分析 GeometryCollection类源码实现 GeometryCollection类源码实现…...

常见LLM大模型总结

常见LLM大模型总结 模型名称发布机构主要特点参数规模应用场景GPT-4OpenAI强大的推理能力&#xff0c;支持多模态&#xff08;图像文本&#xff09;&#xff0c;上下文理解更深1.7万亿参数聊天机器人、内容生成、代码生成ChatGPTOpenAI面向对话优化&#xff0c;支持多轮对话记…...

向量检索+大语言模型,免费搭建基于专属知识库的 RAG 智能助手

随着生成式人工智能技术的飞速发展&#xff0c;越来越多的人和企业开始应用AI到日常的工作和生活中。但公域的AI助手其数据来自互联网上的大量公开文本&#xff0c;虽然具有广泛的知识&#xff0c;但在面对一些特定领域的专业问题时&#xff0c;可能会出现回答不够准确或深入的…...

基础11C++中的异常处理以及swap

一、异常处理手段 抛出异常&#xff1a;throw 异常 作用&#xff1a;让调用者看见这个异常&#xff0c;如果调用者不理睬&#xff0c;就让调用者的调用者看见 接住异常: try {可能异常的code} catch(异常类型) {处理方式} 异常类型&#xff1a;一般为const &&#xff0c;防…...

写作词汇积累:得偿所望、可见一斑、搭腔

得偿所望 【得偿所望】是指经过长时间的期盼和努力&#xff0c;最终实现了自己的愿望或目标。 【得偿所望】强调了愿望实现后的满足感和成就感&#xff0c;是一个充满正能量和积极情感的词语。 【得偿所望】与【得偿所愿】在表达上也具有相似的含义&#xff0c;都指愿望得到了…...

android jetpack compose Model对象更新变量 UI不更新、不刷新问题

以前是搞老本行Android原生开发的&#xff0c;因为工作原因&#xff0c;一直在用vue小程序&#xff1b;因为一些工作需要&#xff0c;又需要用到Android原生开发&#xff0c;建了个项目&#xff0c;打开源码一看&#xff0c;天塌了&#xff01;&#xff01;&#xff01;我以前的…...

数据库概论

目录 1、数据库管理系统(DBMS) 1.1 DBMS的主要功能 1. 数据库的定义功能 2. 数据库的操纵功能 3. 数据库的运行控制功能 4. 数据库的维护 5. 数据字典(Data Dictionary&#xff0c;DD) 2、数据模型 2.1 信息和数据(了解) 2.2 数据模型的三个层次 2.3 信息世界中的基…...

基于python使用UDP协议对飞秋进行通讯—DDOS

基于飞秋的信息传输 声明&#xff1a;笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 老规矩&#xff0c;封面在文末&#xff01; 飞秋介绍 &#xff08;…...

数据库管理-第275期 Oracle 23ai:画了两张架构图(20241225)

数据库管理275期 2024-12-25 数据库管理-第275期 Oracle 23ai&#xff1a;画了两张架构图&#xff08;20241225&#xff09;1 系统管理分片2 用户定义分片总结 数据库管理-第275期 Oracle 23ai&#xff1a;画了两张架构图&#xff08;20241225&#xff09; 作者&#xff1a;胖…...

使用Streamlit部署机器学习模型

机器学习&#xff1a; 计算机能够从经验中学习&#xff0c;而无需明确编程。机器学习是目前最热门的领域之一&#xff0c;世界各地的顶级公司都在使用它来改善他们的服务和产品。但是没有使用在Jupyter Notebook中训练的机器学习模型。因此&#xff0c;我们需要部署这些模型&am…...

依图科技简介

依图科技&#xff08;YITU Technology&#xff09;是中国一家全球领先的人工智能&#xff08;AI&#xff09;公司&#xff0c;成立于2012年&#xff0c;总部位于上海。公司专注于计算机视觉、语音识别和自然语言处理等核心AI技术&#xff0c;致力于推动AI技术在医疗、安防、金融…...

苍穹外卖day07缓存部分分析

苍穹外卖Day07部分聚焦于缓存功能的实现与优化&#xff0c;通过引入redis缓存机制&#xff0c;结合Spring Cache 注解&#xff0c;降低了数据库负载&#xff0c;提升其响应速度。 以下是清除缓存功能代码&#xff1a; RestController RequestMapping("/admin/dish"…...

OCR实践-Table-Transformer

前言 书接上文 OCR实践—PaddleOCR Table-Transformer 与 PubTables-1M table-transformer&#xff0c;来自微软&#xff0c;基于Detr&#xff0c;在PubTables1M 数据集上进行训练&#xff0c;模型是在提出数据集同时的工作&#xff0c; paper PubTables-1M: Towards comp…...

HarmonyOS NEXT 实战之元服务:静态案例效果---电台推荐

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1完整代码案例如下&#xff1a; Index import { authentica…...

微信小程序 不同角色进入不同页面、呈现不同底部导航栏

遇到这个需求之前一直使用的小程序默认底部导航栏&#xff0c;且小程序默认入口页面为pages/index/index&#xff0c;要使不同角色呈现不同底部导航栏&#xff0c;必须要在不同页面引用不同的自定义导航栏。本篇将结合分包&#xff08;subPackages&#xff09;展开以下三步叙述…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...