以tomcat配置文件下的server.xml为例:
1、查找
命令1:vim server.xml
命令2:/port 查找port关键字
命令3:n:向后查找port关键字
命令4:N:向前查找port关键字
2、查找并替换
命令1:vim server.xml
命令2: :%s/this/that 将server.xml中所有this关键字替换为that
命令3: :%s/this/that/gc 将server.xml中this关键字替换为that,但是每次替换的时候会有提示是否替换(比较保险,常用)
3、退出编辑器
:q :没有改动的情况下退出,如果有改动,则无法退出
:q! :强制退出
1 vim常用操作
(1)插入命令
命令 |
作用 |
a |
在光标所在字符后插入 |
A |
在光标所在行尾插入 |
i |
在光标所在字符前插入 |
I |
在光标所在行首插入 |
o |
在光标下插入新行 |
O |
在光标上插入新行 |
(2)定位命令
命令 |
作用 |
:set nu |
设置行号 |
:set nonu |
取消行号 |
gg |
到第一行 |
G |
到最后一行 |
nG |
到第n行 |
:n |
到第n行 |
$ |
移至行尾 |
0 |
移至行首 |
(3)删除命令
命令 |
作用 |
x |
删除光标所在处字符 |
nx |
删除光标所在处后n个字符 |
dd |
删除光标所在行 |
dG |
删除光标所在行到文件末尾内容 |
ndd |
删除光标所在行后n行(包括当前行) |
D |
删除光标所在处到行尾内容 |
:n1,n2d |
删除指定范围行 |
(4)复制和剪切命令
命令 |
作用 |
yy |
复制当前行 |
nyy |
复制当前行以下n行(包括当前行) |
dd |
剪切当前行 |
ndd |
剪切当前行以下n行(包括当前行) |
p,P |
粘贴在当前光标所在行下或行上 |
(5)替换和取消命令
命令 |
作用 |
r |
取代光标所在处字符 |
R |
从光标所在处开始替换字符,按ESC结束 |
u |
取消上一步操作(这个功能找了好久) |
(6)搜索和搜索替换命令
命令 |
作用 |
/string |
搜索指定字符串,搜索时忽略大小写:set ic,取消忽略:set noic |
n |
搜索指定字符串的下一个出现位置 |
:%s/old/new/g |
全文替换指定字符串 |
:n1,n2s/old/new/g |
在一定范围内替换指定字符串 |
其中g表示不询问确认,如果是c的话表示询问确认
(7)保存和退出命令
命令 |
作用 |
:w |
保存修改 |
:w new_filename |
另存为指定文件 |
:wq |
保存修改并退出 |
ZZ |
快捷键,保存修改并退出 |
:q! |
不保存修改并退出 |
:wq! |
保存修改并退出(文件所有者和root可使用) |
2. vim的使用技巧
(1)将一个文件的内容导入到文本文件中,其格式为:
:r 文件名
例:创建test文本,写入如下内容,将/etc/issue的内容复制到test文本中
[root@localhost ~]# vi test
I am ws.
What's your name? My name is LiMing
I am glad to see you.
在最后一行的下一行插入issue的内容,在命令模式下输入:r /etc/issue,可得:
I am ws.
What's your name? My name is LiMing
I am glad to see you! CentOS release 6.5 (Final)
Kernel \r on an \m
(2)在不退出vim的情况下,执行相应的操作命令,其格式为:
:!命令
例:如在命令模式下执行ls命令
I am glad to see you! CentOS release 6.5 (Final)
Kernel \r on an \m
:!ls [No write since last change]
anaconda-ks.cfg install.log install.log.syslog
(3)导入命令执行结果,相当于将前两者进行综合,其格式为:
:r !命令
例:在test的文本末尾添加日期,在命令模式下输入:r !date,其结果为:
I am ws.
What's your name? My name is LiMing
I am glad to see you! CentOS release 6.5 (Final)
Kernel \r on an \m
Fri Jan 2 06:00:55 CST 2015
(4)定义快捷键
可以为常用的命令定义快捷键,其格式为:
map 快捷键 触发命令
注:快捷键的创建需要同时按下Ctrl+v+创建快捷键的字母
例1:创建一个快捷键,可使在行首加入注释符#,只需在命令模式下输入:map ^P I#<ESC>,其中^P为Ctrl+v+p同时按下后的显示,I#即为行首插入注释符#,<ESC>表示退出编辑模式到命令模式。
然后在第一行执行Ctrl+p,即可得到如下结果:
#I am ws.
What's your name? My name is LiMing
I am glad to see you! CentOS release 6.5 (Final)
Kernel \r on an \m
Fri Jan 2 06:00:55 CST 2015
例2:创建删除行首注释符#的快捷键,在命令模式下输入:map ^B 0x。
例3:在当前光标下为邮箱创建快捷键,在命令模式下输入如下命令:
:map ^H i123@qq.com
(5)连续注释行,该命令与搜索替换命令1.(6)类似。如在连续多行添加注释符#,在命令模式下输入如下命令:
:n1,n2s/^/#/g
其中^表示行首
相对的,取消连续行注释可以在命令模式下输入如下命令:
:n1,n2s/^#//g
如果以"//"表示注释符的话,则连续注释行可在命令模式下输入如下命令:
:n1,n2s/^/\/\//g
其中"\"表示转义字符。
例:在test文本中的前两行加入//注释符:
//I am ws. //What's your name? My name is LiMing
I am glad to see you! CentOS release 6.5 (Final)
Kernel \r on an \m
Fri Jan 2 06:00:55 CST 2015
(6)替换
在文本文件中,可以将一个字符串替换为另一个字符串,如将mail替换为123@qq.com,其命令格式为:
:ab mail 123@qq.com
然后在文本中写入mail,按空格或Enter键则mail自动替换为123@qq.com。
通常设置的快捷键或替换在系统重启时会消失,如果想长时间的保存快捷键的定义或替换等,可以在每个用户的家目录(如root在/root,用户在/home/用户)下写入配置文件.vimrc(root下如/root/.vimrc),然后在该配置文件中编辑模式下写入所需要的命令,且行首无需加冒号(:)。
Linux中的软件包分为源码包(脚本安装包)及二进制包(RPM包、系统默认包)。其中源码包的优点是:
1)源码包是开源的,如果有足够的能力,可以修改源代码;
2)可自由选择所需的功能;
3)源码包需编译安装,所以更加适合自己的系统,稳定且效率高;
4)卸载方便,只需删除安装文件目录,且不留垃圾文件。
其缺点是:
1)安装过程步骤较多,尤其安装较大的软件集合时,容易出现拼写错误;
2)编译过程时间较长,安装比二进制包长;
3)因为是编译安装,安装过程中一旦报错,新手很难解决。
二进制包的优点是:
1)包管理系统简单,只通过几个命令就可以实现包的安装、升级和卸载;
2)安装速度比源码包快的多。
缺点是:
1)经过编译,不再可以看到源代码;
2)功能选择不如源码包灵活;
3)依赖性较强。