Вход по SSH: автоматически переходить в последний посещенный каталог?

Вход по SSH: автоматически переходить в последний посещенный каталог?

В дни многозадачности я иногда выгружаюсь из сеанса SSH по той или иной причине (тайм-ауты простоя и т. д.), пока работаю над другой задачей. Когда я возвращаюсь к терминалу, я снова оказываюсь на localhost, и мне нужно снова подключиться к серверу по SSH. Вернувшись на сервер, я всегда ~по умолчанию нахожусь в своем домашнем каталоге и мне нужно вернуться в каталог, в котором я был в последний раз (если я его помню), чтобы продолжить работу.

Можно ли автоматически вернуться в последний каталог, в котором я работал, при входе в систему?

Я думал, что домашнее решение будет заключаться в создании псевдонимов cdдля смены каталогов, а также в сохранении этого каталога в какой-то переменной среды, а затем в переходе на этот каталог в моем .bash_profile.

Но есть ли уже подобная функциональность в Linux?

решение1

Вместо решения cdпроблемы сохранения вам следует рассмотреть варианты возобновления сеанса работы с оболочкой.

  • 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 (последний каталог) временной переменной перед выходом из системы:

echo $PWD >~/lastdir

  1. при входе в систему перейдите в каталог ~/.bash_profile:

cd $(<~/lastdir)

решение3

  1. Можно добавить следующее выражение в ~/.bash_logout

    echo `pwd` >~/.lastdir
    
  2. (как предложил @isaac-Zhao) добавьте следующее в ~/.bash_profile

    cd $(<~/.lastdir)
    

Связанный контент