Antworten:
exit
Weist Ihre aktuelle Shell an, das Programm zu beenden. Da (wenn keine getunnelte Verbindung vorhanden ist, z. B. X11, aktiv) dies bedeutet, dass der Prozess, den sshd auf der Serverseite aufgerufen hat, beendet wurde, wird SSH dann getrennt.
~.
ist die "magische" Escape-Sequenz, die SSH erfasst und sofort trennt (einschließlich des X11-Tunnels).
Also, nein, diese sind nicht austauschbar. Wenn Sie möchten, dass Ihre Remote-Shell (oder ein anderes Programm, das remote ausgeführt wird) ordnungsgemäß beendet wird, sollten Sie sie entsprechend beenden.
Es ist bereits in der anderen Antwort gut beschrieben, aber ich möchte einige Hintergrundinformationen hinzufügen:
Eine einzelne SSH-Verbindung kann heute mehrere Sitzungen (Ihre Shells, Befehl), TCP-Weiterleitungskanäle und X11-Weiterleitungskanäle enthalten. Und da kommt der Unterschied:
Durch Schreiben exit
(oder Ctrl+ D) wird der Sitzungskanal heruntergefahren , aber wenn einige X11-Kanäle aktiv sind (z. B. bleiben gvim
mehrere Verbindungen zum X-Server, der die Zwischenablage und den Titel verarbeitet , der nicht geschlossen ist exit
). Durch das Schreiben exit
bleibt diese X11-Anwendung ausgeführt und Ihr Terminal bleibt "hängen", bis es geschlossen wird.
Das Schreiben ~.
reißt die ganze Verbindung ab . Wenn Sie eine X11-Anwendung ausführen, können Sie feststellen, dass diese auch beim Schreiben geschlossen wird ~.
.