Vim的使用与Bash正则表达式
1、Vim的使用shell
[i],[o],[a],[r](插入替换)vim
通常模式 ——————————> 编辑模式数组
—————————————— ——————————————————bash
光标移动,搜索替换 <—————————— 以插入替换来编辑内容app
[Esc]测试
[:],[/],[?]ui
删除字符,整行 ——————————> 命令行模式编码
—————————————— ——————————————————spa
复制整行,粘贴整行 <—————————— 读取/保存文件
[Esc]
1) [v],[V],[Ctrl]+[v]
2)光标移动
3)[y]
:n 编辑下一个文件,:N 编辑上一个文件,:files 查看全部的文件
窗口之间的切换: [Ctrl] + [w] + [j] / [Ctrl] + [w] + [下] 移到下方的窗口
[Ctrl] + [w] + [k]/ [Ctrl] + [w] + [上] 移到上方的窗口
[Ctrl] + [w] + [q] 结束当前的窗口
vim的设置值通常存放在/etc/vimrc文件中,可使用 # vim ~/.vimrc进行修改,可是不建议这样操做。
2、Bash
硬件、内核与Shell
图形 ————> 用户界面 ——————> 核心 ————> 硬件
—————— ——————————————— ———— ————————
文字界面 <———— Shell,KDE,applications <—————— Kernel <———— Hardware
接受来自用户的指令 控制硬件工做,包括CPU进程 系统工做的实体
内存管理和IO
shell的功能只是提供用户操做系统的一个借口,须要调用其余的命名(软件)来执行,狭义上shell就是bash命令,广义上shell也包括图形界面软件。
/bin/bash (Linux默认的shell)
Bash shell的功能:命令的记忆、命令与文件的补齐、命令别名的设置功能、做业控制,先后台的控制、程序脚本、通配符。
Shell
1、shell的变量功能
环境变量的举例:
变量的有效范围:通常状况下,父进程的自定义变量没法在子进程内使用,除非经过export将其变为环境变量,不然就是自定义变量。(与内存分配的记忆块有关)
-a: variable为数组类型
-i: variable为integer类型
-x:用法与export一致
-r:变量设置为readonly,只读类型,不能够修改
数组变量类型:array
数组名 下标 变量值
变量内容的删除、替换:
${变量#关键字} 若变量内容从头开始数据符合”关键字“,则将符合的最短数据删除。
${变量##关键字} 若变量内容从头开始数据符合”关键字“,则将符合的最长数据删除。
${变量%关键字} 若变量内容从尾开始数据符合”关键字“,则将符合的最短数据删除。
${变量%%关键字} 若变量内容从尾开始数据符合”关键字“,则将符合的最长数据删除。
${变量/旧字符串/新字符串} 替换第一个符合的字符串。
${变量//旧字符串/新字符串} 替换所有符合的字符串。
new_var=${old_var-content}
新变量 关键字 旧变量 变量内容
3、Bash Shell操做环境
一个命令被执行时,命令执行的顺序是:
Shell
1、通配符与特殊符号
通配符 | |
* | 0到无穷个任意的字符 |
? | 必定有一个任意字符 |
[] | 必定由一个[]中的字符 |
[-] | 编码顺序内全部的字符 |
[^] | 必定有一个非[]中的字符 |
特殊符号 | |
# | 批注符号,视为说明,并不执行 |
\ | 转义字符,将后面的内容还原为原来的意思 |
| | 管道,风格两个管道命令的界定 |
; | 连续命令的执行 |
~ | 用户的主文件夹 |
$ | 使用变量的前导符 |
& | 做业控制,命令变成背景下工做 |
! | 逻辑非 |
/ | 目录符号 |
>,>> | 数据流重定向,输出 |
<,<< | 数据流重定向,输入 |
' ' | 无变量置换的变量表示 |
" " | 有变量置换的变量表示 |
` ` | 先执行的命令 |
() | 子shell的起始与结束标志 |
{} | 中间为块命令的组合 |
2、shell其它指令及功能
cmd1 ; cmd2 执行完cmd1,执行cmd2
cmd1 && cmd2 cmd1正确执行则执行cmd2
cmd1 || cmd2 cmd1正确执行则不执行cmd2
cut能够将一段信息的某一段切出来。
# cut -d ‘分隔字符’ -f field
# cut -c 字符范围
grep 分析一行的信息
# grep [-acinv] [--color=auto] '字符串' filename
# sort [-fbMnrtuk] [file or stdin]
# tr [-ds] SET1 ... 删除一段信息中的文字或者文字替换
# col [-xb] -x tab转为空格,-b 文字内有转义字符时直接保留\后的内容
# join [-ti12] file1 file2 两个文件中相同数据一行加在一块儿
# paste [-d] file1 file2 不进行对比直接将两个文件贴在一块儿
# expand [-t] file tab转空格
3、Shell Script 程序化脚本
命令行汇整执行,相似与程序的编写,可是不须要编译执行,
利用shell的功能所写的一个纯文本的程序,在一些shell语法与命令卸载里面配合正则表达式,管道和重定向达处处理的目的。
shell script执行的方法:
直接命令执行 shell.sh 文件必须具有rx的权限, 以bash进程来执行,经过./she.sh或shell she.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH