標籤: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詳解