我可以为每个终端配置文件创建一个单独的 bash 历史文件吗?

我可以为每个终端配置文件创建一个单独的 bash 历史文件吗?

我使用 bash 脚本启动具有多个选项卡的 gnome-terminal,每个选项卡使用不同的配置文件、工作目录,并且在某些情况下在选项卡内执行命令。

在这种情况下,我希望使用向上箭头键来检索在特定选项卡中使用的命令。这可能吗?

答案1

我想你可以为每个配置文件使用一个 gnome-terminal 自定义命令,例如

bash -c 'PROFILE=default_profile exec bash'

或者

bash -c 'PROFILE=screen_profile exec screen -U'

或类似的东西。

然后在~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi

答案2

只要tty命令给您提供单独的结果(在任何标准 Unix 环境中它肯定应该如此,尽管我在 cygwin 使用某些终端仿真器时偶尔会出现不当行为),您也可以使用它来分离事物。

我的 中有类似以下内容.bashrc

export HISTFILE="${HOME}/.history.d/history-"`uname -n`"-"`id -nu`"-"`tty|cut -c6-`

这看起来可能有点过分,但你明白我的意思。它根据以下因素进行拆分:

  1. 我在哪台机器上,
  2. 我是谁,
  3. 我在哪个终端上。

如果您想到了一些与您相关的事情,您还可以添加更多内容。

相关内容