十四 bash shell的操作環境

2021-07-12 06:22:35 字數 2704 閱讀 3316

1.  路徑與命令的查詢順序:當我們在終端輸入乙個命令時,如#ls  那麼在系統中命令執行的順序的優先順序如下:

(1)是以相對 / 絕對路徑執行命令,如:#/bin/ls   或則 #ls

(2)由alias 找到該命令來執行

(3)由bash內建的 (builtin) 指令來執行;

(4)透過 $path 這個變數的順序搜尋到的第乙個指令來執行。

(5)如下面的乙個例子:

3.  bash的環境配置檔案:

(1)在系統上有一些環境配置檔案,每次我們啟動bash時就會自動讀取這些配置檔案,以規劃好bash的操作環境,所以每次我們進入bash終端就可以獲取一堆變數。

(2)系統上的這一些環境配置檔案分為全體系統配置檔案和使用者個人偏好配置檔案。

(3)我們在bash終端中定義的自定義變數,命令別名在我們登出bash(或則重啟系統)之後就會失效,只有將這些設定寫入配置檔案才能永久儲存下來。

4.  login  shell與non-login  shell  的區別

(1)這兩者重點在於有沒有登入login  。

(2)login  shell :取得bash時需要完整的登入流程,就稱為login shell。例如:當我們由tty1~tty6登入,需要輸入使用者名稱和密碼,此時取得的bash就稱為 login shell  。

(3)non-login  shell :取得bash介面的方法不需要重複登入的舉動。例如:我們以x windows(圖形桌面)登入linux後,再以x windows的圖形介面啟動終端機,此時的終端機並沒有需要再次輸入賬號和密碼,那個bash環境就屬於non-login  shell 。再如:我們在原本的bash環境中再次執行bash命令,同樣沒有要求輸入賬號密碼,那第二個bash(子程序)也是non-login  shell 。

(4)login  shell與non-login  shell 這兩者讀取的配置檔案資料並不一樣。

5.  login  shell 只會讀取兩個配置檔案:

1. /etc/profile: 這是系統整體的設定,你最好不要修改這個檔案;

2. ~/.bash_profile 或 ~/. bash_login 或 ~/. profile: 屬於使用者個人設定, 你要改自己的資料,就寫入這裡!

(1)bash 的 login shell 情況下所讀取的整體環境設定檔其實只有 /etc/profile, 但是 /etc/profile 還會呼叫出其它的設定檔, 所以讓我們的 bash 操作介面變的非常的友善!bash 在讀完了整體環境設定的 /etc/profile 並藉此呼叫其它設定檔後, 接下來則是會讀取使用者的個人設定檔。 在 login shell 的 bash 環境中, 所讀取的個人偏好設定檔其實主要有三個, 依序分別是:

1. ~/. bash_profile

2. ~/. bash_login

3. ~/. profile

其實 bash 的 login shell 設定只會讀取上面三個檔案的其中乙個, 而讀取的順序則是依照上面的順序。 也就是說, 如果 ~/. bash_profile 存在, 那麼其它兩個檔案不論有無存在, 都不會被讀取。 如果 ~/. bash_profile 不存在才會去讀取 ~/. bash_login, 而前兩者都不存在才會讀取 ~/. profile 的意思。

(2)整個 login shell 的讀取流程:實線的的方向是主線流程, 虛線的方向則是被呼叫的設定檔! 從上面我們也可以清楚的知道, 在 centos 的login shell 環境下,最終被讀取的設定檔是『 ~/. bashrc 』 這個檔案。 所以,一般情況我們都是將自己的偏好設定寫入

~/. bashrc這個檔案,然後source 該檔案。比如path環境變數的修改。

6.  non-login  shell 只會讀取乙個檔案:~/. bashrc 這個檔案。不同的使用者登入,這個檔案的內容都不一樣。

(1)/etc/man.config  規範了使用 man 的時候, man page 的路徑到**去尋找

(2)~/. bash_history    記錄我們的歷史命令。

(3)~/. bash_logout   記錄了『當我登出 bash 後, 系統再幫我做完什麼動作後才離開』

8.  終端機的環境設定: stty, set

(1)stty 檢視和設定終端機的輸入按鍵代表意義命令:

# stty [-a]

選項與引數:

-a : 將目前所有的 stty 引數列出來;

(2)set命令:設定自己的終端機設定值

9.  萬用字元與特殊符號:

Linux學習 Bash Shell的操作環境

登入主機的時候,螢幕會顯示一些說明文字,我們習慣的環境變數 命令別名等是否可以登入就主動幫我設定好?這些都是需要注意的。例外這些設定值又可以分為系統整體設定值與各人喜好設定值,僅是一些檔案放置的地點不同。命令執行的順序 1 以相對 絕對路徑執行命令,例如 bin ls 或 ls 2 由alias找到...

bash shell字元操作

bash shell字元操作 計算字元長度 expr length string expr string 這個方法真 從開始位置匹配子串長度 expr string substring substring為正則 expr match string substring substring為正則 匹配到...

bash shell實現併發多程序操作

bash shell實現併發多程序操作 前言目前我掌握的基本語言,php 最為熟悉,專案裡 都是用其實現 bash shell 運維利器 c acm專用 這裡面能實現多執行緒的貌似只有c,但是我c只是用來學習和實現演算法和資料結構,因此工作中我想要模擬多程序併發操作,就只能依靠bash shell指...