bash变量类别:
- 本地变量:只对当前shell进程有效的变量,对其它shell进程无效,包括当前shell的子进程。
VAR_NAME=VALUE 变量赋值:向变量的存储空间保存数据
$(VAR_NAME) 变量引用
“”:弱引用,里面的变量会被替换。
”:强引用,里面的所有字符都是自变量,直接输出。 - 环境变量:对当前shell进程及其子进程shell有效,对其它的shell进程无效。
定义:export VAR_NAME=VALUE
导出:export VAR_NAME
用户可自定义环境变量
bash有许多内置的环境变量
撤销变量:unset VAR_NAME
只读变量:readonly VAR_NAME [一旦设置了就不能撤销了] - 局部变量:
对shell脚本中某代码片段有效;通常用于函数本地
local VAR_NAME = VALUE - 位置变量:
【$$1 ,$2, $3,…$(10),…】 - 特殊变量:
$?
查看当前shell进程中的所有变量:set
查看当前shell进程中的所有环境变量:export,printenv,env
变量命名:
1、不能使用程序汇总的关键字(保留字):if, case,for;
2、只能使用数字、字母和下划线,且不能以数字开头;
3、要见名知义:userName。
变量类型:(数值型,字符型,布尔型)
- 存储机制
数值:18 0001 0010 8位
文本:18 0000 0001
0000 1000 16位 - 存储空间
- 参与的运算方式
a=1 b=2 a+ b
bash的配置文件:
**/etc/profile:这是系统整体的配置,你最好不要修改这个文件;
~/.bash_profile 或 ~/.bash*_login 或 ~/.profile:属于使用者个人配置,你要改自己的数据,就写入这里!*
profile类:为交互式登陆的用户提供配置
全局:
/etc/profile
/etc/profile.d/*.sh
用户:
~/.bash_profile
功用:
1、设定环境变量
2、运行命令或脚本bashrc类:为非交互式登陆的用户提供配置
全局:
/etc/bashrc
用户:
~/.bashrc
功用:
1、设定本地变量
2、定义命令别名登陆类型:
交互式:直接通过终端输入账号和密码登陆:
使用su -l USERNAME 或 su - USERNAME
非交互式:su USERNAME 图形界面下的终端
图形界面下打开的终端
执行脚本通过编辑配置文件修改的配置生效:
1、退出并重新登陆
2、让bash重读次配置文件
. FILE
source FILE
交互登陆的用户:(–>调用)
/etc/profile –> /etc/profile.d/*.sh –> ~/.bash_profile –> ~/.bashrc –> /etc/bashrc
非交互式登录的用户:
~/.bashrc –> /etc/bashrc –> /etc/profile.d/*.sh