1. 程式人生 > >Linux中history配置及使用技巧

Linux中history配置及使用技巧

前言

在Linux中,我們可以通過history來檢視歷史命令,用來確認在某個時刻使用了哪個命令。但是,history的預設的,只會輸出命令的序號以及命令。這時我們就需要對history進行一些配置,讓它報告命令執行的具體時間。下面就是關於history的配置方法以及其他操作。

一、history顯示具體的時間

1.開啟變數配置檔案

vim /root/.bashrc

這裡寫圖片描述

2.配置history的變數

在.bashrc中追加下列語句(意為讓history顯示時間戳 ){還可在變數中加入$(whoami),即可顯示使用命令的使用者 }

export HISTTIMEFORMAT="%Y-%m-%d "

export HISTTIMEFORMAT='%F %T '

3.讓配置好的變數生效

source .bashrc

4.成功後,輸入history顯示格式,如下

826 2018-05-18 cd
827 2018-05-18 df -Th
828 2018-05-18 free -m
829 2018-05-18 bash qinli_huancun.sh
830 2018-05-18 ssh node2
831 2018-05-18 ls
832 2018-05-18 w
833 2018-05-18 ls
834 2018-05-18 ll /
835 2018-05-18 ps aux
836 2018-05-18 ls

955 2018-05-18 19:18:47 vim .bashrc
956 2018-05-18 19:19:01 date %F
957 2018-05-18 19:19:05 date +%F
958 2018-05-18 19:19:09 date +%T
959 2018-05-18 19:19:24 vim .bashrc
960 2018-05-18 19:19:36 source .bashrc
961 2018-05-18 19:19:41 history
962 2018-05-18 19:20:35 cat .bashrc
963 2018-05-18 19:21:14 history

二、history設定歷史命令記錄數

實際上history命令檢視的歷史命令記錄條數是有數目限制的,我們可以通過配置,讓它儲存我們想要儲存的操作命令的數量。

1.開啟變數配置檔案

vim /root/.bashrc

2.設定歷史命令記錄數

在.bashrc中追加下列語句(意為儲存1000條記錄)

export HISTSIZE=1000    

3.讓配置好的變數生效

source .bashrc

三、指定不同終端執行的命令都儲存在同一個檔案中

在Linux中可以開啟多個終端,因此會產生不同終端的歷史記錄,如果要檢視對應終端的歷史命令,就必須進入對應的終端中,進行檢視。我們可以配置讓不同終端執行的命令都儲存在同一個檔案中,我們只要檢視這個檔案,就能知道某個終端執行了某些命令。

1.開啟變數配置檔案

vim /root/.bashrc

2.指定不同終端執行的命令都儲存在同一個檔案中

在.bashrc中追加下列語句(意為將不同終端執行的命令都儲存在/root/.commandline_warrior中)

export HISTFILE=/root/.commandline_warrior 

3.讓配置好的變數生效

source .bashrc

四、忽略重複命令

同上,再次追加

export HISTCONTROL=ignoredups  

五、多個終端同時操作時,避免命令覆蓋,採用追加方式

同上,再次追加

shopt -s histappend  

六、實時寫入

實際上history的歷史命令是寫入.bash_history 中的。 ~/.bash_history 記錄的是前一次登陸所執行過的命令,而本次登陸所執行的命令都被快取在記憶體中,當退出系統後,本次的命令記憶才會記錄到 .bash_history 中。

同上,再次追加(意為實時的記錄入檔案)

PROMPT_COMMAND=’history -a’  

七、設定記錄歷史的檔案的大小

同上,再次追加

export HISTFILESIZE=450  

八、完全清除命令執行操作的歷史記錄

不建議執行

1.清理歷史記錄(只是清理了表層,可在.bash_history找到回)
history -c

2.清理記錄歷史的記錄檔案內容

echo " " > .bash_history 

3.如有配置不同終端執行的命令儲存檔案

echo " " > 不同終端執行的命令儲存檔案