OSWikiHK: 請協力 GPLv3 的中文翻譯工作。

取回以前曾經鍵入過的命令

OSWikiHK,自由中文開源知識庫

目录

history

很多 shell 都會把您曾經鍵入過的命令記錄在記憶體中,您可以用指令 history 列出來:

$ history
  1  ls
  2  mount /media/sd_mmc
  3  ls /media/sd_mmc
  4  cd ..
  5  dir
  6  dcim/
  7  ls
  8  vdir
  9  cd ..
 10  cd Images/
 11  ls
 12  cd ..
 13  cd
 14  umount /media/sd_mmc/
 15  cd
 16  ls -lhSr
 17  rm core
 18  df -h
 19  cd photo
 20  ls

以上列表中,左邊為命令編數,右邊為命令本身。您每鍵入一個命令,Shell 都會記下來並指定命令編數為上一個命令加一。

 !n

您可以打「!命令編數」直接執行。例如您打「!16」,Shell 就會直接執行編號第 16 的命令「ls -lhSr」。

 !-n

如果命令編數為負數,表示要執行對上幾次的命令。例如您打「!-3」,Shell 就會直接執行倒數第三個命令(即編號第 18 的命令)「df -h」。

 !!

打「!!」等於「!-1」,表示執行倒數第一個命令(即編號第 20 的命令)「ls」。

 !?

打「!?關鍵字」會執行對上一個包括關鍵字的命令。例如「!?mmc」,Shell 會找最後一次包括「mmc」的命令,即是編數第 14 的命令「umount /media/sd_mmc/」。

上下箭咀鍵

現時有部份 shell 包括 bash(一般 GNU/Linux 預設)、tcshzsh 等都可以用上下箭咀鍵取回以前曾經鍵入過的命令。

Ctrl-R

按 Ctrl-R 打鍵入關鍵字,shell會尋找上一次包括關鍵字的命令。例如按 Ctrl-R 打鍵入「m」,Shell會顯最後一個包含「m」的命令:「rm core」。

再鍵入「m」,Shell 會顯示最後一個包含「mm」的命令:「umount /media/sd_mmc/」。

再按一次 Ctrl-R,shell 會顯示對上次包含相同關鍵字「mm」的命令:「ls /media/sd_mmc/」。再按一次 Ctrl-R,會顯示再對上次包含相同關鍵字「mm」的命令:「mount /media/sd_mmc/」。

Bash命令紀錄設定

環境變數 HISTSIZE 可以用來設定 bash 最多會記錄命令的數目,例如:

export HISTSIZE=5000

您登出 (logout) 或正常離開 bash 時會將記憶體命令紀錄儲存在環境變數 HISTFILE 所指定的檔案 (預值為 ~/.bash_history) 中。再您下次再執行 bash 或開啟終端機Terminal時就會自動載入以前曾經鍵入過的命令。您亦可以改環境變數 HISTFILESIZE 設定 .bash_history 儲存命令數目,例如:

export HISTFILESIZE=5000
Personal tools
廣告橫額