SSH ログイン: 最後にアクセスしたディレクトリに自動的に移動しますか?

SSH ログイン: 最後にアクセスしたディレクトリに自動的に移動しますか?

マルチタスクをこなしているとき、別のタスクに取り組んでいるときに、何らかの理由 (アイドル タイムアウトなど) で SSH セッションから強制終了されることがあります。ターミナルに戻ると、localhost に戻っていて、サーバーに SSH で接続する必要があります。サーバーに戻ると、~デフォルトで常にホーム ディレクトリにいるため、作業を続行するには、最後にいたディレクトリ (覚えている場合) に戻る必要があります。

ログイン時に最後に作業していたディレクトリに自動的に戻ることは可能ですか?

cd自作の解決策としては、ディレクトリを変更するためにエイリアスを作成し、そのディレクトリを何らかの環境変数に保存してから、 でそのディレクトリに変更すると考えていました.bash_profile

しかし、Linux にはすでにこのような機能があるのでしょうか?

答え1

永続性の問題を解決する代わりにcd、シェル セッションを再開するためのソリューションを検討する必要があります。

  • tmux
    • SSH内で実行してtmux新しいセッションを開始する
    • 切断された場合は、再度SSHで接続し、実行してtmux attachセッションを再開します。
    • セッション内では、を押してデタッチすることがtmuxできます。CtrlBD
  • screen
    • SSH内で実行してscreen新しいセッションを開始する
    • 切断された場合は、再度SSHで接続し、実行してscreen -rセッションを再開します。
    • セッション内では、を押してデタッチすることがscreenできます。CtrlAD
  • mosh
    • moshUDP上で動作し、ネットワークの中断に耐えられるよう設​​計されたSSHの代替品です。

答え2

サードパーティのソフトウェアやアプリは不要で、組み込みのLinuxを使用するだけです

  1. ログアウトするときは、ログアウト前に $PWD (最後のディレクトリ) を一時変数に割り当てます。

$PWDをエコー >~/lastdir

  1. ログインしたら、~/.bash_profile のそのディレクトリを cd します。

cd $(<~/lastdir)

答え3

  1. 以下の文を~/.bash_logoutに追加できます。

    echo `pwd` >~/.lastdir
    
  2. (@isaac-Zhao の提案どおり) ~/.bash_profile に以下を追加します

    cd $(<~/.lastdir)
    

関連情報