Відповіді:
exit
повідомляє вашій поточній оболонці вийти. Оскільки (коли немає тунельного з'єднання, наприклад, X11, активне), це означає, що процес, що викликає sshd на стороні сервера, SSH потім відключається.
~.
- це "магічна" послідовність втечі, яку SSH захоплює та негайно відключає (включаючи тунель X11).
Отже, ні, вони не взаємозамінні. Якщо ви хочете, щоб ваша віддалена оболонка (або будь-яка програма, запущена віддалено) граціозно вийшла, слід її закінчити відповідно.
Це добре описано вже в іншій відповіді, але я б додав деякі відомості:
Одне з'єднання SSH сьогодні може містити кілька сеансів (ваші оболонки, команда), канали переадресації TCP та канали переадресації X11 . І ось різниця:
Запис exit
(або Ctrl+ D) вириває канал сеансу , але якщо є активні деякі канали X11 (наприклад, gvim
залишає декілька з'єднань з обробним буфером обміну та заголовком X сервера , який не закритий exit
). Запис exit
залишить цю програму X11 запущеною, і ваш термінал буде «висіти», поки не буде закритий.
Запис ~.
сліз весь зв’язок . Ви можете помітити, якщо ви запускаєте якусь програму X11, що вона також закрита під час написання ~.
.