Shell Basic
- 使用
chsh -s /bin/bash
命令來改變默認 shell。這一修改將在下一次登錄時生效。 - 使用
su - $USER -s /bin/bash
命令創建另一個進程,作為當前 shell 的子進程。新進程將是使用 bash 的登錄 shell
?
3.命令行可以使用單引號,也可以使用雙引號。這兩種引號之間有一個重要的差異。shell 將雙引號(")之間的 shell 變量展開,但是在使用單引號(')時不進行展開。
?
4.unset VAR1;echo $VAR1
?
5.歷史
包含 string 的最近的命令
?
?6.setenv和export都可以將變量導出給子shell.但語法有所不同。
setenv VAR1 var1
export VAR1
注:它們在變量名前都不加$
?
7.使用命令 set?-u 可以針對引用未定義的變量的情況生成一個錯誤,使用 set?+u 可以禁用這種警告.
注意取消一個不存在的變量并不會產生錯誤,即使在指定 set?-u 時也是如此。
?
8.可以使用 unset 命令從 Bash shell 中清除變量。可以使用 -v 選項來確保刪除變量定義。函數可以使用與變量相同的名字,因此如果希望清除函數定義,就請使用 -f 選項。在沒有使用 -f 或 -v 的情況下,如果存在這樣一個變量,那么 bash 的 unset 命令就會清除變量定義;否則,如果存在這樣一個函數,這個命令就清除函數定義 .
9.在登錄 Linux 系統時,您的 id 就有了一個默認 shell,它就是您的登錄 shell。如果這個 shell 是 bash,那么它就會在您控制系統之前先執行幾個配置腳本。如果存在 /etc/profile 文件,就首先執行這個文件。根據發行版的不同,/etc 中的其他腳本也可能會執行,例如 /etc/bash.bashrc 或 /etc/bashrc。這些腳本運行之后,如果主目錄中存在腳本,該腳本也會被執行。Bash 會按照 ~/.bash_profile、~/.bash_login 和 ~/.profile 的順序來查找文件。最先找到的文件會首先執行。
當您登出系統時,如果主目錄中存在 ~/.bash_logout 腳本,bash 就會執行它。
一旦登錄進系統并使用 bash,您還可以啟動另外一個 shell(稱為交互式 shell)來運行命令,例如在后臺運行命令。在這種情況中,bash 只會執行 ~/.bashrc 腳本(假設這個腳本存在,如果存在,則是通過使用~/.bash_profile去檢查調用的)。通常可以使用如清單所示的命令在 ~/.bash_profile 檢查這個腳本,以便可以在登錄時或在啟動交互式 shell 時執行它。
檢查 ~/.bashrc
# include .bashrc if it exists
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
可以使用 --login 選項強制 bash 像登錄 shell 一樣讀取配置文件(通常在除root用戶外的其他用戶的主目錄下,是沒有~/.bashrc腳本的,它會使用/etc/bashrc腳本)。如果不希望執行登錄 shell 的配置文件,可以指定 --noprofile 選項。類似地,如果希望對某個交互式 shell 不執行 ~/.bashrc 文件,可以使用 --norc 選項來啟動 bash。也可以通過指定 --rcfile 選項加上希望使用的文件名來強制 bash 使用 ~/.bashrc 之外的文件。
?
以其他方式啟動 bash
除了前面介紹的這種在終端中運行 bash 的標準方法之外,bash 也可以通過其他方法加以使用。
除非您引用(source) 腳本在當前 shell 中運行,否則它就會在自己的非交互式 shell 中運行,上面的配置文件都不會被讀取。然而,如果設置了 BASH_ENV 變量,那么 bash 就會對這個值進行擴展,并假設它是一個文件名。如果這個文件存在,那么 bash 就會在非交互式 shell 中執行任何腳本或命令之前先執行這個文件。
?使用 BASH_ENV
| ian@attic4:~$ cat testenv.sh #!/bin/bash echo "Testing the environment" ian@attic4:~$ cat somescript.sh #!/bin/bash echo "Doing nothing" ian@attic4:~$ export BASH_ENV="~/testenv.sh" ian@attic4:~$ ./somescript.sh Testing the environment Doing nothing |
?
非交互式 shell 也可以使用 --login 選項啟動,從而強制配置文件的執行。
?
轉載于:https://www.cnblogs.com/xiaoyixy/archive/2008/08/18/1270236.html
總結
以上是生活随笔為你收集整理的Shell Basic的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WMS Schema
- 下一篇: 2008-08-24