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
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、總結
對於基礎的學習,咱們要一步一個腳印的來,其中來不得半點的虛假,這樣才能走的更遠,努力,我一直在路上,你呢?