Während meiner Multitasking-Tage werde ich manchmal aus dem einen oder anderen Grund (Leerlauf-Timeouts usw.) aus einer SSH-Sitzung gebootet, während ich an einer anderen Aufgabe arbeite. Wenn ich zum Terminal zurückkehre, befinde ich mich wieder auf dem lokalen Host und muss per SSH eine Verbindung zum Server herstellen. Sobald ich wieder auf dem Server bin, befinde ich mich ~
standardmäßig immer in meinem Home-Verzeichnis und muss zurück zu dem Verzeichnis navigieren, in dem ich zuletzt war (wenn ich mich daran erinnern kann), um weiterarbeiten zu können.
Ist es möglich, beim Anmelden automatisch zum letzten Verzeichnis zurückzukehren, in dem ich gearbeitet habe?
Ich dachte, eine Homebrew-Lösung würde ein Aliasing cd
zum Ändern von Verzeichnissen sein, aber auch das Speichern dieses Verzeichnisses in einer Umgebungsvariablen und dann das Wechseln zu diesem Verzeichnis in meinem .bash_profile
.
Aber gibt es eine derartige Funktionalität bereits in Linux?
Antwort1
Anstatt das cd
Persistenzproblem zu lösen, sollten Sie Lösungen zum Fortsetzen Ihrer Shell-Sitzung in Betracht ziehen.
tmux
- Führen Sie es in SSH aus,
tmux
um eine neue Sitzung zu starten - Wenn die Verbindung getrennt ist, melden Sie sich erneut per SSH an und führen Sie den Befehl aus,
tmux attach
um die Sitzung fortzusetzen - Innerhalb einer
tmux
Sitzung können Sie drücken CtrlBund dann Dtrennen
- Führen Sie es in SSH aus,
screen
- Führen Sie es in SSH aus,
screen
um eine neue Sitzung zu starten - Wenn die Verbindung getrennt ist, melden Sie sich erneut per SSH an und führen Sie den Befehl aus,
screen -r
um die Sitzung fortzusetzen - Innerhalb einer
screen
Sitzung können Sie drücken CtrlAund dann Dtrennen
- Führen Sie es in SSH aus,
mosh
mosh
ist ein SSH-Ersatz, der über UDP läuft und resistent gegenüber Netzwerkstörungen ist
Antwort2
Sie brauchen keine Drittanbieter-Software oder -Apps, nutzen Sie einfach das integrierte Linux
- Weisen Sie beim Abmelden $PWD (letztes Verzeichnis) vor dem Abmelden einer temporären Variable zu:
echo $PWD >~/letztesVerzeichnis
- Führen Sie beim Anmelden einen CD-Wechsler für das Verzeichnis unter ~/.bash_profile aus:
cd $(<~/letztesVerzeichnis)
Antwort3
Kann die folgende Anweisung an ~/.bash_logout anhängen
echo `pwd` >~/.lastdir
(wie @isaac-Zhao vorgeschlagen hat) fügen Sie Folgendes zu ~/.bash_profile hinzu
cd $(<~/.lastdir)