變數設定規則
1.Linux的環境變量名稱一般使用大寫字母
2.變數名稱只能是英文字母與數字,但是數字不能是開頭字元
3.變數與變數內容以等號『=』來連結
4.等號兩邊不能直接接空白字元
5.若有空白字元可以使用雙引號『 " 』或單引號『 ' 』來將變數內容結合起來,
雙引號內的特殊字元可以保有變數特性,
單引號內的特殊字元則僅為一般字元;
6.必要時需要以跳脫字元『 \ 』來將特殊符號 ( 如 Enter, $, \ , 空白字元, ' 等 ) 變成一般符號;
7.在一串指令中,還需要藉由其他的指令提供的資訊,指令先執行:
使用 quote 『 ` command` 』;( ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號。)
使用 $(command)。
8.若該變數為擴增變數內容時,則需以雙引號及 $變數名稱 如:『 "$PATH":/home』繼續累加內容;
9.取消變數的方法為:『unset 變數名稱』。
常用環境設定指令
export、env、set 不加選項參數,列出之變數:
export 列出所有設定為導出 (export) 的變數
env 列出所有的環境變數
set 列出所有的自訂及環境變數,也包括設定為空的變數
vi ~/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -alF'
alias h='history'
alias grep='grep --color=auto'
alias df='df -h'
alias du='du -sh'
## use bk xx.file to back up file
bk() { cp "$@" "$@.bk"-`date +%y%m%d`; echo "`date +%Y-%m-%d` backed up $PWD/$@"; }
## extract all .gz file
## find . -name '*.tar.gz' -exec tar zxvf {} \;
alias extract.tar="find . -name '*.tar' -exec tar xvf {} \;"
alias extract.gz="find . -name '*.tar.gz' -exec tar zxvf {} \;"
如何把我的 prompt 改成可以顯示出目前所在的目錄路徑
在 .bashrc 裡面加入這一行
PS1='\h:${PWD} >'
效果
rb30s04:/home04/eric >
PS1='\[\e[0;32m\]\h:\[\e[m\] ${PWD} >'
效果
rb30s04: /home04/eric >
PS1='\[\e[0;32m\]\h:\[\e[m\] \[\e[1;36m\]\W\[\e[m\] >'
效果
rb30s04: ~ >
PS1 中若放 \w 表示工作目錄的完整路徑 (以 ~ 表示 $HOME ) 而\W 則是 表示工作目錄的最後一個部份。
Cshrc 中 Filename Completion的功能
filec 在設定此變數後(set filec),就啟動了csh中Filename Completion的功能。
只要我們在提示符號之後輸入一個或數個字元、按鍵,csh便會在現行路徑下尋找 以這些字元為名稱開頭的目錄或檔案、並將未完成的部分自動填上。
如您想切換目錄到compress中,則只要在提示符號之後輸入 cd co (按Esc) 則csh在搜尋、補填後的指令將成為 cd compress
若以"co"為名稱開頭的檔案不止一個,則不做自動補填的動作,此時可用CTRL-D令其列出所有以"co"為 檔名開頭的檔案及目錄。
這個功能可讓使用者省去一些輸入的動作,當然也避免掉輸入長串檔名時可能發生的錯誤。
同樣的Filename Completion的功能在bashrc也有
只要在提示符號之後輸入開頭部分字元之後按Esc,一樣可以自動填補
而CTRL-D令其列出所有檔案及目錄功能熱鍵則改換成按Tab鍵
在 bash 裡頭還支援一些萬用字元喔 (wild card)!多了這些萬用字元,我們利用 bash 處理資料就更方便了!
底下列出一些常用的萬用字元
符號 內容
* 萬用字元,代表 0 個或多個字元(或數字)
? 萬用字元,代表『一定有』一個字母
# 註解,這個最常被使用在 script 當中,視為說明!
\ 跳脫符號,將『特殊字元或萬用字元』還原成一般字元
| 分隔兩個管線命令的界定;
; 連續性命令的界定(注意!與管線命令並不相同)
~ 使用者的家目錄
$ 亦即是變數之前需要加的變數取代值
& 將指令變成背景下工作
! 邏輯運算意義上的『非』 not 的意思!
/ 路徑分隔的符號
>, >> 輸出導向,分別是『取代』與『累加』
' 單引號,不具有變數置換的功能
" 具有變數置換的功能!
` ` 兩個『 ` 』中間為可以先執行的指令!
( ) 在中間為子 shell 的起始與結束
[ ] 在中間為字元的組合
{ } 在中間為命令區塊的組合!
組合按鍵 執行結果
Ctrl + C 終止目前的命令
Ctrl + D 輸入結束(EOF),例如郵件結束的時候;
Ctrl + M 就是 Enter 啦!
Ctrl + S 暫停螢幕的輸出
Ctrl + Q 恢復螢幕的輸出
Ctrl + U 在提示字元下,將整列命令刪除
Ctrl + Z 『暫停』目前的命令
