vim编辑以及脚本编程练习
转至:http://www.178linux.com/88128
vim编辑器的使用总结:
vim在工作过程当中有三种模式:编辑模式、输入模式、末行模式。
1、编辑模式:即命令模式,键盘操作常被理解为编辑命令;
2、输入模式:在文本文件当中进行输入内容;
3、末行模式:vim内置的命令行接口,执行vim的内置命令。
vim的使用
打开文件
#vim[option]…[FILE]
+#:打开文件后,直接让光标处于第#行的行首;
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN锁匹配到的行的行首。
模式转换
1、ESC键:可以从输入模式转换到编辑模式
2、从编辑模式à输入模式
常用的有o:在光标所在行的下方新建一个空行病转换为输入模式
a:在光标所在的后方转换为输入模式
3、编辑模式à末行模式:直接输入冒号(:)即可在窗口的左下方显示冒号
4、末行模式à编辑模式敲击ESC键
5、输入à编辑à末行:输入模式不能直接转换到末行模式
退出文件
需要先切换到编辑模式之后才能退出,在切换到编辑模式后键入一下命令即可进行相关的操作:
:q退出
:q!不保存退出
:wq保存退出
:x保存退出
:wq!强制保存退出
:w /PATH/TO/SOMEWHERE
编辑模式保存退出的快捷键ZZ
vim的编辑命令
x:删除光标所在处的字符
dd:删除光标所在行
p:paste,粘贴
y:yank,复制
Y:yy复制行
c:修改
撤销编辑:
u:撤销此前的操作
#u:撤销最近的#次操作
撤销此前的撤销操作
Ctrl+r
vim中的末行模式
1、内容定界
#:第#行
#,#:从左侧第#行到右侧第#行结尾
.:当前行
$:最后一行
%:全文,相当于1,$
2、查找
/PATHERN:从当前光标所在处向文件尾部查找
? PATHERN:从当前光标所在处向文件首部查找
窗口属性定义
:set nu 显示行号
:set nonu取消显示行号
:set ai启用自动缩进功能
:set noai取消自动缩进功能
本周练习:
1,复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#。
%s@^([[:space:]]+)@#\1@
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@^@#@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。
# crontab –e
0 */4 * * * root cp -r /etc/ /backup/etc-$(date +%Y%m%d%H%M)
7,每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402。
# crontab –e
0 * * * Tue,Tur,Sat root cp /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)
8,每天每两个小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中。
# crontab –e
0 */2 * * * root grep “^S” /proc/meminfo >> /stats/memory.txt
9,工作日的工作时间内,没两小时执行一次echo “howdy”。
# crontab –e
0 9-18/2 * * 1-5 root echo “howdy”
10,创建目录/tmp/testdir-当前日期时间。
#!/bin/bash
mkdir /tmp/testdir-$(date +%Y%m%d%H%M%S)
# bash -x mkdir2.sh
++ date +%Y%m%d%H%M%S
+ mkdir /tmp/testdir-20170902155548
11,在此目录中创建100个空文件:file1-file100。
#!/bin/bash
for num in `seq 1 100`; do
touch /tmp/testdir-20170902155548/file$num
done
12,显示/etc/passwd文件中位于第偶数行的用户的用户名。
#!/bin/bash
vim编辑以及脚本编程练习的更多相关文章
- vim编辑python脚本时Tab补全
所属分类:成长之路 使用Linux写python脚本的时候,初期最痛苦的是什么?当然是各种库的不熟悉,知道了库,里面的方法还要挨个看,挨个记. 所以这时候,很多小伙伴使用了ipython,最强大的功能 ...
- linux下vi与vim区别以及vim的使用-------vim编辑时脚本高光显示语法
vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...
- Vbs 脚本编程简明教程之一
—为什么要使用 Vbs ? 在 Windows 中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动 计算机第一件 ...
- Shell脚本编程学习入门 02
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
- 【Shell脚本编程系列】Shell脚本开发的习惯和规范
1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...
- Shell脚本编程与文件系统修复
导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...
- 《Linux命令行与shell脚本编程大全 第3版》
第一部分 Linux 命令行 第1章 初识Linux she1.1 什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81 ...
- SHELL脚本编程基础知识
SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
随机推荐
- VUE3 之 插槽的使用 - 这个系列的教程通俗易懂,适合新手
1. 概述 非理性定律告诉我们: 人们总是习惯于以情感去判断眼前的事物,非理性的去做决定. 对于长远的利益,人们更愿意去选择短期的利益. 因此在做决定前要让自己冷静,理性的分析,让自己看的更远. 言归 ...
- Pycharm 使用备忘
1.打开方法定义 快捷方式:[ctrl+左键]或者[Ctrl+B] 如果点击之后,打开不是[.py]文件,而是[.pyi]文件,可以把下面红框的参数删掉. 2.设置文件开头默认注释 # *_* cod ...
- LeetCode673
LeetCode每日一题2021.9.20 LeetCode673. 最长递增子序列的个数 思路 在最长上升子序列的转移时,维护一个 cnt 数组,表示 以 i 结尾的最长上升子序列个数 f[i] 表 ...
- 【然天一】随机读写(4k)百盘天梯
随机读写适用于大量小文件的读写,是最贴近办公和编程的使用场景.现在很多硬盘厂商只宣传它们的连续读写(Seq),但除了游戏和视频剪辑场景之外并没有什么卵用. 总结一下: 傲腾秒杀全部 NAND SLC ...
- js源码-自定义数组的pop和shift方法
本文将自定义_pop和_shift来模拟数组的pop和shift方法 _pop: /* *js中数组的pop方法:删除数组的最后一个元素,把数组的长度减1,并且返回删除的这个元素:如果数组为空,则po ...
- X000101
P3879 [TJOI2010]阅读理解 考虑用 Trie 解决 #include<stdio.h> #include<bitset> #include<string.h ...
- SpringBoot Log4j 安全漏洞分析及解决方案
一.序言 SpringBoot作为Java基础框架大行其道,前不久爆发出Log4j安全漏洞,大众更多关心Log4j的危害是多么严重,然而鲜有关心SpringBoot这一底层框架的安全性问题,换而言之, ...
- Sleep_Yield_Join
名称解释 Sleep:意思就是睡眠,当前线程暂停一段时间让给别的线程去运行;Sleep是怎么复活的?由你的睡眠时间而定,等睡眠到规定的时间自动复活. Yield:就是当前线程正在执行的时候停止下来进入 ...
- Android状态栏微技巧,带你真正理解沉浸式模式【转】
感谢! 本文转自大佬郭霖:http://blog.csdn.net/guolin_blog/article/details/51763825 转载请注明出处:http://blog.csdn.net/ ...
- JAVA变量的数据类型
1. 整型 byte 代表一个字节的大小 8bit 2(8) -128~127 256 short 代表两个字节的大小 16bit 2(16) -2(15)~2(1 ...