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

devtools/2024/12/27 8:29:22/

目录

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时,自动生效。作用于 当前用户。
    - 内容:一系列的 末行命令。上网搜


http://www.ppmy.cn/devtools/145768.html

相关文章

【UE5 C++课程系列笔记】14——GameInstanceSubsystem与动态多播的简单结合使用

效果 通过在关卡蓝图中触发GameInstanceSubsystem包含的委托,来触发所有绑定到这个委托的事件,从而实现跨蓝图通信。 步骤 1. 新建一个C类 这里命名为“SubsystemAndDelegate” 引入GameInstanceSubsystem.h,让“SubsystemAndDelegate”继承…

ruoyi 请求参数类型不匹配,参数[giftId]要求类型为:‘java.lang.Long‘,但输入值为:‘orderGiftUnionList

记录下自己的bug /*** 礼物订单信息** author ruoyi*/ RestController RequestMapping("/order/gift") public class OrderGiftController extends BaseController {Autowiredprivate IOrderGiftService orderGiftService;/*** 获取礼物订单列表 - 联合数据*/GetMap…

实战演练JDK的模块化机制

实战演练JDK的模块化机制--楼兰 带你聊最纯粹的Java ​ 你发任你发,我用Java8。你用的JDK到什么版本了?很多开源框架都已经开始陆续升级JDK版本了。你对于JDK8往后陆陆续续更新的这些版本有什么感觉吗? ​ 很多人会说其实并没有太多的感觉。JDK的新版本不断推出一些不痛不痒…

D类音频应用EMI管理

1、前言 对于EMI,首先需要理解天线。频率和波长之间的关系,如下图所示。   作为有效天线所需的最短长度是λ/4。在空气中,介电常数是1,但是在FR4或玻璃环氧PCB的情况下,介电常数大约4.8。这种效应会导致信号在FR4材…

Vue BPMN Modeler流程图

1、参考地址 git clone https://github.com/evanyangg/vue-bpmn-modeler.git 2、安装bpmn.js npm install bpmn-js --save 3、使用bpmn.js <template><div class"containers"><div class"canvas" ref"canvas"></div&g…

ReactPress 1.6.0:重塑博客体验,引领内容创新

ReactPress 是一个基于Next.js的博客&CMS系统&#xff0c; Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 体验地址&#xff1a;http://blog.gaoredu.com/ 今天&#xff0c;我们自豪地宣布ReactPress 1.6.0版本的正式发布&#xff0c;…

亚远景-ISO 21434标准下的汽车网络安全测试:全面要求与实施策略

ISO 21434标准在安全测试方面有着详细且全面的要求&#xff0c;以确保车辆网络系统的安全性能得到有效验证和确认。以下是该标准在安全测试方面的主要要求&#xff1a; 一、安全测试计划的制定与执行 要求&#xff1a;制造商需要制定并执行详细的安全测试计划&#xff0c;该计…

JVM实战—2.JVM内存设置与对象分配流转

大纲 1.JVM内存划分的原理细节 2.对象在JVM内存中如何分配如何流转 3.部署线上系统时如何设置JVM内存大小 4.如何设置JVM堆内存大小 5.如何设置JVM栈内存与永久代大小 6.问题汇总 1.JVM内存划分的原理细节 (1)背景引入 (2)大部分对象的存活周期都是极短的 (3)少数对象…