shell變量shell
1、分類 bash
配置文件,生效範圍劃分,存在兩類:ide
全局配置:函數
/etc/profile, /etc/profile.d/*.shspa
/etc/bashrc命令行
我的配置:進程
~/.bash_profile內存
~/.bashrcit
按功能劃分,存在兩類:class
profile類:爲交互式登陸的shell提供配置
/etc/profile, /etc/profile.d/*.sh
~/.bash_profile
功用:
(1) 定義環境變量,例如PATH、PS1
(2) 運行命令或腳本
bashrc類:爲非交互式登陸shell提供配置
/etc/bashrc
~/.bashrc
功用:
(1) 定義命令別名;
(2) 定義本地變量;
2、變量
變量名指向一個臨時的內存地址空間
類型:
環境變量:做用範圍當前shell進程及其子進程
本地變量:做用範圍當前shell進程
局部變量:做用範圍僅爲當前shell進程中某代碼片段(一般爲函數上下文)
位置變量:$1, $2
特殊變量:$?
變量定義方式:
bash內置變量:可直接調用,內置了許多環境變量,例如PATH等
自定義變量:變量名
變量賦值:變量名=值
定義本地變量:
name=value
查看:set
定義環境變量:
export name=value
declare -x name=value
查看:env, printenv, export
撤消變量:
unset name
引用變量:
${name}, $name
bash中的引用符號:
'': 強引用,變量替換不會發生
"":弱引用
``: 命令引用
3、用戶登陸
shell登陸類型:
交互式登陸:
直接經過終端進行的登陸;
經過su -l Username命令實現的用戶切換;
非交互式登陸:
圖形界面下打開的命令行窗口;
執行腳本;
su Username;
登陸時配置文件做用次序:
交互式登陸:
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非交互式登陸:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
編輯配置文件定義的新配置如何生效?
(1) 從新登陸;
(2) 讓當前shell進程去從新讀取指定的配置文件;
source /PATH/TO/SOMEFILE
./PATH/TO/SOMEFILE