一、作业(练习)内容:

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

linux运维实战练习-2015年8月30日课程作业(练习)安排_linux

-iname: “文件名”不区分大小写

linux运维实战练习-2015年8月30日课程作业(练习)安排_linux_02

-user:根据属主查找

linux运维实战练习-2015年8月30日课程作业(练习)安排_编辑器_03

-group:根据属组查找

linux运维实战练习-2015年8月30日课程作业(练习)安排_linux_04

-uid:根据uid号来查找

linux运维实战练习-2015年8月30日课程作业(练习)安排_编辑器_05

-gid:根据gid号来查找

linux运维实战练习-2015年8月30日课程作业(练习)安排_编辑器_06

-nouser:查找没有属主的文件

linux运维实战练习-2015年8月30日课程作业(练习)安排_课程_07

-nogroup:查找没有属组的文件

linux运维实战练习-2015年8月30日课程作业(练习)安排_linux_08

组合查找:

与 -a (找出/tmp目录下属主有写权限,并且是root的文件:

linux运维实战练习-2015年8月30日课程作业(练习)安排_linux_09

或 -o (找出/tmp目录下名字包含123的文件,或者uid是600的文件

linux运维实战练习-2015年8月30日课程作业(练习)安排_课程_10

非 -not (找出/tmp目录下既不属于root用户,并且也不属于hzm用户的文件

linux运维实战练习-2015年8月30日课程作业(练习)安排_新建_11

 

 

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

linux运维实战练习-2015年8月30日课程作业(练习)安排_课程_12

17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;

find /etc/init.d -perm -113

linux运维实战练习-2015年8月30日课程作业(练习)安排_新建_13

18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;

19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;