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