Linux 使用 Bash 要查看之前輸入過的命令,可以使用 history,history 就會列出:
- 1 ls
- 2 vi
- 3 man date
- ...
使用 !1 就會執行 1 的命令 (ls)
但是知道大約何時下過的命令,但是 history 預設是沒有存時間的,所以想要把時間也紀錄進去,要怎麼做呢?
Bash history 加上 日期和時間
history 想要紀錄日期和時間,可以使用 HISTTIMEFORMAT='%F %T ' 這個設定
HISTTIMEFORMAT %F %T 代表意義
- %F – expands to full date same, as %Y-%m-%d (year-month-date).
- %T – expands to time; same as %H:%M:%S (hour:minute:seconds).
HISTTIMEFORMAT 設定步驟如下:
- vim ~/.bashrc # 於最下面加入:
HISTTIMEFORMAT='%F %T ' - source ~/.bashrc
再來可以查看 ~/.bash_history,每個命令上面都會出現 #timestamp,然後輸入 history 時,就會秀出下述:
- 1 2017-05-11 07:16:12 ls
- 2 2017-05-11 07:51:57 history
- 3 2017-05-11 07:54:07 vim
- ...
Bash history 有關的設定參數有下述可以參考使用:
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTCONTROL=ignoredups:ignorespace HISTSIZE=5000 HISTFILESIZE=5000 HISTTIMEFORMAT='%F %T '
相關網頁
您好,我在設定ubuntu16.04設定.bashrc,
可以用history看出變化,.bash_history檔案設定依舊一樣不會有所更動。
請問這個是什麼樣的問題?謝謝。
history結果如下:
98 jupyter 2017-10-14 18:23:09 gem install logstash-core -v '5.6.3'
99 jupyter 2017-10-14 18:22:46 vim .bash_history
100 jupyter 2017-10-14 18:23:39 history
.bash_history則顯示:
gem install logstash-core -v '5.6.3'
#1507976566
vim .bash_history
#1507976619
history
因為 history 你的 $USER 是讀取 shell 變數,而 .bash_hisotry 本身並沒有儲存那些資料
不確定 .bash_history 是否能達成你要的條件,你可以參考下述幾個連結看看:
Bash Reference Manual
https://www.gnu.org/software/bash/manual/bash.html#Using-History-Interactively
Bash history expansion
https://sanctum.geek.nz/arabesque/bash-history-expansion/
https://askubuntu.com/questions/94439/can-i-create-a-separate-bash-history-file-for-each-terminal-profile
export HISTFILE="${HOME}/.history.d/history-"`uname -n`"-"`id -nu`"-"`tty|cut -c6-`
Tsung大您好,
我在.bashrc當中輸入:
export PROMPT_COMMAND='builtin history 1 >> .bashistory'
就可以將我的history內容額外輸入到.bashistory格式相當