linux學習篇8---- 《鳥哥的Linux私房菜基礎學習篇(第三版)》讀書筆記
ps.bash爲shell中的一種 一般linux的默認shell爲bash
ps.bash中 \爲跳脫命令 如:\Enter 就是換行
- 命令別名配置功能: (alias)
使用 alias 即可!你可以在命令列輸入 alias 就可以知道目前的命令別名有哪些了!也可以直接下達命令來配置別名呦:
alias lm='ls -al' 這樣輸入lm 就等於 ls -al了
unalias lm
取消別名
Bash shell 的內建命令: type
[root@www ~]# type [-tpa] name 選項與參數: :不加任何選項與參數時,type 會顯示出 name 是外部命令還是 bash 內建命令 -t :當加入 -t 參數時,type 會將 name 以底下這些字眼顯示出他的意義: file :表示爲外部命令; alias :表示該命令爲命令別名所配置的名稱; builtin :表示該命令爲 bash 內建的命令功能; -p :如果後面接的 name 爲外部命令時,纔會顯示完整文件名; -a :會由 PATH 變量定義的路徑中,將所有含 name 的命令都列出來,包含 alias相當於whick命令
bash變量:
echo $variable 取變量 如 echo $PATH就是取出環境變量 若變量不存在的時候 輸出爲空
variable = value 爲變量賦值
變量的配置守則:
1.等號兩邊不能直接接空格符,如下所示爲錯誤: 『myname = VBird』
2.變量名稱只能是英文字母與數字
3.變量內容若有空格符可使用雙引號『"』或單引號『'』將變量內容結合起來,但
- 雙引號內的特殊字符如 $ 等,可以保有原本的特性,如下所示:
『var="lang is $LANG"』則『echo $var』可得『lang is en_US』 - 單引號內的特殊字符則僅爲一般字符 (純文本),如下所示:
『var='lang is $LANG'』則『echo $var』可得『lang is $LANG』
『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』
5.若該變量爲擴增變量內容時,則可用 "$變量名稱" 或 ${變量} 累加內容,如下所示:
『PATH="$PATH":/home/bin』
6.取消變量的方法爲使用
unset :『unset 變量名稱』例如取消 myname 的配置:
『unset myname』
ps. echo $? 表示上一個命令的回傳值 如果不爲0的話 這上一個命令出錯
RANDOM
我們可以透過這個隨機數文件相關的變量
($RANDOM) 來隨機取得隨機數值
只要
echo $RANDOM 時,系統就會主動的隨機取出一個介於 0~32767 的數值。
[root@www ~]# declare -i number=$RANDOM*10/32768 ; echo $number 8 <== 此時會隨機取出 0~9 之間的數值喔!
環境變量和shell變量
環境變量相當於全局變量,適用於當前SHELL(父進程)和由父進程調用的子進程,如打開編輯器vi、腳本、應用或是再打開一個子shell。
shell變量就是當前shell使用的變量了,它只是“本地“有效,相當於本地變量,不適用於其他子進程,只在當前shell生命週期內有效。
[root@www ~]# export 變量名稱
可以將shell變量變爲環境變量
永久變量和臨時變量
管是自定義的變量還是通過export導爲環境變量的自定義變量都只是在shell生命週期內有效,這樣的變量就是臨時變量,如果我想設置一個變量使其永久生效怎麼辦呢?可以修改兩個配置文件:/etc/profile和~/.bashrc,前者對所有用戶有效,後者只對當前用戶有效。
影響顯示結果的語系變量
(locale)
[root@www ~]# locale -a
顯示所有的語系
- read
要讀取來自鍵盤輸入的變量,就是用 read 這個命令了。這個命令最常被用在 shell script 的撰寫當中
[root@www ~]# read [-pt] variable 選項與參數: -p :後面可以接提示字符! -t :後面可以接等待的『秒數!』這個比較有趣~不會一直等待使用者啦! 範例一:讓用戶由鍵盤輸入一內容,將該內容變成名爲 atest 的變量 [root@www ~]# read atest This is a test <==此時光標會等待你輸入!請輸入左側文字看看 [root@www ~]# echo $atest This is a test <==你剛剛輸入的數據已經變成一個變量內容!
- declare / typeset
declare 或 typeset 是一樣的功能,就是在『宣告變量的類型』。如果使用 declare 後面並沒有接任何參數,那麼 bash 就會主動的將所有的變量名稱與內容通通叫出來
[root@www ~]# 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 <==瞭乎??
範例四:讓 sum 變成非環境變量的自定義變量吧! [root@www ~]# declare +x sum <== 將 - 變成 + 可以進行『取消』動作 [root@www ~]# declare -p sum <== -p 可以單獨列出變量的類型 declare -ir sum="450" <== 看吧!只剩下 i, r 的類型,不具有 x 囉!ps.如果你不小心將變量配置爲『只讀』,通常得要註銷再登陸才能復原該變量的類型了! @_@