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 預設)、tcsh 和 zsh 等都可以用上下箭咀鍵取回以前曾經鍵入過的命令。
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

