* Bash & Tcsh 差異對照表:
比較項目
|
Bash
|
Tcsh
|
設定環境變數
|
export var=value
|
setenv var value
|
設定變數
|
var=value
|
set var=value
|
代名 alias
|
alias var=value
|
alias var value
|
提示符變數名
|
PS1
|
prompt
|
共用設定檔
|
/etc/profile
|
/etc/csh.cshrc
|
個人設定檔
|
~/.profile
|
~/.cshrc
|
一般用戶提示符
|
$
|
%
|
顯示何種 shell
|
echo $SHELL
|
echo $shell
|
優點
|
shell script模組化
|
history 機制較佳
|
* "Bash" stands for "Bourne Again Shell"
# Bash 在許多 Linux Distribution 被當成預設的 Shell,
# 設定與指令與 tcsh/csh 有點出入,如環境變數。
* Bash 設定檔:
# Bash 在 Login 後如為預設 Shell 時,依照下列順序讀取設定檔:
1. /etc/profile
1a. /etc/bashrc (Red-Hat Linux Only)
2. ~/.bash_profile
2a. ~/.bashrc (Red-Hat Linux Only)
3. ~/.bash_login
4. ~/.profile
# Bash 在 Logout 後會讀取:
~/.bash_logout
# Bash 不是登入時的 Shell (由其他 Shell 啟動)會讀取:
~/.bashrc
* 設定較佳的 ll 指令
# 各 user 自訂
echo "alias ll='ls -alF'" >> ~/.bash_profile
echo "alias ll='ls -alF'" >> ~/.bashrc
# 所有使用 bash 當預設 shell 者
echo "alias ll='ls -alF'" >> /etc/profile
echo "alias ll='ls -alF'" >> /etc/bashrc
# 記得用 source /etc/profile 來生效
* 設定較佳的 prompt
# 我只有把預設的 \W 改成小寫 \w 來顯示完整路徑名。
# 彩色可參考:http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
Black 0;30 Dark Gray 1;30
Blue 0;34 Light Blue 1;34
Green 0;32 Light Green 1;32
Cyan 0;36 Light Cyan 1;36
Red 0;31 Light Red 1;31
Purple 0;35 Light Purple 1;35
Brown 0;33 Yellow 1;33
Light Gray 0;37 White 1;37
# 單色
echo 'PS1="[\u@\h \w]\\$ "' >> /etc/bashrc
# 彩色
echo ' PS1="[\[\033[36m\]\u\[\033[1;34m\]@\h \[\033[m\]\w]\[\033[35m\]\\$\[\033[m\] "' >> /etc/bashrc
# 如果用 xterm 相容終端機就顯示彩色 Prompt
# 在 /etc/bashrc 或 /etc/profile 中加上
if [ "$TERM" = "xterm" ]; then PS1="[\[\033[36m\]\u\[\033[32m\]@\h \[\033[m\]\w]\[\033[35m\]\\$\[\033[m\] " elif [ "$TERM" = "linux" ]; then PS1="[\[\033[36m\]\u\[\033[32m\]@\h \[\033[m\]\w]\[\033[35m\]\\$\[\033[m\] " else PS1="[\u@\h \w]\\$ " fi
source /etc/bashrc
* 關掉 beep
# 修改 /etc/inputrc 加入或把此行註解移除:
set bell-style none
* 讓按上下方向鍵的行為與 tcsh 相同
csh/tcsh 最讓人稱道的就是 history 的功能,這也是 bash 不如 csh 的地方,當然
現在的 bash 在 history 機制上也偷學了不少 csh 的功能並加強了,有用過 csh 的
人都知道 csh 有一個很好用的機制,就是可以用上下鍵來尋找最近輸入過以某幾個字
開頭的指令,如我們之前有用過 vi /etc/profile 與 vi /etc/bashrc,想叫出來時
只要按 vi 然後按上下鍵就可以快速的找到。
最近改用 bash 之後,最不習慣的就是沒有這樣功能,查了半天 bash manual 之後終
於發現 bash 其實有提供這個功能,只是預設並沒有配置任何按鍵給這兩個功能,(謎
之音:怕被人說抄襲嗎?)
我們可以自己在 /etc/inputrc 裡讓上下鍵對應到 history-search-backward 與
history-search-forward 這兩個指令來讓上下鍵功能跟 csh 一樣好用:
編輯 /etc/inputrc 加上下面三行:
# up key & down key = history search
"\e[A": history-search-backward
"\e[B": history-search-forward
沒有留言:
張貼留言