Bash的基礎特性
(1)命令歷史
環境變量
$HISTSIZE:命令歷史紀錄的條數
$HISTFILE:~/.bash(用戶的家目錄)
$HISTFILESIZE:命令歷史文件記錄歷史的條數
刪除歷史:
history
-d 要刪除的第幾條
-c 清空命令歷史
history #:顯示歷史中最近的#條命令(#:代表數字)
-a: 手動追加當前會話緩沖區的命令歷史紀錄至文件中
調用歷史中的命令
!#:重復執行第#條命令
!!:執行上一條
!string:最近一個以"string"開頭的指令
調用上一條命令的最后一個參數
!$或ESC+.
控制命令歷史的記錄方式
環境變量:HISTCONROL
ignoredups:忽略重復的命令;連續且相同方式為"重復"
ignorespace:忽略所有以空白開頭的命令
ignoreboth :上述兩者同時生效
修改環境變量方式: 例:export HISTCONTROL=ignorespace
變量賦值:把賦值符號后面的數據存儲于變量名指向內存空間;只對當前shell有效
(2)命令補全
直接補全:用戶給定的字符串只對應唯一的一條命令
列表顯示:以用戶給定的字符串對應的命令不唯一,按兩下"Tab"鍵就會列出,如下圖所示
內部命令:當你鍵入一個命令并且執行的時候,系統會首先判斷是否為內部命令,如果是就直接執行
外部命令:如果不是內部命令,就根據$PATH環境變量定義的路徑,從左向右在每個路徑,
下搜尋用戶給定的命令名命名的文件,第一次找到的則是要執行的文件
(3)路徑補全
把用戶給出的字符串當做路徑的開頭,并在指定的上級目錄下搜尋以指定字符串開頭的文件名,如果唯一,直接補全,否則還是兩
次"Tab"鍵給出列表
(4)命令行展開
~:展開為用戶的家目錄
~USERNAME:展開為指定用戶的家目錄
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
/tmp/{a,b} = /tmp/a,/tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi,/tmp/jerry/hi
(5)命令執行結果狀態
成功
失敗
bash使用特殊變量"$?"保存最近一條命令的執行狀態結果
0:成功
1-255:失敗
echo $? 獲取上一條指令的執行結果狀態
程序執行有兩類結果:
程序的返回值:結果
程序的運行狀態結果:成功/失敗