VIM的使用方法以及bashshell脚本基础

- vim的基本用法


vim可以打开编辑文件
如果后边跟的名字的文件不存在则创建该空文件
```
vim +(n) filename: 打开时光标处于文件的第n行
vim +/pattren filename:打开时光标处于pattern所匹配的位置
```
- vim模式转换
```
输入模式==》命令模式
esc
命令模式==》末行模式

末行模式==》命令模式
esc
```
- 命令模式==》输入模式
```
i:光标所在的前面插入
I:光标所在的行首
a:光标所在的后面
A:光标所在行的行尾
o:光标所在行的下方开一个新行
O:光标所在行的上方开一个新行
```
- 输入模式下可以随意输入字符


末行模式下的基本操作


```
:q 退出
:q!强行退出
:w 保存
:wq 保存退出
:x 保存退出
:w /path保存在指定文件中
```
- 光标跳转:
```
h左  
j下  
k上  
l右
```
备注(n)h/j/k/l 向方向跳n个字符
```
w一个单词一个单词的跳转
b和w同意
e一个单词一个单词反方向跳转
```
备注(n)w/e/b向方向跳转几个单词
```
^ 行首(非空的)
0 行首(绝对)
$ 行尾
```
- 行跳转
```
(n)G 跳转到文件的第n行
     G 跳转到文件的最后一行
     1G或gg跳转到文件的首行
```
段落间的移动
```
{ 向前面段落移动
} 向后面段落移动
```
命令模式下vim的编辑


删除命令
```
x:删除光标处字符
(n)x:删除光标处几个字符
 dd:删除光标所在一整行
(n)dd:删除光标所在的几行
```
粘贴命令
```
p:缓冲区若存的为整行则粘贴时在光标的行的下方开一行
若存的不是整行则在光标的后面
P(大写):与小写P相反
```
复制命令
```
y:工作机制和d相同
```
改变命令


```
c:同d
但是执行完c后会直接转入输入模式
```
替换命令
```
r:替换字符
```
可视化模式:类似于win模式的选中
```
V:直接圈整行
v:按字符选定光标所在的位置
备注v经常结合dyc使用
```
撤销命令
u:撤销一次
(n)u:撤销几次
 Ctrl + r 反撤销
 U:直接撤销至操作前




- ### 脚本编程入门



- 变量的种类


```
本地变量:生效范围为当前bash
环境变量:生效范围是当前bash及其子进程
命令 或export生命环境变量
局部变量:生效范围为当前bash中的某个代码片段
位置变量:一般用$1,$2..代表,用于脚本在脚本调用中通过命令行传递给他的参数
特殊变量:类似$?,$0等在bash中表示特殊意义的变量


```
- 变量的赋值方式:name=‘value’  
> 1.可以是字符  name=“username”  
> 2.可以是变量引用  name=“$username” 3.可以是命令的执行结果 name=`CMD `
> 或者name=$(CMD) 


> 变量引用方式:${name} 大多数情况下可以省略
> {当变量名和后边的内容不容易分清时,需要加花括号}


- 查看变量
> set查看所有变量  
> unset name  取消本地变量


- 环境变量的声明


> export a=name 声明环境变量a  
> dclear -x name=abc


- 显示环境变量


```
export
env
printenv
```
- 变量命名法则


```
1 不能使用程序中的保留字
2 变量名只能使用数字,字母,下划线且不能使用数字揩油
3 尽量做到见名知意。
4 可以用驼峰法则
``` 
只读变量不能被改变值不能被终止只能等bash结束后自动消失


位置变量  
用于脚本在脚本调用中通过命令行传递给他的参数
$1,$2,$3..对应调用的第1,2,个命令


- bash的配置文件


```
1.全局配置:/etc/profile
                /etc/profile.d/*.sh
            /etc/bashrc  
2.个人配置:home/.bash_profile
                /.bashrc
```




profile类的:是为交互式shell提供配置  


```
使用su - 登录的


功用:用于定义环境变量
      命令运行或脚本
      
      读取顺序:/etc/profile--> /etc/profile.d/*.sh--> ~/.bashrc_profile-->~/.bashrc-->/etc/bashrc
```
后面的会覆盖前面的内容,所以靠后的生效
bashrc类的::为非交互式登录提供配置


```
1使用 su 登录的
2图形界面打开终端
3执行脚本时
功用:定义别名
      定义本地变量


读取顺序 ~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh
```
- #### 算数运算


```
1.let var=算数表达式
2.var=$[算数表达式]
3.var=$((算数表达式))
4.var=$(expr arg1 arg2 arg3 ...)
```


条件判断
```
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
```
备注:中括号两边必须有空格


数值判断


```
-gt:大于
 -ge:大于等于
 -eq:等于
 -ne:不等于
 -lt:小于
 -le:小于等于
```
 字符串判断
 
 ==:等于
 > :大于(ASICI)
 <:小于(ASICA)
 !=:不等于
 =~:是否能被PATTERN匹配
 -z:是否为空
 -n:是否不空
 备注:字符串比较式都用该用引号
 
 shell自定义退出状态码
>  exit [n] 脚本中一旦遇到exit则脚本立即终止,终止状态取决于脚本后面的数字  
>  如果未指定状态码,则脚本退出状态码取决于最后一个参数执行成功与否
 
 存在性测试


```
-a FILE:同-e
-e FILE: 文件存在性测试,存在为真,否则为假
```


存在性及类别测试


```
-b FILE:是否存在且为块设备文件
-c FILE:是否存在且为字符设备文件
-d FILE:是否存在且为目录文件
-f FILE:是否存在且为普通文件
-h FILE 或 -L FILE:存在且为符号链接文件
-p FILE:是否存在且为命名管道文件
-S FILE:是否存在且为套接字文件
```
文件权限测试:


```
-r FILE:是否存在且可读
-w FILE: 是否存在且可写
-x FILE: 是否存在且可执行
```


文件特殊权限测试:


```
-u FILE:是否存在且拥有suid权限
-g FILE:是否存在且拥有sgid权限
-k FILE:是否存在且拥有sticky权限
```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值