Shell env
shell環境¶
bash & shell¶
有很多種不同shell, 可以透過echo $0來確認目前使用的shell
ps查看關係
ubuntu@ubuntu:~/CPP_Project$ bash
ubuntu@ubuntu:~/CPP_Project$ bash
ubuntu@ubuntu:~/CPP_Project$ bash
ubuntu@ubuntu:~/CPP_Project$ ps -f
UID PID PPID C STIME TTY TIME CMD
ubuntu 34038 33903 0 12:21 pts/0 00:00:00 /bin/bash --init-file /home/ubuntu/.vscode-server/cli/servers/Stable-611f9bfce64f25108829dd295f54a6894e87339d/server/out/vs/workbench/contrib/terminal/browser/med
ubuntu 35418 34038 0 21:17 pts/0 00:00:00 bash
ubuntu 35437 35418 1 21:17 pts/0 00:00:00 bash
ubuntu 35450 35437 1 21:17 pts/0 00:00:00 bash
ubuntu 35489 35450 0 21:17 pts/0 00:00:00 ps -f
ubuntu@ubuntu:~/CPP_Project$ ps --forest
PID TTY TIME CMD
34038 pts/0 00:00:00 bash
35418 pts/0 00:00:00 \_ bash
35437 pts/0 00:00:00 \_ bash
35450 pts/0 00:00:00 \_ bash
35541 pts/0 00:00:00 \_ ps
bash¶
bash也支援下列選項
-c 從string中讀取命令
-i 啟動能夠讀取用戶輸入的shell
-l 作為登入shell
-r 啟動一個受限的shell
-s 從標準輸入中讀取命令
可以從echo $BASH_SUBSHELL查看是否生成子shell,返回0代表沒有
開啟__bash shell__時,通常會從5個不同啟動文件讀取命令
* /etc/profile : default
* $HOME/.bash_profile
* $HOME/.bashrc
* $HOME/.bash_login
* $HOME/.profile
大多數發行版中,保存個人用戶的bash shell為$HOME/.bashrc
變量¶
使用自定義變量時,使用小寫可以避免同名產生的災難
在子shell修改並不影響父shell的全域變量值
* printenv 輸出全域環境變數,或變數值
也可以用
* 數據變量:將環境變量作為數據使用echo $顯示變量值 *set顯示特定進程的所有環境變量 *unset刪除環境變量 * 設定全域變量的方法,也是先創造局部變量後,再將其導入全域變量export