主要概念
Linux默认的shell是bash Shell
bash Shell 可以交互使用,或者作为一种强大的脚本语言来使用
bash启动时执行~/.bashrc文件中的命令,允许用户自定义其Shell
bash Shell保存它在所执行过的命令到历史记录中。在命令行可以使用!开头的各种历史记录替换名在历史记录中进行检索
1、bash Shell
2、命令列表和脚本
主要概念
多个命令可以用;隔开
退出命令时,每个命令向父命令返回一个整数,称作返回值
Shell变量$?表示先前执行命令的返回值
3、Bash变量
主要概念
Shell变量用A=apple语法来赋值。
用$字符来解析在变量,例如echo $A
在内核层,每个进程有一个由子进程继承的环境变量集合
export命令将Shell变量转化为环境变量
set和env命令分别用于列出Shell变量和环境变量
&& 和 ||有条件地隔开多个命令
4、命令行替换
5、 自定义Shell
主要概念
bash Shell本身即实现某些简单命令,这些命令与Shell的行为密切相连,被称为内置命令
Shell别名可创建为任意文本的命令
用alias命令建立和检查Shell别名
用unalias命令删除Shell的别名
用PSI变量自定义bash Shell提示符
Shell标记可以用set-f命令设定,用set+f命令删除
Shell选项用shopt命令检查、设置和复位
6、获得Shell脚本和Shell初始化
Shell脚本用source或 . 命令获得
Shell脚本在执行获得脚本的同一个Shell中执行
bash Shell既可以是登录Shell,也可以是非登录Shell
bash Shell既可以是交互式Shell,也可以是非交互式Shell
在启动每个登录Shell时可获得/etc/profile、/etc/profile.d目录中的文件,以及~/.bash_profile
在每次Shell启动时可获得/etc/bashrc和~/.bashrc
在每次退出Shell时可获得~/.bash_logout
7、登录Shell、非登录式Shell、交互式Shell和非交互式Shell
登录Shell
启动时,登录Shell首先获得/ect/profile,接着获得与模板/etc/profile.d/*.sh相匹配的所有文件
非登录Shell(交互式)
获得~/.bashrc文件,寻找并获得/etc/bashrc
非登录Shell(非交互式)
默认情况下,非交互式Shell和非登录Shell不获得任何启动文件
8、/etc/profile和~/.bash_profile用来配置环境变量,它们只被初始化一次。~/.bashrc和/etc/bashrc习惯上用于Shell特有的自定义
对于环境变量配置,有一个通用启动文件(/etc/profile)和一个本地启动文件(~/.bash_profile),前者可以被系统管理员用来配置系统范围,后者可以被个人用户自定义自己的环境。/etc/bashrc和~/.bashrc也有类似情况