Inicio de sesión SSH: ¿ir automáticamente al último directorio visitado?

Inicio de sesión SSH: ¿ir automáticamente al último directorio visitado?

Durante mis días de multitarea, a veces me arrancan de una sesión SSH por una razón u otra (tiempos de espera de inactividad, etc.), mientras estoy trabajando en otra tarea. Cuando regrese a la terminal, me encontraré nuevamente en localhost y necesitaré volver por SSH al servidor. Una vez de vuelta en el servidor, siempre estoy en mi ~directorio de inicio de forma predeterminada y necesito volver al directorio en el que estaba por última vez (si puedo recordarlo) para poder continuar trabajando.

¿Es posible regresar automáticamente al último directorio en el que estaba trabajando cuando inicio sesión?

Estaba pensando que una solución casera sería crear un alias cdpara cambiar de directorio pero también guardar ese directorio en alguna variable de entorno y luego cambiar a ese directorio en mi archivo .bash_profile.

¿Pero ya existe algún tipo de funcionalidad como esta en Linux?

Respuesta1

En lugar de resolver el cdproblema de persistencia, debería considerar soluciones para reanudar su sesión de shell.

  • tmux
    • Dentro de SSH, ejecútelo tmuxpara iniciar una nueva sesión
    • Si se desconecta, inicie SSH nuevamente y ejecútelo tmux attachpara reanudar la sesión.
    • Dentro de una tmuxsesión, puede presionar CtrlBy luego Ddesconectar
  • screen
    • Dentro de SSH, ejecútelo screenpara iniciar una nueva sesión
    • Si se desconecta, inicie SSH nuevamente y ejecútelo screen -rpara reanudar la sesión.
    • Dentro de una screensesión, puede presionar CtrlAy luego Ddesconectar
  • mosh
    • moshes un reemplazo de SSH que se ejecuta sobre UDP y está diseñado para ser resistente a interrupciones de la red

Respuesta2

No es necesario ningún software o aplicación de terceros, solo use Linux integrado

  1. al cerrar sesión, asigne $PWD (último directorio) a una var temporal antes de cerrar sesión:

echo $PWD >~/últimodir

  1. cuando inicie sesión, guarde ese directorio en ~/.bash_profile:

cd $(<~/últimodir)

Respuesta3

  1. Puede agregar la siguiente declaración a ~/.bash_logout

    echo `pwd` >~/.lastdir
    
  2. (como sugirió @isaac-Zhao) agregue lo siguiente a ~/.bash_profile

    cd $(<~/.lastdir)
    

información relacionada