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

Ink*_*acu 18 bash gnome-terminal bashrc

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

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

enz*_*tib 16

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

bash -c 'PROFILE=default_profile exec bash'
Run Code Online (Sandbox Code Playgroud)

或者

bash -c 'PROFILE=screen_profile exec screen -U'
Run Code Online (Sandbox Code Playgroud)

或类似。

然后在 ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
Run Code Online (Sandbox Code Playgroud)


小智 10

只要该tty命令为您提供单独的结果(在任何标准的 Unix 环境中它当然应该这样做,尽管我在某些终端模拟器的 cygwin 中偶尔会出现错误行为),您也可以使用它来分离事物。

我的.bashrc.

export HISTFILE="${HOME}/.history.d/history-"`uname -n`"-"`id -nu`"-"`tty|cut -c6-`
Run Code Online (Sandbox Code Playgroud)

这可能看起来有点矫枉过正,但你明白了。它根据

  1. 我在什么机器上
  2. 我是谁,以及
  3. 我在哪个终端。

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