N25-第六周作业

第6周作业

请详细总结vim编辑器的使用并完成以下练习题

vim是模式化的全屏文本编辑器。
vim分为三种模式:
分别是编辑模式;输入模式;末行模式;

打开文件的方式有:
vim +# FILE打开文件FILE并把光标定位到#行的行首;
vim +/PATTERN FILE打开文件并让光标处于第一个被PATTERN匹配到的行的行首。(支持正则表达式)
vim + FILE 打开文件并把光标定位于FILE文件的最后一行的行首。

模式的转换:
vim默认处于编辑模式;
从编辑模式进入输入模式可以按i键,在光标所在处输入;a键,在光标所在处后方输入;o键,在光标所在处下方新建一行输入;I键,在光标所在行的行首输入;A键,在光标所在行的行尾输入;大写O键,在光标所在处的上方新建一行输入;
输入模式退出到编辑模式,按ESC键退出输入模式;编辑模式进入末行模式需要按:进入末行模式;退出末行模式进入编辑模式也是按ESC键,有时需要连按2次ESC才能退出到编辑模式。输入模式是不能直接进入末行模式的,同样末行模式也不能直接进入输入模式,只能通过编辑模式进入。

关闭文件:
ZZ:保存并退出。
进入末行模式 :q 退出,注意(这种退出方式只能是没有对文件进行编辑和输入的情况下才能退出)
:q! 不保存退出
:wq 保存退出
:x 保存退出
:w /PATH/TO/SOMEFILE保存修改后的内容,另存为新路径文件。

编辑模式的光标跳转操作:
字符间跳转:h左,l右,j下,k上,也可以在h,l,j,k前加数字,表示跳转指定数量的字符。

单词间跳转:w下一个单词的词首,b当前或前一个单词的词首,e当前或后一个单词的词尾,同样也可以在w,b,e前加数字,指定跳转的单词数量。
注意:字符间跳转和单词间跳转可以连用#COMMAND实现一次跳转指定#数量的字符或单词。例:3w,2b,4e,5k等。

行首行尾跳转:^ 跳转到行首的第一个非空白字符; 0 数字零是跳转至绝对行首;$ 跳转至行尾;

行间跳转:#G 跳转至#指定数字的行的行首;gg 是跳转至第一行;G跳转至最后一行;

句间跳转:)(

段间跳转:{  } 句间跳转和段间跳转都可以指定数量#,来实现指定数量的跳转。

翻屏操作:
ctrl+f 向文件的尾部翻一屏;ctrl+b 向文件的首部翻一屏;ctrl+d向文件的尾部翻半屏;ctrl+u 向文件的首部翻半屏;Enter按行为单位向文件尾部翻屏;

编辑模式的编辑命令:

字符编辑:
x 删除光标所在处的字符(单个字符);#x 删除光标所在处起向后#个数量的字符;xp 交换光标所在处字符和其后面字符的位置;

替换命令:
r 替换光标所在处的字符,r后跟要替换的字符。

删除命令:
d 删除命令,可结合光标跳转字符实现范围删除; dw ; de ; db ;3db;2de;等
例: d$ 删除光标所在处至行尾的字符; d^删除光标所在处到行首的字符;
dd 是删除光标所在处的一整行;
#dd 是删除光标所在处起向下#行;

粘贴命令:
小写 p 缓冲区的内容如果为整行,则粘贴在光标所在行的下方。如果不是整行,则粘贴在光标所在处的后方。
大写 P 缓冲区的内容如果为整行,则粘贴在光标所在行的上方。如果不是整行,则粘贴在光标所在处的后方。
注意:缓冲区的最后一行是删除命令的删除的最后一条字符信息,只有最后一条字符信息可用于粘贴命令。

复制命令:
y复制命令,工作行为和 d 删除命令相似,可连用光标跳转符实现范围复制,例:y$; y^;ye;2yw;3yb等;
yy 复制光标所在处一整行; #yy 复制光标所在行起,向下#行一起复制。

更改命令:
c是更改命令,此命令实现从编辑模式–>输入模式,可以实现删除操作并进入输入模式;可连用光标跳转符;
例:c$删除光标所在处开始至行尾的字符并进入输入模式;其他例子如:c^;c0;cb;ce;3cw等;实现范围删除并进入输入模式;
cc删除光标所在行并进入输入模式。#cc 删除光标所在行起向下#行,并进入输入模式;

可视化模式:
小写 v 按字符选定并高亮显示,可随意选定字符(可连用光标跳转符选取字符)
大写 v按行选定并高亮显示(只能整行选定)
可视化模式可以结合的编辑命令有:d删除命令,c更改命令,y复制命令;

撤销操作:
u 撤销此前的操作;
#u 撤销此前的#个操作,#指定数字。

撤销撤销操作:
ctrl+r重复前一个编辑操作。

vim末行模式:
    末行模式是vim内建的命令行接口。

1.地址定界:
:start_pos[end_pos]
# 特定#行,例:5 即第5行;
#,#指定从#到#行,指定行的范围,左侧为起始行,右侧为结束行;例:1,5 从1行到5行;
#,+# 指定行的范围,左侧为起始行的绝对编号,右侧为偏移量;例: 2,+3 从2行开始
. 当前行,例: .,+3 当前行开始+3行;
$ 最后一行; 例: .,$-1 当前行开始到倒数第2行;
%全文范围
/pattern/ 第一次被pattern匹配到的行(注:第一次是从光标所在处起始往文件尾部匹配)
例:/pattern/,$d光标所在处开始到文本最后一行,匹配到的字符做删除操作;
可同编辑模式命令 d,y,c连用

w /PATH/TO/SOMEFILE 将指定范围内的文本保存至指定的文件中;
r /PATH/TO/SOMEFILE 将指定文件中的文本读取并插入到指定位置;例: 5r /tmp/messages 在第5行后读取插入/tmp/messages的文本

2.查找

/pattern 从当前光标所在处向文件尾部查找被当前模式匹配到的字符串;
?pattern 从当前光标所在处向文件首部查收被当前模式匹配到的字符串;
注意:小写n是与命令方向相同,切换到下一个被模式匹配到的字符串,大写N是与命令方向相反;

3.查找并替换

s末行模式查找命令;末行模式查找替换命令格式:s/要查找的内容/替换为的内容/修饰符
注意:要查找的内容可以使用基本正则表达式;替换为的内容不可以使用正则表达式,但可以引用前面要查找的内容
如果要查找的内容在模式中使用分组符号,在替换为的内容中可用后项引用\1;
另一种方式是直接引用前面要查找的内容,使用&符号,直接引用前面要查找内容匹配到的所有字符。

修饰符:
i 忽略大小写
g 全局替换,意思是一行中,查找到的内容出现多次都替换。

可把分隔符替换成其他非常用字符:如:s@@@;s###

vim的多文件功能

vim可以一次打开多个文件;vim FILE1 FILE2 ...
文件间切换可以使用末行模式下命令 :next 下一个文件;:prev 上一个文件;:first 第一个文件;:last 最后一个文件;
退出所有文件:wqall 保存所有文件并退出;

多窗口:
-o 水平分割窗口;-O 垂直分割窗口;例:vim -o fstab messages
在多窗口中切换:编辑模式中ctrl+w 激活窗口切换功能,使用h,j,k,l切换窗口;
单个文件也可以分割为多个窗口进行查看;在vim打开的单个文件中ctrl+w激活多窗口,然后按s键,是把单个文件水平分割,加v键是垂直分割;单文件多窗口可以水平垂直任意分割并存。

定制vim的工作特性
1.行号显示:set nu ; 取消行号显示:set no nu;注意:在末行模式下的设定,仅对当前vim进程有效;想永久生效需要更改配置文件;全局配置文件路径/etc/vimrc;个人配置文件路径~/.vimrc

2.括号匹配高亮显示:set sm;取消括号匹配高亮显示:set nosm

3.自动缩进启动:set ai;禁用:set noai

4.高亮搜索结果启用:set hlserch;禁用:set nohlserch

5.语法高亮显示:syntax on;禁用:syntax off

6.忽略字符大小写:set ic;禁用:set noic

在vim末行模式下:help可以查看帮助文件。

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

cp /etc/rc.d/rc.sysinit /tmp
%s@^[[:space:]]\+@#&@g

2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;

cp /boot/grub/grub.conf /tmp
%s@^[[:space:]]\+@@

3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符

%s@^\#[[:space:]]\+@@g

4、为/tmp/grub.conf文件中前三行的行首加#号;

1,3s@^@#&@g

5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;

%s@\(enabled\|gpgcheck\)=0@\1=1@g

6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202

0 */4 * * * /bin/tar -zcf /backup/etc-$(date +\%Y\%m\%d\%H\%M).tar.gz /etc

7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402

0 0 * * 2,4,6 /bin/tar -zcf /backup/messages_logs/messages-$(date +\%Y\%m\%d).tar.gz /var/log/messages

8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

0 */2 * * * /bin/grep "^S" /proc/meminfo >> /stats/memory.txt

9、工作日的工作时间内,每两小时执行一次echo “howdy”

0 9-18/2 * * 1-5 /bin/echo "howdy"

脚本编程练习

10、创建目录/tmp/testdir-当前日期时间; 

#!/bin/bash
 #mkdir -p /tmp/testdir-$(date +%Y%m%d%H%M)

11、在此目录创建100个空文件:file1-file100

#!/bin/bash
#touch file{1..100}

12、显示/etc/passwd文件中位于第偶数行的用户的用户名;

#!/bin/bash
#sed -n 'n;p' /etc/passwd | cut -d: -f 1

原创文章,作者:Eason,如若转载,请注明出处:http://www.178linux.com/69753

(0)
EasonEason
上一篇 2017-02-22
下一篇 2017-02-22

相关推荐

  • grub知识与故障排除

    知识点回顾 at 任务的存放位置:/var/spool/at/ crond 任务存放位置:/var/spool/cron/username 查看服务有没有运行 centos6:  service  atd  status    chkconfig –list atd chkconfig atd o…

    Linux干货 2016-09-13
  • 浅谈Linux中的用户和组

    又到了周六,日常写博客的日子。 上周模模糊糊的写了第一篇博客,大概知道了怎么写,但是这周就比以往不同了,脑子中已经有了思路,那写起来就会更加详细易懂。 这周学了很多知识点,但是我想对Linux 用户和组进行详细的描述。 一、用户(Username/UID) 用户分为两种:管理员和普通用户     管理员root  UI…

    2017-07-22
  • Linux中的文本处理工具—sed

    sed 处理文本工具 一、概述   Stream EDitor,行编辑器    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文…

    Linux干货 2016-08-10
  • 文件查找命令之find

    文件查找命令一共有两种,locate 和find ,那么他们在用法和功能上面有什么区别呢?     locate:查找速度快,模糊查找,遍历整个文件系统的目录到数据库中,然后在去数据库中查找,依赖于事先创建好的索引库,该数据库属于系统自动创建,定期自动更新,也可手动跟新,更新命令updatedb,更新数据库需要遍历整个根文件系统…

    Linux干货 2016-08-16
  • 什么是网站流量、UV、PV、IP

    什么是网站流量,什么叫网站流量?     通常说的网站流量(traffic)是指网站的访问量,是用来描述访问一个网站的用户数量以及用户所浏览的网页数量等指标,常用的统计指标包括网站的独立用户数量、总用户数量(含重复访问者)、网页浏览数量、每个用户的页面浏览数量、用户在网站的平均停留时间等。     …

    Linux干货 2015-03-20
  • 第八周作业脚本练习

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;      在线的主机使用绿色显示;      不在线的主使用红色显示;          &…

    Linux干货 2017-02-01