︿
Top

前言

本文為 RH033 Unit12 Configuring the Bash Shell 筆記。


Environment Variables

  • env: 查看目前 Shell 的環境變數。
  • set: Dump 目前在 記憶體 中所有變數。
  • export: 在目前 Shell 中重設環境變數 (離開該 Shell 後設定便消失)。
echo $LANG                  //顯示目前環境變數中語系
 en_US.UTF-8
export LANG=zh_TW.UTF-8   //改變目前 Shell 中語系的環境變數
echo $LANG                  //再次顯示目前環境變數中語系
 zh_TW.UTF-8




Some Common Variables

可利用下列參數來調整您的提示字元符號 (PS1) 及顯示的內容。
  • \W: 相對路徑 (最後一個資料夾)。
  • \w: 絕對路徑。
  • \t: 時間。
  • \h: 主機名稱 (Host)。
  • \u: 使用者名稱 (User Name)。
  • \$: 一般使用者提示字元符號 $ 而超級使用者 Root 的提示字元符號則為 #。
echo $PS1                           //顯示目前環境變數中提示字元設定
 [\u@\h \W]\$
export PS1="[\u@\h \t \W]\$"     //將時間參數加入
 [root@localhost 15:31:10 ~]$




Aliases

別名 (Aliases) 的使用,我們可以輕易客製化自已想要的指令名稱達到想要達到的功能,如下透過 aliases 功能建立 see 指令而輸入此指令則等於 ls -l。
alias                    //顯示目前別名設定
 alias cp='cp -i'
 alias l.='ls -d .* --color=tty'
 alias ll='ls -l --color=tty'
 alias ls='ls --color=tty'
 alias mv='mv -i'
 alias rm='rm -i'
 alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
see                     //執行 see 指令
 -bash: see: command not found     //目前的 Bash Sehll 不認識此指令
alias see='ls -l'    //建立別名 see 指令內容等於執行 ls -l
alias see             //查看 alias
 alias see='ls -l'
see                    //執行 see 指令,結果跟執行 ls -l 一樣
 total 80
 -rw------- 1 root root  1482 Sep 10 11:57 anaconda-ks.cfg
 drwxr-xr-x 2 root root  4096 Sep 10 13:27 Desktop
 -rw-r--r-- 1 root root 38677 Sep 10 11:57 install.log
 -rw-r--r-- 1 root root  4399 Sep 10 11:19 install.log.syslog
 drwxr-xr-x 2 root root  4096 Sep 11 15:06 test




Preventing Expansion

跳脫字元 (\) 可以有效防止某些指令擴大執行,或者說跳脫該功能例如我們想要顯示錢號 ($) 就必須使用跳脫字元。
echo "The Ice Cream is $100"    //未加跳脫字元時系統會認為是錯誤變數名稱 $1
 The Ice Cream is 00
echo "The Ice Cream is \$100"   //加上跳脫字元後即可正確顯示
 The Ice Cream is $100




Bash startup task profile and aliases

前面提到設定環境變數 (Environment Variables) 及別名 (Aliases) 當您設定完成後便可開始開心的使用您的設定,但只要離開該 Shell 則設定便會失效,那該如何保持這些設定呢? 答案為設定至系統該 Shell 的 profile 及 aliases 檔案中。

下列為 Bash Shell 預設登入時讀取 Profile 及 Aliases 檔案的順序: (Login Bash Shell)
  1. /etc/profile: 系統變數 (/etc/profile.d/*.sh)。
  2. ~/.bash_profile: 個人變數。
  3. ~/.bashrc: 個人 Aliases。
  4. /etc/bashrc: 系統 Aliases。

若是 Non-login Shell 則僅會讀取 Aliases 檔案:
  1. ~/.bashrc: 個人 Aliases。
  2. /etc/bashrc: 系統 Aliases。

若修改上述 Profile 及 Aliases 檔案內容後希望變更馬上生效時可利用上一章教到的指令 (source or .)。
. /etc/bashrc
source /etc/bashrc




補充:快速置換上一行指令字元

有時我們想要打的指令很類似時我們可以利用 ^ 符號來達成快速置換上一行指令字元的目的,如下我們將停止 cups 服務的 stop 二個字元 op 快速置換為 art 就變成了 start 了。
service cups stop
 Stopping cups:                                             [  OK  ]
^op^art        //將 op 置換為 art 即變成 start
 service cups start
 Starting cups:                                             [  OK  ]
文章標籤: