## 一、Shell简介
Shell :命令行解释器,是用户与系统沟通时的媒介
在Unix系统中有各种Shell, Linux采用bash为其默认shell
系统可以使用的shell记录在 /etc/shells中
## 二、bash
bash :Bourne Again Shell的缩写
GNU计划的一个组件
与Unix上的Bourne Shell完全兼容。
支持命令行输入、操作历史查询、快捷键、使用变量等功能。
![](https://box.kancloud.cn/2016-06-14_575f8bb2ed90e.jpg)
![](https://box.kancloud.cn/2016-06-14_575f8bb30b099.jpg)
## 三、预定义环境变量
在bash中有很多预定义环境变量(预先定义好名称和使用的变量)
系统通过预定义环境变量来定义shell的环境
用户可以用set或env查询当前的环境变量
set可以查看环境变量(所有shell)以及本地变量(当前shell),evn只能查看环境变量.
![](https://box.kancloud.cn/2016-06-14_575f8bb31ca1c.jpg)
常用的预定义环境变量
HOME : 当前用户的主目录
PATH : 当前用户的可执行文件搜索路径
![](https://box.kancloud.cn/2016-06-14_575f8bb32e18d.jpg)
LANG : 程序应该使用的默认语言
![](https://box.kancloud.cn/2016-06-14_575f8bb3404b8.jpg)
PS1 : 行提示符
![](https://box.kancloud.cn/2016-06-14_575f8bb352fcd.jpg)
## 四、history
在bash中输入histroy指令可以查询用户的过往操作。
内存中记录的过往指令数根据环境变量中HISTSIZE而定
![](https://box.kancloud.cn/2016-06-14_575f8bb36313f.jpg)
history表存储在内存中,在用户logout时会记录入用户的主目录下的.bash_history文件中。在下次login时载入。
.bash_history中的指令数根据环境变量中的HISTFILESIZE而定。
![](https://box.kancloud.cn/2016-06-14_575f8bb374efc.jpg)
强制写入:![](https://box.kancloud.cn/2016-06-14_575f8bb3876a3.jpg)
![](https://box.kancloud.cn/2016-06-14_575f8bb39ed8b.jpg)
## 五、调用过往指令
使用!来调用过往指令
!! :重复执行上一条指令
!a :重复执行上一条以a为首的指令
!number :重复执行上一条在history表中记录号码为number的指令
!-number :重复执行前第number条指令
!$ :截取上一条指令的最后一个值
可以用<ctrl + r> 来在history表中查询某天过往指令
## 六、alias
在shell下键入alias可以查询当前alias列表
用户可以alias来为一条命令取一个简单的别名
用户也可以用unalias来取消一条别名记录
alias记录在shell中总是先行
![](https://box.kancloud.cn/2016-06-14_575f8bb3b0ecd.jpg)
![](https://box.kancloud.cn/2016-06-14_575f8bb3ca86b.jpg)
![](https://box.kancloud.cn/2016-06-14_575f8bb3de983.jpg)