对正则表达式,VIM的基本命令的操作,SHELL编程的基本格式等的一些见解。

第一 正则表达式,第二 VIM的具体适应,第三 shell编程的基本格式跟规范!

一 (正则表达式)
正则表达式(REGEXP)是由一类特殊字符和文本字符所编写的模式,其中有些字符(元字符)不表示字符字面的意义,而表示控制或通配的功能。
分为两类: 基本正则表达式:BRE 扩展正则表达式: ERE
元字符分类:字符匹配,匹配次数,位置锚定,分组。
字符匹配: · 表示匹配的单个字符
\. 转义,表示(·)的字符本意
【】 表示匹配指定范围内的任意单个字符,【】里的·表示本意,不用转义
【托字符】 表示匹配指定范围外的任意单个字符
【:alnum:】 字母和数字 【:alpha:】 代表任何英文大小写字符
【:lower:】 小写字母 【:upper:】 大写字母
【:blank:】 空白字符 【:space:】 水平和垂直的空白字符(比blank范围大)
【:punct:】 标点符号

匹配次数: 用于在要指定次数的字符后面,是表示前面字符出现的次数。
* 表示匹配前面的字符重复的次数,包括0次
·* 任意长度的任意字符
\? 匹配前面的字符0次或1次
\+ 匹配前面的字符至少1次
\{n\} 匹配前面的字n次,是指定m次
\{n,m\} 匹配前面的字符最少n次,最多m次
\{,n\} 匹配前面的字符最多n次
\{n,\} 匹配前面的字符最多n次

位置锚定: 定位出现的位置。
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
\> 词尾锚定,用于单词模式的最右侧
\< 词首锚定,用于单词模式的最左侧
\b 单词的边界

分组: \(\) 将一个或多个字符捆绑在一起,当做一个整体进行处理。

二 VIM的基本命令操作

VIM 的文本编辑器
+# 打开文件后,让光标处于第#的行首
-d 可以比较多个文件
-m 只读的方式打开文件,避免误操作
-e 进入ex模式(编辑模式)
三种主要模式
命令模式:默认模式
插入模式:编辑模式
扩展命令模式:ex模式

可以让命令模式进入插入模式的,按ESC退出的一些操作:
按 i 光标不懂
按 I 光标移动到行首
按 a 光标往后移动一个字符
按 A 光标移动到本行的行尾
按 o 在光标下行切换新行
按 O 在光标上行切换新行
在命令模式下按: 就进入ex模式了

在ex模式下:
Wq 存盘退出 q 退出
Q! 强行退出,修改的不算
W 空格 跟文件 就可以把VIM的内容传送到文件
R 空格 跟文件 就可以把文件的内容读入VIM

在命令模式下的一些常用的用法:
字符间的跳动: h 左 l 右 j 下 k 上
# 前面加上数字# ,配合其他按键进行跳动
单词间的跳动: w 跳动到下一个单词的词首
e 跳动到下一个单词的词尾
b 跳动到前一个单词的词首
也可以配合#进行跳动
当前页面跳动: H 跳动到当前页面的页首
M 跳动到当前页面的中间
L 跳动到当前页面的页底

行首行尾的跳动: ^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾

行间移动: G 直接跳动到整个文件的最后一行
gg 直接跳动到整个文件的第一行
一些快捷键: ctrl +f 向文件尾部翻一页
Ctrl+b 向文件首部翻一页
Ctrl+d 向文件尾部翻半页
Ctrl+u 向文件首部翻半页
命令模式的字符编辑: x 删除(剪切)光标处的字符
#x 前面加上数字,表示删除几个字符
Xp 交换光标处字符跟后面字符的位置
J 删除当前行后的换行符
~ 转换大小写

替换命令: r 替换光标所在处的字符
R 切换成REPLACE 模式,批量替换字符
删除命令: d 删除字符,可以结合光标跳转字符实现范围删除
d$ 删除到行尾
d^ 删除到非空白字符行首
d0 删除到行首,不包括光标处
dd 删除光标所在行 (配合数字批量删除)
D 从当前光标处一直删除到行尾

复制命令: (复制完可以按P粘贴)
y 复制
y$ 复制到行尾
y0 复制到行首
y^ 复制到非空白字符行首
yy 复制光标所在行
#yy 配合数字实行多行复制
Y 复制整行
改变命令: c 修改后切换成插入模式,配合d进行相应操作

100i wang [esc] 粘贴wang 100次 复制wang 100次

扩展命令模式: (ex)模式
地址定界:
:# 输入数字几,跳到第几行
#,#:从第几行到第几行,后配合相应命令
· 表示当前行
$ 表示最后一行
% 表示全文件内容
S 在扩展模式下完成查找替换操作
格式: s/要查找的内容/替换为的内容/修改符
修改符: i 忽略大小写
g 修改的全局替换(默认情况只替换每行第一次改的)
gc 全局替换时每次前询问

命令模式下: (小写)u 撤销 #u 撤销之前多次修改
(大写)U 撤销光标落在此行后所有的更改
按ctrl -r 重做最后撤销的更改(倒回去)

· 重做前一个操作
n. 重做前一个操作N次

VIM的寄存器
有26个命名的寄存器 (可以在不同窗口进行)
名称以a b c ….z 来表示
格式: 寄存器放在数字和命令之间
如: “ ayy 表示把当前光标所在行复制到a寄存器
“ap 表示把a寄存器的内容粘贴

VIM “F1 F2”一次处理多个文件
刚进去默认在第一个文件
:next 下一个
: prev 前一个
: qall 退出所有
: wqall 保存退出所有

VIM 使用多个窗口
VIM -o 上下分屏
VIM-O 左右分屏
在窗口间来回切换 ctrl+w
完成后 wqall

在VIM里加行号
显示 set nu
取消 set nonu
要想行号永久有效,必须保存配置文件:(用VIM改)
全局:/etc/vimrc 个人:~/.vimrc

在VIM里设置文本宽
启用 set textwidth =65
禁用 set wrapmargin =15

在VIM里设置光标所在的标识线
启用 set cursorline (cul)
禁用 set no cul

更详细用法请查:VIM help

三 shell脚本编程简介和基本格式

程序 : 指令+数据
程序编程风格:
过程式:以指令为中心,数据服务于指令。
对象式:以数据为中心,指令服务于数据。
编程逻辑处理方式:顺序执行 循环执行 选择执行

Shell 编程:过程式,解释执行。
编程语言的基本结构:
各种系统命令的组合
数据存储:变量,数组
表达式:a+b

Shell脚本:包含命令或声明,并符合一定格式的文本文件
格式要求:首行 shebang 机制
#!/bin/bash
Shell脚本的用途: 自动化常用命令
执行系统管理和故障排除
创建简单的应用程序
处理文本或文件
第一步: 使用文本编辑器来创建文本文件,第一行必须包括shell声明序列:#!
#!/bin/bash
添加注释,以#开头
第二步:运行脚本
1 给予执行权限,在命令行上指定绝对或相对路径
2 直接运行解释器,将脚本作为解释器程序的参数运行

脚本规范:1 第一行一般为调用使用的语言
2 程序名,避免更改文件名为无法找到正确的文件
3 版本号
4 更改后的时间
5 作者相关信息
6 该程序的作用及注意事项
7 最后是各版本的更新简要说明

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95371

(1)
李登峰李登峰
上一篇 2018-04-08
下一篇 2018-04-08

相关推荐

  • centos7下的raid10实现及挂载

    需求分析,实现raid10可以有两种方法,第一种是先实现raid1,然后对raid1实现raid0,第二种是一次生成raid10。生成raid1至少需要2个分区或者硬盘,生成raid0至少需要2个分区或者硬盘,因此新建4个分区来实现本次试验。实现raid的命令是mdadm命令,下面介绍一下命令的常用选项-C 创建raid,后跟raid名称,例如/dev/md…

    Linux笔记 2018-04-29
  • 網絡屬性配置一

    網絡屬性配置一 一. ifconfig的应用 (一)配置网络接口: #ifconfig (只显示活动状态的接口) ifconfig -a(显示所有接口) 配置地址: 注意(掩码的两种的写法) #ifconfig 接口 指定的IP/NETMASK 1.#ifconfig ens37 172.20.110.11/16 (IP改为172.20.110.11/16)…

    Linux笔记 2018-05-03
  • N30-bash特性以及Linux文件管理常用命令汇总

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理类命令:cat,tac,head,tail,more,less 分屏查看命令:more,less more:more FILE特点,翻盘至文件尾部后自动退出 less FILE head:查看文件的前n行head [options] FILE-n 数字-数字 tail:查看…

    Linux笔记 2018-05-26
  • 第二周笔记

    ### 4 月2日笔记 – #### IO重定向“`I:input指的是标准输入 描述符用0表示O:output指的是标准输入 描述符用1表示标准错误 描述符用2表示“`一般文件或者命令的标准输入是指的键盘,标准输出是值得终端窗口。我们用重定向来改变他们的方向大于号> 表示标准输出:把输出内容定向到一个文件中&#82…

    Linux笔记 2018-04-01
  • 正则表达式

    Linux文本处理三剑客 *************************************************grep:文本过滤(pattern模式)工具 grep egrep fgrepsed:stream editor,文本编辑工具awk:Linux上的实现gawk,文本报告生成器 *****************************…

    Linux笔记 2018-04-07