最近不忙,鉴于之前的服务器老是出问题,就决定平常多补补Linux知识.希望下次能派上用场.
学习视频是在B站上的
史上最牛的Linux视频教程—兄弟连
学习使用的环境:
视频学习系统:CentOS5.1
实操系统:CentOS7.8 2003
先说一下前段时间学习收获的内容:
权限系统:
对于文件,r可以查看文件内容,w可以修改文件内容,x可以执行文件;
对于目录,r可以列出目录中的内容,w可以再目录中创建、删除文件,x可以进入目录;
i节点的冷门用处:
1.根据i节点查看所有文件的硬链接(i节点相同)
2.根据i节点强行删除删除不掉的文件,具体命令:
find dirpath -inum inode -exec/ok rm {} ;
下面就是今天最主要的VIM 的使用方法,真正要熟练掌握还是要多多实操.
一、命令模式下
1. gg 快速定位到文章的首行,G 快速定位到文章的末行,nG,到n行
2. 0快速定位到句首,$快速定位到句末
3. r替换光标所在内容(仅仅是一个),R替换光标及光标后面的内容,直到按ESC退回命令模式.
4. x删除光标所在内容(可持续向后删除),nx 删除包含光标所在及后面的n-1个字符(共删除n个字符)
5. u 撤销上一步操作
6.1 dd 剪切/删除光标所在行(可持续向下删除),ndd 剪切/删除包含光标所在行及下面n-1行(共删除n行)
6.2 D 剪切/删除光标所在字符到行尾内容(删除后光标自动前移一个字符)
7. yy 复制光标所在行, nyy 复制光标所在行及以下n-1行(共复制n行)
8. p 粘贴在光标所在行下,P 粘贴在光标所在行上
9.ZZ 快捷键,保存修改并推出(如果没有权限将无法保存退出,这里发现一个奇怪的事,当你强制使用wq!保存退出的时候,文件的所属人和所属组都变成了当前用户的信息)
二、插入模式
1. a在光标所在字符后面插入,i在光标所在字符前面插入,o在光标所在行下插入新行.
2. A在光标所在行尾插入,I在光标所在行首插入,O在光标所在行上插入新行
三、编辑模式
1.命令模式下按":"进入编辑模式
2.设置行号
:set nu
,取消行号
:set nonu
3.快速到第n行:n,如快速定位到第10行
:10
4./string 搜索指定字符串,如在文中搜索关键字"xiaoming"
:/ xiaoming
如果需要忽略大小写
:set ic
5.删除指定的行:n1,n2d,如删除第10到15行
:10,15d
6.全文替换指定字符串,如将全文中的old替换为new. 如果把g改成c,则每次替换都会询问是否替换
:%s/old/new/g
在指定行内替换指定字符串,如将第20行到第24行的old替换为new.如果把g改成c,则每次替换都会询问是否替换
:20,24s/old/new/g,
7. r 文件路径, 可以把文件内容导入到当前光标所在的位置,比较常用的做法是在某个路径下存放作者的个人信息(姓名,电话,邮箱之类的),在需要的时候可以插入文档内.
:r /etc/issue
:r /home/gg/myinfo
8. ! 在不退出vim的情况下使用命令,如下,之后可以按ENTER,继续使用vim
:!ls
:!which ls
9. 7和8搭配使用,比较经常用的就是使用vim在文章内插入当前时间
:r !date
10.定义快捷键: 使用快捷键把光标所在行注释(即在光标所在行行首加'#')
:map ^P I#<ESC>
(注意^P是按住ctrl+V+P,或者先按ctrl+v,再按ctrl+p),定义好该快捷键后,则在命令行,按ctrl+p 则会在光所所在行的行首插入(I)(#),并退回到命令行(<ESC>),也就是将光标所在行变为注释.
同理,去掉注释的快捷键设置如下: 实测有bug,当注释前面有空格的时候,会先删除空格.
:map ^P 0x<ESC>
11.1 连续行注释
:n1,n2s/^/#/g
11.2 连续行取消注释
:n1,n2s/^#/ /g
11.3 连续行行首添加双斜杠(需要转义符)
:n1,n2s/^///g
12.替换
: ab mymail/mytel xxxx@yyyy/123123123
(需要提前设置,对已有的内容不生效,也就是说文本中原有的mymail不会替换,只有在输入该命令后,再输入mymail/mytel,才会被自动替换成xxxx@yyyy/123123123,而在输入该命令前的内容中,如果存在mymail/mytel,则仍会以mymail/mytel的内容存在)
13. 另存为指定文件
w new_filename
四、可以通过修改/root/.vimrc 的配置文件(以root为例子,普通用户的配置文件在/home/xxx/.vimrc)使得命令或者快捷键永久生效
vim /root/.vimrc
1 set nu 2 ab mymail abc@123.com