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)
上一篇 2017-02-22 00:19
下一篇 2017-02-22 10:50

相关推荐

  • 推荐-NFS共享MySQL使用DNS轮询实现Web负载均衡

    NFS共享MySQL使用DNS轮询实现Web负载均衡 NFS共享MySQL使用DNS轮询实现Web负载均衡 前言: 实验拓扑图 实验环境 实验步骤 搭建NFS 搭建dns,MySQL环境 DNS配置 MySQL配置 WEB配置 第一台主机安装 第二台主机安装 测试 web1测试 web2测试 回到web1测试 总结 前言: 今天学习了NFS,遂结合前面学习的…

    Linux干货 2016-03-29
  • linux 第二周

     一. 文件管理       文件被组织到文件系统(file system)中,通常会成为一个树状(tree)结构。Linux有一个根目录/, 也就是树状结构的最顶端。这个树的分叉的最末端都代表一个文件,而这个树的分叉处则是一个目录(directory, 相当于我们在windows界面中看到的文件夹)。在图1…

    Linux干货 2017-05-29
  • 数据库的备份和恢复

    数据库的备份和恢复 一 (理论篇)、数据库备份与恢复基础 1、数据库的备份与恢复 备份:存储的数据副本; 原始数据:持续改变; 恢复:把副本应用到线上系统; 仅能恢复至备份操作时刻的数据状态; 时间点恢复: binary logs; 2、为什么备份? 灾难恢复: 硬件故障(冗余)、软件故障(bug)、自然灾害、黑客攻击、误操作、…&nb…

    2016-11-22
  • Linux的哲学理念

    1、由目的单一的小程序组成,通过使用者的组合形成一个能够完成复杂任务的应用程序 2、一切皆为文件 3、尽量避免捕获用户接口;也就是说Linux运行的程序大多数是不需要过多的反复输入/输出人机交互信息,运行程序命令,直接获得反馈的结果,是一种目的单一的程序 4、配置文件保存为纯文本格式

    Linux干货 2016-10-29
  • 梦想走向现实的地方

    曾经羡慕打字快的同学指尖能在键盘上优雅地跳舞,于是我有努力练习打字。 曾经羡慕同事能很神奇地把一个交换机的端口关闭,让那端口下面的人都不能上网,于是我努力学习交换机、路由。 现在我羡慕一个人能管很多服务器的人,于是我开始学习linux了。 努力成为一个也能管很多服务器的人,因为我也想别人叫我运维工程师

    Linux干货 2016-10-25