linux《vim使用详解与基础shell脚本演示》

简介: vim基本用法,基础shell编写

1、总结vim命令行模式常见快捷方式,以及vim查找,替换的方法

vi:Visual Interface 文本编辑器
vim:Vi Improved 增强版文本编辑器

模式 进入说明
命令模式 打开文件的第一个模式,按esc可从其他模式返回命令模式
插入模式 在命令模式下按i,I,a,A,o,O键都可以进入插入模式,esc返回命令
扩展命令模式 在命令模式下按":"即可打开扩展命令模式
可视化模式 命令模式下,按v进入字符模式,V进入行模式,ctrl+v进入块模式
多文件模式 通过vim file1 file2 file3 ...可进入多个文件模式

命令模式常用快捷键
字符间跳转:
上下左右方向键:上下左右移
按h:光标左移
按l:光标右移
按j:光标下移
按k:光标上移
先按数再按[hljk]:向指定的方向跳转指定数个

单词间跳转:
w:下个单词的词首
e:当前或下个单词的词尾
b:当前或前一个单词的词首
先按数在按[web]:向指定的方向跳转指定数个单词

当前页跳转:
H:页首 M:页中间行 L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端

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

行间移动:
1G,gg:跳转到第一行
先按数再按G:跳转到指定数行
G:跳转到最后一行

句间移动:
(:上一句
):下一句

段落间移动:
{:上一段
}:下一段

翻屏操作
Ctrl+u:向文件首部翻半屏
Ctrl+d:向文件尾部翻半屏
Ctrl+b:向文件首部翻一屏
Ctrl+f:向文件尾部翻一屏

字符编辑:
x: 删除光标处的字符
nx: 删除光标处起始的n个字符,n为数
xp: 交换光标所在处的字符及其后面字符的位置,p粘贴
~:转换大小写
J:删除当前行后的换行符

替换
r: 替换光标所在处的字符
R:切换成REPLACE模式

删除命令:
d: 删除命令,可结合光标跳转字符,实现范围删除
d$: 删除到行尾
d^:删除到非空行首
d0:删除到行首
dw:删除到下个单词词首
de:删除到这个单词词尾或下个单词词尾
db:删除到这个单词词首或上个单词词首
dd: 删除光标所在的行

dd:删除#行

复制命令:
y: 复制,行为相似于d命令
y$:复制到行尾
y0:复制到行首
y^:复制到非空行首
ye:复制到这个单词或下个单词词尾
yw:复制到下个单词词首
yb:复制到这单词或上个单词词首

粘贴命令:
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴
至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴
至当前光标所在处的前面

查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:与命令同方向
N:与命令反方向

撤销更改
u撤销最近的更改
nu撤销之前n次更改
U 撤消光标落在这行后所有此行的更改
按Ctrl - r重做最后的“撤消”更改
. 重复前一个操作
n.重复前一个操作n次

插入模式:可正常编辑

扩展命令模式

地址定界
:n,m 申明范围,从n行开始到m行的范围内
-1 倒数第二行
% 全文,等价于 1,$
:/pat1/,/pat2/ 从第一次被pat1模式匹配到的位置开始,到pat2匹配到的位置结束
后接编辑命令:d(删除),y(复制)
w file:将范围内内容另存至file文件中
r file:在/pat2/后插入指定文件中的所有内容

查找并替换
s: 在扩展模式下完成查找替换操作
格式:s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用1, 2, ...等后向引用符号;还可
以使用“&”引用前面查找时查找到的整个内容
修饰符:
i: 忽略大小写
g: 全局替换;默认情况下,每一行只替换第一次出现
gc:全局替换,每次替换前询问
查找替换中的分隔符/可替换为其它字符,例如
s@/etc@/var@g
s#/boot#/#i

可视化模式

允许选择的文本块
v 面向字符
V 面向行
ctrl-v 面向块
可视化键可用于与移动键结合使用:
w ) } 箭头等
突出显示的文字可被删除,复制,变更,过滤,搜索,替换等

多文件模式
vim FILE1 FILE2 FILE3 ...
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall
1)复制/etc/rc.d/init.d/functions文件至/tmp目录,替换/tmp/functions文件中的/etc/sysconfig/init为/var/log
:%s@/etc/s.*fig/init@/var/log@
2)删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号
:%s@^# +.*$@@

2、总结脚本中运算符、逻辑运算以及用法

运算符有:
+:加
-:减
*:乘
/:除
%:取余

逻辑运算有:
&:与-两边为真,结果为真,有假为假
|:或-有真为真,两边为假,结果为假
!:非-取反
短路运算
短路与:&&
第一个为0,结果必定为0
第一个为1,第二个必须要参与运算
短路或:||
第一个为1,结果必定为1
第一个为0,第二个必须要参与运算
异或
^:异或的两个值,相同为假,不同为真

1)编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和
image

2)编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和
image

3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到 /root/etcYYYY-mm-dd中

image

4、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统

image

5、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值

image

目录
打赏
0
0
0
0
1
分享
相关文章
LS-LINUX-001 Vim的使用方法
本文介绍了终端编辑器 Vim 的基础使用方法及 Linux 系统中 `systemctl` 命令的操作技巧。Vim 部分涵盖编辑模式与命令模式切换、常用编辑指令;`systemctl` 部分以 `dhcpcd` 服务为例,讲解了服务的启动、停止、重启、状态查询及开机自启设置等操作,适合初学者快速掌握系统管理技能。
36 13
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
50 3
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
2月前
|
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
119 32
linux应急响应检查脚本
通过这个脚本,可以快速收集系统的关键信息,有助于在发生问题时进行及时的应急响应和分析。
121 34
|
6月前
|
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
172 1
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
136 2
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
138 2
6种方法打造出色的Shell脚本
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等