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是 SSH 的替代品,透過 UDP 運行,旨在抵抗網路中斷

答案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)
    

相關內容