(9)——bash1
最后更新于:2022-04-01 14:44:27
## 一、Shell简介
Shell :命令行解释器,是用户与系统沟通时的媒介
在Unix系统中有各种Shell, Linux采用bash为其默认shell
系统可以使用的shell记录在 /etc/shells中
## 二、bash
bash :Bourne Again Shell的缩写
GNU计划的一个组件
与Unix上的Bourne Shell完全兼容。
支持命令行输入、操作历史查询、快捷键、使用变量等功能。


## 三、预定义环境变量
在bash中有很多预定义环境变量(预先定义好名称和使用的变量)
系统通过预定义环境变量来定义shell的环境
用户可以用set或env查询当前的环境变量
set可以查看环境变量(所有shell)以及本地变量(当前shell),evn只能查看环境变量.

常用的预定义环境变量
HOME : 当前用户的主目录
PATH : 当前用户的可执行文件搜索路径

LANG : 程序应该使用的默认语言

PS1 : 行提示符

## 四、history
在bash中输入histroy指令可以查询用户的过往操作。
内存中记录的过往指令数根据环境变量中HISTSIZE而定

history表存储在内存中,在用户logout时会记录入用户的主目录下的.bash_history文件中。在下次login时载入。
.bash_history中的指令数根据环境变量中的HISTFILESIZE而定。

强制写入:

## 五、调用过往指令
使用!来调用过往指令
!! :重复执行上一条指令
!a :重复执行上一条以a为首的指令
!number :重复执行上一条在history表中记录号码为number的指令
!-number :重复执行前第number条指令
!$ :截取上一条指令的最后一个值
可以用<ctrl + r> 来在history表中查询某天过往指令
## 六、alias
在shell下键入alias可以查询当前alias列表
用户可以alias来为一条命令取一个简单的别名
用户也可以用unalias来取消一条别名记录
alias记录在shell中总是先行


