同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
jiyinyiyong
帖子: 631
注册时间: 2010-01-03 19:58
系统: OS X, Ubuntu(server)
来自: 杭州
联系:

同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

#1

帖子 jiyinyiyong » 2011-09-27 18:36

桌面多,,, 而且终端每次都得等前一个命令执行结束才能输入, 干脆同时用好几个终端了.
头像
acer4740
帖子: 1405
注册时间: 2010-09-13 19:04
来自: 0xFF00EE

Re: 同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

#2

帖子 acer4740 » 2011-09-27 18:48

zsh可以每执行一个命令就写一下history,这样应该可以
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

#3

帖子 lilydjwg » 2011-09-27 20:49

acer4740 写了:zsh可以每执行一个命令就写一下history,这样应该可以
那样会造成频繁的磁盘读写。如果不是立即需要在其它 zsh 里访问的话,不用任何设置,zsh 会自动合并历史。
头像
jiyinyiyong
帖子: 631
注册时间: 2010-01-03 19:58
系统: OS X, Ubuntu(server)
来自: 杭州
联系:

Re: 同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

#4

帖子 jiyinyiyong » 2011-09-28 10:43

lilydjwg 写了:
acer4740 写了:zsh可以每执行一个命令就写一下history,这样应该可以
那样会造成频繁的磁盘读写。如果不是立即需要在其它 zsh 里访问的话,不用任何设置,zsh 会自动合并历史。
自动合并这个办法好, Bash 能用配置做到这一点吗?
zsh 太复杂, 我都不知道哪里开始适应..
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

#5

帖子 eexpress » 2011-09-28 10:57

shopt -s histappend
PROMPT_COMMAND='history -a'

PS4='+{$LINENO:${FUNCNAME[0]}} '
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT='%F %T '
HISTCONTROL=erasedups
HISTIGNORE="pwd:ls:cd:"

没立刻写的。
● 鸣学
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

#6

帖子 lilydjwg » 2011-09-28 11:55

jiyinyiyong 写了:
lilydjwg 写了:
acer4740 写了:zsh可以每执行一个命令就写一下history,这样应该可以
那样会造成频繁的磁盘读写。如果不是立即需要在其它 zsh 里访问的话,不用任何设置,zsh 会自动合并历史。
自动合并这个办法好, Bash 能用配置做到这一点吗?
zsh 太复杂, 我都不知道哪里开始适应..
是挺复杂的,不过你不必完全掌握再用啊,最开始你可以把它当成 bash。
头像
jiyinyiyong
帖子: 631
注册时间: 2010-01-03 19:58
系统: OS X, Ubuntu(server)
来自: 杭州
联系:

Re: 同时开多个终端造成 history 覆盖和丢失有什么好的方案解决吗?

#7

帖子 jiyinyiyong » 2011-09-28 12:24

eexpress 写了:shopt -s histappend
PROMPT_COMMAND='history -a'

PS4='+{$LINENO:${FUNCNAME[0]}} '
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT='%F %T '
HISTCONTROL=erasedups
HISTIGNORE="pwd:ls:cd:"

没立刻写的。
http://ss64.com/bash/shopt.html
http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html
文档搜到了还是有点糊涂..
shopt -s histappend # 这句是关闭的时候合并一次, 但是其他终端拷贝了所以不发生改变?
PROMPT_COMMAND='history -a' # 这个是每次调用 history 就重新载入全部历史?
回复