您的位置:首页 > 运维架构 > Shell

定制Bash历史命令

2010-10-10 15:18 316 查看
一位网友在:

http://hi.baidu.com/yk103/blog/item/63738e134bda5dddf6039ece.html



中提到了:当前终端中的命令历史是在终端退出时写入文件,多个终端间的命令执行历史不能实时共享。

的问题,我也遇到这样的问题,基于他的解决方法上,在.bash_rc中添加:



PROMPT_COMMAND="history -a;history -n;$PROMPT_COMMAND"



使用如下命令去掉所有的重复历史命令条目:

tac /home/zkl/.bash_history |awk '!a[$0]++' |tac > /tmp/.bash_history && mv /tmp/.bash_history /home/zkl/.bash_history -f


这一条命令的python实现:

#!/usr/bin/env python
import sys
if len(sys.argv) > 1:
  filename = sys.argv[1]
else:
  filename = "/home/zkl/.bash_history"
fd = open(filename, "rb")
lines = fd.readlines()
line_dict = {}
cnt = 1
for l in lines:
  line_dict[l] = cnt
  cnt += 1
fd.close()
fd = open(filename, "wb")
#fd.writelines(dict(sorted(line_dict.items(), key=lambda d:d[1])).keys())
for sl in sorted(line_dict.items(), key=lambda d:d[1]):
  fd.writelines(sl[0])
fd.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: