T-04-vim与bash shell
1. vim程序编辑器
在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定,在所有的 Linux distributions 上头都会有的一套文书编辑器就是 vi ,vim 是 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息。
1.1. vi
vi的三种模式1.2. vim
vim常用命令示意图1.3. vim几个额外功能
- 可视化区块(visual block)
visual block按键- 多文件编辑
多文件编辑- 多窗口功能
多窗口功能- 关键词补全
关键词补全2. bash
2.1. bash是一个shell
Shell将用户输入的指令与 Kernel 沟通, Kernel 就可以控制硬件来工作!shell的功能只是提供用户操作系统的一个接口。狭义的shell程序指命令行方面的软件,包括bash;广义的shell程序包括图形用户界面模式的软件(可以操作应用程序调用内核工作)。
shell就像是Linux的任督二脉。一法通,万法通
早期 Unix 时代,发展者众, shell 衍生出众多版本,第一个流行的 shell 是由 Steven Bourne 发展出来的,为了纪念他所以就称为 Bourne shell ,或直接简称为 sh !而后来另一个广为流传的 shell 是由柏克莱大学的 Bill Joy 设计依附于 BSD 版的 Unix 系统中的 shell ,这个 shell 的语法有点类似 C 语言,所以才得名为 C shell ,简称为 csh !此外还有商业上常用的 K SHell, 以及 TCSH 等等,每一种 Shell 都各有其特点。至于 Linux 使用的这一种版本就称为『 Bourne Again SHell (简称 bash) 』,这个 Shell 是 Bourne Shell 的增强版本,也是基准于 GNU 的架构下发展出来。
- bash shell的优点在于:
历史命令(history)
命令与文件补全功能(Tab)
命令别名设置功能(alias)
任务管理、前后台控制(job control、foreground、background)
程序化脚本(shell scripts)
通配符(wildcard)
-
查询命令是否为bash shell的内置命令: type
type命令
2.2. shell 变量
变量与程序的关系-
env 观察环境变量与常见变量
env命令 -
set 观察环境变量与自定义变量
set命令 - export 自定义变量转成环境变量
当用户登入 Linux 并取得一个 bash 之后,你的 bash 就是一个独立的程序,这个程序的识别使用的是一个称为程序标识符,被称为 PID 的就是。 接下来你在这个 bash 底下所下达的任何指令都是由这个 bash 所衍生出来的,那些被下达的指令就被称为子程序了。子程序仅会继承父程序的环境变量, 子程序不会继承父程序的自定义变量!所以你在原本 bash 的自定义变量在进入了子程序后就会消失不见, 一直到你离开子程序并回到原本的父程序后,这个变量才会又出现!
bash运行中进程关系 -
read 键盘读取输入变量
read命令 -
declare,typeset 声明变量的类型
declare命令 -
array 使用数组声明变量
array命令 -
ulimit 限制用户系统资源
ulimit命令 -
变量内容的删除和替换
删除和替换 -
变量的测试与内容替换
测试与替换
2.3. alias与history
命令别名与变量有什么不同呢?命令别名是『新创一个新的指令, 你可以直接下达该指令』的,至于变量则需要使用类似『 echo 』指令才能够呼叫出变量的内容! 这两者当然不一样!
-
alias
alias命令 -
unalias
unalias命令 -
history
history命令
搭配【!】使用:
【!】命令
2.4. bash shell 操作环境
- Linux 系统命令运行的顺序:
- 以相对/绝对路径执行命令,/bin/ls、./ls;
- 由alias找到该命令来执行;
- 由bash内置的(builtin)命令来执行;
- 通过 $PATH 这个变量的顺序查找到的第一个命令来执行。
- bash的登录与欢迎信息:
/etc/issue、/etc/motd
- bash的环境配置文件:
login、non-login shell
/etc/profile(login shell才会读)
~/.bash_profile(login shell才会读)
source(读入环境配置文件的命令)
~/.bashrc(non-login shell会读)
其他配置文件
- 终端的环境设置:
stty
sttr命令
set
set命令 -
通配符(wildcard)
wildcard -
特殊符号
特殊符号
二幺士