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

目录
相关文章
|
2月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
113 1
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
1月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
65 2
6种方法打造出色的Shell脚本
|
24天前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
30 0
Linux 如何更改默认 Shell
|
1月前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
61 1
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
50 2
|
2月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
78 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
2月前
|
存储 运维 搜索推荐
|
2月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
58 6
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
下一篇
DataWorks