一、檢查 /etc/shells 這個文件能夠獲得有多少可用的shell,通常有一下幾個:shell
Linux 默認就是使用 bash 。數組
爲何咱們系統上合法的 shell 要寫入 /etc/shells 這個文件? 緩存
由於系統某些服務在運行過程當中,會去檢查使用者可以使用的 shells ,而這些 shell 的查詢就是經過 /etc/shells 這個文件。bash
當登錄的時候,系統就會分配個 shell 來工做。 而這個登錄取得的 shell 記錄在 /etc/passwd 這個文件內。測試
二、~/.bash_history 記錄的是前一次登錄之前所運行過的命令, 而至於這一次登錄所運行的命令都被緩存在內存中,當你成功的註銷系統後,該命令記憶纔會記錄到 .bash_history 當中。spa
三、命令行
四、命令別名配置功能: (alias)blog
命令行輸入 alias 就能夠知道目前的命令別名有哪些。繼承
能夠直接下達命令來配置別名:內存
alias lm='ls -al'
五、除了完整的字符串以外, bash 還支持許多的通配符來幫助用戶查詢與命令下達。
舉例來講,想要知道 /usr/bin 底下有多少以 X 爲開頭的文件,可使用:『 ls -l /usr/bin/X* 』
六、怎麼知道某個命令是來自於外部命令(指的是其餘非 bash 所提供的命令) 或是內建在 bash 當中?
利用 type 這個命令來觀察便可, type 也能夠用來做爲相似which命令的用途:找命令
七、命令太長時能夠用 \[Enter] 使命令換行繼續輸入。
八、下達 ls 這個命令時,系統就是透過 PATH 這個變量裏面的內容所記錄的路徑順序來搜尋命令。若是在搜尋完 PATH 變量內的路徑還找不到 ls 這個命令, 會在屏幕上顯示『 command not found 』的錯誤信息。
九、爲了區別與自定義變量的不一樣,環境變量一般以大寫字符來表示。
十、能夠利用 echo 這個命令來取用變量。變量在被取用時,前面必需要加上$
十一、用『等號(=)』鏈接變量與他的內容能夠配置或修改某個變量
十二、
1三、在一串命令中,在 ` 以內的命令將會被先運行,而其運行出來的結果將作爲外部的輸入信息
1四、用env 與 export 能夠查看該shell環境下全部的環境變量。
1五、set 除了環境變量以外, 還會將其餘在 bash 內的變量統統顯示出來。
1六、變量「?」表明上一個運行的命令所回傳的值。
當咱們運行某些命令時, 這些命令都會回傳一個運行後的代碼。通常來講,若是成功的運行該命令, 則會回傳一個 0 值,若是運行過程發生錯誤,就會回傳『錯誤代碼』
1七、export: 自定義變量轉成環境變量。由於子程序僅會繼承父程序的環境變量, 子程序不會繼承父程序的自定義變量。
那如何將環境變量轉成自定義變量呢?可使用declare。
1八、變量的有效範圍:咱們在上頭的export命令說明中,就提到了這個概念了。若是在跑程序的時候,有父程序與子程序的不一樣程序關係時, 則『變量』能否被引用與 export 有關。被 export 後的變量,咱們能夠稱他爲『環境變量』! 環境變量能夠被子程序所引用,可是其餘的自定義變量內容就不會存在於子程序中。
1九、要讀取來自鍵盤輸入的變量,使用 read 這個命令
read [-pt] variable
選項與參數: -p :後面能夠接提示字符! -t :後面能夠接等待的『秒數!』這個比較有趣~不會一直等待使用者啦!
20、declare 或 typeset 是同樣的功能,就是在『宣告變量的類型』。若是使用 declare 後面並無接任何參數,那麼 bash 就會主動的將全部的變量名稱與內容統統叫出來,就好像使用 set 同樣啦!
declare [-aixr] variable
選項與參數: -a :將後面名爲 variable 的變量定義成爲數組 (array) 類型 -i :將後面名爲 variable 的變量定義成爲整數數字 (integer) 類型 -x :用法與 export 同樣,就是將後面的 variable 變成環境變量; -r :將變量配置成爲 readonly 類型,該變量不可被更改內容,也不能 unset 範例一:讓變量 sum 進行 100+300+50 的加總結果 [root@www ~]# sum=100+300+50 [root@www ~]# echo $sum 100+300+50 <==咦!怎麼沒有幫我計算加總?由於這是文字型態的變量屬性啊! [root@www ~]# declare -i sum=100+300+50 [root@www ~]# echo $sum 450
2一、
2二、若是須要非字符串類型的變量,那就得要進行變量的宣告才行
2三、
將 sum 變成環境變量
[root@www ~]# declare -x sum
讓 sum 變成非環境變量的自定義變量吧!
[root@www ~]# declare +x sum <== 將 - 變成 + 能夠進行『取消』動做
2四、數組 (array) 變量類型
範例:配置上面提到的 var[1] ~ var[3] 的變量。 [root@www ~]# var[1]="small min" [root@www ~]# var[2]="big min" [root@www ~]# var[3]="nice min" [root@www ~]# echo "${var[1]}, ${var[2]}, ${var[3]}" small min, big min, nice min
2五、變量內容的刪除:#和## 從前面開始刪除, %和%%從後面開始刪除
2六、
${變量/舊字符串/新字符串} ${變量//舊字符串/新字符串} |
若變量內容符合『舊字符串』則『第一個舊字符串會被新字符串取代』 若變量內容符合『舊字符串』則『所有的舊字符串會被新字符串取代』 |
2七、在某些時刻咱們經常須要『判斷』某個變量是否存在,若變量存在則使用既有的配置,若變量不存在則給予一個經常使用的配置。
new_var=${old_var-content}
2八、
變量配置方式 | str 沒有配置 | str 爲空字符串 | str 已配置非爲空字符串 |
var=${str-expr} | var=expr | var= | var=$str |
var=${str:-expr} | var=expr | var=expr | var=$str |
var=${str+expr} | var= | var=expr | var=expr |
var=${str:+expr} | var= | var= | var=expr |
var=${str=expr} | str=expr var=expr |
str 不變 var= |
str 不變 var=$str |
var=${str:=expr} | str=expr var=expr |
str=expr var=expr |
str 不變 var=$str |
var=${str?expr} | expr 輸出至 stderr | var= | var=$str |
var=${str:?expr} | expr 輸出至 stderr | expr 輸出至 stderr | var=$str |
這個減號的測試並不會影響到舊變量的內容。 若是你想要將舊變量內容也一塊兒替換掉的話,那麼就使用等號 (=) 吧!
2九、history查看歷史命令,!number運行響應序號的命令,!!運行上一個命令。