vim及shell编程基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim及shell编程基础相关的知识,希望对你有一定的参考价值。
一:vim撤销与重做
u撤销最近的更改
#u撤销之前多次更改
U 撤消光标落在这行后所有此行的更改
按Ctrl - r重做最后的“撤消”更改
. 重复前一个操作
n.重复前一个操作n次
退出模式下e!直接还原到文件最初打开状态
二:可视化模式
可视化模式:vim在命令模式下按v及V可以选择文本块。
v:面向字符
V:面向行
Ctrl+v面向块
选择出的部分可以被删除(d),复制(y),变更,过滤,搜索,替换等。
三:多文件模式及多窗口
vim file1 file2 ....
:next 下一个
:prev 前一个
:wall 保存所有
:qall 退出所有
vim -o|O file1 file2(多文件)
-o:水平分割
-O:垂直切割
窗口间切换:Ctrl+w,方向键
vim file(单文件)
Ctrl+w,s 水平分割
Ctrl+w,v 垂直分割
Ctrl+w,q 取消相邻窗口
Ctrl+w,o 取消全部窗口
:wqall 退出
四:vim配置文件
1.在配置文件中修改永久有效。配置文件一个是全局文件/etc/vimrc对所有用户有效,个人文件是~/.vimrc。只对当前用户有效
2.设置行号:set number 取消行号:set nonumber
3.括号匹配:set showmatch 取消:set nosm
在vim命令模式下,在括号上按%可以匹配括号。
4.自动缩进:set ai 禁用:set noai
5.高亮搜索:set hlsearch 禁用:set nohlsearch
6语法高亮: syntax on(默认开启) 禁用:syntax off
7.忽略字符大小写:启用:set ic 不忽略:set noic
8文件格式: Windows:set fileformat=dos Unix:set fileformat=unix
9.设置文本宽度:
:set textwidth=65(vim only)
:set wrapmargin=15
补:.swp文件
这个文件是在编辑文件时产生的,保存着在原文件上所作的操作。当文件正常退出时,该文件会自己删除,电脑突然断电时,我们可以通过他找回在原文件上的操作。找回的过程:第一种方式:(1)vim -r file 还原(2)删除.swp文件第二种方式:(1)vim file (2)按r
五:shell编程基础
程序是指令+数据,程序可以分为过程式和对象式,过程式以指令为中心,数据服务于指令,对象式以数据为中心,指令服务于数据。
计算机运行二进制指令,编程语言分为低级和高级语言,低级语言更贴近于硬件,比如汇编语言。高级语言又分为两类,一类是编译型语言,需要编译器进行编译。比如java,c#,另一种是解释型语言,需要解释器,实时翻译。比如shell,Perl,python。需要注意的是每种语言都有自己的解释器,各种语言的解释器不能混用。解释比编译效率低,但重在灵活,反应快,更加适合运维。
shell脚本:包含一些命令或声明,并符合一定格式的文本文件
shell的用途:自动化常用命令;系统管理和故障排除;创建简单的应用程序;处理文本或文件。
创建shell脚本:
(1)使用文本编辑器创建文件
要点:1.第一行必须包含shell声明序列:#!,如#!/bin/bash。
2.#!的作用:当要执行程序时,命令中如果不包含解释器的路径,此时就会根据文件的#!来寻找解释器,但这种执行方式要求文件必须可执行。
3.添加注释,注释以#开头
(2)运行脚本:
第一种执行方式:给予权限,在命令行上指定脚本的绝对或相对路径
第二种执行方式是 命令中直接包含解释器的路径,运行解释器,将脚本作为解释器程序的参数。
脚本调试:
bash -n file
bash -x file
变量
变量:命名的内存空间。数据分为字符型数据和数值型数据存储在变量中。变量可以存储数据,参与运算
变量分为强类型和弱类型,强类型变量不经过强制转换,他永远是这个数据类型,不允许隐式的类型转换。定义变量时必须指明类型,参与运算必须符合类型要求;调用未声明变量会产生错误,如java,c#。弱类型变量会在运行时隐式做数据类型转换。无需指定类型,默认字符型;参与运算会自动进行隐式类型转换;变量无需定义,可直接调用。
变量的命名法则:
(1)不能使用保留字
(2)只能使用数字字母,下划线且不能以数字开头
(3)做到见名知意
变量的种类:
(1)本地变量:只在当前shell进程生效
1.变量赋值:变量名=...
...可以是直接字符串:如name="root"
...可以是变量引用:如name="$USER"
...可以是命令引用:name=`command ...`或name=$(command ...)
2.变量引用:${name} $name
"":弱引用,其中的变量引用会被替换为变量值
'':强引用,其中的变量引用不会被替换为变量值,保持原字符串。
3. 显示已定义的所用变量:set
4. 删除变量:unset name
(2)环境变量:在当前shell及子shell进程有效
1.变量声明赋值:
export name=VALUE
declare -x name=VALUE
2.显示所有环境变量;
env;export;declare -x
(3)局部变量:通常在当前shell进程和函数中生效
(4)位置变量:$1,$2, 用于让脚本在脚本代码中通过命令行传递它的参数。
1.$*:传递给脚本的所有参数,全部参数为独立字符串 [email protected]:传递给脚本的所有参数,每个参数为独立字符串两者只有被“”抱起来的时候才会有差异
3.set -- 清空所有位置变量
(5)只读变量:只能声明,但不能修改和删除
1.只读变量的声明:readonly name 或 declare -r name
2.查看只读变量:readonly -p
退出状态:用来报告成功或失败
0:成功,1-255:失败
$?变量保存最近的命令退出状态
bash自定义退出状态码:exit n,脚本中一旦遇到exit命令,脚本会立即终止;退出状态码取决于exit命令后面的数字。
算数运算及赋值:
(1)算数运算有:+,-,*,/%,**(乘方)
(2)赋值:
let var= 算术表达式
let var= $[算术表达式]
let var= $((算术表达式))
declare -i var=数值
echo '算术表达式'|bc
(3)随机数生成器:echo $[$RANDOM%50] :0-49之间的随机数
以上是关于vim及shell编程基础的主要内容,如果未能解决你的问题,请参考以下文章