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 cd
para 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 cd
problema de persistencia, debería considerar soluciones para reanudar su sesión de shell.
tmux
- Dentro de SSH, ejecútelo
tmux
para iniciar una nueva sesión - Si se desconecta, inicie SSH nuevamente y ejecútelo
tmux attach
para reanudar la sesión. - Dentro de una
tmux
sesión, puede presionar CtrlBy luego Ddesconectar
- Dentro de SSH, ejecútelo
screen
- Dentro de SSH, ejecútelo
screen
para iniciar una nueva sesión - Si se desconecta, inicie SSH nuevamente y ejecútelo
screen -r
para reanudar la sesión. - Dentro de una
screen
sesión, puede presionar CtrlAy luego Ddesconectar
- Dentro de SSH, ejecútelo
mosh
mosh
es 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
- al cerrar sesión, asigne $PWD (último directorio) a una var temporal antes de cerrar sesión:
echo $PWD >~/últimodir
- cuando inicie sesión, guarde ese directorio en ~/.bash_profile:
cd $(<~/últimodir)
Respuesta3
Puede agregar la siguiente declaración a ~/.bash_logout
echo `pwd` >~/.lastdir
(como sugirió @isaac-Zhao) agregue lo siguiente a ~/.bash_profile
cd $(<~/.lastdir)