一、作业(练习)内容:
1、总结文本编辑工具vim的使用方法;
Vim
(1).命令解释:模式化的编辑器
(2). 有多种不同的模式:
编辑模式:命令模式
输入模式:插入模式
末行模式:vim有许多内置命令,此模式作为命令的接口
编辑模式=====输入模式:
i:在当前光标所在处,转换为输入模式
I:在当前光标行行首,转换为输入模式
a:在当前光标所在处的后方,转换为输入模式
A:在当前光标所在行的行尾转换为输入模式
o:在当前光标所在行的下方新建一个空白行,并转换为输入模式
O:在当前光标所在行的上方新建一个空白行,并转换为输入模式
输入模式=====>编辑模式:ESC
编辑模式====>末行模式:“:”
末行模式====>编辑模式:ESC
(3).退出vim
末行模式:
q! 强制退出,不保存编辑的内容退出
wq 保存退出
x 保存退出
xq! x! 强制保存退出
编辑模式:
ZZ 保存退出
(4).编辑命令
光标移动:
字符间移动:
h:光标向左移动
l:光标向右移动
k:光标向上移动
j:光标向下移动
单词间移动:
w:移动到下一个单词的词首
e:移动到下一个单词的词尾
b:当前或者前一个单词的词首
#:一次跳n个单词
行首行尾间跳转:
0:跳转至非tab字符上绝对行首
^: 跳转至第一个非空白字符
$: 跳转至绝对行尾
句子间跳转:
):跳转到下一个句子的句首
(:跳转到前一个句子的句首
段落间移动:
}: 跳转到下一个段落
{: 跳转到上一个段落
行间快速移动:
#G #表示想要跳转的行数
G:文章尾部
1G:文章首部
末行模式:n 跳转至n行
编辑操作:
x:删除光标所在处的字符
#x:删除光标所在处以及向后的#个字符
r: 替换光标所在处的字符
d:删除命令:
dd:删除光标所在行 #dd:删除光标所在行以及下行的共#行:
与跳转命令一同使用
d$:删除光标所在处至行尾的内容; D:相同
d^:删除光标所在处至行行首的内容
dw,de,db:这3个命令支持前面使用#来指明涵盖的单词个数
p:粘贴:
行级别:
p:粘贴在光标所在行下方
P:粘贴在光标所在行上方
y:复制
yy:复制光标所在行 Y:复制一整行
#yy:复制光标所在行以及下行共#行
d$:复制光标所在处至行尾的内容
d^:复制光标所在处至行行首的内容
yw,ye,yb:这3个命令支持前面使用#来指明涵盖的单词个数
c:修改
cc:删除光标所在行整行内容,并立即转为输入模式
#cc:
c$,C,c^,c0,cw,cb,ce
撤销操作:
u:撤销
#u:撤销#次操作
取消上一次操作:
Ctrl+r
重复前一次命令
(5).可视化模式:
v:选择光标所在行光标左侧的内容
V:选择光标所在行向有右侧的内容
(6).编辑模式下的翻屏命令
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
(7).文本查找
/PATTERN
?PATTERN
n:向文本尾部查找
N:向文本首部查找
(8).文本替换
末行模式:内置命令接口,有命令历史记录功能
有部分内置命令用于编辑操作,此时可使用地址定界法进行
地址定界
Startline[,endline]
#:第#行
.:当前行
$:最后一行
%:全文
相对定界:
+#:从指定位置向下#个行
-#:从指定位置向上#个行
文本替换命令:s
s/要查找的内容/替换为的内容/修饰符
/:分隔符,用于分割“查找的内容”和“替换为的内容”:此分隔符可使用 其他字符,如@,#等:
要查找的内容:可使用正则表达式:此部分可以后面“替换为的内容”部分 中使用“&”全部引用:
替换为的内容:不可使用正则表达式,一般为正常文本,但可以使用正则表达 式中的的\1,\2,....保存的内容
修饰符:
i:查找时不区分字符大小写
g:global,全局替换;
(9).多文件模式:
打开文件:
vim [OPTION]...[FILE]...
+#:快速定位至#行
+/PATTERN 快速定位至被模式第一次匹配至行
多文件:
vim FILE1 FILE2 FILE3...
末行模式:
:next 下一个
:prev 上一个
:last 最后一个
:first 第一个
退出所有文件:
wqall 保存所有并退出
wall 保存所有
qall 退出所有
多窗口:
-o 水平分割窗口 ctrl+s 水平分割文档
-O 垂直分割窗口 ctrl+v 垂直分割文档
(10).界面特性
开启关闭行显示:
Set nu
Set nonu
开启语法高亮功能:
synatx (on|off)
开启搜索高亮功能:
set hlsearch
Set nohlsearch
开启自动缩进功能:
set autoindent:set ai
set noautoindent: set noai
字符大小写是否区分功能:
set ignorecase: set ic
Set noignorecase: set noic
(11).配置文件
全局:/etc/vimrc
个人:~/.vimrc
2、总结文件查找命令find的使用方法;
find
(1).命令解释:
通过遍历指定的目标目录,实施查找符合条件指定属性的文件
(2).命令语法:
find[OPTIONS] [查找路径][查找条件][处理动作]
查找路径:默认为当前路径
查找条件:默认为指定路径下的所有文件
处理动作:默认为打印至屏幕
查找条件:
-name: “文件名”:文件名支持使用globbing
-iname: “文件名”不区分大小写
-user:根据属主查找
-group:根据属组查找
-uid:根据uid号来查找
-gid:根据gid号来查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
组合查找:
与 -a (找出/tmp目录下属主有写权限,并且是root的文件:
或 -o (找出/tmp目录下名字包含123的文件,或者uid是600的文件
非 -not (找出/tmp目录下既不属于root用户,并且也不属于hzm用户的文件
3、总结bash环境变量的相关内容;
4、总结Linux文件系统上的特殊权限(SUID、SGID、Sticky)的知识点;
5、总结Linux磁盘管理、文件系统相关知识点及其相关命令的使用方法;
6、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;
%s/^[[:space:]]\+//g
7、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留;
%s/^[[:space:]]/#&/g
8、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;
%s/\etc\sysconfig\init//var/log/g
9、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;
%s/^#[[:space:]]\+//g
10、查找/var目录属主为root,且属组为mail的所有文件;
find /var -user root -a -group mail -ls
11、查找/usr目录下不属于root、bin或hadoop的所有文件;
find /usr -not -user root -o -user bin -o -user hadoop
12、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;
find /etc -not \( -user root -o -user hadoop \) -a -mtime -7
13、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;
find / -not -nouser -o -nogroup -a -atime -7
14、查找/etc目录下大于20k且类型为普通谁的的所有文件;
find /etc -size +20k -a type -f
15、查找/etc目录下所有用户都没有写权限的文件;
find /etc -not -perm +222
16、查找/etc目录下至少有一类用户没有执行权限的文件;
find /etc -not -perm -111
17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;
find /etc/init.d -perm -113
18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;
19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;