Durante meus dias de multitarefa, às vezes sou expulso de uma sessão SSH por um motivo ou outro (tempo limite de inatividade, etc.), enquanto estou trabalhando em outra tarefa. Quando eu retornar ao terminal, estarei de volta ao localhost, precisando fazer SSH de volta ao servidor. De volta ao servidor, estou sempre em meu ~
diretório inicial por padrão e preciso navegar de volta para o diretório em que estava (se me lembro) para continuar trabalhando.
É possível retornar automaticamente ao último diretório em que estava trabalhando ao fazer login?
Eu estava pensando que uma solução homebrew seria um alias cd
para alterar os diretórios, mas também salvar esse diretório em alguma variável de ambiente e, em seguida, mudar para esse diretório no meu arquivo .bash_profile
.
Mas já existe algum tipo de funcionalidade como essa no Linux?
Responder1
Em vez de resolver o cd
problema de persistência, você deve considerar soluções para retomar sua sessão shell.
tmux
- Dentro do SSH, execute
tmux
para iniciar uma nova sessão - Se desconectado, faça login via SSH novamente e execute
tmux attach
para retomar a sessão - Dentro de uma
tmux
sessão, você pode pressionar CtrlBe, em seguida, Dpara desconectar
- Dentro do SSH, execute
screen
- Dentro do SSH, execute
screen
para iniciar uma nova sessão - Se desconectado, faça login via SSH novamente e execute
screen -r
para retomar a sessão - Dentro de uma
screen
sessão, você pode pressionar CtrlAe, em seguida, Dpara desconectar
- Dentro do SSH, execute
mosh
mosh
é um substituto do SSH executado em UDP e projetado para ser resistente a interrupções de rede
Responder2
Não há necessidade de nenhum software ou aplicativo de terceiros, basta usar o Linux integrado
- ao sair, atribua $PWD (último diretório) a uma var temporária antes de sair:
echo $PWD >~/último diretório
- ao fazer login, faça cd nesse diretório em ~/.bash_profile:
cd $(<~/últimodir)
Responder3
Pode anexar a instrução abaixo a ~/.bash_logout
echo `pwd` >~/.lastdir
(como sugerido por @isaac-Zhao) adicione o seguinte a ~/.bash_profile
cd $(<~/.lastdir)