在linux中使用screen命令不允许记录命令历史记录

时间:2011-04-01 07:13:21

标签: linux command history

我一直在使用屏幕很长一段时间而且我同意,它提高了我的工作效率。但是我真正想念的一件事是命令历史。我在屏幕会话中输入的任何内容都不会记录在命令历史记录中。当我用Google搜索相同的内容时,我发现了与此问题相关的内容: http://www.linuxquestions.org/questions/slackware-14/aliases-lost-when-using-screen-723624/

但令人惊讶的是,在我的情况下,所有别名都是完整的,我可以毫无问题地使用它们。据我所知,打开一个新的屏幕会话实际上会打开一个新的子shell。如果这是真的,有人可以帮助我如何在屏幕会话中输入要记录在命令历史记录中的命令,这样如果我稍后打开一个新的终端/屏幕,我将能够使用命令历史记录访​​问命令CTRL + R.任何帮助我在命令历史记录中创建屏幕日志命令的解决方案都会非常有用。感谢你的时间。谢谢。

2 个答案:

答案 0 :(得分:6)

假设屏幕内正在使用bash shell。

将2个语句插入〜/ .bashrc:

shopt -s histappend
PROMPT_COMMAND="$PROMPT_COMMAND;history -a"

第一个命令将命令附加到历史文件,而不是覆盖它,而第二个命令在执行后立即保存每个命令,而不是在会话结束时保存。

要扩展我的答案..您打开的每个bash会话的历史记录都存储在内存中,直到您注销/关闭会话。然后它将覆盖bash历史文件。 这些命令将附加到历史文件,然后在每个命令后刷新到该文件。

答案 1 :(得分:1)

Zshthis blog post by Derek Reeve explains how to do it的会话之间轻松使用共享历史记录。简而言之,请将其添加到~/.zshrc

setopt share_history
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.history
setopt APPEND_HISTORY

我还找到了doing the same thing on Bash的说明,但我只是在Zsh上试过这个。