第六周小练习

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

相关推荐

  • 0804练习与作业

    0804练习与作业 练习  1 、找出ifconfig 命令结果中本机的所有IPv4 地址 答: 使用cut将电脑的IP地址提取出来。   经过观察,这些信息极为不规则,没有明显的分隔符。这时们需要首先提取出IP地址所在的行,然后去定义一个合适的分隔符,再利用cut进行提取即可。(思路:化繁为简,化不规则为规则,这样才能更好的套用我们的命…

    Linux干货 2016-08-08
  • 第二周作业

    # 第二周作业 ##1.文件管理类命令 ###cp   复制 * 单元复制 如果目标文件不存在,会自动创建 如果已经存在,会覆盖 * 多源复制 目标必须是目录,分别复制每个文件至目标目录中,并保持原名 > -i: 交互提醒 > -f: 强制覆盖,不交互 > -r: 递归复制目录 > -d: 如果复制的是符号链接,不找源文件,…

    Linux干货 2016-12-09
  • 0803权限管理作业练习

    0803权限管理作业练习 题目:创建组sales,gid 3000,passwd :centos,sales 的组管理员admins:user2 将用户user1,user2,user3加入到sales辅助组 希望user1创建新文件默认的所属组为sales user2将用户user3从sales组移除   答案:   &nbs…

    Linux干货 2016-08-05
  • N26-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   2.编辑/etc/group文件,添加组hadoop。          3.手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为h…

    2017-02-22
  • 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;        (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [ro…

    2017-04-05
  • TCP详解

    TCP协议详解   TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个使用TCP/IP协议的协议集合。他取代了OSI七层模型,成为事实上的应用于实际的模型。 TCP/IP协议与OSI协议的关系如下:   各层的作用如下: TCP特性: 工作在传输层面向连接协议 全双工协议 半关闭 错误检查 将数据打包成段,排序 确认机制 …

    2017-09-02