linux命令复习

devtools/2024/10/20 23:20:18/

vim分为命令行模式,编辑模式,转义命令(需要输入:)模式

退出vim (在转义命令模式下)

退出vim
:w保存
:wq保存并退出
:q不保存并退出
:q!强制退出
:!强制
:ZZ保存并退出(和wq一样)

三种进入编辑模式的方法 

插入命令:

i在当前光标位置进入插入模式
I在当前光标所在行的行首进入插入模式

 追加模式:

a在当前光标之后进入插入模式
A在当前光标所在的行的末尾进入插入模式

添加模式:

o在当前行之后插入一个新行并进入插入模式
O在当前行之前插入一个新行并进入插入模式

 移动指令(在命令行模式下)

向右移动

l

向右移动n个字符,nl,保证中间夹了n个字符

向左移动

h

向左移动n个字符,nh,保证中间夹了n个字符

向下移动

j

向下移动n个字符,nj

向上移动

k

向上移动n个字符,nk

移动到行首^ 或 0
移动到行尾

$(这里注意,行尾代表光标落在最后一个字符左边)

n$ 移动到往下n-1行的行尾

移动到指定行

G

nG 移动到指定行的行首

移动到指令列

|

n| 光标的位置代表的就是第几列

移动光标到下一个单词

w (标点符合也可以作为分割的依据)

W(要求的单词更为严格,必须以空白分割)

移动光标到上一个单词

b(标点符合也可以作为分割的依据)

B(要求的单词更为严格,必须以空白分割)

移动到屏幕顶部

H

nH 移动到屏幕的第n行

移动到屏幕中间

M

 删除指令(在命令行模式下)

向右删除n个字符nx
向左删除n个字符nX
删除当前行

dd

ndd 删除当前行以及后面的n行

删除光标到行尾的内容,删除之后,下一行不上移D

撤销指令和重复指令

撤销上一次的编辑操作u
撤销光标所在行的所有操作,使其返回上一次被保存的状态U
重复做一次最上一条指令.

 替换操作指令

当c,C,cc被输入后,模式会变为编辑模式。 

r替换命令和s替换命令的区别是r命令只是单独的替换,而s命令会让模式变成编辑模式

删除指定的文本并进入插入模式

c

cw 删除从光标位置开始到当前单词结尾并进入插入模式

cnw 删除从光标位置开始到n个单词结尾并进入插入模式

c6G 删除从当前行到第六行的内容,并进入插入模式

从光标位置到行尾被删除并且进入插入模式C
删除当前整行内容并进入插入模式cc
将光标位置的单个字符替换为输入的字符

r

ra 代表将这个字符替换为a

nr

从光标开始的n个字符被替换为你输入的字符

从光标位置开始的单个字符替换为输入的字符串R
将光标当前位置的字符替换为输入的内容

s

s指令格式为s/旧内容/新内容/

当出现s//新内容/这种格式时,第一个/后面内容空缺,会将上一次替换操作中的旧内容作为此次的旧内容。

将光标所在当前行替换为输入内容S
将指定的一些行向右扩展8个单位        >
将指定的一些行向左缩进8个单位        <
将当前行和下面的n-1行合并为一行        nJ

屏幕显示命令

字符串查找命令

系统从当前行向找到第一个要找的字符串,并且光标停在那里/model+Enter键
系统从当前行向下找到第一个要找的字符串,光标停在这个字符串所在行的上面n行的位置(n不填默认为1)/model/-n+Enter键
系统从当前行向下找到第一个要找的字符串,光标停在这个字符串所在行的下面n行的位置(n不填默认为1)/model/+n+Enter键
系统从当前行向找到第一个要找的字符串,并且光标停在那里?model+Enter键
系统从当前行向上找到第一个要找的字符串,光标停在这个字符串所在行的上面n行的位置(n不填默认为1)?model?-n+Enter键
系统从当前行向上找到第一个要找的字符串,光标停在这个字符串所在行的下面n行的位置(n不填默认为1)?model?+n+Enter键
重复上一次的查找命令

n 查找方向与上一次相同

N 查找方向与上一次不同

在当前行查找指定字符 f是向后找 F是向前找

f charactor

F charactor

用于重复上一次的查找方向的查找操作
用于重复与上一次查找方向相反的查找操作,
给特定的字母处打上标记

m 小写字母

用  `小写字母 可以找回刚才标记的位置

全局替换指令 

 全局替换命令是一系列命令的指令集合

指令格式: g/model/command list

将所有字符串s1出现过的行显示到屏幕上g/s1/p
将每行第一次出现的字符串s1替换为字符串s2g/s1/s//s2/
文本中所有字符串s1被替换为字符串s2g/s1/s//s2/g
文本中所有字符串s1被替换为字符串s2并且把替换后的行显示在屏幕上g/s1/s//s2/gp
文本中所有字符串s1被替换为字符串s2,在替换之前会问一下是否要替换g/s1/s//s2/gc
标记所有有字符串s0的行,并且在标记的行中将字符串s1替换为s2g/s0/s/s1/s2/g
对不包含model的行进行替换操作g!/model/command list
在行首添加固定长度的空格g/^/s// /g

位置转义命令

将光标移动到第n行的行首: n + Enter
从当前行开始向下寻找字符串 光标移动到该位置: /model/ +Enter
从当前行开始向上寻找字符串 光标移动到该位置: ?this? + Enter
移动到当前行的行首: .
显示行数: set nu
取消显示行数: set nonu
对于当前行的相对位移+n或-n
对整个文件的所有行进行操作:%1,$
编辑区的最后一行:$

 e,w,r,q转义命令

当用vim打开一个文件时,可以打开并编辑另外一个文件

e命令

当前文件的编号用%这个符号来代替,用#记录从哪个文件移出的,可以用:buffers来查看

如果想回到之前的文件,则用:b[文件编号]

在一个文件中打开另外一个文件,如果不需要系统提醒是否保存过,加上!

e filename

e! filename

保存并退出:wq
忽略执行w命令之前所做的检查,例如,用户有个文件并没有打开它的写权限但是使用wq!就允许用户用任何方式修改该文件:wq!
不保存直接退出:q
强制退出:q!

文本移动指令

将缓冲区中的内容复制到光标的下一行p
将缓冲区中的内容复制到光标的上一行P
复制当前行yy
复制光标位置到单字结束的字符yw
复制光标位置开始向后n行(包括当前行)nyy

 

 


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

相关文章

vue 音频播放控件封装

<template> <div> <audio @timeupdate="updateProgress" controls ref="audioRef" style="display: none" > <source :src="audioUrl" type="audio/mpeg" /> 您的浏览器不支持音频播放 </audio&…

qt项目使用其他项目的ui之单继承之成员变量

第一步添加.ui文件 第二步&#xff0c;点击编译(原理&#xff1a;qt的uic会将.ui界面编译成c文件) 第三步&#xff1a;在编译后的目录下找到#include “ui_pagewidget.h” 第四步&#xff1a; #ifndef USA_H #define USA_H#include <QWidget>#include "ui_pagew…

【力扣打卡系列】滑动窗口与双指针(乘积小于K的子数组)

坚持按题型打卡&刷&梳理力扣算法题系列&#xff0c;语言为go&#xff0c;Day6 乘积小于K的子数组 题目描述解题思路 双指针移动&#xff0c;遍历右端点right&#xff0c;滑动左端点left子数组的个数&#xff1a;固定右端点r&#xff0c;子数组的个数其实就是从l到r的元…

轻松应对PDF编辑难题:四款免费pdf编辑器实测体验

作为一名办公室文员&#xff0c;每天处理各种文件是家常便饭。而PDF文档因其格式稳定、不易篡改的特性&#xff0c;在工作中扮演着重要角色。但编辑PDF文件却不像编辑Word文档那样简单&#xff0c;这就需要一款得心应手的PDF编辑器。今天&#xff0c;我就来分享一下我使用过的几…

php判断身份证是否合法的方法

/*** 身份证认证** param $idcard* return bool*/public function idcard_checksum18($idcard){$mainlandResult false;$hongKongResult false;$macaoResult false;$taiwanResult false;//大陆身份证判断if(strlen($idcard) 18 ){$idcard_basesubstr($idcard,0,17);if($thi…

轻量级可视化数据分析报表,分组汇总表!

什么是可视化分组汇总表&#xff1f; 可视化分组汇总表&#xff0c;是一种结合了数据分组、聚合计算与视觉呈现功能的数据分析展示功能。它能够按照指定的维度&#xff08;如时间、地区、产品类型等&#xff09;对数据进行分组&#xff0c;还能自动计算各组的统计指标&#xf…

JavaScript 中的定时器与动画基础

setInterval 和 setTimeout 都是 JavaScript 中的定时器函数&#xff0c;用于在一定的时间间隔后执行函数。 setInterval 函数用于按照指定的时间间隔重复执行一个函数。它接受两个参数&#xff0c;第一个参数是要执行的函数&#xff0c;第二个参数是时间间隔的毫秒数。使用示…

react antd redux 全局状态管理 解决修改菜单状态 同步刷新左侧菜单

npm i react-redux1.src新建两个文件 globalState.js 全局状态定义 store.js 全局存储定义 2.globalState.js import { createSlice } from "reduxjs/toolkit";export const globalState createSlice({name: "globalState",initialState: { data: {} },r…