Linux的Bash Shell詳解

來源:互聯網
上載者:User

標籤:img   login   png   家目錄   variable   ima   port   自動   start   

一、Bash Shell概述

  1.什麼是bash
          bash是Bourne Again Shell的簡稱,是從unix系統中的sh發展而來的,是使用者和Linux核心互動的工具,使用者通過bash操作核心完成系統的使用和管理。

  2.shell的種類
          /bin/sh(已經被/bin/bash替代)
          /bin/bash(預設的shell)
          /bin/ksh(源自貝爾實驗室,相容bash)
          /bin/tcsh(整合C shell,功能更為強大)
          /bin/csh(已經被tcsh取代)
          /bin/zsh(源自ksh功能更為強大)
          每種shell的功能比較類似,但是文法會稍有不同。

  3.bash的曆史和發展

    

二、Bash Shell的變數概述

  1.變數是代表一些值的符號。

  2.可以通過變數來設定shell或者其他程式。

  3.變數存在於記憶體中。

  4.Linux有自訂變數(local)和環境變數(environment)。

  5.自訂變數和環境變數的作用範圍不同。

  6.可以使用以下指令查看所有變數

    set可以查看所有的變數

    env只能查看環境變數

三、Bash Shell的設定方式

  1.通過自訂變數設定

    variable=value來設定

    $variable來取得變數的值 

    變數名不能以數字或者特殊字元開頭

    如果想在值中有空格存在,則需要用雙引號或者單引號來定義值,如:key="key is one"

    單引號和雙引號的區別在於,雙引號支援拿已存在變數作為值的一部分,如:key="key is $key2"

    unset key命令可以刪除變數

    常見的變數
                HISTFILESIZE:記錄曆史指令儲存的最大值
                HISTSIZE:記錄使用history命令查看曆史指定輸出的個數最大值
                COLUMNS:終端視窗顯示的寬度
                LINES:終端視窗顯示的高度
                PS1:設定提示符號前面的內容樣式(\d,\h,\t,\u,\w,\!,\$,\l,\#等)

  2.通過別名(Aliases)設定

    alias lss=‘ls -la‘設定別名方式

    使用alias查看系統中所有的alias

    使用alias aliasName查看指定別名定義

    type -a alias名稱來查看別名具體定義描述

    unalias刪除別名定義

  3.通過set指令設定

    set 查看系統所有變數值

    設定shell內部的屬性值(set -o noclobber, set -o vi)

  4.通過環境變數設定

    自訂變數只能在當前的shell環境中有效。

    環境變數會在整個主機下的shell環境中生效。

    使用export variable name來設定環境變數。

    常用變數介紹
                 HOME:指向目前使用者的家目錄。
                 LANG:應用程式使用何種語言來顯示介面。
                 PWD:指向使用者當前的工作目錄路徑。
                 PATH:
                      系統預設的環境變數。
                      執行一些沒有指定路徑的指令時去該路徑中找。
                      PATH=$PATH.:將隱藏路徑設定到PATH中,會帶來安全性問題。
                      可以使用which指令來找到某個指令所在的位置。

四、Shell startup scripts的概述

  1.Shell startup scripts是使用者登入或其他非登入動作時會自動執行一些shell指令碼

  2.建立自訂變數或者執行set指令設定shell

  3.建立環境變數,設定其他程式

  4.使用alias,簡化後續操作

  5.登入登出的時候執行哪些程式

五、login和non-login shell的詳解

  1.login shell:
            通過完整的登入流程時啟動並執行shell。
            首先會讀取/etc/profile(PATH/USER/HOSTNAME/HISTSIZE等)。
            讀取/etc/profile.d/*.sh(顏色、語言、指令別名等)。
            ~/.bash_profile、~/.bash_login、~/.profile(只依次讀取其中一個)。
            ~/.bash_rc、/etc/bashrc。
            source指令可以載入指令碼的變更,如:source /etc/profile。

  2.non-login shell:
            不需要登入流程就可以執行的shell,如su和原bash下的新bash動作
            ~/.bash_rc、/etc/bashrc
            讀取/etc/profile.d/*.sh
            ~/.bash_logout:
                在登出使用者時會進行該指令碼
                可以執行備份、緩衝和臨時檔案清理等任務

    

    

Linux的Bash Shell詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.