第六周小练习

详细总结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 21:58
下一篇 2016-12-20 03:22

相关推荐

  • 高级文件系统管理之逻辑卷管理

    一,概述 逻辑卷管理器(LVM)     LVM: Logical Volume Manager, Version:2          dm:device mapper (设备映射),将一个或多个底层块设备组织成一个逻辑设备的模块 &nb…

    Linux干货 2016-09-10
  • VIM Note

    vim总结: 模式:编辑模式 插入模式 末行模式 内置命令行接口 打开文件 vim +# 打开文件后直接处于文件的#行行首 +/PATTER 打开文件后直接处于第一个被PATTER匹配到行的行首 + 直接处于尾行行首 模式转换 编辑模式:默认模式,打开文件后处于编辑模式 编辑模式–>插入模式: i: insert 光标所在地方输入 a:append 在…

    Linux干货 2017-08-14
  • 第六周作业

    请详细总结vim编辑器的使用并完成以下练习题 光标跳转 字符间跳转 h或向左箭头键 光标向左移动一个字符 j或向下箭头键 光标向下移动一个字符 k或向上箭头键 光标向上移动一个字符 l或向右箭头键 光标向右移动一个字符 翻屏 Ctrl+f 屏幕向下移动一页 Ctrl+b 屏幕向上移动一页 Ctrl+d 屏幕向下移动半页 Ctrl+u 屏幕向上移动半页 Ent…

    Linux干货 2017-01-22
  • Ansible的基础知识

    为什么要学习ansible:     ansible是自动化运维的一种工具,使用ansible可以一次性管理多台主机,为多台主机安装或这执行相同或者不同的操作,省去了一台台主机去重复执行相同的任务,可以使用corn选项结合本机的crontab设置本主机的任务性计划,比如,每天导出nginx的access.log和err…

    Linux干货 2016-11-03
  • bash脚本基础认知

    编程基础:程序:指令+数据                过程式:以指令为中心,数据服务于指令              &nbs…

    Linux干货 2017-03-02
  • 文本处理-三剑客-grep

    文本过滤
    grep [OPTIONS] PATTERN [FILE…]

    2018-03-16