bash環境配置:
配置文件,生效範圍劃分,存在兩類:
全局配置:
/etc/profile, /etc/profile.d/*.sh
/etc/bashrc
個人配置:
~/.bash_profile
~/.bashrc
按功能劃分,存在兩類:
profile類:爲交互式登錄的shell提供配置
/etc/profile, /etc/profile.d/*.sh
~/.bash_profile
功用:
(1) 定義環境變量,例如PATH、PS1
(2) 運行命令或腳本
bashrc類:爲非交互式登錄shell提供配置
/etc/bashrc
~/.bashrc
功用:
(1) 定義命令別名;
(2) 定義本地變量;
變量:內存空間,變量名
類型:
環境變量:作用範圍當前shell進程及其子進程
本地變量:作用範圍當前shell進程
局部變量:作用範圍僅爲當前shell進程中某代碼片斷(通常爲函數上下文)
位置變量:$1, $2
特殊變量:$?
變量定義方式:
bash內置變量:可直接調用,內置了許多環境變量,例如PATH等
自定義變量:
變量賦值:變量名=值
bash弱類型:
變量存儲數據時,默認均採用字符形式;任何變量可以不經聲明,直接引用;
120:24bits
120: 8bits
定義本地變量:
name=value
查看:set
定義環境變量:
export name=value
declare -x name=value
查看:env, printenv, export
撤消變量:
unset name
引用變量:
${name}, $name
bash中的引用符號:
'': 強引用,變量替換不會發生
"":弱引用
``: 命令引用
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
注意:副作用