bash 基礎特性之:命令歷史
命令歷史:shell進程會在會話中保存此前用戶提交執行過的命令;
- 查看歷史命令:
- ~]# history
- 定製history的功能,可通過環境變量來實現
- HISISIZE:shell進程可保留的命令歷史條數
- HISIFILE:持久保存命令歷史的文件 (.bash_history)
- HISIFILESIZE:命令歷史文件的大小
- 用法:
-c:清空當前歷史命令;
-a:將歷史命令緩衝區中命令寫入歷史命令文件中;
-r:將歷史命令文件中的命令讀入當前歷史命令緩衝區;
-w:將當前歷史命令緩衝區命令寫入歷史命令文件中。
-d:刪除指定命令歷史條目
- 顯示最近#條歷史命令 (history #)
- 調用歷史列表中的命令 ( ! number)
- 再次執行上一條命令 (!!)
- 再一次執行歷史列表中最近一個以STRING開頭的命令 (!STRING)
- 調用上一條命令的最後一個參數 (ESC+.、file !$、file alt+.
- 控制命令歷史的方法
- 環境變量:HISICONTROL
- 參數:
ignorespace:忽略以空白字符開頭的命令
ignoredups:忽略以空白字符開頭的命令
ignoreboth:以上兩者同時生效
echo $HISTCONTROL - 修改變量值
HISICONTROL=Ignorespace
bash 基礎特性之:命令補全
- 命令補全:
- shell程序在接收到用戶執行命令的請求,分析完成後,最左側的字符串會被當作命令;
- 命令查找機制:
- 根據PATH環境變量中設定的目錄,自左而右逐個搜索目錄下的文件名\
- 給定的打頭字符串如果能唯一標識某命令程序文件,則直接補全\
- 不能惟一標識某命令程序文件,再擊打一次tab鍵,會給出列表;
- 路徑補全:
- 在給定的起始路徑下,以對應路徑下的打頭字符串來逐一匹配起始路徑下的每個文件 (tab)
- 如果能惟一標識,則直接補全。否則,再一次tab給出列表;