Bash
- Bash是什麼?
- 檢視Linux中的Shell
- Bash的優點
-
- 指令記憶功能
- 補全功能
- 指令别名
- 工作、前景背景控制
- 腳本
- 通配符
- 内置指令
- Bash環境配置流程
-
- Login Shell
- Non-login shell
Bash是什麼?
Bash 全稱為Bourne Again SHell,是Shell程式的一種,提供一個界面(也就是終端),可讓使用者通過調用各種指令來作業系統
檢視Linux中的Shell
系統支援的Shell程式在 /etc/shells 檔案中,Linux預設使用bash(替代了sh)
想要知道使用者目前使用的Shell,可檢視 /etc/passwd 檔案
Bash的優點
指令記憶功能
上一次登陸所執行的指令記錄在 ~/.bash_history,而這一次登陸所執行的指令暫存于記憶體,隻有退出時才會寫到該檔案,可通過⬆⬇檢視前後指令
指令 history 可檢視輸入的曆史記錄,n表示顯示個數,-c 清除曆史,-r 将~/.bash_history的内容讀到記憶體,-w将目前新增的曆史記錄寫到 ~/.bash_history
補全功能
使用 tab 可進行輸入補全
指令别名
可通過 alias 簡化指令,如下使用 lm 代替 ls -al,取消使用unalias
工作、前景背景控制
可讓目前工作在背景中執行
腳本
可将一連串指令寫成一個檔案及采用互動式運作,用于完成一個大工程
通配符
符号 | 意義 |
---|---|
* | 0到多個任意字元 |
? | 1個任意字元 |
[] | [abcd]表示可能為abcd中的任意一個或多個字元 |
[-] | [0-9]表示有0-9的任意數字 |
[^] | [ ^a ] 除了a以外的字元 |
内置指令
除了在 /bin 外的系統指令,bash本身也自帶了指令,可通過 type 檢視目前指令類型
- 不加參數顯示其完整類型
- -t 輸出file表示系統指令,alias 表示指令為别名,builtin則為bash指令
- -p 顯示系統指令的路徑
- -a 顯示出指令的搜尋執行順序,如下先使用的是ls --color=auto,而不是/bin/ls
可看到 ls 是 ls --color=auto 的别名,cd 為bash指令
Bash環境配置流程
Login Shell
Login Shell指通過完整流程擷取Bash,列如在指令行界面登陸。首先讀取/etc/profile配置環境變量、語言、指令别名等,然後讀取個人配置~/.bash_profile( ~/.bash_login或 ~/.profile)
如下可看到其調用了bashrc,設定指令行提示符号等
Non-login shell
而Non-login shell指通過視窗界面等方式登陸後再打開終端,僅讀取~/.bashrc,然後讀取/etc/bashrc、/etc/profile.d/*.sh