Больше года одноклассник подбивал меня начать использовать screen во время работы. Шло время, у меня всё никак не доходили до этого руки. А зря…
Screen — это полноэкранный оконный менеджер, позволяющий из одного терминального сеанса работать сразу с несколькими окнами. Иными словами, подключившись к удалённой машине по ssh вы сможите работать сразу с несколькими его окнами внутри одной сессии подобно нажатию ctrl+alt+f1, ctrl+alt+f2… У программы есть одна важная особенность: при обрыве связи или отключении от «скрина» процессы, в нём запущенные не останавливаются и к ним можно вернуться в любой момент. Этому можно найти массу применений. Например, работая с удалённым сервером можно быть уверенным в том, что запущенное компилирование программы дойдёт до конца, даже если вдруг оборвётся связь.
Установка
Устанавливается программа как обычно, например, в Ubuntu так:
apt-get install screen
Стоит так же заметить, что в моей Ubuntu 10.04 Desktop этот пакет уже был в системе.
Использование Screen
Запуск программы:
screen
После запуска программы будет показана краткая информация о ней. Для того, чтобы убрать её нажимаем enter или пробел. Вы можете подумать, что ничего не произошло, однако, это не так: вы внутри терминала, запущенного в screen. После этого мы видим привычную нам консоль.
Для подачи команд screen используется сочетание клавишь ctrl+a. Ниже приведён список основных команд, служащих для управления оболочкой:
- c — создание нового окна
- n — переключение к следующему окну
- p — переключение к предыдущему окну
- k — закрытие окна
- d — отключение от скрина
- » — список запущенных в скрине окон
Например, для создания нового окна нужно нажать ctrl+a и нажать клавишу c.
При отключении от скрина все окна и процессы, запущенные в них продолжают выполняться. Для просмотра запущенных скринов используется команда:
screen -ls
Вывод команды будет примерно таким:
There are screens on:
18388.pts-4.asid-ubuntu-vm (23.09.2010 05:05:30) (Detached)
18272.pts-0.asid-ubuntu-vm (23.09.2010 04:54:23) (Detached)
2 Sockets in /var/run/screen/S-root.
Для того, чтобы подключиться к запущенному скрину выполняем команду screen -r <id>. Например, так:
screen -r 18388.pts-4.asid-ubuntu-vm
или короче:
screen -r 18388
Если вы забыли отключиться от скрина с другой машины (в выводе screen -ls рядом с ним будет надпись atached), перехватить его можно с помощью параметра -rd:
screen -rd 18388
Для подключения к последнему скрину можно просто:
screen -r
Ну вот, вроде бы, и всё. Подробнее об этих и других командах, как обычно, в мане.