SSH 登录:自动转到最后访问的目录?

SSH 登录:自动转到最后访问的目录?

在我处理多项任务的日子里,有时我会因为某个原因(空闲超时等)退出 SSH 会话,而我正在处理另一项任务。当我返回终端时,我会发现自己回到了本地主机,需要通过 SSH 返回服务器。回到服务器后,~默认情况下我总是在我的主目录中,我需要导航回我最后所在的目录(如果我能记得的话)才能继续工作。

当我登录时是否可以自动返回到我上次工作的目录?

我在想一个自制的解决方案将会使用别名cd来改变目录但也会将该目录保存到某个环境变量中,然后在我的.bash_profile.

但是 Linux 中是否已经存在类似这样的功能呢?

答案1

您不应该解决cd持久性问题,而应该考虑恢复 shell 会话的解决方案。

  • tmux
    • 在 SSH 中,运行tmux以启动新会话
    • 如果断开连接,请再次通过 SSH 登录并运行tmux attach以恢复会话
    • tmux会话中,您可以按CtrlB,然后D按 以分离
  • screen
    • 在 SSH 中,运行screen以启动新会话
    • 如果断开连接,请再次通过 SSH 登录并运行screen -r以恢复会话
    • screen会话中,您可以按CtrlA,然后D按 以分离
  • mosh
    • mosh是一种通过 UDP 运行的 SSH 替代品,旨在抵御网络中断

答案2

无需任何第三方软件或应用程序,只需使用内置 Linux

  1. 当注销时,将 $PWD (最后一个目录)分配给注销前的一个临时变量:

回显 $PWD >~/lastdir

  1. 登录后,cd 该目录位于~/.bash_profile:

cd $(<~/lastdir)

答案3

  1. 可以将以下语句附加到 ~/.bash_logout

    echo `pwd` >~/.lastdir
    
  2. (按照@isaac-Zhao 建议的)将以下内容添加到 ~/.bash_profile

    cd $(<~/.lastdir)
    

相关内容