Saturday, January 7, 2012

Bash中history的有用设定

在.bashrc中加入:
shopt -s histappend # set bash to append new entries to history file rather than read->overwrite
PROMPT_COMMAND="history -a $PROMPT_COMMAND" # set bash to write history file each time the prompt is shown
这样每键入一条命令都会立即保存到history文件记录中。可以避免shell连接意外断开(如断网)情况下此次session的command line history丢失的问题。也可以避免同时登录多个shell退出时,history文件中只会保存最后一个退出的shell的历史记录的问题。
如果同时登录多个shell,会按命令执行的完成时间全部存入到history文件记录中,但在其他shell中键入的命令无法实时显示在本shell的history结果里,需要重新登录本shell才行。
为了实时显示,试了各种命令:
history -n/-r/-w
等等都没有成功,不过有这样需求的情况并不多,有时还会造成history显示的纪录非常混乱。

在.inputrc中加入:
"\e[A": history-search-backward
"\e[B": history-search-forward
在shell中键入命令的前几个字母按上下键,会在历史中搜索以这几个字母开头的命令。

No comments:

Post a Comment