Linux的Bash Shell詳解

1、Bash Shell概述
shell

1.什麼是bash
     bash是Bourne Again Shell的簡稱,是從unix系統中的sh發展而來的,是用戶和Linux內核交互的工具,用戶經過bash操做內核完成系統的使用和管理。2.shell的種類緩存

  • /bin/sh(已經被/bin/bash替代)安全

  • /bin/bash(默認的shell)bash

  •  /bin/ksh(源自貝爾實驗室,兼容bash)app

  •  /bin/tcsh(整合C shell,功能更爲強大)ide

  • /bin/csh(已經被tcsh取代)工具

  • /bin/zsh(源自ksh功能更爲強大)
    每種shell的功能比較相似,可是語法會稍有不一樣。學習

3.bash的歷史和發展spa

image.png

2、Bash Shell的變量概述unix

1.變量是表明一些值的符號。

2.能夠經過變量來設置shell或者其餘程序。

3.變量存在於內存中。

4.Linux有自定義變量(local)和環境變量(environment)。

5.自定義變量和環境變量的做用範圍不一樣。

6.可使用如下指令查看全部變量

  • set能夠查看全部的變量

  • env只能查看環境變量

3、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指令來找到某個指令所在的位置。

4、Shell startup scripts的概述

1.Shell startup scripts是用戶登陸或其餘非登陸動做時會自動執行一些shell腳本

2.創建自定義變量或者執行set指令設置shell

3.創建環境變量,設置其餘程序

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

5.登陸登出的時候執行哪些程序

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:
        在註銷用戶時會進行該腳本
        能夠執行備份、緩存和臨時文件清理等任務

6、總結

    對於基礎的學習,咱們要一步一個腳印的來,其中來不得半點的虛假,這樣才能走的更遠,努力,我一直在路上,你呢?

相關文章
相關標籤/搜索