vi 编辑器
Linux:使用文本文件来保存配置文件 文本编辑器:ASCII文件 emacs vi vi:Visual Interface(纯字符界面的编辑器) 全屏文本编辑,nano 模式化的编辑器
moduler vim :vi improved vi的模式: 编辑模式:键盘操作通常被解析为编辑命令: 输入模式: 末行模式:vim的内置的命令行接口,执行vim内置命令
编辑模式–>输入模式 i:当前光标处输入内容 I:在当前光标所在行的行首 a:在当前光标所在处的后面 A:在当前光标所在行的行尾输入 o:在光标所在行的下方新增一行空白行 O:在光标所在行的上方新增一行空白行
输入模式-->编辑模式
ESC
编辑模式-->末行模式
:
末行模式-->编辑模式
ESC,ESCvi命令的使用格式 vim [options] /path/to/file
退出: :q!强制退出,不保存并退出 :wq 保存修改并退出 :w 保存不退出 :x,保存并退出 编辑模式:ZZ,保存退出
打开: 多文件跳转 :next 下一个 :prev 上一个 :first 第一个 :last 最后一个 :qall 退出所有的文件 :wqall:修改并退出多个文件 分隔窗口打开多个文件 -o:水平分隔 ctrl+w,上下箭头 -O:垂直分隔 ctrl+w,左右箭头 +#:打开文件后在第#号行首 +:打开文件后在最后一行 光标移动: 单字符移动: h:左 l:右 j:下 k:上 可以和数字组合 单词间移动: w:调至下一个单词的词首 b:当前或前一个的词首 e:当前或下一个词的词尾 行内移动: 0:绝对行首 ^:第一个非空白字符 $:绝对行尾 句子间移动: ):上一句 (: 下一句 段落间移动: }:上一段 {:下一段 行间移动: #G:第几行 #gg G:最后一行 编辑操作: x:删除光标所在处的字符 #x:删除光标所在处向后的#个字符 r:替换光标所在处的字符
d:删除命令
结果光标跳转命令使用
d^ 光标删除至行首
d$ 光标删除至行尾(shift+d)
%:全部
dd:删除一行
#dd:删除所在行后的#行
y:复制命令
yy:复制当前一行 p粘贴
#yy:复制#行p:paste 粘贴 复制或删除的是整行 p:当前行的下一行 P:当前行的上一行 复制或删除的为非整行 p:粘贴在光标所在字符的后面 P: 粘贴在光标所在字符的前面 撤销编辑 u:undo #u:最近50次操作 撤销此前的撤销操作 ctrl+r: 重复执行此前的命令: . 翻屏: ctrl+f:向文件尾部翻一屏 ctrl+b:向文件首部翻一屏 ctrl+d:向文件尾部翻半屏 ctrl+u:向文件首部翻半屏 Enter:下一行 k :上一行 查找: /keyword ?keyword n:往下翻查找的结果 N:往上翻查找的结果 支持正则表达式
vim的可视化模式 编辑模式: v:按照光标走过的区域选择 V:选择矩形行 vim可视化模式: v: 按光标走过的区域选择 V: 选择矩形行 ctrl+v:选择矩形块
末行模式:范围定界 start,end:可以使用绝对定界,也可以使用相对定界 .:表示当前行 :最后一行 -2:倒数第3行 /pat1/,/pat2/:起始处为光标所在行 c:改变 跟d一样操作 y:yank,复制 跟d一样操作 s:替换
:set nohlsearch 关闭高亮显示,对当前shell有效打开多个文件,分窗口: vim -o vim -O Ctrl+w, 上下箭头
分割当前窗口: Ctrl+w, s Ctrl+w, v
窗口属性的定义: :set nu 输出行号 :set nonu
:set ai 自动缩进(其他发行版本)
:set shiftwidth=4 设置自动缩进空格数为4(ubuntu系统)
:set softabstop=4 设置制表符宽度为4
:set ic 查找时不考虑大小写
:set noic 查找时考虑大小写
显示对应的括号
:set sm (show match)
:set nosm
语法高亮:
:syntax on
:syntax off
搜索高亮:
:set hlsearch
:set nohlsearchvim的配置文件: 全局:/etc/vimrc 个人:~/.vimrc 查找替换: :地址定界s/查找模式/替换为的内容/gi g:全局替换 i:不区分大小写 :地址定界s@查找模式@替换为的内容@gi &:用于在替换为的内容部分中引用前面匹配到的所有内容
find: 实时查找工具,通过遍历指定路径下的文件系统完成文件查找。 特点: 查找速度慢 精确查找 实时查找 语法格式: find [option]… [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下所有文件
处理动作:对符合条件的文件做什么操作,默认为标准输出至屏幕。、
-print:默认动作,输出至屏幕
-ls:类似ls -l命令
-delete:查找出然后删除
-fls /path/to/somefile
-ok COMMAND {} \;对查到的每个文件执行COMMAND命令,对于每个文件执行命令,需交互确认
-exec COMMAND {} \;直接处理,不交互。 {}:用于引用查找到的文件名称本身
查找条件:
根据文件名查找:
-name "文件名称" (支持使用glob通配 *,?,[],[^]) 例如 find /etc -name "passwd*"
-iname "文件名称" (不区分大小写)
-regex "PATTEN": 以PATTEN匹配整个文件路径字符串,而不仅仅是文件名称:
根据属主 属组查找
-user USERNAME:查找属主为指定用户的文件
group GROUPNAME:查找属组为指定用户的文件。
-uid UserID:查找属主为指定UID的文件
-gid GroupID:查找属主为指定GID的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
根据文件类型查找:
-type TYPE:
f:普通文件
d:目录文件
l:符号链接文件
s:套接字文件
b:块设备文件
c:字符设备文件
p:管道文件
组合条件(与 或 非)
根据文件大小来查找:
-size [+|-]#UNIT
常用单位:k,M,G
UNIT:(#-1,#]
-UNIT:(0,#-1]
+#UNIT:(#,oo)
根据时间戳:
以“天”为单位:
-atime: [+|-]#
-mtime:
-ctime:
以“分钟”为单位:
-amin
-mmin
-cmin
根据权限来查找
-perm [+|-]MODE