shell--鳥哥私房菜(1)

  1. shell
    shell

  2. 檢查shell
    /etc/shells目錄下

    • /bin/sh (已經被 /bin/bash 所取代)
    • /bin/bash (就是 Linux 預設的 shell)
    • /bin/tcsh (整合 C Shell ,提供更多的功能)
    • /bin/csh (已經被 /bin/tcsh 所取代)


      shells
  3. 為什麼我們系統上合法的 shell 要寫入 /etc/shells

    系統某些服務在運作過程中,會去檢查使用者能夠使用的 shells ,而這些 shell 的查詢就是藉由 /etc/shells

    登入的時候,系統就會給我一個 shell 讓我來工作了。 而這個登入取得的 shell 就記錄在 /etc/passwd 。讓使用者無法以其他服務登入主機,就得將那些怪怪的 shell 寫到 /etc/shells 當中了。

    獲取shell

  4. 記憶使用過的指令

    在~/.bash_history 可找到,注意.bash_history記錄的是前一次登入所執行的指令,這一次的指令存在記憶體中,當你退出系統後纔會保存到.bash_history中!

  5. 命令別名的設定 –alias

    alias lm=’ls -al’

  6. 查詢指令是否爲bash shell的內建命令:
    type

  7. 『 \ [Enter] 』
    轉義

  8. 刪除長指令

    [ctrl]+u 從遊標處向前刪除指令串
    [ctrl]+k 向後刪除指令串

  9. echo變量

    echo $HOME 或者是 echo ${HOME}
    echo $MAIL 或者是 echo ${MAIL}

    echo

    變量與變量內容用‘=’連接;myname=VBird

    等號兩邊不能直接接空白字符;myname = VBird或myname=VBird Tsai

    變量內容若有空白可用“ 或者‘ 將內容結合起來;雙引號內的$ 可保持原有特性,單引號內$ 爲純文字;

    ”\“將特殊符號轉義;myname=VBird\ Tsai

    一串指令中還需額外指令提供資訊,使用反單引號`或$();version=$(uname -r) 再 echo $version

    可用 “$變量名” 或 ${變量} 累加內容;PATH="$PATH":/home/bin 或 PATH=${PATH}:/home/bin

    一個變量要在其他程序中使用需要export,來變爲環境變量;export PATH

    取消變數的方法為使用 unset;unset myname

    echo2
    echo3
    echo4

  10. 若你有一個常去的工作目錄名稱為:/cluster/server/work/taiwan_2015/003/,如何進行該目錄的簡化?

    [dmtsai@study ~]$ work=”/cluster/server/work/taiwan_2015/003/”
    [dmtsai@study ~]$ cd $work\

    注:可以在 bash 的設定檔(~/.bashrc)中直接指定,那我每次登入只要執行cd $work 就可以了

  11. env
    env

  12. RANDOM – 隨機數(介於 0~32767 之間)
    random

  13. set
    set

    • PS1 – 提示符

      \d :可顯示出『星期 月 日』的日期格式,如:”Mon Feb 2”

      \H :完整的主機名稱。舉例來說,鳥哥的練習機為『study.centos.vbird』

      \h :僅取主機名稱在第一個小數點之前的名字,如鳥哥主機則為『study』後面省略

      \t :顯示時間,為 24 小時格式的『HH:MM:SS』

      \T :顯示時間,為 12 小時格式的『HH:MM:SS』

      \A :顯示時間,為 24 小時格式的『HH:MM』

      \@ :顯示時間,為 12 小時格式的『am/pm』樣式

      \u :目前使用者的帳號名稱,如『dmtsai』;

      \v :BASH 的版本資訊,如鳥哥的測試主機版本為 4.2.46(1)-release,僅取『4.2』顯示

      \w :完整的工作目錄名稱,由根目錄寫起的目錄名稱。但家目錄會以 ~ 取代;

      \W :利用 basename 函數取得工作目錄名稱,所以僅會列出最後一個目錄名。

      # :下達的第幾個指令。

      $ :提示字元,如果是 root 時,提示字元為 # ,否則就是 $ 囉~

      PS1

    • $ (shell的PID)

    • ?:(關於上個執行指令的回傳值)
      ?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章