Як я можу мати кілька термінальних сеансів через одне єдине SSH-з'єднання?


21

У мене працює серверне видання Ubuntu, і я можу SSH в ньому виконувати різні завдання. Що мені хотілося б - це можливість SSH на моєму сервері запустити серверну програму, а потім перейти на інший "віртуальний" сеанс (з тим самим екземпляром SSH) та запустити клієнтські дзвінки проти служби. Коли я запускаю службу, її дзвінок блокує, тому я не можу запускати клієнтські дзвінки проти неї, не запускаючи сеанс SSH.

Я сподівався, що це може бути стрункіший спосіб, щось на зразок інтерфейсу користувача з віртуальними настільними комп'ютерами.

Відповіді:


24

Що ви хочете використовувати, - це екран або ще краще зручна обгортка навколо екрану під назвою byobu.

Екран дозволяє запускати декілька сеансів віртуального терміналу в одному сеансі ssh. Навчальний посібник та довідкові сторінки доступні.

byobu - це обгортка, яка дозволяє легко відкривати нові екрани за допомогою простої функціональної клавіші замість комбінації клавіш із ctrl-a. Він також показує рядок стану з усіма відкритими віртуальними терміналами, які можна назвати.

Ще однією приємною особливістю є той факт, що під час відключення вашого ssh-зв’язку весь ваш екран може залишатися в режимі спокою. Ви просто знову підключитесь через ssh та подзвоните byobu, і все як раніше.

Нарешті кілька скріншотів byobu.


5

GNU Screen - це відповідь, яку ви шукали - але це дуже схоже на Vi. Ви багато вивчаєте команди для настройки успішного екранного середовища. Ось декілька речей для початку роботи. Перш за все, вам захочеться цього .screenrc http://paste.ubuntu.com/473764/ зберегти його на віддаленому сервері в домашній папці користувачів. Наступний екран встановлення на віддаленій машині ( sudo apt-get install screen) Далі ви хочете запустити його ось декілька команд для "запуску екрана":

screen- Це досить просто. Починається новий екранний сеанс screen -ls- Список усіх активних сеансів на екрані. Так, ви можете мати кілька терміналів всередині декількох екранів. ТАК МИЛО.

Зразок

screen -ls
There is a screen on:
    16467.pts-0.ubuntu  (08/05/2010 07:47:53 PM)    (Detached)
1 Socket in /var/run/screen/S-marco.

screen -x <pid> - Це відновить сеанс окремого екрана, IE: screen -x 16467

Після того, як ви перебуваєте на екрані (і ви застосували мій .screenrcфайл зразка ), ви побачите нижче внизу:

(LOAD) 0$* bash

Яке завантаження серверів та перелік усіх відкритих "вкладок терміналів". Наразі лише одне вікно. Введіть щось, потім натисніть цю комбінацію клавіш: Ctrl + Aвідпустіть, а потім натисніть c. Ctrl + Aє послідовністю втечі. Усі команди запускаються з цієї комбінації. cце створити нову вкладку. Ви помітите колонтитул, (LOAD) 0-$ bash 1$* bashякий показує, що відкрита інша вкладка, а активна вкладка - номер 1. Ви можете відкрити максимум 60 вкладок за сеанс екрана.

Якщо ви хочете вийти з екрана, але продовжуйте його працювати, Ctrl + Aто dце відключить ваш сеанс. Нарешті, ви можете закрити вкладки, використовуючи Ctrl + Aпотім, kщо знищить цю вкладку (якщо вона заблокується), але, як правило, ви можете просто ввести, exitяк якщо б ви були в терміналі, і вона закриє цю вкладку.

Нарешті, для переліку всіх відкритих вікон ви можете ввести Ctrl + Aпотім ".

Для екрана доступна ціла низка варіантів, які ви повинні залити файлом man для отримання додаткової інформації. Є деякі недоліки. Ви не можете використовувати смугу прокрутки на екрані, ви повинні використовувати буферні елементи управління, щоб повернути назад, однак вищезазначеного достатньо, щоб ви почали бачити, чи є це життєздатним варіантом. Чудова річ у цьому і щось, з чим я багато займався як системний адміністратор - мережеве підключення. Якщо ваша мережа випаде, ваші операції не будуть втрачені! Оскільки екран працює на сервері. Вам просто потрібно увійти в систему через SSH потім screen -lsі screen -xповернутися до сеансу.


Схоже, txwikinger перебив мене на це деякими корисними посиланнями!
Марко Цеппі

Введіть Ctrl + Aпотім, ?щоб перейти на сторінку довідки. Усі команди та ярлики перелічені там. Введіть Ctrl + Aпотім, :щоб використовувати будь-яку з команд по імені, якщо пам'ятаєте ім'я, але забули гарячу клавішу.
Dan

1

Якщо ви використовуєте Ubuntu Server Edition byobu, безумовно, ваш найкращий варіант. Посібник сервера Ubuntu має корисну документацію .

Це, як правило, легше вивчити та використовувати, ніж screenвін встановлений за замовчуванням.


0

Я використовую Emacs, тому конфігурація екрана за замовчуванням ускладнює моє життя.

$ cat /home/cjac/.screenrc 

втеча ^ \

Спробуйте це!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.