第六周小练习

详细总结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

相关推荐

  • Shell脚本编程

    Shell脚本编程 关于脚本的调试     bash -n /path/to/some_script                   &…

    Linux干货 2016-08-15
  • Linux运维学习历程-第十天-文件查找工具

    概述:本篇主要讲解locate命令和find命令,来帮助我们在linux中完成文件查找,方便我们快速定位文件。 一、文件查找    即在文件系统上查找符合条件的文件,常用工具有locate和find  1、locate命令    locate命令其实是find -name的另一种写法,但是要比后者快得多,原因…

    Linux干货 2016-08-21
  • Linux路由实验

    一    实验背景:路由器的功能是将不同网段的主机建立通信,本次试验是在使用linux主机当作路由器,完成主机间通信。如下图所示 二、实验环境:主机A和B为CentOS7.2,主机C和D为CentOS6.8,且C和D上分别都有两块网卡 三、实验步骤     注意:为避免干扰项,需将每台主机…

    Linux干货 2016-09-07
  • etc的常见问答

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost tuser1]# cp -r /etc/skel/ /home/tuser1 [root@localhost tuser1]# chmod -R go= /home/tuser1/ [root…

    2017-12-26
  • 笔记–8.8 shell脚本编程

    shell编程注意事项  1,指令的执行是从上而下,从左而右的分析与执行  2,指令的下达时:指令,选项与参数之间的多个空白都会被忽略掉  3,空白行会被忽略掉,并且tab键所推开的空白同样视为空格键  4. 如果一行的内容太多,则可以使用『 \[Enter] 』来延伸至下一行  5,『 # 』可做为批注,任…

    Linux干货 2016-08-12
  • 分区管理

    分区管理     一.磁盘分类 机械硬盘(HDD):该硬盘是传统的普通硬盘。主要有:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成  固态硬盘(SSD):用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。 二.特点 1.     &n…

    Linux干货 2017-08-20