一.vim的三种工作模式
1.命令模式
打开文件首先进入命令模式,是使用vim编辑器的入口。
在命令模式下,通过使用命令对文件进行常规的编辑操作,例如:复制、粘贴、删除、定位、翻页 等等。
在这个模式下,键盘输入a、A、i、I、s、S 其中之一进入编辑模式(英文输入法下);输入shift + : 进入末行模式;输入shift+zz 退出vim。
2.末行模式
在末行模式下,执行退出文件、保存并退出文件等操作。
末行模式是vim编辑器的出口,要退出vim,必须要在末行模式下。
在这个模式下,键盘Esc 回到命令模式。
3.编辑模式:
编辑代码模式。
在这个模式下,键盘Esc 回到命令模式。
二.vim常用快捷键
1.光标移动
k、j、h、l 分别对应 上、下、左、右移动
gg 回到第一行
G 到最后一行
$ 光标到行尾
0 光标到行首
:set number 显示行号
2.删除
dw 删除光标处单词
dd 删除一行
3dd 删除三行
3.复制粘贴
yy 复制一行
dd 剪切一行
p 粘贴到光标行
4. 分屏操作
:vsp 分为左右两个屏幕
:sp 分为上下两个屏幕
q 退出当前屏幕
ctrl+ ww 切换屏幕
wqall 退出全部屏幕
三.Shell语法
1.变量定义与使用
#!bin/bash
#以#开头的句子表示注释,直到这一行的结束
#定义变量,赋值输出,A=10中间不能有空格
A=10
echo "Hello World"
echo A==$A
#执行,输出
MacBook-Pro:test wangyongqi$ sh test01.sh
Hello World
A==10
#!/bin/sh 或者 #!/bin/bash 必须在文件的第一行,调用sh或bash解释器来执行程序
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
使用一个定义过的变量,只要在变量名前面加美元符号即可
变量类型:
- 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
- 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
- shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
2.循环
使用for循环输出1到10
for i in $(seq 10)
do
echo $i
done
使用while循环输出1到10
int=1
while(($int<=10))
do
echo $int
let "int++"
done
查找当前目录下所有的.sh文件,进行打包
a=0
for i in 'find . -name "*.sh"'
do
a='expr $a + 1'
tar -czf test+$a.tgz $i
done
3.读文件
输出当前目录路径
echo $PWD
echo 'pwd'
读取文件里面的内容并打印
while read lineVarAA
do
echo $lineVarAA
done
4.if语法
#!/bin/bash
num1=100
num2=200
if(($num1>$num2));then
echo "OK"
else
echo "else"
fi
5.算数运算符
表达式和运算符之间必须有空格,必须写成 1 + 1,不能为1+1
使用的是反引号 ` ,在Esc键下面
shell 语言中 0 代表 true,0 以外的值代表 false
#expr 是一个表达式计算工具
result=`expr 1 + 1`
echo "两数之和为 : $result"
var1="abc"
var2="qwer"
if [ $var1 = $var2 ]
then
echo "相等"
else
echo "不相等"
fi
6.函数
function 是 Shell 中的关键字,专门用来定义函数;可以带function 定义,也可以直接test01 () 定义
先写函数,再调用,从上往下执行
function test01(){
var1="Android666"
echo $var1
}
test01 #调用函数
函数传递参数。在函数内部,通过 $n 的形式来获取参数的值,例如,$1表示获取第一个,$2表示获取第二个,当n>=10时,需要使用${n}来获取参数
funParam(){
echo "第一个参数为 $1 "
echo "第十个参数为 $10 "
echo "第十个参数为 ${10} "
echo "第十一个参数为 ${11} "
echo "参数总数有 $# 个 "
echo "输出所有参数 $* "
}
funParam 1 2 3 4 5 6 7 8 9 100 200
#输出结果
第一个参数为 1
第十个参数为 10
第十个参数为 100
第十一个参数为 200
参数总数有 11 个
输出所有参数1 2 3 4 5 6 7 8 9 100 200