vim 常用功能大全

1、搜索

  1. 先按ESC ,然后再输入一下命令: ’ 😕 ‘
:/查找内容

之后按 回车 就确定定位到当前高亮位置,如果不是你要找的,则可以按:“n”,意即寻找下一个输入关键字的内容。

1、配置

set number             # 显示行号 
set autoindent         # 自动缩进 
set nowrap             # 不换行

2、vim恢复以及乱码问题

2.1 在vi和vim中恢复误删除的东西?

首先要按Esc键,之后再按 u 撤销之前的修改的内容。

u
2.2 打开一个文件中出现一些特殊符号或是乱码
vim -b mytest.php		#其中-b一般是用来查看对应的二进制文件的

3、管道命令,即竖杠 ’ | ’

上面的意思是:将查询出来的内容交给管道后面的命令装饰之后再展示出来

例如:cat install.log | more (more的意思是将一屏放不下的内容以分页的形式显示)

ls -l /etc | more

如果想看上一页的内容,可以通过:Shift + PageUp 来查看

管道配合grep(过滤)可以达到很好用的组合例如:

cat -n hello.txt | grep "hello" #查看并过滤出来带有hello的内容, -n 表示显示出来第几行的内容

4、find 搜寻文件或目录

find /home -name hello*   #查找home目录下的文件名或目录为hello的
find / -name h?m*    			#在跟目录下查找h开头第二个字符是任意的,第三个是m,后面的是任意的字符
find / -size +1000000k  	#表示在根目录下查询文件大于1000000K的文件

查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名

find .|xargs grep -ri "IBM" -l  

5、字符串替换命令

:s/well/good/         #替换当前行第一个 well 为 good
:s/well/good/g        #替换当前行所有 well 为 good
:n,$s/well/good/      #替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g     #替换第 n 行开始到最后一行中每一行所有 well 为 good

n 为数字,若 n 为 .,表示从当前行开始到最后一行

:%s/well/good/      	#等同于 :g/well/s//good/ 替换每一行的第一个well为good
:%s/well/good/g    		#等同于 :g/well/s//good/g 替换每一行中所有well为good
#特殊符号转义:可以使用 '#' 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/#        #替换当前行第一个 well/ 为 good/ 
:%s#/usr/bin#/bin#g 	#可以把文件中所有路径/usr/bin换成/bin 

6、重定向命令

ls -l /etc/       								#显示
ls -l /etc > /home/myback.txt     #覆盖重定向,把显示的结果覆盖到/home/myback.txt中去
ls -l /etc >> /home/myback.txt    #追加重定向,把显示的结果追到/home/myback.txt中去

7、删除

7.2 删除单行
  1. 先按ESC,然后输入以下命令
    dd
    5dd #删除当前行开始的5行;
    
7.1 删除多行步骤如下
  1. 按Esc键退出,在命令行中输入
    190,6233d  (即[190 , 6233]都删除掉)
    dG :(先输入d,然后按 shift 键输入 g)删除当前行至最后一行的所以行。
    
  2. 如果想要清空整个文件内容,在直接运行以下命令
    > log.txt
    
7.3 删除光标后的数据
  1. 先按 ESC,然后再输入一下命令
    d$
    

8. 行位定位

  • 直接定位到第一行: 按Esc键退出,在命令行中输入:gg
  • 直接定位到最后一行: 按Esc键退出,在命令行中输入:G
  • 直接定位到某一行: 按Esc键退出,在命令行中输入:17G

9、复制一行或多行

yy   #复制当前行
7yy  #从当前行开始复制7行

10、粘贴

p     #粘贴
按 Esc 切换到正常模式;
把光标移到你需要复制的代码行首; 
按 V 选择整行,可移动光标选择多行; 
按 d 剪切或按 y 复制选择的代码; 
移动光标到你需要粘贴的位置,按 p 粘贴代码到光标后的位置,或按 P 粘贴到光标前。

11、撤销与重做

在使用 Vim 或其他编辑器的时候,你可能经常需要对某些修改进行撤销或重做。在 Vim 中,你可以切换到正常模式,按 u 来撤销操作,按 Ctrl+r 来重做。

11、代码注释

代码注释:

按 Ctrl+v 切换到可视化模式;
移动光标(j 或 k)选中需要注释的行的开头;
按大写 I,然后输入注释符,如 #; 最后按 Esc。

取消注释:

按 Ctrl+v 切换到可视化模式;
按 j 或 k 选择要删除的注释符;
按 d 或 x 删除注释符

如果使用 // 符号注释,则取消注释时需进行两遍操作。

7. 搜索

搜索在很多时候都是一个非常重要的功能。在文件中搜索一个特定的词,可以切换到正常模式,然后输入斜线( / ),之后跟上要搜索的词,回车即可。

/word-to-be-searched

按 n 显示下一个搜索结果,按 N 显示上一个搜索结果。

8. 把外部文件读入 Vim

我开始使用 Vim 的时候,经常会打开一个文件、复制内容、关闭文件、打开另一个文件、然后粘贴进去复制到内容。其实 Vim 中读取另一个文件的内容非常方便。切换到正常模式,然后按 :read。使用此快捷键你不需要手动打开文件来复制内容。

:read readme.md

9. 把命令的结果读入 Vim

有时候你需要把某个命令的结果复制到 Vim 中,这在 Vim 也非常简单。切换到正常模式,然后输入 :read !command 即可把 command 的结果输入到 vim 中。

:read !ls -l

10. 切换到上次修改的位置

想知道你在文件中做的最后一次修改是在什么位置?切换到正常模式,输入 g; 来即可切换到上次修改的位置。

11. 移动到文件顶部或底部

当需要移动到文件顶部或底部时,通过 j 或 k 来一行行的移动显得有点麻烦。Vim 提供了一个快捷键可直接实现此功能。切换到正常模式,输入 gg 返回文件顶部,输入 G 返回文件底部。

11、grep 的用法

grep -A n					#显示匹配的后n行    (after)
grep -B n					#显示匹配的前n行    (before)
grep -C n					#显示匹配的前后n行 (context)
grep -i str				# 忽略大小写

12、ll或ls显示说明

ll -ht  #h会按照标准格式自动转换大小即:456M,1.2G等,t 表示显示内容按照时间倒序排列

应用案例:

清空8月份的日志文件:

rm -rf `ll -ht | awk '/8月/{print 6,6,NF}' | awk  '{print $NF}'

说明:awk ‘/pattern/action’–> awk ‘/8月/{print 6,6,NF}’,只显示第六行与最后一行的内容且只保留8月的列表内容显示。

ls中文件颜色的显示代表的意义为:

  1. 蓝色 --> 目录
  2. 绿色 --> 可执行文件
  3. 红色 --> 压缩文件
  4. 浅蓝色 --> 链接文件
  5. 灰色 --> 其他文件

13、lsof命令

lsof solr.log		#查看某文件被哪个进程所占用
lsof -i:8080    	#查看端口被占用情况

14、创建用户以及查看当前用户

useradd redis			#添加用户
passwd redis			#给用户设置密码
adduser redis			#添加用户,并在/home下创建用户目录

如果是Ubuntu系统则需要使用如下命令:

  • useradd openstack -m -s /bin/bash
  • userdel -r openstack

查看当前系统存在的用户组和用户

  • /etc/group文件包含所有组
  • /etc/shadow和/etc/passwd系统存在的所有用户名

15、常用查看文件大小与Linux系统命令

free -m  						#查看内存使用情况(m为MB,g为GB)
df -lh	 						#查看对应磁盘使用情况
cat /proc/cpuinfo		#查看对应CPU使用情况

cpuinfo会有32个大致相同的内容展示(下标是从0开始的),这就说明该服务器为8核操作系统
在这里插入图片描述
或者有更牛逼的命令:

  • cat /proc/cpuinfo | grep “model name” | head -1 (只显示一行对应的CPU型号以及其他信息)
  • cat /proc/cpuinfo | grep “model name” (系统有几个核就会显示几行)
  • cat /proc/cpuinfo | grep “model name” | wc -l (统计出一共有多少核)

查看对应服务器版本当前操作系统发行版信息:

cat /etc/issue  或  cat /etc/redhat-release

在这里插入图片描述
查看更为底层的版本信息:cat /proc/version (例如:CentOS实际最根源为RetHat,此命令将会显示所采用RetHat的版本)
在这里插入图片描述
查看文件目录相关

du -h node		 #查看某个文件夹当前所占用的空间
du -sh *       #如果想查看当前目录下的所有文件各个大小

16、查看内存情况

jstat -gc pid  							# 可以看到对应各个内存大小、使用状况以及GC处理情况
jmap -heap [pid]  					 # 查看内存分布
jstat -gcutil [pid] 1000  	 # 每隔1s输出java进程的gc情况

17、修改文件夹及其里面的内容的权限

chown -R solr:solr /home/solr/lib

意思是将 /home/solr/lib 文件夹及其里面内容的用户所属权限修改为solr用户所属权限

18、查看某个端口链接状态的连接数

netstat -nlap | grep -i est | grep -i 6379 | awk '{print $4}'
netstat -nlap | grep -i est | grep -i 1121 | wc -l

平时使用总结,使用此命令如果实在记不住后面参数有哪些,那么直接记住为:-nlap 即可,大部分情况都可以满足我们的需求
netstat常见参数如下:

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

grep -i              # i表示忽略大小写
awk '{print $4}'     # 表示只打印第4列
grep -i est          # est表示:ESTABLISHED,即只显示ESTABLISHED即连接状态的端口

grep命令最后的那个显示出来的结果以它进行标红,即最后一个grep为:grep -i 6379, 那么打印出来的结果其中的6379标红,结果如下如所示:
在这里插入图片描述

19、同步服务器的时间

ntpdate pool.ntp.org

将这个命令启用为定时脚本执行,具体如下所示:

1 */2 * * * ntpdate pool.ntp.org

20、不允许ssh登录如何配置

修改vim /etc/sysconfig/sshd_config文件,增加一行:AllowUsers solr,具体如下所示:
在这里插入图片描述
使其生效运行如下命令:

service sshd reload

常用系统级配置总结:

  1. 限制登录:/etc/ssh/sshd_config 修改后需重启:service sshd restart
  2. 用户配置:/etc/passwd
  3. sudo权限:/etc/sudoers

21、怎么看linux的防火墙是否阻止80端口**

iptables -vnL | grep ":80 "

返回有内容说明开通,没返回内容,则说明阻止

22、查看文件编码以及修改文件编码

22.1 直接查看文件编码
file -i 文件
22.2 在 vim 中修改此文件编码格式
:set fileencoding=utf-8
22.3 修改 vim 的统一编码格式
vim ~/.vimrc
# 增加一句话
set encoding=utf-8 fileencoding=utf-8

23、软连接

23.1 创建一个软链接
ln  -s  /data/elastic/plugin/ik/custom  myES

以上命令中的 /data/elastic/plugin/ik/custom 就是源文件,myES 是链接文件名, 其作用是当进入 myES 目录,实际上是链接进入了 /data/elastic/plugin/ik/custom 目录

23.2 删除软链接:
rm -rf  myES

注意不是 rm -rf myES/  (此命令会将原始目录也一并删除,会造成很严重的后果,切记!!!)

24、定位 IO 拼接的常用方法

从网上找到了一篇很有用的使用方法,我通过这种方式也在实际工作中找到了有关 IO 的问题,可以参考如下链接:

定位IO瓶颈的一些方法(iotop工具具体查看IO负载主要是落在哪个进程上)

25、配置vi

:syntax on
:set hlsearch
:set tabstop=4
:set autoindent

永久:
写在~/.vimrc,没有就创建
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值