第六周小练习

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

vim编辑器的基本使用

vim模式: 
1、编辑模式(命令模式) 
2、输入模式 
3、末行模式 

一、打开文件

vim /path/to/somefile 打开单个文件

如果文件存在为打开,否则保存退出时为新建

vim /path/to/somefile

vim +# : 打开文件,光标定位到自定行行首

vim + : 打开文件,光标定位到最后一行行首

vim +/PATTERN : 打开文件,定位第一次被PATTERN匹配的行的行首

例如: vim +12 /test/inittab 打开文件并定位到第12行

二、关闭文件

1、末行模式关闭文件

:q 退出

:wq 保存并退出

:q! 不保存退出

:w 保存

2、编辑模式下退出

ZZ 保存并退出

ZQ 不保存退出

3、末行模式

:/w /path/to/file 保存到指定路径

三、移动关标(编辑模式)

1、逐字符移动:

h: 左

l: 右

j: 下

k: 上

#h: 想左移动#个字符(#表示移动指定数目的字符)

2、以单词我I单位进行移动

w: 移至下一个单词的词首

e: 跳至当前或下一个单词的词尾

b: 跳至当前或前一个单词的词首

执行命令之前可以输入指定数字表示需要执行几次命令,例如:

#w #e #b

3w:向后移动到第3个词首

3、行类跳转:

0: 绝对字符

^: 行首的第一个非空白字符

$: 绝对行尾

H:当前屏幕的第一行行首

L:当前屏幕最后一行行首

4、行间跳转

编辑模式

#G : 跳转至第#行

G : 最行一行

gg:与 1G 作用相同,相当于行首

三、翻屏

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏 before

Ctrl+d: 向下翻半屏 down

Ctrl+u: 向上翻一屏 up

四、删除单个字符

x: 删除出光标所在处的单个字符

#x: 删除光标所在处及向后的共#个字符

五、删除命令 d

命令模式下:

d命令跟跳转符号

#d跳转符:删除光标所在跳出范围共#个

#dw, #de, #db

dd:删除当前光标所在行s

dd#: 删除包含当前光标所在行内的#行

末行模式下:

#,#d:删除从第几行到第几行

.d: 表示当前行

$d: 最后一行

+#d: 向下的#行

六、粘贴命令 p

    p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴贴至光标所在字符的后面

    P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面

七、复制命令 y

y命令跟跳转符号

#y[跳转符]:复制光标所在跳出范围共#个

yy:复制当前光标所在行

八、替换:r

r: 替换单个字符

R: 替换模式,可以对一行来替换

九、撤销编辑操作 

命令模式下

u: 撤销前一次的编辑操作

连续u命令可以撤销此前的n次操作

#u: 直接撤销前#次编辑操作

撤销最近一次的撤销:Ctrl+r

十一、重复前一次的编辑操作

命令模式下按 .

十二、查找命令模式下

/PATTERN

?PATTERN

N

PATTERN:支持正则表达式

十三、查找并替换在末行模式下使用命令

ADDR1,ADDR2s@PATTERN@string@gi

1,$:第一行到最后一行

%: 表示全文

十四、使用vim编辑多个文件

vim FILE1 FILE2 FILE3…

十五、环境设置(只能末行模式)

1、显示或取消显示行号

:set number

:set nu

:set nonu

2、设定vim忽略或区分字符大小写

:set ignorecase

:set ic

:set noic

3、设定自动缩进

:set autoindent

:set ai

:set noai

4、查找到的文本高亮显示或取消

:set hlsearch

:set nohlsearch

5、语法高亮

:syntax on

:syntax off

5、查看所有环境指令

:set all

十六、配置文件

/etc/vimrc 全局

~/.vimrc 局部 如果没有,可以手动创建

练习

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

%s/^[[:space:]]\+/#&/g

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

%s/^[[:space:]]\+//g

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

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

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

1,3s/^/#&/

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

%s/\(gpgcheck=\|enabled=\)0/\11/g

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

crontab -e 
0 */4 * * * cp -a /etc /backup/etc-`date +%Y%m%d%H%M`

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

crontab -e
0 0 * * 2,4,6 cp -a /var/log /backup/message_logs/messages-`date +%Y%m%d`

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

crontab -e 
0 */2 * * * grep "^S" /proc/meminf >> /stats/memory.txt

9.工作日的工作时间内,每两个小时执行一次echo "howdy"

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

脚本编程练习

  1. 创建目录/tmp/testdir当前日期时间

  2. 在此目录创建100个空文件:file1-file100

#!/bin/bash
#
dirname="testdir$(date+%Y%m%d%H%M)"
mkdir /tmp/$dirname
for num in {1..100};do    
    touch /tmp/$dirname/file$num
done

3.  显示/etc/passwd文件中位于第偶数行的用户的用户名

#!/bin/bash
#
sed '1~2d' /etc/passwd|cut -d: -f1

4.  创建10用户user10-user19;密码同用户名

#!/bin/bash
#
for i in {10..19};do
  useradd  user$i
  echo "user$i"|passwd --stdin "user$i"
done

5.  在/tmp/创建10个空文件file10-file19

6.  把file10的属主和属组改为user10,一次类推

#!/bin/bash
#
for i in {10..19};do  
    touch /tmp/file$i  
    chown user10:user10 /tmp/file$i
done

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

(0)
N24-超N24-超
上一篇 2016-12-19
下一篇 2016-12-20

相关推荐

  • 2016-08-10作业

    1、编写脚本/root/bin/systeminfo.sh, 显示当前主机系统信息,包括主机名,IPv4 地址,操作系统版本,内核版本,CPU 型号,内存大小,硬盘大小。 #!/bin/bash echo "hostname is `hostname`" echo "IPv4 is `ifconfig | sed -n &#03…

    Linux干货 2016-08-15
  • 洞悉find中的德摩根定律和条件权限perm

    1.德摩根定律 (1)初悉德摩根定律儿 在命题逻辑和逻辑代数中,德·摩根定律(或称德·摩根定理)是关于命题逻辑规律的一对法则。 奥古斯塔斯·德·摩根首先发现了在命题逻辑中存在着下面这些关系: 非(A 且 B) = (非 A) 或 (非 B)非(A 或 B)&n…

    Linux干货 2016-08-16
  • 【超全整理】《Linux云计算从入门到精通》系列实战笔记全放送

          为了方便Linux云计算爱好者的学习查看,马哥Linx云计算团队特别整理了《Linux云计算从入门到精通》年度重磅大放送,囊括了整个学习过程的学习精华,内容全部由马哥Linux云计算学员撰写,欢迎大家支持!!!       详情请看:  一、Linux运维基础实战入门 从Linux0基础入门开始,全面讲解作为新手如何学习Linux,以及学习方法和…

    2017-09-14
  • Varnish基础进阶

    Varnish基础进阶 前言 互联网早已惠及全人类, 我们可以通过网络与家人、朋友进行实时通信, 也能通过网络随时随地在各大电商站点上购物, 我们访问web站点的速度也越来越快, 这背后都是有很多精巧的架构以及各种先进的技术来支撑的, 我们就今天主要聊聊Web的缓存技术, 对于当今的互联网来说, Cahe Is King, 缓存真的有那么神奇么? 就由我来带…

    Linux干货 2016-04-19
  • 由Linux中一个小问题引发的思考

    一、一个小问题 1、在学习Linux中我们经常会遇到很多有趣的小问题,今天笔者就遇到了一个很有意思的小问题,现在分享给大家:      “如何在本机字符终端登陆时,除显示原有信息外,再显示当前终端号,时间和主机名?” 2、实现方法如下:      输入vim /etc/…

    2017-07-16
  • 马哥教育网络班21期+第六周博客作业

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

    Linux干货 2016-08-15