$ historyhistory 是 Linux中重要且好用的內建功能,可以記錄最近下過的指令,並且透過按↑、↓方向鍵選擇所執行過的指令。$ echo $HISTFILE用於查看HISTFILE的位置,$HISTFILE變數存放history file的位置。在bash shell 底下 ,history 的檔案是 ~/.bash_history ,也就是家目錄(/home/user)底下的一個隱藏檔。(~/.bash_history)為 history的檔案,當開啟一個 bash shell(terminal或稱session)時會讀取檔案到記憶體(memory)中,在關閉 terminal 之前都是在記憶體中操作,直到退出 terminal 才會貼回(append)到HISTFILE檔案、儲存到硬碟(disk)中。當同時開啟多個terminal,彼此間執行的command不會互相看見。(可以設置 PROMPT_COMMAND 指令參數 來達成互相看見)
$ !123執行history中的第123個指令$ history -d 123可刪除第123行的history command$ history 10列出最近的10筆指令$ history -c在mem中清除此terminal執行過的command history$ history -a 或 $ history -w立刻將在mem中的command history寫入同步到 ~/.bash_history 檔案中(-a : append,有一個指針記錄append到哪一行)(-w : write,覆寫 ~/.bash_history 檔案)$ history -r複製 ~/.bash_history 中的history command(disk),append到history list(mem)中(關閉terminal時將不會自動寫回~/.bash_history 檔案中)$ history -n從 ~/.bash_history 中的history command(disk) 讀取尚未讀取的所有紀錄(因為~/.bash_history可能被修改過),append到history list(mem)中
$ vim ~/.bashrcHISTTIMEFORMAT='%F %T '用於添加日期及時間(%F: %Y-%m-%d)(%T: %H:%M:%S)設置完後會在(~/.bash_history)檔案中插入#timestampHISTCONTROL=ignoredups:ignorespace 或者 HISTCONTROL=ignorebothignoredups:重複連續的指令不會記錄ignorespace:在執行的command前加上空白,history將不會記錄這行指令HISTSIZE=100結束terminal時,會儲存在這個terminal中執行過的command(至多儲存最近的100行)到~/.bash_history中同時也是 $ history 印出的數量100行command、用方向鍵↑至多溯及100行command
當HISTSIZE設為0時將不留記錄往後執行的command,也無法使用方向鍵↑↓來選擇command,已存在在~/.bash_history中的指令仍然存在HISTFILESIZE=1000~/.bash_history 檔案中只能儲存至多1000行資料,超過1000行時會移除最舊的資料多個terminal間彼此能看到執行的command的方法( HISTFILE 與每個terminal同步)export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" 或 PROMPT_COMMAND='history -a;history -n'
另外關於 histappend 參數用法可以參考以下連結
載入修改過後的設定$ source ~/.bashrc 或 重新開啟一個新的terminal
留言共 1 篇留言
前一篇:重灌 Windows10... 後一篇:Windows 彩色(全...
休閒日誌 (0)
└遊戲玩法 (6)
└就普通的日誌 (4)
#hw (0)
└General Course (2)
└English Oral (0)
電腦相關 (8)
└AI & Nvidia GPU (2)
└Android (3)
└Architecture (3)
└C & C++ (3)
└Compiler (3)
└Database (1)
└Game (1)
└Golang (0)
└Python (1)
└Java & JSP (1)
└Linux (6)
└macOS (1)
└OO (1)
└Raspberry Pi (8)
└Social Networks (2)
└Windows (7)