对正则表达式,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 14:18
下一篇 2018-04-08 14:40

相关推荐

  • 计算机原理与Linux基础

    计算机的组成及功能 1、其实计算机的组织分为内部设备和外部设备, 内部设备:         CPU:运算器、寄存器、缓存         存储器:内存,RAM(Random Access Memory)         控制器:控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。 外部…

    Linux笔记 2018-05-13
  • mysql 高可用

    实验:集群高可用 一个管理——一个主——两个从 管理 主机 从机1 从机2 1.必须先统一时间,做集群必须时间一致,所有主机做如下操作 所有主机统一ntp服务器时间,写入文件里 前期需要手工同步下 启用ntp服务 2.所有主机关掉iptables 和selinux 3.先做主从复制 主机配置文件 这四项必须写 重启服务 查看主机二进制文件的位置 主机创建账号…

    2018-06-19
  • N31第四周作业

    本周(7.9–7.15)第4周 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [a@localhost ~]$ sudo cp -r /etc/skel /home/tuser1 [a@localhost ~]$ sudo chmod -R go= /hom…

    Linux笔记 2018-07-16
  • iproute家族命令简介

    iproute家族命令简介

    Linux笔记 2018-04-20
  • Linux进程管理工具

    进程管理

    Linux笔记 2018-05-06
  • Linux学习笔记 —— RPM软件包管理(1)

    ◆ 软件包(RPM)包的管理RPM是RedHat公司开发的软件包管理系统。现在广泛用于CentOS、Fedora等发行版。RPM包的命名规则通常如图所示。    RPM包、可使用RPM命令进行安装、卸载、与更新。  ◆ 格式 : rpm [ 选项 ] 软件包名 【 RPM 安装/更新时 】 【 RPM包查询时 】 ◇ 软件包的安装与卸载在安装软件包…

    2018-04-22