|
一、总结文本编辑工具vim的使用方法
1、模式转换
编辑模式--》 输入模式
i: 在当前光标所在字符的前面,转为输入模式;
a: 在当前光标所在字符的后面,转为输入模式;
o: 在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;
输入模式--》编辑模式
ESC按键
编辑模式--》末行模式
:
末行模式--》编辑模式
ESC按键
2、vim打开:默认处于编辑模式
vim +# :打开文件,并定位于第#行
vim + :打开文件,定位至最后一行
vim +/PATTERN:打开文件,定位至第一次被PATTERN匹配到的行的行首
3、关闭vim
(1)末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存并退出
:w 保存
:w!强制保存
:wq -->:x
(2)编辑模式下退出
ZZ:保存并退出
4、光标跳转(编辑模式下)
(1)字符间跳转:左(h)右(l)上(j)下(k) #h表示向左移动#个字符
(2)单词间跳转:
w:移动至下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或前一个单词的词首
(3)行内跳转:
0:绝对行首
^:行首的第一个非空白字符
$:绝对行尾
(4)行间跳转:
#G:跳转至第#行(1G=gg)
G:最后一行
(5)句间移动:)(
(6)段落间移动:}{
5、编辑命令
(1)字符编辑
x: 删除光标所在处的单个字符
#x:删除光标所在处及向后的共#个字符
r:4rg(当前字符到后面3个字符变更成g)
R:直接进入替换模式
(2)删除命令
d命令可跟跳转命令组合使用
#dw,#de,#db
d^,d0,d$
dd:删除当前光标所在行
#dd:删除包括当前光标所在行在内的#行
注意:删除的内容会被vim编辑器保存至缓冲区当中;不会立即删除
(3)粘贴命令
p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;
(4)复制命令
yy:复制当前行
#yy:复制当前光标内的#行(光标下的#行)
(5)修改命令c
cc:删除当前行内容,同时进入输入模式
#cc:
6、撤销此前的编辑操作
u:撤销前一次的编辑操作
连续u命令可撤销此前N次编辑
#u:直接撤销最近#次编辑操作
Ctrl+r :恢复此前的撤销操作
.:重复前一个编辑操作
7、翻屏操作
Ctrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
8、末行模式
(1)地址、定界
:start_pos,end_pos
#:第#行
#,+#:第#行到往后加#行
.:当前行
$:最后一行
%:全文,相当于1,$
/part1/:第一次被模式匹配到的行;
#,/part1/:第#行到第一次被模式匹配到的行
后可跟的编辑命令:
d:删除所选择或匹配到的行(比如:1,3d)
w:将选择或匹配到的行保存至另外一个文件(比如:1,$w /tmp/vim.text)
y:表示复制
r:将另外一个文件的内容填充在当前文件中(光标的后面)
(2)查找
/PATTERN:向尾部进行
?PATTERN:向首部进行
n:与命令同方向
N:与命令反方向
(3)查找替换
s:在末行模式下,在地址定界的范围内完成查找替换操作
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但能使用后向引用符号,已引用前面模式中的分组括号所匹配到的内容
如: \1,\2,.....
&:引用"要查找的内容"匹配到的整个内容:
修饰符:
i:忽略大小写
g:全局替换
/:用于分隔符,查找或替换的内容中用到此符号时,需要使用\对其转义:\/
也可使用其他分隔符,如:@,#
9、多文件模式
vim FILE1 FILE2 .....
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
:wqall 保存所有
:q!all 退出所有
10、多文件窗口分割
vim -o FILE1 FILE2 :水平分割显示
vim -O FILE1 FILE2 :垂直分割显示
Ctrl+w,ARROW :窗口间切换光标
11、单文件窗口分割
Ctrl+w, s: split, 水平分割
Ctrl+w, v: vertical, 垂直分割
12、订制vim工作特性
(1) 行号 显示:set nu 禁用:set nonu (2)括号匹配 显示:set sm 禁用:set nosm (3)自动缩进: 显示:set ai 禁用:set noai (4)高亮搜索 显示:set hlsearch 禁用:set nohlsearch (5)语法着色 显示:syntax on 禁用:syntax off (6)忽略字符大小写 显示:set ic 禁用:set noic 13、配置文件(可设定特性永久生效)
全局配置文件:/etc/vimrc
用户个人的配置文件:~/.vimrc
二、总结文件查找命令find的使用方法
1、文件查找工具locate,find
locate:非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找;
find:通过遍历指定的目标目录,实时查找符合指定属性的文件,实时查找;查找速度略慢;精确查找
2、find命令使用规范:
查找路径:默认为当前路径;
查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件;
处理动作:对符合条件的文件做什么操作;默认为输出至屏幕;
3、find命令的查找条件
(1)根据文件名进行查找
-name “文件名”:文件名支持globbing(*,?,[])
-iname “文件名”:不区分文件名大小写,支持使用glob
-regex PATTERN :基于正则表达式进行文件名匹配
(2)根据属主、属组查找
-user USERNAME: 查找属主为指定用户的文件
-group GROUPNAME:查找属组为指定用户的文件
-uid UserID: 查找文件的属主为指定uid的文件;
-gid GroupID: 查找文件的属组为指定gid的文件
-nouser: 查找没有属主的文件;
-nogroup:查找没有属组的文件;
(3)根据文件类型进行查找
-type TYPE
f: 普通文件
d: 目录
l: 符号链接
b: 块设备
c: 字符设备
p: 命名管道
s: 套接字
(4)组合查找条件
与条件:-a ,查找条件1 -a 查找条件2 -a ..... (所有条件必须同时满足)
或条件:-o ,超找条件1 -o 查找条件2 -o .....(所有条件满足一个即可)
非条件:-not,!(条件取反后满足的)
(5)根据文件大小来查找
-size (单位可以为k,M,G)
2k:表示 1k<x<=2k(1.1 1.9)
+2k:表示 >2k
-2k:表示<=1k (0.9k,1k)
(6)根据时间戳查找
以“天”为单位
-atime [+|-]#
3天: 3<=x<4
3天以内:x<3
3天之前:x>=4
-mtime
-ctime
以“分钟”为单位
-amin[+|-]#
刚好5分钟:5<=x<6
5分钟内:x<5
5分钟前:x>=5
-mmin
-cmin
(7)根据权限查找
-perm [+|-]MODE
MODE: 精确权限匹配
/MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件
-MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;
4、处理动作
-print: 默认处理动作
-ls:类似于对查找到的每个文件做"ls -l"的操作;
-delete: 删除查找到的文件;
-fls /path/to/somefile:查找到的文件的详细路径信息保存至指定文件中;
-ok COMMAND {} \;
对每个文件执行指定的命令之前需要用户事先确认;
-exec COMMAND {} \;
无需用户确认;
三、总结bash环境变量的相关内容
1、bash配置文件分类
profile类:为交互式登入shell提供配置文件
全局配置:
/etc/profile /etc/profile.d/*sh
用户配置:
~/.bash_profile
功用:
(1)设定环境变量,如:PATH、等
(2)运行命令或脚本
bashrc类:为非交互式登入shell提供配置文件
全局配置:
/etc/bashrc
用户配置:
~/.bashrc
功用:
(1)设定本地变量
(2)定义命令别名
2、变量意义、类型与定义方式
本地变量:只对当前shell进程有效的变量,对其他shell进程无效(包含当前shell的子shell)
VAR_NAME=VALUE
变量赋值:向变量的存储空间保存数据
变量引用:
"": 弱引用,可以实现变量替换
'': 强引用,不完成变量替换,直接输出引号内内容
环境变量:对当前shell进程及其子shell有效,对其他的shell进程无效
用户可自定义环境变量,bash有许多内置的环境变量
PATH:命令搜索路径
HISTSIZE: 命令历史缓冲区大小
定义:export VAR_NAME=VALUE(declare -x name=value)
导出:export VAR_NAME(将本地变量变成环境变量)
撤销变量:unset VAR_NAME
只读变量: readonly VAR_NAME
局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文)
local VAR_NAME=VALUE
位置变量:$1,$2.....${10}
特殊变量:$?
查看当前shell进程中的所有变量:set
查看当前shell进程中的所有环境变量: export ,printenv,env
3、shell登入类型及其配置文件作用次序
(1)交互式登入
直接通过终端进行的登录;
通过su -l Username命令实现的用户切换;
配置文件作用次序:
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
(2)非交互式登入
图形界面下打开的命令行窗口;
执行脚本;
su Username;
配置文件作用次序:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
4、编辑配置文件定义的新配置如何生效
(1)重新登入
(2)让当前shell进程去重新读取指定的配置文件;
source file
. file
四、总结Linux文件系统上的特殊权限(SUID,SGID,Sticky)的知识点
1、Linux系统的权限模型
u g o
(rwx) (rwx) (rwx)
2、进程的安全上下文
前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;
(1)用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;
(2)程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;
(3)进程拥的访问权限,取决其属主的访问权限:
(a) 进程的属主,同文件属主,则应用文件属主权限;
(b) 进程的属主,属于文件的属组,则应用文件属组权限;
(c) 则应用其它权限;
3、特殊权限位使用说明
(1)SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是发起者用户
权限设定:
chmod u+s FILE...
chmod u-s FILE...
注意:
s: 属主原本拥有x权限;
S: 属主原本无x权限;
(2)SGID:行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组
权限设定:
chmod g+s FILE...
chmod g-s FILE...
(3)Sticky:在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件
权限设定:
chmod o+t FILE...
chmod o-t FILE...
(4)sst位权限设置方法
000
001
010
011
100
101
110
110
chmod 6664 file (设置ss位)
chmod 1775 dir (设置t位)
五、总结Linux磁盘管理、文件系统相关知识点及其相关命令的使用方法
|
|