Содержание

screen

GNU screen - консольный мультиплексор терминала между несколькими процессами, эмулирующий терминал VT100/ANSI.

Описание

Screen это полноэкранный оконный менеджер, который мультиплексирует физический терминал между несколькими процессами (обычно, интерактивными оболочками). Каждый терминал обладает функциональностью терминала DEC VT100 и некоторыми управляющими функциями из стандартов ISO 6429 (ECMA 49, ANSI X3.64) и ISO 2022 (вставка/удаление строки и поддержка множеств символов). Для каждого виртуального терминала есть буфер истории и механизм обмена, позволяющий копировать текст между окнами.

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

Все окна работают полностью независимо друг от друга. Программы продолжают работать, даже если они невидимы в настоящий момент, или вообще весь сеанс screen полностью отключён от терминала пользователя. Когда программа завершается, screen (по умолчанию) закрывает то окно, в котором она исполнялась. Если это окно было активным, screen активирует предыдущее; если окон не осталось, screen завершается.

Всё, что вы набираете внутри screen, отправляется программе, работающей в текущем окне. Единственное исключение — комбинация клавиш, которая показывает, что сейчас вы хотите работать с самим оконным менеджером. По умолчанию, команды работы с оконным менеджером начинаются нажатием Control-a (далее C-a), за которым следует нажатие одной клавиши. Эта и другие управляющие комбинации могут быть настроены иначе, но они обязательно должны состоять из двух символов.

Программа screen не понимает префикс «C-» как обозначение нажатия Ctrl. Вместо этого нужно использовать запись с символом ^ (например, ^A вместо C-a). Это может пригодиться, например, как аргумент опции -e. Кроме этого, управляющие символы screen выводит в этом же формате.

Стандартный способ создать новое окно — нажать «C-a c». Окно создаётся мгновенно, и screen сразу же делает его активным, независимо от того, в каком состоянии находится процесс, выполняющийся в текущем окне. Аналогично можно создавать новые окна, в которых будет выполняться какая-то своя команда. Для этого сначала нужно привязать команду к комбинации клавиш (это делается через конфигурационный файл .screenrc или через режим командной строки C-a :, а потом, когда будет нужно, просто использовать эту комбинацию клавиш. Кроме всего прочего, новые окна можно создавать при помощи команды:

screen emacs prog.c

которая вызывается в командном интерпретаторе, работающем внутри screen. Новая копия screen создаваться не будет, а вместо этого команда будет передана текущему менеджеру (информация о том кто именно является текущим менеджером находится в переменной окружения $STY), который и создаст новое окно. В приведённом выше примере запускается редактор emacs (в котором открывается prog.c) и окно с этим редактором становится активным.

Если файл /var/run/utmp доступен screen для изменения, он сделает соответствующие записи для каждого окна при их создании, и удалит при их закрытии. Это очень полезно при использовании таких программ как talk, script, shutdown, rsend, sccs и многими другими, которые используют файл utmp, для того чтобы определить кто вы (то есть, какой пользователь работает с каким терминалом). До тех пор пока screen активен на терминале, запись про собственно этот терминал удаляется. Также смотрите C-a L.

Опции командной строки

Часто используемые

Привязки клавиш

Самые частоиспользуемые

Индивидуальная настройка

xgu.ru