1 vi操作:


常用的命令:
移动:jkhl 
翻页:ctrl+f ctrl+u ctrl+b ctrl+d
光标位置不动,文档移动:ctrl+e ctrl+y 
移动到当前文档的位置:H M L 
将当前文档移动到屏幕的上中下:zz zb zt 
跳行:gg G nG 0 $ %
跳单词:w b e 大写是反向跳
跳字符:f F
插入:iIaA oO
修改:x r R dw cw cc
跳文件:gf ctrl+o
退出:wq x ZZ q!
行操作:yy p dd p 10,20 m/co 20 10,20 d
替换操作::
s/p1/p2/g:将当前行中所有p1均用p2替代。 
n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代。 
g/p1/s/p2/g:将文件中所有p1均用p2替换。
%s/p1/p2/g:将文件中所有p1均用p2替换。
3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的“string1”成“string2”。
查找操作:/str ?str #


2 多窗口,多文件操作:


new 
vnew
sp
vsp
多窗口切换:
ctrl+w+j/k 或者 ctrl+w+w
窗口调整
CTRL-W <        使得当前窗口宽度减 N (默认值是 1)。
CTRL-W >        使得当前窗口宽度加 N (默认值是 1)。
CTRL-W -        使得当前窗口高度减 N (默认值是 1)。
CTRL-W +        使得当前窗口高度加 N (默认值是 1)。
<整个窗口的移动>
CTRL-W-H 将窗口移到最左边
CTRL-W-L 将窗口移到最右边
CTRL-W-J 将窗口移到底端
CTRL-W-K 将窗口移到顶端

Secury crt多窗口之间切换方式:
用ctrl + tab依次切换
Alt + n 切换到第n个窗口
解决超时问题,可以通过设置搞定

多文件操作:
同时打开多个文件,例如 vi *
:n跳到下一个,也可以加文件名直接跳到对应的文件。
:p往前跳文件
补充说明:
注:所有的操作都可以加上n来进行指定数量,例如3dd就是删除3行
{ 或  } 跳到下/上一个空白行 #==========> 非常有用!!! 注意 { 是shift+[键.
[[ 跳到函数定义开头 或者上一个函数定义开头 .
][ 跳到函数定义结尾,或者下一个函数定义结尾.
]]  跳到下一个函数开头gd  跳到变量的定义处(对局部变量有效)#(不怎么有用,可以直接#号搜索即可).
文件对比:vimdiff diff


3 常用查看文件命令


Cat:直接输出内容
Vi
Less:只打开一部分文件,vi的一些常用的查找等操作都可以使用
head (–n):打开文件开头的部分
tail (-n):打开文件结尾部分,tail –f可以动态显示文件
more:分页显示
cut
主要是用来切分文件,最常用的命令式:
cut –d “ “ cut.txt –f1| cut –d”:” –f1
sort
sort –u 排序并去重
sort –t” “ –k2,2rn sort.txt
uniq
和sort -u的区别是只能对紧挨着的进行去重


4 awk sed find 等命令基本应用


awk
基本的写法: awk –F” “ [-ODF”|”] [–vvar=0] ‘BEGIN{…}{…}END{…}’
$0 表示当前行
$1 表示第一个分割后的内容
NR 计数器,每处理完一行,就会加一
awk内建函数:
Sub
Gsub
Index
Length
Substr
Match
Split

sed
sed –n ‘100,200p’ file.txt > new_file.txt
sed –i ‘s/str1/str2/g’ file.txt	是否加g有区别,不加一行只替换第一个
grep
grep “str” file.txt
find
find . –name file.txt
wc
-c, --bytes             print the byte counts
-m, --chars            print the character counts
-l, --lines              print the newline counts
-L, --max-line-length     print the length of the longest line
-w, --words             print the word counts