bash 环境配置
配置文件:按生效范围划分,两类:
全局配置文件:/etc/profile,/etc/profile.d/*.sh,etc/bashrc
个人配置文件:~/.bash_profile,~/.bashrc
按功能分类:两类:
profile类:交互式登陆(即直接通过终端进行的登陆或su - username登陆)
/etc/profile ,/etc/profile.d/*.sh,~/.bash_profile
功用:1.定义环境变量,例如PATH,PS1 2.运行命令或脚本
bashrc类:非交互式登陆(图形界面下打开的命令窗口、执行脚本、su username)
/etc/bashrc,~/.bashrc
功用:1.定义命令别名 2.定义本地变量
配置文件作用次序:
交互式登陆:/etc/profile -> /etc/profile.d/*.sh ->~/.bash_profile -> ~/.bashrc -> /etc/bashrc
非交互式登陆:~/.bashrc -> /etc/bashrc ->/etc/profile.d/*.sh
配置文件修改好如何生效?
- 重新登陆
- 让shell进程重新读取指定的配置文件,source 或. 这样,但会有一定的副作用
bash中的变量:
类型:
环境变量:作用范围当前shell进程及其子进程
本地变量:作用范围当前shell进程
局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文)
位置变量:$1, $2
特殊变量:$?
变量定义方式:
bash内置变量:可直接调用,内置了许多环境变量,例如PATH等
自定义变量: 变量赋值:变量名=值
bash弱类型:
变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用;
定义本地变量:
name=value
查看:set
定义环境变量:
export name=value
declare -x name=value
查看变量:env, printenv, export
撤消变量:unsetname
引用变量:${name}, $name
bash中的引用符号:
‘‘: 强引用,变量替换不会发生
"":弱引用
``: 命令引用