鳥哥的Linux私房菜下載見
http://www.linuxidc.net/thread-2200-1-1.html
http://www.linuxidc.net/thread-2268-1-1.html
Bash的優點:
1、命令編修能力 (history):
曾經輸入的指令都被記錄下來,記錄的文件在根目錄的.bash_history下。~/.bash_history記錄的是上一次登入以前執行過的指令,這一次登陸所運行的命令都被緩存在內存中,當你成功的注銷系統後,該命令記憶才會記錄到 .bash_history 當中!
2、命令與文件補全功能: ([tab] 按鍵的好處)
[Tab] 接在一串命令的第一個字的後面,則為命令補全;
[Tab] 接在一串命令的第二個字以後時,則為『文件補齊』!
3、命令別名配置功能: (alias)
4、工作控制、前景背景控制: (job control, foreground, background)
5、程序化腳本: (shell scripts)
6、通配符: (Wildcard)
顯示變量的值要用echo指令:
語法:
[root @test root]# echo $variable
范例:
[root @test root]# echo $PATH
/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
[root@test root]# echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
[root@test root]# echo $HOME
/root
顯示系統中的所有環境變量可以使用env指令
比較重要的幾個環境變量
HOME 登入者的根目錄
SHELL 目前這個環境使用的 SHELL 是哪支程序
HISTSIZE 當前的指令記憶數量
MAIL 您的郵件文件
PATH 文件和命令的搜尋路徑
set命令不止顯示環境變量而且顯示用戶自定義變量
配置變量:變量名=變量內容
變量的配置規則:
1、變量與變量內容以一個等號『=』來連結
2、等號兩邊不能有空格符
3、變量名稱只能是英文字母與數字,但是開頭字符不能是數字
4、變量內容若有空格符可使用雙引號『"』或單引號『'』將變量內容結合起來,但
雙引號內的特殊字符如 $ 等,可以保有原本的特性,如下所示:
『var="lang is $LANG"』則『echo $var』可得『lang is en_US』
單引號內的特殊字符則僅為一般字符 (純文本),如下所示:
『var='lang is $LANG'』則『echo $var』可得『lang is $LANG』
5、可用跳脫字符『 \ 』將特殊符號(如 [Enter], $, \, 空格符, '等)變成一般字符
6、在一串命令中,還需要藉由其他的命令提供的信息,可以使用反單引號『`命令`』或 『$(命令)』。注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號
7、若該變量為擴增變量內容時,則可用 "$變量名稱" 或 ${變量} 累加內容,如:『PATH="$PATH":/home/bin』
8、若該變量需要在其他子程序運行,則需要以 export 來使變量變成環境變量,如:『export PATH』
9、通常大寫字符為系統默認變量,自行配置變量可以使用小寫字符
10、取消變量的方法為使用 unset :『unset 變量名稱』例如取消 myname 的配置:
『unset myname』
set命令:
OSTYPE=linux-gnu <== 操作系統的類型! PPID=20025 <== 父程序的 PID (會在後續章節才介紹) PS1='[\u@\h \W]\$ ' <== PS1 就厲害了。這個是命令提示字符,也就是我們常見的 [root@www ~]# 或 [dmtsai ~]$ 的配置值啦!可以更動的! PS2='> ' <== 如果你使用跳脫符號 (\) 第二行以後的提示字符也 name=VBird <== 剛剛配置的自定義變量也可以被列出來喔! $ <== 目前這個 shell 所使用的 PID ? <== 剛剛運行完命令的回傳值。
環境變量PS1
PS1:(提示字符的配置)
這是 PS1 (數字的 1 不是英文字母),這個東西就是我們的『命令提示字符』
環境變量$代表本Shell的線程代號,也就是PID
環境變量?:上一個命令所傳回的值(正確返回0,錯誤返回1)
變量鍵盤讀取、數組與宣告: read, array, declare
要讀取來自鍵盤輸入的變量,用 read 這個命令
[root@www ~]# read [-pt] variable 選項與參數: -p :後面可以接提示字符! -t :後面可以接等待的『秒數!』這個比較有趣~不會一直等待使用者啦!
declare / typeset
declare 或 typeset 是一樣的功能,就是在『宣告變量的類型』。如果使用 declare 後面並沒有接任何參數,那麼 bash 就會主動的將所有的變量名稱與內容通通顯示出來,就好像使用 set 一樣。
[root@www ~]# declare [-aixr] variable 選項與參數: -a :將後面名為 variable 的變量定義成為數組 (array) 類型 -i :將後面名為 variable 的變量定義成為整數數字 (integer) 類型 -x :用法與 export 一樣,就是將後面的 variable 變成環境變量; -r :將變量配置成為 readonly 類型,該變量不可被更改內容,也不能 unset