Title here
Summary here
首先喺命令行啟動一個新嘅 Shell /bin/sh
。
/bin/sh
然後輸入以下命令,一切正常。
ls -l
按一下方向鍵 ⬆️ 睇下上一條命令。
^[[A
你會發現睇唔到上一條命令,取而代之嘅係呢幾個字符 ^[[A
。
呢個係因為早期嘅 sh 並唔支持睇命令嘅歷史記錄,直到 bash 先加咗呢個功能。
^[[A
係一個 ANSI 嘅轉義序列,表示上方向鍵。
^[
:表示 Esc
鍵(ASCII 編碼 27),係轉義序列嘅開始。[A
:表示具體嘅操作,[A
表示上方向鍵。當喺終端中按下上方向鍵時,終端會發送 ^[[A
呢個字符序列畀程序,
通常用於調用命令歷史記錄中嘅上一條命令。
由於 sh 並唔支持睇命令嘅歷史記錄,佢會原樣輸出鍵位嘅字符序列。
喺 Ubuntu 中,sh 其實係一個指向 dash 嘅鏈接。
file /bin/sh
/bin/sh: symbolic link to dash
所以 dash 都唔支持睇命令嘅歷史記錄。
唔帶參數會輸出所有歷史記錄。
history
亦可以使用簡短命令,效果一樣。
!!
命令歷史記錄嘅持久化文件。
-rw------- 1 kuga kuga 5516 Aug 24 08:23 /home/kuga/.bash_history
喺同 Shell 交互嘅過程中,命令嘅歷史記錄會被保存在內存入面。
使用 history
命令可以實時睇歷史記錄嘅變化,
但係只有當退出 Shell,歷史記錄先會被寫入到 .bash_history
文件中。
如果想即刻寫到歷史記錄嘅文件中,可以使用以下命令。
history -a
歷史記錄文件路徑。
echo $HISTFILE
/home/kuga/.bash_history
歷史記錄文件大小。
echo $HISTFILESIZE
2000
內存中歷史記錄列表嘅大小。
echo $HISTSIZE
1000