Когда подключаешься к серверу по ssh, бывает появляется необходимость “запомнить” свою сессию, чтобы при случайном разрыве соединения смочь к ней вернуться. Для этого можно воспользоваться одной маленькой, но очень полезной утилитой.

Screen

Screen это полноэкранный оконный менеджер, который мультиплексирует физический терминал между несколькими процессами. Простыми словами, при использовании screen у вас появится возможность в рамках одной сессии создать несколько окон/терминалов, переключаться между ними, и не потерять их при обрыве соединения.

Установка

В deb-based системах

1
$ sudo apt-get install screen

В Arch Linux

1
$ sudo pacman -S screen

Запуск

1
$ screen

Теперь в открытом окне/терминале можно запустить любую команду, например, открыть MidnightCommander или выполнить ping до интересующего ip

1
$ ping ya.ru

Управление терминалами

Для входа в режим управления терминалами в рамках screen служит комбинация клавиш Ctrl+A.

Создание нового терминала

Вход в режим управления Ctrl+a, затем c

Переключение на предыдущий терминал

Ctrl+a -> p

Переключение на следующий терминал

Ctrl+a -> n

Выбор терминала из списка

Ctrl+a -> " (двойные ковычки, т.е Shift+')

При этом будет выведен список окон с названиями запущенных в них процессов, выбор производится стрелками, подтверждение - Enter.

Переключение на терминал по номеру

Ctrl+a -> 0 (цифра - номер терминала)

Закрытие окна/терминала

Ctrl+a -> k -> подтвердить удаление

Разделение окна на несколько частей

Если нужно одновременно видеть вывод нескольких команд, то можно воспользоваться функцией разделения окна/терминала на регионы

Ctrl+a -> S (Shift+s)

Переключение между регионами

Ctrl+a -> Tab

Закрытие региона

Ctrl+a -> X (Shift+x)

Отключение от screen

Ctrl-a -> d

При этом все открытые окна продолжат работу в рамках сессии screen

Восстановление сессии screen

1
$ screen -r

Подключение к конкретной сессии screen, если их несколько

Получаем список сессий и их идентификаторы

1
2
3
4
5
$ screen -list

There is a screen on:
        24642 (Detached)
1 Socket in /run/screens/24642.

И восстанавливаем работу с нужной нам

1
$ screen -r 24642

В заключение

Это не полный список возможностей утилиты screen. Для ознакомления с полным списком читайте документацию.