Bash Shell 基本特性

一、 背景

    人與計算機交互界面分爲圖形界面(GUI,graphic user interface)和命令行(CLI,command line interface),本文介紹的shell 屬於命令行形式,它其實是一種基於操作系統的應用,用於人機交互。命令行界面的優點在於穩定,簡潔高效,缺點是學習成本較高。

 二、Shell介紹

    shell是Linux系統用戶界面,它提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令並送入內核去執行。shell也被稱爲Linux的命令解釋器。

Bash (Bourne Again SHell)是GNU組織發行的工具軟件,是Linux標準shell

    三、Bash

    在Bash下輸入命令後敲回車,shell程序自動尋找鍵入命令所對應的可執行程序或代碼,並由其分析後提交給內核分配資源將其運行起來

    shell可執行命令分爲兩類,

    內部命令:shell程序自帶的命令,在系統啓動時被加載到內存當中

    外部命令:Linux系統實用程序,執行時,shell根據$PATH定義的程序存放路徑尋址執行,並記錄到內存中

  • 命令格式

    #COMMAND [OPTIONS]...[ARGUMENTS]...

    OPTIONS :用於啓用或關閉命令某些功能

    ARGUMENTS :命令作用的對象

比如,

rm -f /etc/issue
  • 命令補全,路徑補全

    bash根據PATH變量環境變量定義的路徑,自左向右在每個路徑下搜尋以給定命令名的文件。使用TAB鍵,用戶給定的字符串只有唯一一條命令時補全,不唯一時,再次按TAB給出列表。

路徑補全,把用戶給出的字符串當做路徑開頭,並在上級目錄下搜尋以指定字符串開頭的文件名,補全機制如上。

  • 命令的執行結果狀態

 變量${#?}記錄上一次命令執行結果狀態:

 0: 成功

1-255:失敗 

  • 當前命令行shell類型查看

echo $SHELL
/bin/bash
  • 命令提示符prompt

[root@localhost~]#
[user@localhost~]$

    #表示管理員

    $表示普通用戶

    查看命令提示符格式

echo $PS1
[\u@\h \W]\$
  • 查看命令類型type

type cd
cd is a shell builtin    #表示內部命令

type cat
cat is /bin/cat      #表示外部命令

  • 查看已緩存命令hash

spacer.gif

hash
hits command
3    /bin/cat
2    /usr/bin/man

 四、bash的命令歷史

  使用history命令可查看內存中記錄的執行的命令歷史,當shell退出時會寫入~./bash_history,登陸時讀取該文件內容至內存中。

  • 調用歷史命令的常用方法

  1. 上下方向鍵

  2. !num :調用history命令看到的對應序號的命令

  3. !string:調用最近一次以string開頭的命令

  4. !?string:調用最近一次包含string的命令

  5. 鍵入ctrl+r:搜索歷史命令

  • 調用歷史參數的常用方法

  1. 按下ESC鬆開,然後鍵入 . :調用上條命令最後一個參數

  2. !$:調用上條命令最後一個參數

  3. !^:調用上條命令第一個參數

  4. !n:調用上條命令第n個參數

  5. !*:調用上條命令全部參數

  • history命令環境變量

    HISTSIZE:命令歷史保存的命令最大數

    HISTFILE:指定命令文件路徑

    HISTFILESIZE:歷史文件保存的命令最大數

    HISTTIMEFORMAT:“+%F +%T ”可顯示時間格式

    HISTCONTROL變量參數解釋如下

    ignoredups:不保留重複命令,連續且相同方爲重複

    ignorespace:不保留以空白開頭的命令

    ignoreboth:以上兩項同時生效

    erasedups:刪除重複命令


    export 變量=“ ” :針對當前shell生效

    變量存入/etc/profile 或 ~/bash_profile 可永久生效

 五、bash快捷鍵

  1. Ctrl+l:清屏      

  2. Ctrl+a:光標移至開頭 

  3. Ctrl+e:光標移至尾部

  4. Ctrl+u:刪除至開頭

  5. Ctrl+k:刪除至尾部

  6. Ctrl+c:中斷當前命令

  7. Ctrl+z:殺死當前命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章