GNU Screen – это приложение, позволяющее запускать несколько виртуальных терминалов в режиме сессий. После того, как сессия создана, от неё можно отключиться, а позже – снова подключиться, причём с любого другого хоста, на котором установлен SSH клиент. Процессы, запущенные в Screen, продолжают выполняться и после того как пользователь отключается от сессии или вообще от хоста в целом. Это ещё одна причина (кроме повышения удобства работы в командной строке вследствие использования возможности перехода между окнами), по которой используется Screen. Если соединение с Интернетом – ненадёжное или у пользователя нет возможности поддерживать постоянное соединение, или существует необходимость запустить выполнение процесса в офисе, а остановить – дома, то использование Screen (или подобных приложений, например, Tmux) – способ решить эти проблемы.

Команды Screen для Linux

После установки, программу Screen можно запустить командой screen. При этом будет создана сессия, название которой будет включать идентификатор процесса самой сессии (PID) и часть названия хостнейма. Для того, чтобы присвоить сессии имя, необходимо указать ключ –S:

screen –S myscreensession01

После входа в сессию её управление осуществляется путём ввода комбинаций клавиш. Вводная комбинация для Screen – ctrl + a. После этого вводится символ, который определён для выполнения того или иного действия. Например, для того, чтобы отключиться от сессии, необходимо указать символ d, то есть:

ctrl + a d

Для создания нового окна используется символ c:

ctrl + a c

Переход к следующему окну:

ctrl + a n

Переход к предыдущему окну:

ctrl + a p

Для выбора конкретного окна:

ctrl + a “

или

ctrl + a 1 (где 1 – номер окна)

Для удаления текущего окна:

ctrl + a k

При удалении последнего окна также уничтожается и сама сессия. Для уничтожения всех окон и выхода из Screen:

ctrl + a ctrl \

Для разбиения окна на два (по горизонтали):

ctrl + a S

Полный список комбинаций можно просмотреть в документации при помощи команды:

man screen

Для того, чтобы просмотреть список доступных сессий, необходимо использовать команду:

screen –ls

Для подключения к определённой сессии (например, myscreensession01):

screen –x myscreensession01