vim编辑器
一、vim介绍
vi编辑器是Unix和Linux系统下的标准编辑器,在任何版本下vi编辑器是完全相同的,而且可以在终端中使用。
vim是vi的升级版,vim更适用于coding。
vim点事光标的移动,模式切换、删除、查找替换、复制、粘贴、撤销命令的使用。
二、vim的三种模式
命令模式:不能对文件直接编辑,但是可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等);
编辑模式(输入模式):可以对文件的内容进行编辑;
末行模式(尾行模式):在末行输入命令来对文件进行操作(搜索,替换,保存,退出,撤销,高亮等等);
模式的切换:命令到编辑模式 i o 命令到末行 : 其他到命令 Esc
vim打开文件的方式:
#vim 文件路径 打开指定文件
#vim +数字 文件路径 打开指定的文件,并将光标定位到指定行,不指定默认到第一行,或者上一次保存的地方
#vim +/关键词 文件路径 打开指定的文件,并且高亮显示关键词
#vim 文件路径1 文件路径2 文件路径3 同时打开多个文件
退出: :q回车即可退出;
三、命令模式
打开文件即命令模式。
移动:
移动到行首shift + 6也就是^(不能用小键盘)
移动到行尾shift + 4也就是$
首行gg
尾行G
快速将光标移动到指定的行 行数 + G
以当前为基准,往上移动 数字 + ↑ 向下 数字 + ↓
以当前为基准,向左移动字符数 数字 + ← 向右 数字 + →
末行模式下移动到指定行 : + 数字
翻屏pageup/ctrl + b pagedown/ctrl + f
复制:
复制光标所在行yy, 粘贴p;
以光标所在行为基准,复制指定行数 6yy(复制六行,包含当前行)
可视化复制:Ctrl + v 按上下左右键进行选择,按yy复制,p粘贴。
剪切/删除:
光标所在行:dd
以光标为基准,操作指定行数 6dd(剪切6行,)
删除所在行,下一行不上移 D
撤销/恢复
撤销 :u 或者u 即可恢复
恢复Ctrl + r 取消撤销的操作。
四、末行模式
进入:命令模式下,按 : 进入末行模式。 /也可以进入,但是仅限于查找。
退出:按下Esc 按两下Esc 删除末行全部字符
保存文件用“:w” “:w 路径”表示另存为
退出“:q” 退出文件
保存并退出 “:wq”
强制瑞出“:q!” 之前做的修改不进行保存
调用外部命令 “:!外部命令” 外部命令执行结束之后按任意键返回vim
查找/搜索 “/关键词” 在结果中切换上/下一个结果 N/n
取消高亮 “nogl”
替换 “:s/搜索关键词/新的关键词” 替换所在行的第一个
“:s/搜索关键词/新的关键词/g” 替换所在行的所有
“:%s搜索的关键词/新的关键词” 替换文档所有行的第一个
“:%s搜索的关键词/新的关键词/g” 替换文档所有的关键词
%整个文档
g全局
显示行号:
输入:“:set nu” 显示行号
“:set nonu” 关闭行号
使用vim打开多个文件时,切换文件
输入“:files” 显示当前打开的文件,以及各自的状态
输入“:open 文件名” 打开指定文件
输入“:bn” 切换到下一个文件
输入":bp" 切换到上一个文件
五、编辑模式
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下一行另起一行开始插入
I:在光标所在行的行首开始插入,如果行首有空格,则在空格之后插入
A:在光标所在行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入
退出按esc
六、扩展
vim的配置
在文件打开的时候,在末行模式下的配置,这是临时的
个人配置文件(~/.vimrc)
全局配置文件(vim自带,etc/
)
个人配置步骤:新建-->进行配置(set nu 用于显示行号)--->之后用vim打开就OK啦
异常退出
解决办法是将交换文件删除 # rm -f passwd.swp
别名机制:自定义命令
别名映射文件:"~/.bashrc"
alias 自定义指令='被替换命令' 重新登录当前用户生效
退出
保存退出“:x” ":X"会对文件进行加密 "
:set key= "对文件进行解密
注:":x" 和":wq"的区别,x的保存是针对于已经修改的文件,如果文件没有修改,则直接退出不会修改文件的保存时间,wq对文件的把保存会更改所有的文件修改时间。
shell
一、什么是shell
shell(外壳)是一种命令语言,又是一种程序设计语言。属于内置脚本。
程序开发效率高,依赖功能强大的命令可以迅速地完成开发任务(批处理);Linux中默认的是/bin/bash。
二、入门
1、规范
代码规范
#!/bin/bash //指定当前使用的脚本解释器
shell命令,使用;结束,但是一般不加,同一行有两句的需要加上。
文件命名:文件名.sh
2、使用流程
创建.sh文件 touch/vim
编写shell代码
执行脚本 脚本的执行需要有执行权限,权限的查看ll test.sh
3、常用命令
输出#echo ,如果是字母包含字母和符号需要使用""或者'',如果只有数字不用也可以。
4、执行
先赋予权限:chmod +x test.sh
./test.sh,让系统在当前目录中找文件,并执行。
或者
/bin/bash 脚本路径 来执行,此时./可加可不加。
三、进阶
1、变量
定义:class name="yunwei"
使用:echo $class_name
命名规范:
变量名后的=左右不能有空格;
命名只能使用英文字母、数字、下划线;
不能使用bash中的关键字;
可以使用help来查看关键字。
双引号和单引号的区别:
双引号能够识别变量,能够实现转义;单引号不能够是被变量,只能原样输出,单引号不能转义。
反引号,在脚本中需要执行一些指令并且将执行的结果赋值给变量的时候需要使用反引号。
2、只读变量
语法:readonly 变量
只读变量无法赋新的值
3、接收用户输入
语法:read -p 提示信息 变量名
4、删除变量
语法:unset变量名
5、条件语句
语法1:
if condition
then
command1
command2
...
fi
单行(一般用在命令行中) if [condition];then command ; fi
语法2:
if condition
then
command1
command2
...
else
command
fi
语法3:
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
6、运算符
算术运算符、逻辑运算符、字符串运算符、文件测试运算符
逻辑运算符:也即是布尔运算符
|非运算 -o或运算 -a与运算
字符串运算符:
= 检测两个运算符是否相等
!= 检测两个字符串是否不相等
-z 检测字符串是否为0
文件测试运算符:是则
返回true
-b file 检测文件是否是块设备文件
-c file 检测文件是否是字符设备文件
-d file 检测文件是否是目录
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件)
-q file 检测文件是否设置了SGID位
-k file 检测文件是否设置了粘着位
-p file 检测文件是否是有名管道
-u file 检测文件是否设置了SUID位
-r file 检测文件是否可读
-w file 检测文件是否可写
-x file 检测文件是否可执行
-s file 检测文件是否为空
-e file 检测文件(包括目录)是否存在