linux 多个会话同时执行命令后history记录不全的解决方案
生活随笔
收集整理的這篇文章主要介紹了
linux 多个会话同时执行命令后history记录不全的解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本認識
linux默認配置是當打開一個shell終端后,執行的所有命令均不會寫入到~/.bash_history文件中,只有當前用戶退出后才會寫入,這期間發生的所有命令其它終端是感知不到的。
問題場景
那么問題來了,假若之前history命令記錄為c0,用戶先打開了shell終端a,執行了一部分命令c1,又打開了一個shell終端b,又執行了一部分命令c2.
問題1.終端a執行的這部分命令終端b上看不到。
問題2.終端a正常退出,相關命令會寫入到/.bash_history文件中(c1命令也會寫入,即c0+c1),等到終端b正常退出后,相關命令也會寫入到/.bash_history文件中,注意這個時候終端b寫入的內容為c0+c2,也即c1記錄會丟失!!!
解決方案
將下面這段內容添加到~/.bashrc 并執行 . ~/.bashrc即可
# format history
# save in ~/.bashrc
如下:
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S `whoami`@${USER_IP}: " export HISTFILESIZE=1000000 export PROMPT_COMMAND="history -a; history -r; $PROMPT_COMMAND" shopt -s histappend bind '"\e[A": history-search-backward' bind '"\e[B": history-search-forward' 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的linux 多个会话同时执行命令后history记录不全的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开普勒行星运动第二定律在电子与原子核运动
- 下一篇: ubuntu linux下面用wine运