Linux命令 笔记(三):Vim中的常用命令 和 Bash中的常用快捷键
Preface
还是介绍一下笔记的主要来源:B站上兄弟连的视频的笔记,大部分还是老师讲的内容,我只是整理下了笔记,有的地方加了我自己的理解。
我平时在Linux上写程序用的最多的就是前面写的这些了,还有比如:输入输出重定向以及环境变量的设置那些也用,以后有空再写。
Vim 常用命令
Vim没有菜单,只有命令!
这个什么Liber Office真的太难用了。。。。
那个编辑模式就是按下一个冒号,然后在输入命令,按回车执行,然后又返回了命令模式。
进入 vim
如上图,回车后就行,文件可以不存在。但是我一般还是先用touch创建一个空文件,然后再用vim对它进行编辑!如下:
进入 vim 之后是这个样子的:
这目前是处于命令模式下!
插入模式
在插入模式下,我们可以对文件进行编辑,向文件中输入或删除字符啥的。
进入插入模式
在命令模式下:按一下几个按键:
a :在光标所在字符后插入, (小a)
A :在当前行尾插入,(大a, shift + A)
i : 在光标所在字符前插入,(小 i)
I :在光标所在行的行首插入(大 i, shift + i)
o:在光标所在行的下一行插入新的一行,(小o)
O:在光标所在行的上一行插入新的一行(大O, shift + o)
定位命令
设置和取消行号(在编辑模式下执行的,就是需要输入一个冒号作为开头)
:set nu 设置行号
:set nonu 取消行号
定位到哪一行
gg 光标移动到第一行行首(连续按两次键盘上的 G)
G 光标移动到最后一行的行首(一定到按住shift,再按键盘上的G)
nG 其中n是一个具体的数字,表示光标要移动到第n行的行首,比如:5G,表示光标移动到第5行的行首。
:n (这是在编辑模式下完成的,因为前面有一个冒号),表示光标移动到第n行的行首
光标移动到当前行的行首和行尾
0 数字0,表示把光标移动到当前行的行首
$ 把光标移动到当前行的行尾
删除命令
x (小写的 x)删除光标所在处的字符
nx 其中n是一个具体的数字,表示删除光标所在处后 n 个字符
dd 删除当前行
ndd 其中n是一个具体的数字,表示删除包括当前行在内的后 n 行
dG 删除光标所在行之后的所有行(包括当前行)
D 删除光标所在处到当前行的行尾的所有内容
:n1, n2d 其中 n1 和 n2 都是数字,表示删除 n1 到 n2 范围内的所有行!一般用这个命令的时候需要用
:set nu
把行号打开,如:2, 4d,就是删除了 2、3、4行!
复制和剪切命令
yy 复制当前行
nyy 复制包括当前行在内的以下 n 行
dd 剪切当前行,实际上也就是删除了当前行
ndd 剪切包括当前行在内的以下 n 行,也就是删除了n行
p (小 p) 把粘贴板clipboard中的内容粘贴到当前光标所在行的下方
P (大 P,shift+P) 把粘贴板clipboard中的内容粘贴到当前光标所在行的上方
替换和取消命令
r (小r) 取代光标所在处的字符,意思就是,你先按一下 r 然后再在键盘上输入 一个 字符,它就能拿这个字符来替换你原来光标所在的字符
R 从光标所在处开始,可以不断地替换后续的字符,直到你按下
ESC
!这样的话,我们也可以在不进入插入模式的情况下进行输入。u (小u) 撤销,按一下 u,就撤销上一次的操作!
查找和查找替换命令
/查找内容 / 加上 要查找的内容,会高亮显示我们要查找的字符串
n 跳到下一个查找的内容
如果要忽略大小写的话,要输入这个
:set ic
:%s /old /new 把文件中所有的old(待替换的旧字串) 替换成 new(新字串)
:n1, n2s /old /new n1 和 n2 是数字,表示把n1 ~ n2行内的所有 old旧字串替换成new新字串!(它们之间不要敲空格)
保存和退出命令
:w 保存修改(小w)
:w 新名字 把当前文件另存为
新名字
,就是另存为.(小w):wq 保存修改并退出
ZZ :wq的快捷键,保存修改并退出
:q! 强制退出(加了感叹号就是强制退出)
:wq! 强制 保存修改并退出(只有文件所有者或者root才能用!),当文件没有写权限时用这个。
把一个文件的内容导入当前vim所操作的文件
:r 文件名 这样就把文件中的内容导入到了当前光标所在行的下方
把命令的结果导入当前文件
:r !命令 命令前加一个 感叹号!如:
:r !ls -lh
,这样就把命令产生的结果放到当前光标所在行的下方。
Bash 中常用的快捷键
就是在命令行中用的快捷键
ctrl + A : 把光标移动到命令行的开头,如果我们输入的命令太长了,想把光标移动到开头时就用它
ctrl + E : 把光标移动到命令行的结尾
ctrl + C : 强制终止当前正在运行的命令
ctrl + L : 清屏
ctrl + U : 剪切(删除)光标之前的所有敲上去的命令。如果命令太多的话,我一个一个地删太麻烦了。
ctrl + K : 剪切(删除)光标之后的所有内容
ctrl + Y : 粘贴剪切掉的内容(Ctrl+k的或者Ctrl+U的)
ctrl + R : 在历史命令中搜索,按下ctrl+R后输入关键字
ctrl + D : 退出(关闭)当前命令行(终端)
ctrl + S : 暂停屏幕的输出
ctrl + Q : 恢复屏幕的输出