bash特性之一:命令別名
將一個命令用其他名字來代替,可以用別名來簡化操作。
獲取當前用戶可用的別名的定義:
~]#alias NAME=’COMMAND’
bash的特性之二:命令歷史
shell進程會保存其會話中用戶曾經執行過的命令;命令通過其“歷史文件”來持久保存此前執行過的命令;每個用戶都有其自己專用的歷史文件;
HISTSIZE:shell進程的緩沖區保留的歷史命令的條數;
HISTFILESIZE:命令歷史文件可保存的歷史命令的條數;
默認均為1000;
命令語法格式:
history [-c] [-d OFFSET] [n]
history -anrw [FILENAME]
history -ps VALUE [VALUE…]
-c: 清空命令歷史;
-d offset(偏移量):刪除指定命令歷史,offset為history顯示出來的命令數字
-r: 從文件讀取命令歷史至歷史列表中;
-w:把歷史列表中的命令追加至歷史文件中;
history #:顯示最近的#條命令;
控制命令歷史的記錄方式:
環境變量:HISTCONTROL(在/etc/profile配置文件中控制)
ignoredups:忽略重復的命令,連續且相同方為“重復”
ignorespace:忽略所有以空白開頭的命令
ignoreboth:=以上兩個之和
修改環境變量值得方法:export變量名=“值”
變量賦值:把賦值符號后面的數據存儲于變量名指向的內存空間。
bash特性之三:快捷鍵
ctrl+a:跳轉至命令行行首
ctrl+e:跳轉至命令行行尾
ctrl+u:刪除行首至光標所在處之間的所有字符;
ctrl+k:刪除光標所在處至行尾的所有字符;
ctrl+l:清屏,相當于clear
ctcl+c:取消命令的執行
bash的特性之四:命令補全和路徑補全
1.命令查找和補全機制:
bash執行命令
內部命令:內部命令沒有具體的二進制文件,而是有內核提供的。
外部命令:bash根據PATH 環境變量定義的路徑,自左而右在每個路徑搜尋已給定命令命命名的文件,第一次找到即為要執行的命令。
補全方法:給定開頭的部分字符串如果能惟一標識某命令程序文件,則直接補全;
不能惟一標識某命令程序文件,再擊tab鍵一次,會給出列表;
2.路徑補全
在給定起始路徑下,以對應路徑下的打頭字串逐一匹配起始路徑下每個文件:
TAB按鍵;
如果能惟一標識,則直接補全;
否則,再一次tab,給出列表;
3.命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:花括號展開。可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
bash的特性之五:命令行展開:
1)、命令行展開;
以某些bash能夠解釋的符號來代替命令中的某些參數。
~:展開為用戶的主目錄;
例:切換至主目錄
cd ~
~USERNAME:展開為指定用戶的主目錄
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑;
例:在/tmp/d目錄下創建f1,f2,f3三個文件
touch /tmp/d/f{1,2,3}
/tmp/{a,b}=/tmp/a,/tmp/b
bash特性之六:命令的執行結果狀態
bash的基礎特性之狀態值返回:在bash中使用一個特殊的變量$?來保存上一個命令的執行狀態結果:用法 ~]# echo $?
0表示成功,
1-255表示失敗
同樣程序執行也有兩類結果:
程序的返回值:程序的功能定義
程序的執行狀態結果:程序執行完成后的狀態
bash的特性之七:變量
程序:指令+數據
數據:文件、變量;
變量:內存空間,有名稱,名稱即為變量名,對應的內存空間中的數據即為變量的值;
變量賦值:NAME=VALUE
=:賦值符號;
把VALUE存儲到NAME指向的內存空間中;
編程語言:
強類型:嚴格區分變量中的數據類型;
弱類型:不區分變量中存儲的數據類型,統一為字符型;
bash:統統默認為字符型數據;變量無需事先聲明;
變量替換:把變量引用符號出現的位置替換為其指向的內存空間中的數據;
bash變量種類:
本地變量:作用域為當前shell進程;不包括其子進程;
環境變量:使用域為當前shell進程及其子進程;
局部變量:
作用域:生效范圍,也即可引用到的范圍;
本地變量:
變量賦值:NAME=VALUE
變量引用:$NAME, ${NAME}
查看變量:set
撤銷變量:unset NAME
注意:此處非為變量引用,因此不能使用$;
所有的本地變量在shell進程終止時,會被自動撤銷;
環境變量:
變量聲明和賦值:
declare -x NAME[=VALUE]
export NAME[=VALUE]
引用方式:
${NAME}, $NAME
注意:bash內嵌了許多環境變量,名稱為全大寫字母,例如UID、HOME、PWD、SHELL, PATH, HISTSIZE等等;
環境變量查看:
export, declare -x ,env, printenv
撤銷環境變量:
unset NAME
只讀變量:常量
(1) declare -r NAME
(2) readonly NAME
不支持重新賦值,也不支持撤銷操作;
原創文章,作者:N24_云淡風輕,如若轉載,請注明出處:http://www.www58058.com/57986
總結的比較詳細,注意下排版會更好~