一、Bash Shell概述
1.什么是bash bash是Bourne Again Shell的簡稱,是從unix系統(tǒng)中的sh發(fā)展而來的,是用戶和Linux內(nèi)核交互的工具,用戶通過bash操作內(nèi)核完成系統(tǒng)的使用和管理。2.shell的種類 /bin/sh(已經(jīng)被/bin/bash替代) /bin/bash(默認的shell) /bin/ksh(源自貝爾實驗室,兼容bash) /bin/tcsh(整合C shell,功能更為強大) /bin/csh(已經(jīng)被tcsh取代) /bin/zsh(源自ksh功能更為強大) 每種shell的功能比較類似,但是語法會稍有不同。
3.bash的歷史和發(fā)展 
二、Bash Shell的變量概述 1.變量是代表一些值的符號。 2.可以通過變量來設(shè)置shell或者其他程序。 3.變量存在于內(nèi)存中。 4.Linux有自定義變量(local)和環(huán)境變量(environment)。 5.自定義變量和環(huán)境變量的作用范圍不同。 6.可以使用以下指令查看所有變量 set可以查看所有的變量 env只能查看環(huán)境變量
三、Bash Shell的設(shè)置方式 1.通過自定義變量設(shè)置 variable=value來設(shè)置 $variable來取得變量的值 變量名不能以數(shù)字或者特殊字符開頭 如果想在值中有空格存在,則需要用雙引號或者單引號來定義值,如:key='key is one' 單引號和雙引號的區(qū)別在于,雙引號支持拿已存在變量作為值的一部分,如:key='key is $key2' unset key命令可以刪除變量 常見的變量
HISTFILESIZE:記錄歷史指令保存的最大值 HISTSIZE:記錄使用history命令查看歷史指定輸出的個數(shù)最大值 COLUMNS:終端窗口顯示的寬度 LINES:終端窗口顯示的高度 PS1:設(shè)置提示符號前面的內(nèi)容樣式(\d,\h,\t,\u,\w,\!,\$,\l,\#等) 2.通過別名(Aliases)設(shè)置 alias lss='ls -la'設(shè)置別名方式 使用alias查看系統(tǒng)中所有的alias 使用alias aliasName查看指定別名定義 type -a alias名稱來查看別名具體定義描述 unalias刪除別名定義
3.通過set指令設(shè)置 4.通過環(huán)境變量設(shè)置 自定義變量只能在當(dāng)前的shell環(huán)境中有效。 環(huán)境變量會在整個主機下的shell環(huán)境中生效。 使用export variable name來設(shè)置環(huán)境變量。 常用變量介紹
HOME:指向當(dāng)前用戶的家目錄。 LANG:應(yīng)用程序使用何種語言來顯示界面。 PWD:指向用戶當(dāng)前的工作目錄路徑。 PATH: 系統(tǒng)預(yù)設(shè)的環(huán)境變量。 執(zhí)行一些沒有指定路徑的指令時去該路徑中找。 PATH=$PATH.:將隱藏路徑設(shè)置到PATH中,會帶來安全性問題。 可以使用which指令來找到某個指令所在的位置。 四、Shell startup scripts的概述 1.Shell startup scripts是用戶登錄或其他非登錄動作時會自動執(zhí)行一些shell腳本 2.建立自定義變量或者執(zhí)行set指令設(shè)置shell 3.建立環(huán)境變量,設(shè)置其他程序 4.使用alias,簡化后續(xù)操作 5.登錄登出的時候執(zhí)行哪些程序 五、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:
六、總結(jié) 對于基礎(chǔ)的學(xué)習(xí),我們要一步一個腳印的來,其中來不得半點的虛假,這樣才能走的更遠,努力,我一直在路上,你呢?
|