如何设置我的新终端以保留以前终端的会话?

how can I set my new new terminal to retain session of previous terminals?

在 linux 中,(在我的 mac 中,我可以在 iterm2 的设置中执行此操作)如何设置我的终端模拟器,以便为每个新终端维护我的会话打开了吗?

例如:如果我在终端的 ~/code/ 文件夹中,我打开一个新终端,我也应该在新终端的 ~/code/ 文件夹中,而不是 ~/

我的用例是我在使用 i3 时不会丢失上下文

是否有可以执行此操作的设置或推荐的模拟器,是否可以通过编程方式完成此实现?

我不确定你为什么要这样做,因为你可以通过搜索命令的历史记录来简单地到达“经常”cded 目录。

但是,如果您真的想这样做,一个(肮脏的?)技巧是将其添加到您的 .bashrc:

# this is in ~/.bashrc
exit() {
  sed -i '${
            /^cd /{c\cd '"$PWD
          "'q};a\cd '"$PWD
          }" $HOME/.bashrc
  command exit
}

它所做的是(隐含地)打印所有行,包括 倒数第二行 ,然后在最后一行 ($) 检查是否最后一行以 cd 开头,然后是 space;如果是,它 c 将其更改为 cd $PWDquits;如果没有,则 cd $PWD 行是 _a 附加的。