SCREEN

ИМЯ
СИНТАКСИС
ОПИСАНИЕ
ПРИСТУПАЯ К РАБОТЕ
ОПЦИИ КОМАНДНОЙ СТРОКИ
ПРИВЯЗКИ КЛАВИШ ПО УМОЛЧАНИЮ
ИНДИВИДУАЛЬНАЯ НАСТРОЙКА
СТРОКА СООБЩЕНИЙ
ТИПЫ ОКОН
ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ
УПРАВЛЕНИЕ ПОТОКОМ
НАЗВАНИЯ (именование окон)
ВИРТУАЛЬНЫЙ ТЕРМИНАЛ
ТРАНСЛЯЦИЯ ПРИ ВВОДЕ
СПЕЦИАЛЬНЫЕ ВОЗМОЖНОСТИ ТЕРМИНАЛА
ПРЕОБРАЗОВАНИЕ СИМВОЛОВ
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
ФАЙЛЫ
СМОТРИ ТАКЖЕ
АВТОРЫ
АВТОР ПЕРЕВОДА
COPYLEFT
УЧАСТНИКИ
ВЕРСИЯ
ДОСТУПНОСТЬ
НЕИСПРАВНОСТИ

ИМЯ

screen − оконный менеджер с эмуляцией терминала VT100/ANSI

СИНТАКСИС

screen [ опции ] [ команда [ аргументы ] ]
screen −r
[[идентификтор_процесса.]терминал[.узел]]
screen −r
владелец_сеанса/[[идентификатор_процесса.]терминал[.узел]]

ОПИСАНИЕ

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

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

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

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

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

screen emacs prog.c

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

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

ПРИСТУПАЯ К РАБОТЕ

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

Если вы хотите побыстрее начать работу со screen и не углубляться в долгое чтение, вам нужно запомнить только одну команду: C−a ?. Если нажать эту комбинацию клавиш, будет показан список доступных команд и привязок комбинаций клавиш к ним. Каждая комбинация клавиш обсуждается в разделе ПРИВЯЗКИ КЛАВИШ. Раздел ИНДИВИДУАЛЬНАЯ НАСТРОЙКА рассматривает содержимое вашего конфигурационного файла .screenrc.

Если ваш терминал − это настоящий терминал с авто−отступом (auto−margin) (не позволяет обновить последнюю позицию экрана без прокрутки), возможно вам стоит использовать такую версию termcap для вашего терминала, в которой автоматические отступы выключены. В этом случае screen будет правильно обновлять экран при любых обстоятельствах. Сегодня у большинства терминалов есть волшебные отступы (magic margins) − автоматические отступы и используемая последняя колонка, что соответствует стилю терминала VT100 и отлично подходит для screen. Если у вас настоящий терминал с авто−отступами, screen может его использовать, но обновление последнего символа в строке на экране может быть невозможным без прокрутки или перемещения символа в другую позицию каким−то иным способом. Задержку, связанную с этим, можно сократить при использовании терминала, у которого есть возможность вставки символов.

ОПЦИИ КОМАНДНОЙ СТРОКИ

У программы screen такие опции командной строки:

−a

Включать все возможности (за некоторыми небольшими исключениями) в termcap каждого окна, даже если screen должен перерисовывать часть экрана для реализации функции.

−A

Адаптирует размеры всех окон под размер текущего терминала. По умолчанию, screen пытается восстановить старый размер окна (при подключении к терминалам с изменяемыми размерами (те, у кого в описании присутствует WS, например, suncmd или некоторые из видов xterm).

−c файл

Использовать файл вместо стандартного $HOME/.screenrc в качестве конфигурационного.

−d|−D [идентификатор_процесса.терминал.узел]

Не запускает новый сеанс screen, а отключает вместо этого уже запущенный ранее сеанс screen. Достигается тот же эффект, что и в случае нажатия клавиш C−a d на управляющем терминале screen. Ключ −D эквивалентен ключу power detach. Если ни к одному сеансу нельзя обратиться, опция игнорируется. В связке с опцией −r/−R могут быть достигнуты другие более интересные эффекты:

−d −r

Установить санс, и если необходимо, сначала отключить его.

−d −R

Переподключиться к сеансу. Если необходимо − сначала отключить или создать сеанс.

−d −RR

Переподключиться к сеансу. Если необходимо − сначала отключить или создать сеанс. Использует первый сеанс, если в наличии более одного сеанса.

−D −r

Подключиться к сеансу. Если необходимо, сначала отключиться от него и удалённо разлогиниться.

−D −R

Подключиться здесь и сейчас. Это значит: если сеанс работает, переподключиться. Если необходимо, сначала отключиться удалённо. Если не работала, то создать и сообщить об этом пользователю. Любимый ключ автора.

−D −RR

Подключиться прямо сейчас. Что бы это ни значило, просто сделать это.

Замечание: всегда полезно проверять состояние ваших сеансов с помощью screen −list.

−e xy

Устанавливает управляющий символ в x и символ, который генерирует сам этот символ в y (после ввода командного символа). По умолчанию это C−a и ’a’, что может быть явно указано, как −e^Aa. При создании сеанса screen эта опция устанавливает управляющий символ по умолчанию. В многопользовательских сеансах все добавляемые пользователи будут использовать указанный символ. Но при подключении к уже существующему сеансу, эта опция меняет управляющий символ только для пользователя, выполняющего подключение. Опция эквивалентна командам defescape или escape соответственно.

−f, −fn и −fa

Включает управление потоком, отключает его или активирует режим автоматического переключения. Режим также можно задать при помощи команды defflow в файле .screenrc.

−h число

Определяет размер истории буфера прокрутки равным числу.

−i

Вызывает клавишу прерывания (обычно Ctrl−C) для немедленного прерывания отображаемой на экране информации при включённой опции управления потоком. См. команду defflow файла .screenrc подробнее. Использование этой опции не рекомендуется.

−l и −ln

Включает режим login или отключает его (для обновления файла /var/run/utmp). Режим также можно задать с помощью команды deflogin в файле .screenrc.

−ls [соответствие]
−list
[соответствие]

Не запускает screen, а выводит список строк идентификатор_процесса.терминал.узел и создаёт временные метки, идентифицирующие наши сеансы screen. Сеансы с пометкой ’detached’ могут быть возобновлены с помощью screen −r. А сеансы с пометкой ’attached’ − запущены и контролируют терминал. Если сеанс запущен в многопользовательском режиме, он помечается как ’multi’. Сеансы с отметкой ’unreachable’ или являются действующими на другом узле или ’мертвы’. Недоступный сеанс считается мёртвым, если его имя совпадает или с именем локального узла или с именем указанного параметра, при его наличии. Обратитесь к описанию флага −r за правилами описания соответствий. Сеансы с отметкой ’dead’ должны быть тщательно проверены и удалены. Обратитесь к вашему системному администратору если вы не уверены. Удалите сеансы с помощью опции −wipe.

−L

Указывает программе screen включить функцию автоматического вывода журнальных сообщений для окон.

−m

Заставляет screen игнорировать переменную окружения $STY. С помощью screen −m создание нового сеанса осуществляется принудительно, независимо от того, была программа screen вызвана из другого сеанса screen или нет. Этот флаг имеет специальное значение при употреблении вместе с опцией ’−d’:

−d −m

Запускает screen в режиме detached. Будет создана новый сеанс, но не присоединение к нему. Полезно для системных скриптов автозагрузки.

−D −m

При этом screen также стартует в detached режиме, но не порождает новый процесс. Команда завершает работу при завершении сеанса.

−O

Выбирает более оптимальный режим вывода для вашего терминала, а не эмуляцию терминала VT100 (влияет только на терминалы с авто−выравниванием без ’LP’). Также может быть задано в файле .screenrc указанием ’OP’ в команде termcap.

−p число_или_имя|−|=|+

Предварительный выбор окна. Полезно, если нужно заново присоединиться к указанному окну или если нужно послать команду с помощью опции −X указанному окну. Как и в случае с командой select, знак − выбирает пустое окно. Если вместо номера указать символ =, то при подключении появится меню windowlist со списком окон.

−q

Подавлять вывод сообщений об ошибках. Совместно с −ls возвращает следующие коды завершения: 9 − отсутствие каталога с сеансами. 10 − каталог присутствует, но нет сеансов, к которым можно подключиться, 11 (или больше) − есть один или более рабочих сеансов. В сочетании с −r возвращает следующие коды завершения: 10 − нет сеансов, которые можно возобновить, 12 (или больше) − есть два или более сеансов, работу которых можно возобновить и нужно выбрать один из них. Во всех остальных случаях ключ −q действия не имеет.

−Q

Некоторые команды теперь могут быть запрошены из удалённого сеанса с использованием этого флага, например, screen −Q windows. Команды будут посылать ответ на стандартный вывод запрашиваемого процесса. Если в команде присутствует ошибка, запрашиваемый процесс завершится с ненулевым статусом.

Команды, которые могут быть запрошены:
echo
info
lastmsg
number
select
time
title
windows

−r [идентификатор_процесса.терминал.узел]
−r
владелец_сеанса/[идентификатор_процесса.терминал.узел]

Возобновляет работу отключённого сеанса screen. Никакие другие опции (за исключением комбинаций с −d/−D) не допускаются, однако может понадобиться указание необязательного префикса [идентификатор_процесса.]терминал.узел для определения конкретного сеанса из множества отключённых. Вторая форма используется для подключения к работающему в многопользовательском режиме сеансу другого пользователя. Это указывает на то, что screen должен искать сеансы в каталоге другого пользователя. Требует наличия бита setuid−root у программы screen.

−R

Пытается возобновить работу самого молодого (по времени создания) отключённого сеанса screen. В случае удачи, все остальные опции командной строки игнорируются. Если отключённых сеансов нет, запускается новый сеанс с учётом заданных опций таким образом, будто опция −R не указана. Эта опция установлена по умолчанию, если screen запущен, как входной интерпретатор (на самом деле, в этом случае screen использует опции −xRR). О комбинациях с опцией −d/−D см. в описании этих опций. Примечание: Выбор сеанса на основе времени создания − дополнение Debian.

−s программа

Задаёт указанную программу в качестве интерпретатора по умолчанию вместо значения переменной окружения $SHELL (или /bin/sh если никакая не указана). Её можно указать с помощью команды shell в файле .screenrc. См. далее.

−S имя_сеанса

Эта опция может использоваться для задания понятного имени создаваемому сеансу. Имя используется для идентификации сеанса при вызове screen −list и screen −r. Она заменяет суффикс по умолчанию [терминал.узел].

−t имя

Задаёт заголовок для интерпретатора по умолчанию или указанной программы. См. также команду shelltitle для .screenrc.

−T терминал

Задаёт используемый терминал в переменной окружения $TERM, заменяющий значение настройки по умолчанию программы screen.

−U

Запускает screen в режиме UTF−8. Эта опция указывает screen, что наш терминал посылает и понимает символы в кодировке UTF−8. Этот ключ также устанавливает кодировку по умолчанию для новых окон в ’utf8’.

−v

Выводит номер версии.

−wipe [match]

Выполняет то же, что и screen −ls, но удаляет уничтоженные сеансы вместо маркировки их как ’dead’ (мёртвые). Сеанс, который не отвечает, считается мёртвым, или если его имя совпадает с именем локального узла или с явно указанным параметром match. Обратитесь к −r за описанием правил составления match.

−x

Подключиться к активному (not detached) сеансу screen. (Многодисплейный режим). Screen отказывается подключаться сам от себя. Но при каскадном расположении множества экземпляров screen, закольцовки не обнаруживаются; будьте осторожны.

−X

Отправляет указанную команду в запущенный сеанс screen. Можно воспользоваться опцией −S для указания сеанса screen, если имеется несколько запущенных сеансов screen. Вы можете использовать опцию −d или −r, чтобы screen искал только подключённые (attached) или отключённые (detached) сеансы. Обратите внимание, что эта команда не работает если сеанс защищён с помощью пароля.

−4

Преобразовывать имена узлов только в адреса IPv4.

−6

Преобразовывать имена узлов только в адреса IPv6.

ПРИВЯЗКИ КЛАВИШ ПО УМОЛЧАНИЮ

Как упоминалось ранее, каждая команда screen состоит из комбинации C−a, за которой следует один символ. Для удобства все команды, которые привязаны к символу в нижнем регистре, также привязаны к комбинации этого символа с Ctrl (за исключением C−a a; см. ниже), так, например, C−a c работает также, как C−a C−c − создаёт новое окно. См. раздел ИНДИВИДУАЛЬНАЯ НАСТРОЙКА для описания команды.
В следующей таблице показаны привязки клавиш по умолчанию:

C−a ’ (select)

Запросить название или имя окна, в которое нужно переключиться.

C−a " (windowlist −b)

Представить список всех окон для выбора.

C−a 0 (select 0)

... ...

C−a 9 (select 9)

C−a − (select −)

Переключиться в окно с номером 0 − 9 или в пустое окно.

C−a tab (focus)

Переключить фокус ввода на следующую область. См. также split, remove, only.

C−a C−a (other)

Переключиться в ранее активное окно. Заметим, что по умолчанию команда привязана к управляющему символу, нажатому дважды, если не переопределено. Например, если воспользоваться опцией −e]x, команда будет вызываться символами ]].

C−a a (meta)

Отправить C−a в окно. См. также команду escape.

C−a A (title)

Ввести заголовок текущего окна.

C−a b

C−a C−b (break)

Отправить break в окно.

C−a B (pow_break)

Повторно открыть терминальную линию и отправить break.

C−a c

C−a C−c (screen)

Создать новое окно с запущенным интерпретатором и переключиться в это окно.

C−a C (clear)

Очистить экран.

C−a d

C−a C−d (detach)

Отключить screen от этого терминала.

C−a D D (pow_detach)

Отключиться и выйти из системы.

C−a f

C−a C−f (flow)

Включить/выключить/перевести в автоматический режим управление потоком on, off или auto.

C−a F (fit)

Изменить размер окна под размер текущей области.

C−a C−g (vbell)

Переключить режим visual bell.

C−a h (hardcopy)

Записать копию текущего окна в файл hardcopy.n.

C−a H (log)

Начать/закончить запись сеанса работы в текущем окне в файл screenlog.n.

C−a i

C−a C−i (info)

Показать информацию о текущем окне.

C−a k

C−a C−k (kill)

Уничтожить текущее окно.

C−a l

C−a C−l (redisplay)

Полностью обновить текущее окно.

C−a L (login)

Переключить login−запись этого окна. Доступно только в случае, когда screen настроен на обновление базы utmp.

C−a m

C−a C−m (lastmsg)

Повторить последнее сообщение, показанное в строке сообщений.

C−a M (monitor)

Включить/выключить наблюдение за текущим окном.

C−a пробел

C−a n

C−a C−n (next)

Переключиться на следующее окно.

C−a N (number)

Показать номер (и заголовок) текущего окна.

C−a backspace

C−a C−h

C−a p

C−a C−p (prev)

Переключиться на предыдущее окно (противоположно C−a n).

C−a q

C−a C−q (xon)

Отправить Ctrl−q в текущее окно.

C−a Q (only)

Удалить все области за исключением текущей. См. также split, remove, focus.

C−a r

C−a C−r (wrap)

Включить/выключить перенос строк текущего окна (включает и выключает автоматические отступы (automatic margins))

C−a s

C−a C−s (xoff)

Отправить Ctrl−s в текущее окно.

C−a S (split)

Разделить текущую область на две новых. См. также only, remove, focus.

C−a t

C−a C−t (time)

Показать информацию о системе.

C−a v (version)

Показать версию и дату сборки.

C−a C−v (digraph)

Ввести диграф.

C−a w

C−a C−w (windows)

Показать список окон.

C−a W (width)

Переключить количество колонок: 80/132

C−a x

C−a C−x (lockscreen)

Заблокировать текущий терминал.

C−a X (remove)

Закрыть текущую область. См. также split, only, focus.

C−a z

C−a C−z (suspend)

Приостановить screen. Система должна поддерживать управление работами (job−control) в стиле BSD.

C−a Z (reset)

Сбросить виртуальные терминалы в их исходные значения.

C−a . (dumptermcap)

Записать файл .termcap.

C−a ? (help)

Показать привязки клавиш.

C−a \ (quit)

Закрыть все окна и завершить screen.

C−a : (colon)

Перейти в режим ввода командной строки.

C−a [

C−a C−[

C−a esc (copy)

Перейти в режим копирования/прокрутки.

C−a C−]

C−a ] (paste .)

Записать содержимое буфера обмена в стандартный поток ввода текущего окна.

C−a {

C−a } (history)

Скопировать и вставить предыдущую командную строку.

C−a > (writebuf)

Записать буфер обмена в файл.

C−a < (readbuf)

Прочитать файл обмена (screen−exchange) в буфер обмена.

C−a = (removebuf)

Удалить файл, используемый C−a < и C−a >.

C−a , (license)

Выводит информацию о происхождении, назначении и лицензии screen.

C−a _ (silence)

Включить/выключить режим слежения за отсутствием активности текущего окна.

C−a | (split −v)

Разделить текущую область вертикально на две новых.

C−a * (displays)

Показать список всех подключенных сейчас дисплеев.

ИНДИВИДУАЛЬНАЯ НАСТРОЙКА

По умолчанию каталог для сокетов socket directory задаётся при компиляции − это или $HOME/.screen, или /tmp/screens или, скорее всего, /var/run/screen. Если screen имеет бит setuid−root, то администратор должен скомпилировать screen с адекватным местоположением каталога для сокетов (не на NFS−разделе). Если screen не имеет бита setuid−root, пользователь может указывать каталог через переменную окружения $SCREENDIR, у каталога должен быть режим доступа 700.

При вызове screen исполняет настроечные команды из файлов /etc/screenrc и .screenrc в домашнем каталоге пользователя. Имена этих файлов − настройки по умолчанию, которые можно перекрыть одним из следующих способов: глобальный файл конфигурации указывается при помощи переменной окружения $SYSSCREENRC (эта возможность может быть отключена при компиляции). Пользовательский файл конфигурации ищется сначала по пути, указанном в переменной окружения $SCREENRC, а затем в файле $HOME/.screenrc. Опция командной строки −c имеет приоритет над указанными выше пользовательскими файлами screenrc.

Команды в этих файлах используются для того, чтобы задавать опции, привязывать действия к функциональным клавишам и автоматически открывать одно или несколько окон при старте вашего сеанса screen. Команды записываются по одной в строке, пустые строки игнорируются. Аргументы команд разделяются табуляцией или пробелами и могут объединяться с помощью одиночных или двойных кавычек. Символ ’#’ и все остальные символы до конца строки являются комментарием, за исключением символов в кавычках. Нераспознанные строки игнорируются с выводом предупреждения. В командах могут использоваться ссылки на переменные окружения. Синтаксис такой же, как в командном интерпретаторе: "$VAR " или "${VAR}". Обратите внимание, что это вызывает несовместимость с предыдущими версиями screen, так как сейчас символ ’$’ должен быть экранирован с помощью ’\’ если нет подстановки переменной окружения. От подстановки переменных также защищают одинарные кавычки.

В дистрибутив входит два конфигурационных файла−примера: etc/screenrc и etc/etcscreenrc. В этих файлах есть много примеров различных конфигурационных команд GNU Screen.

Настройка может быть выполнена и в интерактивном режиме. Чтобы войти в режим командной строки, нажмите ’C−a :’. Отметим, что команды, начинающиеся с def изменяют значения по умолчанию, в то время, как остальные меняют текущие настройки.

Доступны следующие команды:

acladd имена_пользователей [шифрованный_пароль]
addacl
имена_пользователей

Даёт пользователям полный доступ к этому сеансу screen. В качестве параметра имена_пользователей может задаваться имя пользователя или имена нескольких пользователей, разделённых запятыми. Эта команда разрешает подключаться к сеансу screen и выполняет действия, аналогичные действию команды ’aclchg имена_пользователей +rwx "#?"’. Для того, чтобы добавить пользователя с ограниченным доступом, нужно использовать команду ’aclchg’, указанную ниже. В качестве необязательного параметра может указываться зашифрованный пароль для заданного пользователя(−ей). Команда ’addacl’ − синоним команды ’acladd’. Только для многопользовательского режима.

aclchg имена_пользователей биты_доступа список
chacl
имена_пользователей биты_доступа список

Изменить права для списка пользователей, разделенных запятой. Биты доступа представлены как ’r’, ’w’ и ’x’. Префикс ’+’ обозначает добавление права, ’−’ удаляет его. Третий параметр − разделённый запятой список команд и/или окон (указанный или номерами или названием). Специальный список ’#’ относится ко всем окнам, а ’?’ ко всем командам. Если параметр имена_пользователей состоит из единственного символа ’*’, команда применяется ко всем пользователям. Пользователь может выполнить команду, если у него есть бит ’x’ для этой команды. Пользователь может вводить данные в окно, если у него есть бит ’w’ для этого окна, и оно никем не заблокировано. Другие биты на данный момент игнорируются. Для того, чтобы отозвать блокировку записи в окно 2 выполненную другим пользователем, нужно выполнить команду ’aclchg имя_пользователя −w+w 2’. Для того, чтобы предоставить доступ только для чтения: ’aclchg имя_пользователя −w "#"’. Как только имя пользователя становится известно screen, этот пользователь может подключаться к сеансу и по умолчанию у него есть полные права доступа на исполнение всех команд со всеми окнами. Право на исполнение acl команд, ’at’ и прочих нужно удалить, иначе пользователь сможет восстановить себе права на запись сам. Права специального пользователя nobody изменить нельзя (см. описание команды su). Команда ’chacl’ − синоним для команды ’aclchg’. Только для многопользовательского режима.

acldel имя_пользователя

Удалить пользователя из списка управления доступом screen. Если у пользователя есть подключенные экраны, все они отключаются. Подключиться опять он не сможет. Команда работает только в многопользовательском режиме.

aclgrp имя_пользователя [имя_группы]

Создаёт группы пользователей, которые разделяют общие права доступа. Название группы совпадает с названием лидера группы. Все члены группы наследуют права лидера группы. Это означает, что если пользователь не прошёл проверку доступа, выполняется другая проверка для лидера группы. Пользователь удаляется изо всех групп, если в качестве имени_группы используется специальное значение none. Если второй параметр не указан, на экран выводятся все группы, в которых состоит пользователь.

aclumask [[пользователи]+биты |[пользователи]−биты …. ]
umask
[[пользователи]+биты |[пользователи]−биты …. ]

Команда определяет, какие права будут у пользователей при доступе к окнам, созданным вызывающим эту команду. Аргумент пользователи может отсутствовать, являться одиночным значением или быть списком пользователей, разделённых запятыми. Если список пользователей не указан, подразумевается, что перечислены все известные пользователи. Аргумент биты − любая комбинация битов контроля доступа, которые могут использоваться в команде aclchg. Специальное имя пользователя ? определяет, какие права доступа к окнам будут выдаваться пока неизвестным пользователям. Специальное имя пользователя ?? определяет, какие права вызова команд будут выдаваться пока неизвестным пользователям. Права для специального пользователя nobody не могут быть изменены (см. команду su). Команда ’umask’ − синоним команды ’aclumask’.

activity сообщение

Если в окне, которое находится под наблюдением, возникает какая−то активность, screen показывает строку предупреждения. Текст предупреждения можно переопределить с помощью команды activity. Каждый символ ’%’ в сообщении заменяется номером окна, в котором возникла активность, а каждый символ ’^G’ заменяется на определение bell из termcap−файла (обычно ему соответствует звуковой сигнал). Сообщение по умолчанию выглядит так:

’Activity in window %n’

Обратите внимание на то, что наблюдение по умолчанию выключено для всех окон, но с помощью команды monitor (C−a M) может быть включёно.

allpartial on|off

Если установлен, обновляется только строка, содержащая курсор. Действует на все окна и полезно для медленных терминальных линий. Предыдущие настройки полного/частичного обновления восстанавливаются при вызове allpartial off. Это глобальный флаг, который действует немедленно на все окна, перекрывающий настройки partial. Команда не влияет на новые окна и их отрисовку.

altscreen on|off

Если установлен, включается поддержка "альтернативного экрана" в виртуальных терминалах, таких как xterm. Начальное значение − ’off’.

at [идентификатор][#|*|%] команда [аргументы ... ]

Выполнить команду на других дисплеях или окнах, так будто бы она была вызвана там. Команда at меняет контекст команды (’текущее окно’ или ’текущий дисплей’). Если первый аргумент описывает не уникальный контекст, команда будет выполнена многократно. Если первый параметр задан в виде ’идентификатор*’, тогда он проверяется на соответствие именам пользователей. Команда выполняется однократно для каждого дисплея заданного пользователя. Если идентификатор задан в виде ’идентификатор%’, он проверяется на соответствие дисплеям. Дисплеи именуются в соответствии с названиями терминалов, к которым они подключаются. Префикс ’/dev/’ или ’/dev/tty’ указывать в идентификаторе необязательно. Если идентификатор идентификатор содержит ’#’ или никаких специальных символов в конце нет, он проверяется на соответствие номерам и названиям окон. Если не указать идентификатор перед ’#’, ’*’ или символом ’%’, будут выбраны все пользователи, все дисплеи или все окна соответственно. Обратите внимание, что на дисплеях при этом появится короткое сообщение, которое будет описывать, что произошло. Права доступа проверяются для вызывающего команду at, а не для владельцев дисплея(−ев), на котором будет выполняться команда. Замечание: символ ’#’ работает, как начальный символ комментария, когда перед ним стоит пробел. Это может быть экранировано с помощью префикса ’\’. Права доступа проверяются для вызывающего команду at, а не для владельцев дисплея(−ев).
Пояснение: При поиске соответствия именам окон, команда выполняется как минимум по разу для каждого окна. Команды, которые меняют внутренний порядок окон (такие, как other) могут вызываться более одного раза. В окнах, подключенных к нескольким дисплеям, команда будет выполняться для каждого дисплея. Будьте осторожны с переключающими командами типа login! Некоторые команды (например, process) требуют, чтобы экран был подключен к целевому окну. Такие команды могут некорректно работать, когда at обходит окна.

attrcolor атрибут [модификатор_атрибута/цвета]

Эта команда может использоваться для атрибутов подсвечивания изменением цвета текста. Если используется атрибут атрибут, указанный модификатор атрибута/цвета тоже будет применён. Если модификатор не задан, текущий удаляется. Подробнее о синтаксисе модификаторов читайте в разделе ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ. Программа screen понимает два псевдо−атрибута: i обозначает яркий цвет буквы и I обозначает яркий цвет фона.

Примеры:

attrcolor b "R"

Выводить ярко−красным цветом текст, который должен быть полужирным.

attrcolor u "−u b"

Выводить текст синим цветом вместо подчёркнутого.

attrcolor b ".I"

Использовать яркие цвета для вывода полужирного текста. Большинство терминалов и так это выполняют.

attrcolor i "+b"

Сделать чтобы яркий текст был ещё и полужирным.

autodetach on|off

Устанавливает, будет ли screen автоматически отключаться при разрыве связи с терминалом (hangup). В результате отключения команды, работающие программы должны продолжать работать и не завершаться. Восстановить подключение можно с помощью команды screen −r. Если опция выключена (off), при разрыве связи с терминалом все процессы получат сигнал потери связи с терминалом (hangup, HUP) и (скорее всего) завершатся. По умолчанию: on.

autonuke on|off

Указывает, должна ли команда очистки экрана удалять вывод, который ещё не был отправлен на терминал. См. также obuflimit.

backtick идентификатор время_использования автообновление команда аргументы…
backtick
идентификатор

Программирует backtick−команду (командную подстановку) с заданным идентификатором идентификатор. Вывод этой команды используется для замены строковой последовательности %’. Заданный промежуток времени время_использования определяет количество секунд, в течение которых вывод может считаться действительным. Когда время заканчивается, если встретится соответствующая escape−последовательность, программа должна запускаться заново. Параметр автообновлениевключает автоматическое обновление заголовка и строки статуса после заданного количества секунд. Только последняя строка вывода используется для замены.
Если оба параметра: время_использования и автообновление равны 0, программа backtick должна уйти в фон и изредка генерировать вывод. В этом случае команда запускается сразу же и screen сохраняет последнюю строчку вывода. Если печатается новая строка, screen будет автоматически обновлять строку статуса или заголовки.
Вторая форма команды удаляет backtick команду с численным идентификатором идентификатор.

bce [on|off]

Изменяет настройку background−color−erase. Если значение bce on, все символы, которые в настоящий момент очищены операциями erase/insert/scroll/clear, будут выводиться с текущим цветом фона. В противном случае используется цвет фона, заданный по умолчанию.

bell_msg [сообщение]

Когда символ гудка выводится в фоновом окне, screen показывает предупреждающее сообщение. Его можно переопределить командой bell_msg. Каждый символ ’%’ в сообщении заменяется номером окна, в котором прозвучал звуковой сигнал, а каждая последовательность ’^G’ заменяется на определение bell из termcap (обычно, звуковым сигналом). По умолчанию сообщение такое:

’Bell in window %n’

Можно подавить вывод сообщения, если задать пустое сообщение в качестве аргумента (bell_msg ""). При вызове bell_msg без параметров показывается текущее сообщение.

bind [−c класс] клавиша [команда [аргументы]]

Привязать команду к комбинации клавиш. По умолчанию, большинство команд, которые есть в screen уже привязаны к каким−то клавишам или их комбинациям (см. секцию ПРИВЯЗКИ КЛАВИШ ПО УМОЛЧАНИЮ. Так, например, команда создания окна привязана к клавише C−c и c. С помощью команды bind можно переопределять существующие привязки или создавать новые. Аргумент клавиша это или один символ, или последовательность из двух символов в виде ^x (означающая C−x), обратная косая черта, за которой следует восьмеричное число (обозначающее ASCII−код символа) или обратная косая черта, за которой следует другой, экранированный, символ (например, \^ или \\). Этот аргумент можно брать в кавычки. Если больше аргументов нет, удаляется сделанная ранее привязка к этому ключу. В качестве аргумента команда может использоваться любая команда, описанная в этом разделе.

Если при помощи опции −c указан класс команды, клавиша привязывается к команде указанного класса. Класс активируется с помощью команды команда. Классы команд можно использовать для создания множественных комбинаций или многосимвольных привязок.

Некоторые примеры:

bind ’ ’ windows

bind ^k

bind k

bind K kill

bind ^f screen telnet foobar

bind \033 screen −ln −t root −h 1000 9 su

последовательность привязывает пробел к команде, которая показывает список окон (и команда, которая обычно доступна через C−a C−w теперь доступна и по нажатию C−a пробел). Следующие три строки удаляют привязку kill с комбинаций C−a C−k и C−a k. После чего kill привязывается к C−a K. Потом комбинация клавиш C−f привязывается к команде создать окно с командой telnet, подключенной к foobar, а клавишу escape к команде, которая создаёт окно с именем root в слоте 9, с командным интерпретатором, запущенным от имени суперпользователя и буфером прокрутки на 1000 строк.

bind −c demo1 0 select 10

bind −c demo1 1 select 11

bind −c demo1 2 select 12

bindkey "^B" command −c demo1

сделать так, чтобы C−b 0 выбирало окно 10, C−b 1 окно 11 и т.д.

bind −c demo2 0 select 10

bind −c demo2 1 select 11

bind −c demo2 2 select 12

bind − command −c demo2

сделать так, чтобы C−a − 0 выбирало окно 10, C−a − 1 окно 11 и т.д.

bindkey [−d] [−m] [−a] [[−k|−t] строка [команда аргументы]]

Эта команда управляет таблицами трансляции screen. Каждая запись в таблице говорит screen, как реагировать на нажатие определённых последовательностей клавиш. Есть три таблицы: в одной хранятся действия, запрограммированные пользователем, во второй − действия по умолчанию при эмуляции терминала и в третьей − для управления курсором в режиме копирования. В разделе ТРАНСЛЯЦИЯ ПРИ ВВОДЕ приводится список привязок по умолчанию.
Если задана опция −d, bindkey изменяет таблицу по умолчанию, −m изменяет таблицу для режима копирования и при отсутствии заданных ключей выбирается пользовательская таблица. Аргумент строка − это последовательность из символов, к которым привязывается действие. Это может быть или строка или имя termcap (выбираемое при помощи опции −k).
Некоторые клавиши на терминале VT100 могут отправлять другую последовательность, если включен режим приложения (например, клавиши управления курсором). У таких клавиш в таблице трансляции существуют две записи. Выбор режима приложения выполняется с помощью ключа −a.
Опция −t указывает screen не выполнять межсимвольный тайминг. Нельзя отключить тайминг, если используется termcap.
Аргумент команда может быть любой из команд screen с произвольным количеством аргументов аргументы. Если команда не указана, привязка удаляется из таблицы.
Вот некоторые примеры привязок:

bindkey −d
Показать все привязки клавиш по умолчанию. Записи в режиме приложения отмечаются символом [A].

bindkey −k k1 select 1
Клавиша F1 переключает на окно 1.

bindkey −t foo stuff barfoo
Сделать слово "foo" сокращением для слова "barfoo". Таймаут отключён, поэтому пользователи могут набирать медленно.

bindkey "\024" mapdefault
Эта привязка клавиш выполняет escape−последовательность ^T для привязок клавиш. Если выполнена предыдущая привязка stuff barfoo, можно ввести слово foo набрав ^Tfoo. Чтобы вставить ^T надо нажать её дважды (т.е. экранировать второе нажатие с помощью первого).

bindkey −k F1 command
Сделать клавишу F11 (а не F1!) альтернативной последовательностью для screen (помимо ^A).

break [длительность]

Отправляет сигнал разрыва (break) длительностью длительность*0.25 секунд для этого окна. Для не−Posix систем временной интервал может округляться до целого количества секунд. Наиболее полезно в том случае, когда символьное устройство подключено к окну, а не процессу командного интерпретатора (См. главу ТИПЫ ОКОН). Максимальная длительность сигнала ограничена 15 секундами.

blanker

Активирует хранитель экрана. Если хранитель экрана не задан, сначала очищается экран и выключается курсор, иначе запускается хранитель экрана и его вывод направляется на экран. По первому нажатию клавиши хранитель экрана завершается, нажатая клавиша не запоминается.
Обычно эта команда используется совместно с командой idle.

blankerprg [программа аргументы]

Указывает программу хранителя экрана. Отключает хранитель экрана вообще, если этот параметр не задан. Если запущена без аргументов, показывает название текущего хранителя экрана.

breaktype [tcsendbreak|TIOCSBRK |TCSBRK]

Выбрать один из доступных способов генерирования сигнала разрыва (break) для терминальных устройств. Эта команда должна действовать только на текущее окно, но до сих пор она работает, как defbreaktype. В будущем это изменится. Если вызвать breaktype без параметров, будет выведен доступный способ для текущего окна.

bufferfile [файл_обмена]

Изменить имя файла, используемого для чтения и записи буфера обмена. Если имя файла не указано, реактивируется настройка по умолчанию (/tmp/screen−exchange). В этом примере системный файл паролей копируется в окно screen (при помощи буфера обмена, в котором остаётся копия):

C−a : bufferfile /etc/passwd

C−a < C−a ]

C−a : bufferfile

c1 [on|off]

Изменяет обработку кода c1. При включении C1 on screen будет обрабатывать символы с кодом в диапазоне от 128 до 159 как специальные управляющие последовательности. Он будет воспринимать 8−битный код как комбинацию ESC и соответствующего 7−битного кода. По умолчанию обработка кодов c1 включена и может быть изменена с помощью команды defc1. Пользователи, которому нужны символы с кодами на позициях относящихся к C1, могут выключить эту функцию.

caption always|splitonly [строка]
caption string
[строка]

Эта команда управляет отображением заголовков окон. Обычно заголовок показывается только если на экране отображается более одного окна (режим split программы screen). Но если тип установлен в always программа screen отображает заголовок даже если отображается одно окно. По умолчанию включён режим splitonly.

Вторая форма вызова изменяет текст заголовка. Можно использовать все escape−последовательности из раздела ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ. По умолчанию screen использует заголовок: ’%3n %t’.

Можно смешивать обе формы и задавать строку как дополнительный аргумент.

charset кодировка

Изменяет текущее назначение слотов и привязку кодировок. Первые четыре символа рассматриваются в качестве указателя кодировки, а пятый и шестой должны находиться в диапазоне от ’0’ до ’3’ и задавать настройку отображения GL/GR. В каждой позиции символ ’.’ может указывать на то, что соответствующая кодировка не должна изменяться (кодировка дополняется до шести символов внутри screen путем добавления символов ’.’). У новых окон будет кодировка по умолчанию "BBBB02", кроме тех случаев, когда активна команда encoding.
Текущие настройки можно посмотреть при помощи команды info.

chdir [каталог]

Изменяет текущий каталог screen на заданный или, если команда вызвана без аргументов, на домашний каталог пользователя (значение переменной окружения $HOME). У всех программ, которые запускаются в окнах, создающихся при помощи команды screen из .screenrc или при помощи C−a : screen ... или C−a c используют его как каталог по умолчанию. Без вызова команды chdir, текущим каталогом будет тот, из которого вызывался screen. Hardcopy−файл и файл журнала всегда пишутся в каталог по умолчанию окна, а не в текущий каталог процесса, который работает в этом окне. Можно многократно использовать эту команду в файле .screenrc для создания различных окон с различными каталогами каталогами по умолчанию, но последний вызов chdir будет влиять на все интерактивно созданные окна.

cjkwidth [ on | off ]

Трактовать неоднозначную ширину символов как полную/половинную ширину.

clear

Очищает текущее окно и сохраняет его образ в буфер прокрутки.

colon [префикс]

Позволяет вводить командные строки .screenrc. Полезно для выполнения изменений привязки клавиш на лету, создания специальных окон и изменения настроек. Обратите внимание на то, что ключевое слово set больше не существует! Как правило, команды воздействуют на текущее окно, а не на настройки по умолчанию для будущих окон. Для изменения настроек по умолчанию используйте команды, начинающиеся с ’def...’.

Вы можете воспринимать этот режим как режим ’Ex’ в screen, а режим, вызываемый по комбинации клавиш C−a esc (режим копирования) как командный режим по аналогии с редактором ’vi’.

command [−c класс]

Эта команда делает то же самое, что и комбинация клавиш (^A). Вероятно, она полезна только для привязок комбинаций клавиш. Если задан ключ −c, определяется класс команды. См. также bind и bindkey.

compacthist [on|off]

Говорит screen, нужно ли подавлять последние пустые строки при прокрутке текста в буфере истории.

console [on|off]

Захватывает (или отпускает захват) системной консоли текущим окном. Захватить консоль может только владелец файла /dev/console. Эта команда присутствует только в случае, если система поддерживает ioctl TIOCCONS.

copy

Переходит в режим копирования/прокрутки. В этом режиме можно скопировать текст из текущего окна и его истории в буфер обмена. В этом режиме активируется vi−подобный интерфейс ’полноэкранного редатора’:
Клавиши перемещения
:

h, C−h, или стрелка влево перемещаю курсор влево.
j
, C−n, или стрелка вниз перемещают курсор вниз.
k
, C−p, или стрелка вверх перемещают курсор вверх.
l
(’эл’) или стрелка вправо перемещают курсор вправо.
0
(ноль) или C−a перемещают курсор в самую левую колонку.
+
и перемещают на одну строку вверх или вниз.
H
, M и L перемещают курсор в самую левую колнонку верхней, средней или нижней строки окна.
|
перемещает на колонку с заданным номером.
g
или home перемещает в начало буфера.
G
или end перемещает на строку с заданным номером (по умолчанию: до конца буфера).
%
переносит на указанный процент буфера.
^
или $ перемещают курсор в самую левую колонку, в первую или последнюю позицию, где стоит непробельный символ.
w
, b, и e передвижение курсора по словам.
B
, E передвижение курсора по СЛОВАМ (как в редакторе vi).
f/F
, t/T перемещает курсор вперёд/назад до следующего вхождения. (например, ’3fy’ переместит курсор на 3−ю позицию ’y’ справа).
;
и , Повторяют последнюю команду f/F/t/T в том же или обратном направлении.
C−e
и C−y прокручивает экран вверх/вниз построчно с сохранением позиции курсора.
C−u
и C−d прокручивает экран вверх/вниз на заданное количество строк, сохраняя при этом позицию курсора. (По умолчанию: на пол−экрана).
C−b
и C−f прокручивают на один экран ввер/вниз.

Замечание:
Команды перемещения в стиле Emacs можно настроить с помощью .screenrc. (Например, markkeys "h=^B:l=^F:$=^E"). Нет простого способа для полной раскладки в стиле, поскольку нужно задействовать многосимвольные коды.

Маркировка:
Область копирования определяется двумя отметками. Текст между отметками подсвечивается. Отметки ставятся при помощи пробела. Нажмите:
пробел
или enter чтобы указать соответственно первую или вторую отметку. Если mousetrack включён, маркировка также может быть установлена с помощью левого клика мыши.
Y
и y используются для маркировки всей строки или с начала строки.
W
маркирует ровно одно слово.
Повтор
:
Любую из этих команд можно вводить после числа, обозначающего количество повторов при вызове этой команды
0
..9 обозначает количество повторов.
Пример: C−a C−[ H 10 j 5 Y скопирует строки с 11 по 15 в буфер обмена.
Поиск
:
/
Поиск вперёд в стиле vi.
?
Поиск назад в стиле Vi.
C−a s
Инкрементальный поиск вперёд в стиле Emacs.
C−r
Обратный интерактивный поиск в стиле Emacs.
n
Найти следующий шаблон поиска.
N
Найти предыдущий шаблон поиска.
Отличия от vi
:
Есть, однако несколько клавиш, которые работают не как в vi. vi (не vim) не позволяет работать с прямоугольными блоками текста, а screen позволяет. Нажатие:
c
или C задаёт левый или правый отступ соответственно. Если не задан повтор, отступ будет соответствовать текущей позиции курсора.
Пример: Попробуйте такую последовательность: C−a [ M 20 l SPACE c 10 l 5 j C SPACE.

Перейти на среднюю линию, сдвинуться на 20 колонок влево, отметить начало буфера, установить левую колонку, перейти на 5 строк вниз, установить правую колонку, и затем отметить конец буфера обмена. Теперь попробуйте:
C−a [ M 20 l SPACE 10 l 5 j SPACE

и обратите внимание на количество скопированного текста.
J
объединить строки. Он переключается между 4 режимами: строки разделяются символом новой строки (012), строки объединяются бесшовно, разделяются одним пробелом или запятой. Заметьте, что можно сделать так, чтобы перед символом новой строки выводился символ перевода каретки, для этого нужно дать команду crlf on.
v
или V нужна всем пользователям vi, которые включают :set numbers − это переключает величину отступа между 9 и 1.
a
до окончательного нажатия пробела переключает в режим дополнения. Содержимое буфера обмена будет дописано, а не стёрто.
A
переключает режим дополнения и ставит вторую отметку.
>
устанавливает вторую отметку и записывает содержимое буфера в файл screen−exchange (по умолчанию в /tmp/screen−exchange) и выходит из режима копирования.
Этот пример демонстрирует, как записать весь буфер прокрутки в тот файл: C−A [ g SPACE G $ >.
C−g
показывает информацию о текущей строке и колонке.
x
или o меняет местами первую отметку и текущую позицию курсора. Можно использовать это для того, чтобы передвинуть уже установленную отметку.
C−l
(’эл’) перерисует экран.
@
ничего не делает. Даже не выходит из режима копирования.
Все клавиши, которые не были описаны здесь, завершают режим копирования.

copy_reg [клавиша]

Больше не существует, используйте readreg взамен.

crlf [on|off]

Команда влияет на копирование блоков текста с помощью комбинации клавиш ’C−a [’. Если установить её в ’on’, строки будут разделяться символами ’CR’ − ’LF’. В противном случае (по умолчанию) они будут разделяться только ’LF’. При вызове без параметров, состояние переключается.

debug on|off

Включает или выключает отладку. Если screen был скомпилирован с опцией −DDEBUG, отладка включена по умолчанию. Обратите внимание на то, что команда действует на отладочный вывод только главного процесса SCREEN. Отладочный вывод из подключенных процессов можно только выключить один раз и навсегда.

defc1 on|off

То же, что и команда c1, но настройка изменяется в том числе и для новых окон. По умолчанию равна ’on’.

defautonuke on|off

То же, что и команда autonuke, но настройка изменяется по умолчанию и для новых окон. Начальная настройка равна ’off’. Обратите внимание, что можно использовать специальную возможность ’AN’ терминала, если нужно чтобы действие зависело от типа терминала.

defbce on|off

То же, что и команда bce, но настройка изменяется в том числе и для новых окон. По умолчанию, равна ’off’.

defbreaktype [tcsendbreak|TIOCSBRK |TCSBRK]

Выбрать один из доступных методов генерирования сигнала разрыва (break signal) для терминальных устройств. Предпочтительно использовать методы tcsendbreak и TIOCSBRK. Третий метод, TCSBRK, полностью блокирует сеанс screen на протяжении разрыва, но в некоторых случаях это может быть единственным рабочим способом сделать длинный разрыв. tcsendbreak и TIOCSBRK могут делать, а могут не делать длинные разрывы с шипами (long breaks with spikes) (например, 4 в секунду). Это зависит не только от системы, но и от драйверов последовательных адаптеров. Если вызвать defbreaktype без параметра, будут показаны текущие настройки.

defcharset [кодировка]

То же, что и команда charset, но настройка изменяется в том числе и для новых окон. Если вызвать без аргументов, показывает текущую настройку.

defescape xy

Задаёт командные символы по умолчанию. То же, что и escape, за исключением того, что может быть полезно только в многопользовательских сеансах. В многопользовательском сеансе escape меняет настройку только для вызвавшего эту команду пользователя, в то время как defescape меняет настройку для пользователей, которые будут добавлены позже.

defflow on|off|auto [interrupt]

То же, что и команда flow, но настройка изменяется в том числе и для новых окон. Начальная настройка ’auto’. Вызов defflow auto interrupt равносилен использованию при вызове ключей командной строки −fa и −i.

defgr on|off

То же, что и команда gr, но изменяет настройку в том числе для новых окон. По умолчанию, равна ’off’.

defhstatus [статус]

Строка статуса во всех новых окнах инициализируется строкой статус. Эта команда нужна для того, чтобы в окнах screen в строке состояний выводить номера окон, их заголовки и тому подобное. В строке статуса могут использоваться те же директивы, что и в сообщениях для окон, только в качестве escape−символа используется ’^E’ (восьмеричное 005) вместо ’%’. Это сделано специально: чтобы уменьшить вероятность ошибочного распознавания сгенерированных программно статусных строк. Если параметр статус не задан, показывается текущая строка статуса по умолчанию. По умолчанию строка статуса окон пустая.

defencoding кодировка

То же, что и команда encoding, но изменяет настройку в том числе для новых окон. Начальная настройка берётся из свойств терминала.

deflog on|off

То же, что и команда log, но изменяет настройку в том числе для новых окон. По умолчанию, равна ’off’.

deflogin on|off

То же, что и команда login, но изменяет настройку в том числе для новых окон. По умолчанию, равна ’on’ (см. config.h.in).

defmode режим

Режим доступа, который устанавливается для каждого нового псевдотерминала. Режим − это восьмеричное число. По умолчанию используется режим 0622.

defmonitor on|off

То же, что и команда monitor, но настройка изменяется в том числе и для новых окон. Настройка по умолчанию ’off’.

defmousetrack on|off

То же, что и команда mousetrack, но настройка изменяется в том числе и для новых окон. Настройка по умолчанию ’off’.

defnonblock on|off|количество_секунд

То же, что и команда nonblock, но настройка по умолчанию изменяется. Настройка по умолчанию ’off’.

defobuflimit лимит

То же, что и команда obuflimit, но изменяется в том числе и настройка по умолчанию для новых окон. Начальное значение − 256 байт. Если нужно, чтобы параметр зависел от типа терминала, можно воспользоваться специальной возможностью ’OL’ терминала.

defscrollback количество

То же, что и команда scrollback, но изменяется в том числе и настройка по умолчанию для новых окон. Начальное значение 100.

defshell команда

Синоним команды shell в .screenrc. См. далее.

defsilence on|off

То же, что и команда silence, но изменяется настройка по умолчанию для новых окон. Начальное значение ’off’.

defslowpaste милисекунд

То же, что и команда slowpaste, только меняет настройку для новых окон. Начальное значение − 0 мс, означающее ’off’.

defutf8 on|off

То же, что и команда utf8, только меняет настройку для новых окон. Начальное значение − ’on’ если screen был запущен с ключом −U, в противном случае − ’off’.

defwrap on|off

То же, что и команда wrap, только меняет настройку для новых окон. Начальное значение on и может быть переключено командой wrap (C−a r) или "C−a : wrap on|off".

defwritelock on|off|auto

То же, что и команда writelock, только меняет настройку для новых окон. Начальное значение − off.

defzombie [клавиши]

Синоним команды zombie. В настоящий момент обе они меняют настройки по умолчанию. Смотрите эту команду.

detach [−h]

Отключить сеанс screen (отключить от терминала и отправить в фон). Происходит возврат в интерпретатор, из которого вызывался screen. Отключенный screen можно восстановить при помощи опции −r (см. ОПЦИИ КОМАНДНОЙ СТРОКИ). Опция −h говорит, что нужно немедленно разорвать соединение с терминалом (hangup).

dinfo

Показывает, что screen думает о вашем терминале. Может пригодится, если нужно узнать почему не работают цвет или альтернативная кодировка.

displays

Показывает таблицу со списком подключенных в настоящий момент пользователей. Очень полезная команда для многопользовательских сеансов. Могут быть использованы следующие клавиши:

k, C−p или up Подняться на одну строку.
j
, C−n или down Опуститься на одну строку.
C−a
или home Перейти к первой строке.
C−e
или end Перейти к последней строке.
C−u
или C−d Перейти на пол−страницы вверх или вниз.
C−b
или C−f Перейти на одну страницу вверх или вниз.
щелчок_мыши
Перейти на выбранную строку. Сработает при mousetrack установленном в on.
пробел
Обновить список.
d
Отключиться от дисплея.
D
Принудительно отключиться от дисплея.
C−g
, enter или escape Выход из списка.

Пример того, как должен выглядеть displays:

xterm 80x42 jnweiger@/dev/ttyp4 0(m11) &rWx
facit 80x24 mlschroe@/dev/ttyhf nb 11(tcsh) rwx
xterm 80x42 jnhollma@/dev/ttyp5 0(m11) &R.x
(A) (B) (C) (D) (E) (F)(G) (H)(I)

Обозначения следующие:
(A) Тип терминала, известный screen для этого дисплея.
(B) Показывает геометрию: ширина х высоту.
(C) Имя залогиненного на этот дисплей пользователя.
(D) Имя устройства дисплея или присоединённого устройства.
(E) Дисплей находится в блокирующем или неблокирующем режиме. Доступные режимы: "nb", "NB", "Z<", "Z>" и "BL".
(F) Номер окна.
(G) Имя/название окна.
(H) Будет ли окно общим.
(I) Права доступа для окна. Состоят из трёх символов:
(первый символ)
’−’ : нет чтения
’r’ : чтение
’R’ : чтение только из−за внешней блокировки с помощью wlock
(второй символ)
’−’ : нет записи
’.’ : запись подавляется из−за внешней блокировки с помощью wlock
’w’ : запись
’W’ : собственная блокировка с помощью wlock
(третий символ)
’−’ : нет выполнения
’x’ : выполнение

displays нуждается в размере области по крайней мере 10 символов в ширину и 5 символов в высоту для отображения.

digraph [клавиша[unicode_значение]]

Ввести диграф−последовательность. Выдаётся приглашение пользователю для ввода двух−символьной последовательности. По введённым двум символам в встроенной таблице ищется диграф, найденный символ вставляется в окно. Например, если пользователь вводит ’a"’, будет вставлен a−умляут. Если первый символ это 0 (ноль), screen будет рассматривать следующие символы (до трёх), как восьмеричное число. Опциональный аргумент клавиша рассматривается как обозначение нажатого символа, т.е. с его помощью можно сделать, например, умляут−клавишу. Например, команда "bindkey ^K digraph ’"’" позволит пользователю сгенерировать а−умляут при помощи комбинации CTRL−K a. Если указано ненулевое значение unicode_значение, создаётся новый диграф с указанной настройкой. Диграф не установлен если в качестве unicode_значения указано нулевое значение.

dumptermcap

Сохранить записи termcap для виртуального терминала, оптимизированного для текущего активного окна в .termcap файл в пользовательском каталоге $HOME/.screen (или в другой каталог, где screen хранит свои сокеты. См. раздел ФАЙЛЫ далее). Эта запись termcap идентична значению переменной $TERMCAP, устанавливаемой screen для каждого окна. Для систем с terminfo нужно будет запускать конвертер наподобие captoinfo а потом компилировать запись при помощи tic.

echo [−n] сообщение

Команда echo может использоваться для распространения пользователям screen "сообщения дня". Обычно её добавляют в глобалный файл /etc/screenrc. При вызове с ключом −n конечный перевод строки не выводится. См. также sleep. echo также может пригодиться online−проверки переменных окружения.

encoding кодировка [кодировка]

Говорит screen как интерпретировать ввод/вывод. Первый аргумент устанавливает кодировку текущего окна. Каждое окно может эмулировать отдельную кодировку. Второй необязательный параметр перебивает кодировку присоединённого терминала. Обычно этот параметр не нужен, потому что screen может определить кодировку из настроек локали. Можно ещё выбирать кодировку терминала в зависимости от типа терминала с помощью записи KJ в termcap.

Поддерживаются следующие кодировки: eucJP, SJIS, eucKR, eucCN, Big5, GBK, KOI8−R, CP1251, UTF−8, ISO8859−2, ISO8859−3, ISO8859−4, ISO8859−5, ISO8859−6, ISO8859−7, ISO8859−8, ISO8859−9, ISO8859−10, ISO8859−15, jis.

См. также defencoding, изменяющий настройки по умолчанию для новых окон.

escape xy

Устанавливает управляющий символ равным x, а символ, генерирующий литерал управляющего символа равным y (вызывая команду meta)(похоже на опцию −e). Каждый аргумент команды это или отдельный символ, или два символа в форме ^x (обозначает C−x) или обратная косая черта, за которым идёт восьмеричное число (ASCII−код символа) или обратная косая черта, за которым идёт ещё один символ, например \^ или \\. По умолчанию ^Aa.

eval команда1 [команда2 ]

Разбирает и выполняет каждый аргумент, как отдельную команду.

exec [[fdpat] новая_команда [аргументы ...]]

Запускает подпроцесс unix (соответствующий новой_команде и её необязательным аргументам) в текущем окне. Соединение потоков stdin/stdout/stderr команды новая_команда, процесса, работающего в окне (назовём его "процессом−приложением") и собственно окном screen определяется шаблоном fdpat. Этот шаблон по существу представляет собой трёхсимвольную последовательность, описывающую стандартный поток ввода, стандартный поток вывода и стандартный поток ошибок команды новой_команды. Символ точка (.) подсоединяет файловый дескриптор к screen. Символ восклицательный знак (!) говорит о том, что файловый дескриптор должен быть присоединён к процессу−приложению. Символ двоеточие (:) сочетает в себе действие двух предыдущих. Данные, которые вводятся пользователем, передаются новой команде, за исключением тех случаев, когда она подключена к потоку вывода приложения, работающего в окне (первый символ fdpat это ’!’ или ’:’) или и когда в конце fdpat стоит символ канала (|) (в качестве четвёртого символа).
Если вызывать ’exec’ без аргументов, будут показаны имена и аргументы процессов, работающих в текущем окне. В каждом окне за раз может исполняться только один подпроцесс.
Если подпроцесс работает, команда ’kill’ подействует на него, а не на процесс, работающий в окне.
В postscript−файле ’doc/fdpat.ps’ проиллюстрированы все 21 комбинация соединений. На каждом рисунке есть цифры 2,1,0, соответствующие трём файловым дескрипторам команды. Прямоугольник − это псевдотерминал, к которому с подчинённой стороны подключено приложение. Прямоугольник ’P’ это вторичный псевдотерминал, к которому с ведущей стороны подключен screen.

Сокращения:
Пробелы между словом ’exec’ и fdpat и командой можно пропустить. Точки в конце fdpat писать не обязательно. Символ ’|’ это синоним для шаблона ’!..|’; слово exec в данном случае писать не обязательно, вместо него можно указать символ ’!’.

Примеры:

exec ... /bin/sh
exec /bin/sh
!/bin/sh

Создаёт новый интерпретатор, в то время как первый продолжает работать. Вывод обоих интерпретаторов попадает в окно, а ввод отправляется новому интерпретатору.

exec !.. stty 19200
exec ! stty 19200
!!stty 19200

Устанавливается скорость терминала окна. Если программа stty работает со стандартным потоком ввода, добавьте ещё один знак ’!’.

exec !..| less
|less

К выводу подключается pager. Специальный символ ’|’ нужен для того, чтобы дать пользователю возможность управлять этим пейджером, несмотря на то, что данные он получает от процесса, работающего в окне. Это работает, потому что less слушает стандартный поток ошибок (поведение, которое screen не ожидал бы без символа ’|’) когда стандартный поток ввода не терминал. less новее, чем версия 177 будет сбоить; а старый добрый pg всё−ещё работает.

!:sed −n s/.*Error.*/\007/p

Отправляет вывод на экран пользователю и на вход команде sed. Команда вставляет дополнительный символ звукового сигнала (восьмеричное 007) в вывод screen. Поэтому при каждом появлении на экране слова "Error" в строку статуса выводится сообщение "Bell in window x".

fit

Изменить размер текущего окна до размера текущей области. Команда может пригодиться, когда screen не перестраивает размер окна и оно показывается больше одного раза.

flow [on|off|auto]

Настроить режим управления потоком окна. При вызове без параметров команда циклически переключает настройки "automatic", "on", "off". Подробнее в разделе УПРАВЛЕНИЕ ПОТОКОМ далее в этом документе и учтите, что эта настройка может поменяться в будущих выпусках screen. Настройка по умолчанию задаётся при помощи ’defflow’.

focus [up|down|top|bottom]

Переместить фокус ввода на следующую область. Выполняется циклически, поэтому верхняя область выбирается после самой нижней. Если подкоманда не задана, подразумевается ’down’. ’up’ перемещает фокус в противоположном порядке, а ’top’ и ’bottom’ переводят фокус на самый верхний или самый нижний регионы соответственно. Полезные привязки (j и k как в редакторе vi):
bind j focus down
bind k focus up
bind t focus top
bind b focus bottom
Заметьте, что k традиционно привязана к команде kill.

focusminsize [ ( ширина|max|_ ) ( высота|max|_ ) ]

Эта команда принуждает текущую область автоматически изменить размер на указанную ширину и высоту. Все другие области будут изменять свой размер чтобы уместиться. Это ограничение следует каждый раз при вызове команды focus. Команда resize может использоваться для увеличения или уменьшения области, но не ниже значения, указанного в focusminsize. Символ подчёркивания ’_’ это синоним для max. Задание ширины и высоты равными ’0 0’ (ноль ноль) снимет любые ограничения и разрешит ручное изменение размера. Если параметры не указаны, будет показана минимальная ширина и высота.

gr [on|off]

Включает/выключает GR−переключение кодировки. Когда screen встречает 8−битный символ, он использует кодировку, записанную в GR−слоте и выводит символ с удалённым восьмым битом. По умолчанию (см. также defgr) GR не обрабатывается, потому что иначе символы ISO88591 перестанут работать.

group [название_группы]

Изменяет или показывает группу, относящуюся к текущему окну. Окна могут перемещаться между различными группами с указанием группы назначения. Если группа не указана, отображается название текущей группы.

hardcopy [−h] [файл]

Записывает изображение текущего терминала в указанный файл или, если имя файла не задано, в файл hardcopy.n в текущем каталоге, где n − это номер текущего окна. Существующий файл дополняется или перезаписывается. См. ниже. Если указан ключ −h, скидывается и содержимое буфера прокрутки.

hardcopy_append on|off

Если включено "on", screen будет дополнять файлы "hardcopy.n", созданные по нажатию C−a h, в противном случае файлы будут перезаписываться. По умолчанию − ’off’.

hardcopydir каталог

Определяет каталог, в котором будут размещёны hardcopy−файлы. Если не задан, файлы будут размещаться в текущем каталоге программы screen.

hardstatus [on|off]
hardstatus
[always]lastline|message|ignore [строка]
hardstatus string
[строка]

Эта команда настраивает использование и эмуляцию аппаратной строки статуса терминала. Первая форма переключает использование строки статуса для отображения сообщений. Если флаг установлен в ’off’, сообщения накладываются поверх строки дисплея в инверсном режиме. Настройка по умолчанию: ’on’.

Вторая форма говорит screen, что делать в том случае, когда у терминала нет строки статуса (т.е. в termcap/terminfo не установлены "hs", "ts", "fs" и "ds"). Если используется тип lastline, screen зарезервирует последнюю строку экрана для строки статуса. Тип message говорит screen’s о том, что надо использовать механизм сообщений и ignore − что нужно не показывать строку статуса вообще. Если добавить слово always перед типом строки (например, alwayslastline), screen будет использовать его даже в том случае, если терминал поддерживает аппаратную строку статуса.

Третья форма описывает содержимое строки статуса. По умолчанию используется строка ’%h’, т.е. показывается статус текущего окна (устанавливается строками ESC]0;<строка>^G или ESC_<строка>ESC\). Можно настроить строку как угодно, включая escape−последовательности из раздела ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ. Если вызвать команду без аргумента строка, то будет показана текущая настройка.

Можно смешивать вторую и третью формы − задавать строку, как дополнительный аргумент.

height [−w|−d] [строки [колонки]]

Задаёт высоту отображения равной количеству строк. Когда аргумент не задан, выполняется переключение между 24 и 42 строками. Можно также определить и ширину, если нужно изменить оба значения. Опция −w говорит screen, что нужно оставить размер экрана неизменным и менять только размер окна, а опция −d наоборот.

help [−c класс]

Не интерактивная справка, а просто картинка со списком комбинаций клавиш. На первой странице показаны все внутренние команды и их текущие привязки. На последующих страницах показаны пользовательские привязки, по одной команде на одну комбинацию. Нажмите пробел чтобы перейти на следующую страницу или enter чтобы завершить просмотр. Все остальные символы игнорируются. Если задана опция −c, выводится список всех команд указанного класса. См. также раздел ПРИВЯЗКИ КЛАВИШ ПО УМОЛЧАНИЮ.

history

Обычно пользователи работают с командным интерпретатором, позволяющим легко посмотреть или использовать вызванные ранее команды. Например в csh есть команда !!, которая повторяет последнюю вызванную команду. В screen есть примитивный механизм вызова команд, начинающихся с определённой последовательности: нужно набрать первую букву команды, после чего нажать ’C−a {’ и screen попытается найти предыдущую строку, начинающуюся с символа приглашения и до курсора. Найденная строка вставляется в очередь ввода окна. Этот механизм может использоваться как грубая замена механизма истории в командном интерпретаторе (в историю подставляются варианты как из видимой части окна, так и из буфера прокрутки).

hstatus статус

Изменить строку статуса окна на статус.

idle [таймаут [команда аргументы]]

Указывает команду, которая запускается после того, как проходит заданное количество секунд без активности. Обычно в качестве команды указывается команда blanker, которая вызывает хранитель экрана screen, но может быть и любая команда screen. Если команда не задана, определяется только величина таймаута. Нулевой таймаут (или специальное слово off) отключает таймер вообще. Если аргументы не заданы, показывается текущая настройка.

ignorecase [on|off]

Говорит screen, что нужно игнорировать регистр символа при поиске. По умолчанию выключено (’off’).

info

Выводит информацию о текущем окне: позиция курсора в форме (column,row), начиная с (1,1), ширина и высота терминала плюс размер буфера прокрутки в строках, например в (80,24)+50, текущее состояние управления потоком окна XON/XOFF, показанное в виде (См. также раздел УПРАВЛЕНИЕ ПОТОКОМ):

+flow автоматическое управление потоком, включено.
−flow автоматическое управление потоком, выключено.
+(+)flow управление потоком включено. Соглашаться на автоматическое управление потоком.
−(+)flow управление потоком выключено. Не соглашаться на автоматическое управлением потоком.
+(−)flow управление потоком включено. Не соглашаться на автоматическое управление потоком.
−(−)flow управление потоком выключено. Соглашаться на автоматическое управление потоком.

Показываются настройки переноса (’+wrap’ говорит, что перенос включён, ’−wrap’ говорит, что перенос выключен). Флаги ’ins’, ’org’, ’app’, ’log’, ’mon’ или ’nored’ показываются в том случае, если окно находится в режиме вставки, исходном режиме (origin mode), в режиме приложения (application−keypad mode), если в нём включено журналирование вывода, наблюдение за активностью или частичная отрисовка.

Показываются активный набор символов (G0, G1, G2 или G3) и в квадратных скобках − символы терминала, которые выделены для G0G3. Если окно в режиме UTF−8, вместо этого показывается строка UTF−8.

Дополнительные режимы, зависящие от типа окна, показываются в конце строки статуса (См. также главу ТИПЫ ОКОН).
Если машина состояний эмулятора терминала находится не в состоянии по умолчанию, строка info начинается со строки, идентифицирующей текущее состояние.
Для получения системной информации используется команда time.

ins_reg [клавиша]

Больше не существует, используйте взамен paste.

kill

Закрывает текущее окно.
Если выполняется команда ’exec’, она завершается. Иначе процесс (командный интерпретатор), работающий в окне, получает сигнал HANGUP, структура окна удаляется и screen (ваш дисплей) переключается на другое окно. Когда последнее окно закрывается, screen завершает свою работу. После закрытия окна screenпереключается на окно, которое отображалось до того.
Замечание: пользователи Emacs должны помнить об этой команде, когда удаляется текст до конца строки. Или лучше не использовать C−a как escape−последовательность или привязать kill на C−a K.

lastmsg

Повторно показать содержимое строки статуса. Полезно, если сообщение появилось во время набора (сообщение пропадает, если нажать любую клавишу) и нужно его посмотреть (только если ваш терминал не имеет аппаратную строку статуса). См. также команды msgwait и msgminwait для тонкой настройки режима показа сообщения.

layout new [название]

Создаёт новую раскладку. Screen будет изменять целую область и переключится на пустое окно. Именно отсюда строятся области и окна, которые отображаются согласно вашим пожеланиям. Новая раскладка будет пронумерована самым малым числом, имеющимся в наличии, начиная с нуля. Новой раскладке можно назначить название. Иначе, она будет иметь название по умолчанию layout. Название можно изменить позже с помощью команды layout title.

layout remove [n|название]

Удалить указанную раскладку. Можно указать номер или название раскладки. Без указания номера или названия screen удалит текущую раскладку.

Удаление раскладки не затрагивает ваши окна или области.

layout next

Переключиться на следующую свободную раскладку.

layout prev

Переключиться на предыдущую свободную раскладку.

layout select [n|название]

Выбрать желаемую раскладку. Может быть указан номер или название раскладки. Без указания номера или имени, screen будет запрашивать, какой экран желателен. Чтобы увидеть список имеющихся раскладок, используйте команду layout show.

layout show

Список на строке сообщения номеров и названий имеющихся раскладок. Текущая раскладка помечается.

layout title [название]

Изменяет или отображает название текущей раскладки. Данная строка будет использоваться для названия раскладки. Без указания опций, будет отображаться текущее название и номер в строке сообщения.

layout number [n]

Изменяет или отображает номер текущей раскладки. Целое число будет использоваться в качестве номера раскладки. Без указания опций, будет отображаться текущий номер и название в строке сообщения.

layout attach [название|:last]

Изменяет или отображает то, к какой раскладке снова присоединён screen. По умолчанию это :last, которая говорит screen присоединиться к последней используемой раскладке непосредственно перед отделением. Применяя название, мы можем указать screen присоединиться к определённой раскладке независимо от того, какая раскладка использовалась на момент отсоединения. Без указания опций, раскладка для присоединения будет показываться в строке сообщения.

layout save [n|название]

Запомнить текущее расположение областей. Когда используется, screen будет запоминать расположение вертикально и горизонтально разделённых областей. Это расположение сохраняется когда сеанс screen присоединяется или переключается с другой раскладки. Если сеанс завершается или процесс screen умирает, расположение раскладки теряется. Команда layout dump должна помочь в этой ситуации. Если указан номер или название раскладки, screen запомнит расположение определённой раскладки. Без указания опций, screen запомнит текущую раскладку.

Сохранение ваших областей может быть выполнено автоматически с использованием команды layout autosave.

layout autosave [on|off]

Изменяет или отображает статус автоматически сохранённых раскладок. По умолчанию on, означает, что когда screen отсоединяется или изменяется на другую раскладку, расположение областей и окон будет запоминаться в момент изменения и восстановления после ввода. Если команда autosave установлена в off, это означает, что расположение будет только восстановлено или в последнее сохранённое состояние, используя команду layout save, или когда раскладка впервые была создана, в одиночную область с одиночным окном. Без указания опций on или off будет отображён текущий статус в строке сообщения.

layout dump [имя_файла]

Записать в файл порядок разбивки, выполненной в текущей раскладке. Это полезно для восстановления порядка областей, используемых в текущей раскладке. Записывается только текущая раскладка. В то время, как записывается порядок областей, размеры их областей и соответствующих им окон не записываются. Если не указано имя файла, то по умолчанию используется файл layout−dump, сохраняемый в каталоге, в котором процесс screen был запущен. Если файл уже существует, layout dump дополнит этот файл. Например:

C−a : layout dump /home/user/.screenrc

сохранит или допишет раскладку к пользовательскому файлу .screenrc.

license

Показать страницу с уведомлением. Она показывается при запуске screen без опций, что происходит достаточно часто. См. также команду startup_message.

lockscreen

Блокирует дисплей. Вызывает специальную программу блокировки (/local/bin/lck или /usr/bin/lock или встроенную, если других нет). screen не обрабатывает никакие клавиши и комбинации клавиш до тех пор, пока эта программа не завершится. Тем временем исполнение процессов в окнах может продолжаться, а сами окна находятся в отключённом (detached) состоянии. Программу screenlock можно указать при помощи переменной окружения $LOCKPRG (которая должна быть установлена в интерпретаторе, из которого вызывается screen). Программа выполняется от имени и с правами пользователя, который выполняет screen.
Предупреждение: если оставить другие интерпретаторы разблокированными и на screen не стоит пароль, толку от блокировки никакого. Можно легко подключиться к screen из другого интерпретатора. Правильнее было бы назвать эту функцию ’lockterminal’.

log [on|off]

Начинает/прекращает запись журнала действий в текущем окне в файл screenlog.n в текущем каталоге окна, где n − это номер текущего окна. Имя файла можно изменить при помощи команды ’logfile’. Если команда вызывается без параметров, состояние переключается на противоположное. Журнал дописывается в конец файла, если файл уже существует. Текущее состояние экрана и буфер прокрутки не включаются в журнал. По умолчанию: ’off’.

logfile имя_файла
logfile flush
секунды

Определяет имя файла журнала. По умолчанию screenlog.%n. Вторая форма определяет количество секунд, которые screen будет ожидать прежде, чем сбросить буфер файла журнала на диск. По умолчанию 10 секунд.

login [on|off]

Добавляет или удаляет запись в базе данных utmp для текущего окна. Это контролирует ’залогинено’ ли окно. При вызове без параметров переключается состояние окна (регистрирует/разрегистрирует). Помимо этого, удобно, когда есть комбинации клавиш для регистрации и разрегистрации. Например ’bind I login on’ и ’bind O login off’ привязывают эти действия к C−a I и C−a O. Настройка по умолчанию (в config.h.in) должна быть on для screen, запускаемого под suid−root. Используйте команду deflogin для изменения состояния по умолчанию для новых окон. Обе команды есть только в том случае, если screen был скомпилирован с поддержкой utmp.

logtstamp [on|off]
logtstamp after
[секунды]
logtstamp string
[строка]

Эта команда управляет временными метками screen в файле−журнале. Если временные метки включены, on, screen после двух минут неактивности выводит в журнал строку, содержащую текущее время. Когда вывод продолжается больше двух минут, добавляется второй вывод. Величину таймаута можно изменить с помощью второй формы команды. Третья форма предназначена для настройки формата строки временных меток (по умолчанию ’−− %n:%t −− time−stamp −− %M/%d/%y %c:%s −−\n’).

mapdefault

Говорит screen о том, что следующий символ он должен искать в стандартной таблице привязки клавиш. См. также bindkey.

mapnotnext

Как mapdefault, но не смотреть таблицу bindkey по умолчанию.

maptimeout [таймаут]

Задержка между символами (в мс) при распознавании входных последовательностей. По умолчанию 300мс. При вызове без аргументов показывает текущую настройку. См. также bindkey.

markkeys строка

Изменить привязку клавиш для режима копирования/истории. Строка состоит из пар старый_символ=новый_символ, разделённых ’:’. Например: строка B=^B:F=^F меняет привязку клавиш ’C−b’ и ’C−f’ на привязку в стиле vi (прокрутка вверх/вниз). По умолчанию это привязка для клавиш ’B’ и ’F’. Команда markkeys h=^B:l=^F:$=^E меняет привязку клавиш на привязку в стиле emacs. Если терминал отправляет символы, они нарушают режим копирования и тут может помочь эта команда, которая отключает действие у этих символов. Символ ’@’ это символ no−op, он используется так: вызов: markkeys @=L=H отключает действие команд ’H’ или ’L’. Как показано в этом примере, к одной функции за один раз можно привязать множество клавиш.

maxwin количество

Максимальное количество окон, которые может создать screen. Не влияет на уже существующие окна. Число можно только уменьшать только когда нет существующих окон.

meta

Вставляет управляющий символ (C−a) в текущий поток ввода окна.

monitor [on|off]

Включает/выключает наблюдение за активностью в окнах. Когда наблюдение включено для какого−то окна и оно уходит в фон, система следит за активностью в нём и отправляет предупреждающее сообщение в строку статуса, как только хотя бы один символ будет выведен в окно. Название окна будет отмечено символом ’@’. По умолчанию наблюдение отключено для всех окон.

mousetrack [on|off]

Эта команда определяет будет ли screen отслеживать клики мыши. Когда команда включена, области, разбитые различным образом, могут быть выбраны указанием курсора мыши и кликом левой кнопкой мыши на них. Без указания on или off, отображается текущее состояние. Состояние по умолчанию определяется командой defmousetrack.

msgminwait секунды

Определяет время, на которое screen задерживает новое сообщение даже если на экране есть какая−то другая активность. По умолчанию 1 секунда.

msgwait секунды

На протяжении какого времени показывается сообщение, если никакой другой активности нет. По умолчанию 5 секунд.

multiuser on|off

Переключается между однопользовательским и многопользовательским режимом. Стандартный режим работы screen − однопользовательский. В многопользовательском режиме работают команды ’acladd’, ’aclchg’, ’aclgrp’ и ’acldel’ для предоставления (или отключения) доступа пользователей к сеансу screen.

nethack on|off

Изменяет вид сообщений об ошибках, которые выводит screen. Если вы знакомы с игрой nethack, возможно вам понравятся сообщения, в которых факты немного искажаются, но так немного веселее читать. В любом случае, стандартные сообщения не всегда можно понять.
Эта опция доступна только если screen был скомпилирован с флагом NETHACK. Настройки по умолчанию определяются значением переменной окружения $NETHACKOPTIONS и файлом ~/.nethackrc. При наличии одного из них используется значение on.

next

Переключиться на следующее окно. Команду можно повторять для циклического обхода всех окон.

nonblock [on|off|количество_секунд]

Говорит screen что нужно делать с интерфейсами (дисплеями), которые отказываются принимать ввод. Это может произойти, к примеру, если пользователь нажмёт ^S или разорвётся TCP/модемное соединение. Если nonblock выключен (off по умолчанию) screen ожидает, пока дисплей перезапустится и будет готов принимать ввод. Если nonblock включён, screen подождёт окончания таймаута (on рассматривается как 1 сек.). Если дисплей по−прежнему не принимает символы, screen посчитает его заблокированным и перестанет отправлять на него символы. Если через некоторое время символы начнут приниматься, screen разблокирует экран и обновит его содержимое.

number [[+|−]n]

Изменят текущий номер окна. Если заданный номер n уже используется другим окном, окна меняются номерами. Если номер не задан, выводится номер (и имя) текущего окна. Используя ’+’ или ’−’ можно изменять номер окна относительно указанного числа.

obuflimit [предел]

Если буфер вывода содержит количество байтов больше заданного предела, новые данные из окон считываться не будут. По умолчанию: 256. Для быстрых дисплеев (подобных xterm) можно установить значение побольше. Если аргумент не задан, выводится текущее значение.

only

Уничтожить все области, за исключением текущей.

other

Переключиться на другое окно, которое было активным до этого. Если того окна уже нет, other работает как next.

partial on|off

Определяет, должен ли дисплей перерисовываться (как при redisplay) при переходе на текущее окно. Эта команда действует только на текущее окно. Чтобы подействовать на все окна сразу, нужно использовать команду allpartial. По умолчанию ’off’, конечно. Это значение по умолчанию фиксированное, команды defpartial нет.

password [зашифрованный_пароль]

Задаёт зашифрованный пароль в файле .screenrc, который screen запросит, если кто−то попытается подключиться к нему и возобновить его работу из отключённого состояния. Это полезно, если в screen работают привилегированные программы и нужно защитись сеанс от других пользователей, замаскировавшихся под ваш uid (даже от суперпользователя). Если зашифрованный пароль не задан, screen дважды попросит ввести пароль и запомнит зашифрованный пароль в своём буфере обмена. По умолчанию ’none’, что отключает проверку пароля.

paste [регистры [регистр_получатель]]

Вывести содержимое указанных регистров на стандартный поток ввода текущего окна. Регистр ’.’ обозначает буфер обмена screen. Если параметры не указаны, имя регистра запрашивается у пользователя. В буфер вставки screen информация попадает при помощи команд copy, history и readbuf. В другие регистры информация попадает при помощи команд register, readreg и paste. Если paste вызывается со вторым аргументом, содержимое регистров вклеивается не в текущее окно, а в регистр с заданным названием. Если в качестве второго аргумента указана ’.’, данные вклеиваются в буфер вставки дисплея. Обратите внимание, что paste использует различные ресурсы: когда указан второй аргумент, текущее окно не используется. Если манипуляции происходят только с регистрами (а не с буфером вставки), даже не обязательно чтобы чтобы screen был подключен к экрану, т.к. регистры являются глобальным ресурсом. У каждого пользователя есть свой буфер вставки.

pastefont [on|off]

Сообщает screen нужно ли включать информацию о шрифтах в буфер вставки. По умолчанию − не включать. Эта команда особенно полезна для многобайтных кодировок, например, для kanji.

pow_break

Переоткрыть строку терминала окна и отправить символ разрыва. См. также ’break’.

pow_detach

Усиленное отключение. Очень похоже на обычное отключение detach, но также отправляется сигнал HANGUP родительскому процессу screen. Предупреждение: Вызов этой команды приведёт к завершению сеанса, если screen был запущен из входного интерпретатора.

pow_detach_msg [сообщение]

Указанное сообщение выводится при ’усиленном отключении’. Может использоваться для замены сообщения при выходе или для сброса скорости линии и т.п. При вызове без параметров показывается текущее сообщение.

prev

Переключиться на окно с меньшим номером. Команду можно повторять для циклического обхода всех окон.

printcmd [команда]

Если команда − не пустая строка, screen не будет использовать возможности терминала po/pf когда встретит Escape−последовательность ESC [ 5 i, а запустит вместо этого указанную команду и передаст вывод ей. Обычно это команды вроде lpr или ’cat > /tmp/scrprint’. printcmd без команды покажет текущую настройку. ANSI−последовательность ESC \ прекращает печать и закрывает канал.
Предупреждение: Будьте осторожны с этой командой! Если у других пользователей есть доступ на запись в ваш терминал, они смогут запустить процесс печати.

process [клавиша]

Вывести содержимое указанного регистра в буфер ввода screen. Если аргумент не задан, нужно будет ввести имя регистра с клавиатуры. Текст обрабатывается так, как будто он был введён с клавиатуры пользователя. Команда может использоваться для того, чтобы привязать несколько действий к одной клавише.

quit

Закрыть все окна и завершить screen. Обратите внимание на то, что в терминалах, подобных VT100 сигналы C−4 и C−\ идентичны. Из−за этого стандартная привязка становится опасной: можно случайно нажать C−a C−4, когда выбираешь окно №4. Чтобы отключить всякие действия от этой комбинации клавиш, можно вызывать пустую команду bind (например, bind ’^\’).

readbuf [−e кодировка] [имя_файла]

Считывает содержимое указанного файла в буфер вставки. Можно указать screen кодировку этого файла с помощью опции −e. Если файл не указан, используется файл screen−exchange. См. также команду bufferfile.

readreg [−e кодировка] [регистр [имя_файла]]

Делает одно из двух, в зависимости от количества аргументов: без аргументов или с одним аргументом содержимое буфера обмена дублируется в указанном в команде или введённом в приглашение регистре. При вызове с двумя аргументами файл считывается в регистр, как команда readbuf считывает файл screen−exchange в буфер вставки. Кодировку файла можно задать при помощи опции −e. В приведённом ниже примере содержимое файла /etc/passwd вставляется в окно screen (с использованием регистра p, в котором остаётся копия):

C−a : readreg p /etc/passwd

C−a : paste p

redisplay

Перерисовать текущее окно. Используется для того, чтобы выполнить полную перерисовку при работе в режиме частичной перерисовки.

register [−e кодировка] клавиша строка

Сохранить указанную строку в регистр указанной клавиши. С помощью опции −e можно указать кодировку строки. См. также команду paste.

remove

Уничтожить текущую область. Это команда ничего не делает, если есть только одна область.

removebuf

Удалить файл screen−exchange, который использовался командами writebuf и readbuf.

rendition bell | monitor | silence | so атрибут [цвет]

Изменяет способ отрисовки названий окон screen, которые находятся под наблюдением или имеют звуковой сигнал в заголовке или строке статуса или в списке окон. См. главу СТРОКОВЫЕ ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ с описанием синтаксиса модификаторов. По умолчанию для окон под наблюдением =b (жирный, активные цвета), для окон со звуковым сигналом =ub (подчёркивание, жирный и активные цвета), и =u для обычных окон.

reset

Приводит настройки виртуального терминала в исходное состояние power−on. Полезно если после работы программы остались странные настройки (прокрутка областей или графические символы).

resize

Изменить размер текущей области. Пространство будет добавлено или удалено из нижней области или, если её не хватит, из области выше.

resize +N

увеличить высоту области на N

resize −N

уменьшить высоту области на N

resize N

установить высоту области равной N

resize =

сделать все области одинаковой высоты

resize max

сделать текущую область максимально высокой

resize min

сделать текущую область максимально низкой

screen [−опции] [n] [команда [аргументы]|//group]

Создать новое окно. В команде могут быть указаны опции управления потоком (−f, −fn и −fa), опция названия (a.k.a.) (−t), опции входа (−l и −ln), опция типа терминала (−T <терминал>), опция флага всех возможностей (−a) и опция буфера прокрутки (−h <число>).Опция (−M) включает наблюдение за окном. Опция (−L) включает журнализацию вывода для этого окна. Если задан необязательный номер n из диапазона 0..MAXWIN−1, этот номер присваивается созданному окну (или, если номер уже используется, следующий свободный). Если после screen указана команда, она (вместе с заданными аргументами) запускается в окне; в противном случае создаётся окно с командным интерпретатором. Если применяется //group, создаётся окно контейнерного типа, в котором могут быть созданы окна другого типа.

Так, например, если в .screenrc присутствуют строки

# пример .screenrc:

screen 1

screen −fn −t foobar −L 2 telnet foobar

screen создаст окно интерпретатора (в окне 1) и окно с telnet−подключением к foobar (с без управления потоком с заголовком foobar в окне №2) и будет вести журнал screenlog.2 сеанса работы в telnet. Обратите внимание, что в отличие от предыдущих версий screen дополнительных окон не создаётся, если в .screenrc файле есть хотя бы одна команда screen. Когда инициализации окончена, screen переключается на последнее окно, описанное в файле .screenrc или, если таковых нет, открывает окно по умолчанию 0.
В screen встроена некоторые функции cu и telnet. См. также главу ТИПЫ ОКОН.

scrollback количество

Устанавливает размер буфера прокрутки для текущих окон равным указанному количеству строк. По умолчанию: 100 строк. См. также команду defscrollback и используйте info для просмотра текущих значений. Для доступа и использования содержимого буфера прокрутки используйте команду copy.

select [идентификатор_окна]

Выбрать окно с указанным идентификатором_окна. Это может быть или номер окна или начало имени окна (алфавитно−цифровое имя окна). Этот параметр необязательный и если его не указывать, система попросит ввести идентификатор. При создании окна берётся первый доступный номер. Поэтому переход на самое первое окно выполняется по команде select 0. Максимальное количество окон ограничивается при компиляции параметром MAXWIN (его значение по умолчанию − 40). Есть два специальных идентификатора_окна, − для внутреннего окна и . для текущего окна. Последнее очень полезно при использовании с опцией screen −X.

sessionname [название]

Переименовать текущий сеанс. Обратите внимание, что в выводе screen −list название предваряется идентификатором процесса. Если аргумент name опущен, показывается название сеанса. Предупреждение: переменная окружения $STY после переименования всё равно содержит старое название. Это может привести к путанице. Использование этой команды обычно не одобряется. Используйте опцию −S если нужно дать название новому сеансу. По умолчанию название составляется из названия терминала и имени узла.

setenv [переменная [строка]]

Задать указанной переменной окружения указанное значение строка. Если указать только переменную, система попросит ввести значение. Если параметры не заданы вообще, система попросит ввести и название переменной и значение. Окружение будет наследоваться всеми интерпретаторами, которые будут запущены из screen.

setsid [on|off]

В нормальном режиме screen использует для окон отдельные сеансы и группы процессов. Если setsid выключен (off), то все окна находятся в одной группе процессов с базовым процессом screen. Обратите внимание, что в этом случае не будет работать управление работами (job control). По умолчанию setsid включен ( on). Эта команда в редких случаях может пригодиться.

shell команда

Задаёт команду, которая должна использоваться при создании нового интерпретатора. Этот параметр перекрывает значение переменной окружения $SHELL. Полезно при использовании расширителя терминала, который запускает программу, указанную в $SHELL. Если команда начинается символом ’−’, интерпретатор будет запущен как входной интерпретатор. Обычно интерпретаторы выполняют только минимальную инициализацию, если вызваны не как входной интерпретатор. Наприер, bash не читает файл ~/.bashrc, если не является входным интерпретатором.

shelltitle заголовок

Задаёт заголовок для всех командных интерпретаторов, создаваемых при запуске или при нажатии C−A C−c. Подробнее заголовки обсуждаются в разделе НАЗВАНИЯ (именование окон).

silence [on|off|секунды]

Переключает наблюдение за тишиной в окнах. Когда silence включен, а соответствующее окно переключено в фоновый режим, в строке статуса появляется уведомление о тишине после указанного периода неактивности (тишины). Длительность ожидания можно изменять с помощью команды ’silencewait’ или путём указания количества секунд вместо ’on’ или ’off’. Изначально во всех окнах слежение выключено.

silencewait секунды

Для окон с отслеживанием тишины определяет время перед отображением сообщения. По умолчанию 30 секунд.

sleep секунды

Приостанавливает выполнение файла .screenrc на указанное количество секунд. Любая клавиатурная активность останавливает ожидание. Полезно, если нужно дать пользователям прочитать сообщения, выводимые echo.

slowpaste милисекунды

Определяет скорость, с которой текст будет вставляться в текущее окно по команде paste ("C−a ]"). Если значение slowpaste отличается от 0, текст вводится посимвольно и screen делает паузу на указанное число миллисекунд после каждого символа, для того чтобы приложение могло успеть обработать ввод. Команда slowpaste используется при проблемах управления потоком при вставке текста большого объёма.

source файл

Прочитать и выполнить команды из указанного файла. Команда source может быть вложенной, с максимальной глубиной рекурсии до 10. Если имя файла относительное и screen уже выполняет команду source, новый файл ищется в родительском каталоге текущей команды source, и если там ничего не найдено, выполняется поиск в текущем каталоге.

Отметим, что команды termcap/terminfo/termcapinfo выполняются только при запуске и переподключении, поэтому чтобы они работали, они должны быть доступны через файлы screenrc по умолчанию.

sorendition [атрибут [цвет]]

Эта команда устарела. См. команду "rendition so".

split [−v]

Разделить текущую область на две новых. Размеры всех областей на экране меняются для того, чтобы освободить место для новой области. В новой области отображается пустое окно. Если не указана опция −v, то выполняется горизонтальное разделение. Удалить область можно с помощью команды remove или only. Для переключения между областями используется команда focus.

startup_message on|off

Указывает должно ли показывать сообщение с информацией о правах на программу при её старте. По умолчанию, как вы уже заметили, ’on’.

stuff [строка]

Вставляет указанную строку в буффер ввода текущего окна. Похоже на команду paste, но с меньшими накладными расходами. Без указания параметра, screen будет запрашивать строку для вставки. С помощью команды stuff нельзя вставить большие объёмы текста. Очень полезно для управления привязками клавиш. См. также bindkey.

su [имя_пользователя [пароль [пароль2]]]

Изменить пользователя дисплея. Команда спросит все параметры, которые не указаны в качестве аргументов. Если в качестве аргументов указываются пароли, они должны указываться не в зашифрованном виде. Первый пароль проверяется через системную базу паролей, а второй через собственную базу screen (в которую пароли попали через команды acladd или password). Команда su может быть полезна для администраторов screen, которые хотя проверить многопользовательские настройки. Если аутентификация не пройдена, пользователь имеет доступ только к командам, доступным пользователю nobody. К этим командам относятся detach, license, version, help и displays.

suspend

Приостановить screen. Окна переводятся в отключённое состояние. Данная особенность полагается на возможности командного интерпретатора по управлению работами.

term терминал

В каждом окне, которое открывает screen, переменная окружения $TERM устанавливается по умолчанию в значение screen. Но если в локальных базах данных termcap или terminfo нет описания screen, задайте $TERM, например, значение vt100. В этом нет ничего страшного, т.к. screen совместим с VT100/ANSI. Не рекомендуется использовать эту команду, за исключением тех случаев, когда задаются настройки по умолчанию. Например, в случае, когда нужно задать настройки терминала для одной команды, скажем для screen rlogin othermachine, лучше использовать вызов screen −T vt100 rlogin othermachine, чем устанавливать или сбрасывать настройки по умолчанию.

termcap терминал настройки_терминала [настройки_окна]
terminfo
терминал настройки_терминала [настройки_окна]
termcapinfo
терминал настройки_терминала [настройки_окна]

Команда модифицирует termcap−запись терминала без необходимости выполнения хитрых операций, связанных с созданием собственной termcap−записи. Кроме того, с её помощью можно подстраивать termcap−записи, сгенерированные для окон. Команды стоит размещать только в файлах screenrc, т.к. после загрузки эмулятора терминала они уже не имеют смысла.
Если в системе используется база данных terminfo, а не termcap, screen поймёт команду ’terminfo’, которая работает аналогично ’termcap’. Две отдельные команды существуют из−за нескольких тонких синтаксических отличий, например, при интерпретации параметров ’%’. Отметим, что в команде ’terminfo’ должны использоваться имена возможностей termcap.
Во многих случаях, если аргументы подходят как для синтаксиса terminfo, так и для termcap, можно использовать команду ’termcapinfo’, которая является сокращением для пары команд ’termcap’ и ’terminfo’ с идентичными аргументами.

Первый аргумент указывает на какой терминал (или терминалы) должно подействовать определение. Можно задать несколько имён терминалов через ’|’. ’*’ обозначает все терминалы, а to ’vt*’ − все терминалы, начинающиеся с vt.

Каждый аргумент tweak содержит одно (или более) определение termcap (разделённых символами ’:’), которые вставляются в начало соответствующей записи termcap, дополняя или перекрывая существующие значения. Настройки_терминала изменяют termcap терминала и содержат определения, которые терминал использует для выполнения определённых функций. Если указать пустую строку (то есть ”), необязательные настройки_окна изменяют termcap окон, и они должны содержать определения, которые понимает screen (см. раздел ВИРТУАЛЬНЫЙ ТЕРМИНАЛ).

Некоторые примеры:

termcap xterm* LP:hs@

Говорит screen о том, что у всех терминалов, имя типа которых начинается с ’xterm’, должны быть трвёрдые автоотступы, которые позволят обновлять последнюю позицию экрана (LP), но у которых нет строки статуса (нет ’hs’ − добавьте ’@’ для отключения). Обратите внимание, что ’LP’ подразумевается для всех терминалов, имя типа которых начинается с vt, за исключением тех терминалов, для которых указана команда termcap.

termcap vt* LP
termcap vt102|vt220 Z0=\E[?3h:Z1=\E[?3l

Определяет возможность ’LP’ для всех терминалов, название типа которых начинается с ’vt’, и вторая строка добавляет поддержку escape−последовательностей для переключения в режим 132 символа на строку (Z0) и обратно (Z1) для терминалов VT102 или VT220. (Для использования команды изменения ширины, в файле termcap нужно указать Z0 и Z1).

termcap vt100 "" l0=PF1:l1=PF2:l2=PF3:l3=PF4

Здесь termcap vt100 остаётся нетронутым, а в termcap−записи окон добавляются метки функциональных клавиш.

termcap h19|z19 am@:im=\E@:ei=\EO dc=\E[P

В termcap’ах h19 или z19 выключаются автоотступы (am@) и включаются режим вставки (im) и конец вставки (ei) (символ ’@’ в строке ’im’ идёт после ’=’, так что это часть строки). Если добавить определения ’im’ и ’ei’ в termcap терминала, где запущен screen, они автоматически будут передаваться в termcap каждого окна. В каждом окне появляется новая возможность: удаление символа delete−character (dc), которое screen транслирует в обновление строки терминала (предполагается, что терминал не имеет возможности удалять символ).

Если нужно полностью задать запись termcap, нужно переопределить переменную $SCREENCAP до запуска screen. См. обсуждение в разделе ВИРТУАЛЬНЫЙ ТЕРМИНАЛ руководства, и на странице руководства termcap(5), где подробно рассказывается об определениях termcap.

time [строка]

Показать в строке сообщений время, имя узла и среднюю загрузку за 1, 5 и 15 минут (если это поддерживается в системе). Для получения информации об окне используйте команду info.

Если задан аргумент строка, формат времени меняется, как описано в разделе ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ. По умолчанию screen использует "%c:%s %M %d %H%? %l%?".

title [название]

Задаёт название текущего окна. Если название не указано, screen выдаёт приглашение для его ввода. В более ранних версиях screen команда была известна, как ’aka’.

unbindall

Удалить все привязки клавиш. Может быть полезно, чтобы воспользоваться способностью screen к отделению, например, чтобы запустить консольное приложение как демон. Если по некоторой причине необходимо привязать команды после этого, используйте ’screen −X’.

unsetenv переменная

Удалить переменную окружения.

utf8 [on|off [on|off]]

Изменяет кодировку текущего окна. Если включён utf8, строки отправляемые в окно, будут перекодированы в UTF−8 (и наоборот). Если не задавать параметры, настройки переключаются на противоположные. Если задан второй параметр, меняется также настройка отображения (обычно это делается с помощью опции −U программы screen). См. также команду defutf8, которая меняет начальные настройки для новых окон.

vbell [on|off]

Настройка визуального звонка окна. Если не указывать параметр, настройка переключается на противоположную. Если визуальный звонок включен, но терминал не поддерживает его, при поступлении символа звукового сигнала (^G) в строке статуса выводится сообщение ’vbell−message’. Поддержка визуального звонка терминалом определяется переменной termcap ’vb’ (или ’flash’ в terminfo).
По умолчанию визуальный звонок выключен и используется звуковой звонок. См. также ’bell_msg’.

vbell_msg [сообщение]

Задаёт сообщение для визуального звонка. Указанное сообщение выводится в строке статуса в момент, когда в окно выводится символ звонка (^G) и при этом vbell включен, но терминал не поддерживает визуальный звонок. По умолчанию выводится сообщение Wuff, Wuff!!. Если вызывать команду без параметров, будет показано текущее сообщение.

vbellwait секунды

Определяет задержку в секундах для каждого вывода визуального звонка в screen. По умолчанию 1 секунда.

verbose [on|off]

Если включено, при создании (или восстановлении из состояния zombie) окна, выводится имя вызванной команды. По умолчанию выключено. При вызове без параметров показывается текущая настройка.

version

Вывести текущую версию и дату компиляции в строку статуса.

wall сообщение

Вывести сообщения на все окна. Это сообщение будет показано в строке статуса терминала.

width [−w|−d] [колонки [строки]]

Переключает ширину окна между 80 и 132 или устанавливает указанную ширину, если указаны колонки. Требуется поддержка терминалом и termcap−записи Z0 и Z1. См. команду termcap. Также можно менять не только ширину, но и высоту. Если задать ключ −w меняется только ширина окна, а если задать ключ −d меняется только размер видимой области.

windowlist [−b] [−m] [−g]
windowlist string
[строка]
windowlist title
[название]

Показывает список всех окон в виде таблицы для визуального выбора окна. Если screen находится в группе окон, screen выйдет из группы и затем отобразит окна этой группы. Если задана опция −b, перед отображением списка окон screen переключится на пустое окно и текущее окно тоже можно будет выбрать. Опция −m меняет порядок окон: вместо сортировки окон по номерам screen воспользуется списком последнего использования. Опция −g покажет окна внутри любой группы на том уровне и ниже.

Для навигации в windowlist используются следующие сочетания клавиш:

k, C−p или up Подняться на одну строку.
j
, C−n или down Опуститься на одну строку.
C−g
или escape Выход из списка окон.
C−a
или home Перейти к первой строке.
C−e
или end Перейти к последней строке.
C−u
или C−d Перейти на пол−страницы вверх или вниз.
C−b
или C−f Перейти на одну страницу вверх или вниз.
0..9
С помощью цифровых клавиш переключиться к выбранной строке.
mouseclick
Перемещает к выбранной строке. Работает, когда включен mousetrack
/
Поиск.
n
Повторить поиск в прямом направлении.
N
Повторить поиск в обратном направлении.
m
Переключение по списку последних использованных окон.
g
Переключает вложение группы.
a
Просмотр всех окон.
C−h
или backspace Выйти из группы.
,
Переключить числа с предыдущего окна.
.
Переключить числа со следующего окна.
K
Закрыть это окно.
space
или enter Выбрать это окно.

Формат таблицы можно изменить опциями string и title, в качестве заголовка таблицы показывается название, а строки формируются на основе строки. По умолчанию: название равно Num Name%=Flags, а строка равна %3n %t%=%f. См. раздел ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ, где описаны дополнительные коды (в том числе − настройки цвета).

Windowlist нужен размер области по меньшей мере из 10 символов в ширину и 6 символов в высоту для отображения.

windows

Выводит в строке сообщений список всех окон. В списке отображается номер окна и имя процесса, который запущен в этом окне (или его название); текущее окно отмечено символом ’*’; предыдущее окно − символом ’−’; все окна, в которые осуществлён вход, отмечены символом ’$’; фоновые окна, в которых был звуковой сигнал, отмечены символом ’!’; фоновые окна, за которыми ведётся наблюдение, и в которых была замечена активность, отмечаются символом ’@’; окна, в которых включена запись журнала, отмечены символом ’(L)’; окна, занятые другим пользователем, отмечены символом ’&’; окна, находящиеся в состоянии zombie отмечены символом ’Z’. Если список окон слишком большой и не умещается полностью в строке статуса терминала, выводятся только окна по соседству с текущим.

wrap [on|off]

Задаёт настройки переноса для текущего окна. Если перенос строк включен, символ, следующий за последним выведенным в строке, будет выводиться на следующей строке. В качестве дополнительного свойства, backspace (^H) при этом будет переходить на предыдущую строку через левый край. По умолчанию: ’on’. Если опции не указаны, настройка меняется на противоположную.

writebuf [−e кодировка] [имя_файла]

Выводит содержимое буфера обмена в указанный файл или в общедоступный файл screen−exchange, если никакой файл не указан. Эту команду можно использовать для организации примитивного обмена данными между пользователями screen, работающими на одном компьютере. Если указана кодировка, указанный буфер вставки перекодируется налету. Имя файла для обмена задаётся с помощью команды bufferfile, а по умолчанию используется /tmp/screen−exchange.

writelock [on|off|auto]

В дополнение к спискам контроля доступа есть еще ограничение, которое запрещает писать нескольким пользователем в одно окно одновременно. По умолчанию writelock находится в режиме ’auto’ и эксклюзивный доступ на запись предоставляется тому пользователю, который первым переключился в это окно. Когда этот пользователь покидает окно, другие пользователи могут захватить блокировку (автоматически). Блокировка записи текущего окна может быть отключена при помощи команды writelock off. Если пользователь даст команду writelock on, он сохранит за собой эксклюзивную блокировку даже на время переключения в другие окна.

xoff
xon

Вставляет символ CTRL−s / CTRL−q в очередь стандартного ввода текущего окна.

zmodem [off|auto|catch|pass]
zmodem sendcmd
[строка]
zmodem recvcmd
[строка]

Определяет поддержку zmodem для screen. Screen понимает 2 различных режима, когда он обнаруживает zmodem−запрос: pass и catch. Если задан режим pass, screen будет ретранслировать все данные, до тех пор, пока передача не окончится. В режиме catch screen сам работает как конечная точка zmodem и выполняет соответствующие команды rz/sz. Если включен режим auto, screen будет использовать catch если окно − это терминал tty (например, последовательный порт), иначе будет использоваться pass.
Можно задавать шаблоны для режима catch при помощи второй и третьей формы вызова.
Отметим, что это экспериментальная возможность!

zombie [клавиши[onerror]]
defzombie
[клавиши]

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

Поскольку настройки команды zombie действуют на все окна сразу, эту команду правильнее было бы назвать defzombie. Пока не возникнет необходимость в команде, действующей на отдельное окно, команды zombie и defzombie синонимы.

Опционально можно вставить слово onerror после клавиш. Это заставит screen наблюдать за статусом завершения запущенного в окне процесса. Если он завершается нормально (’0’), окно исчезает. Любое другое значение статуса завершения переводит окно в состояние зомби.

СТРОКА СООБЩЕНИЙ

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

Строку сообщения можно использовать в приложениях с помощью управляющей последовательности ANSI Privacy message. Например, можно в командном интерпретаторе дать команду:

echo ’<esc>^Привет миру из окна ’$WINDOW’<esc>\\’

где ’<esc>’ это escape, ’^’ это стрелка вверх, а ’\\’ превращается в обратную косую черту.

ТИПЫ ОКОН

У screen есть три различных типа окон. Новые окна создаются при помощи команды screen (см. также соответствующую запись в разделе ИНДИВИДУАЛЬНАЯ НАСТРОЙКА). Первый аргумент команды screen задаёт тип создаваемого окна. Различные типы окон − это модификации нормального типа. Они были добавлены для эффективной работы screen в качестве консольного мультиплексора при количестве окон от 100 и выше.

Нормальное окно содержит интерпретатор (по умолчанию, если не задан параметр) или любую другую системную команду, которая может выполняться в интерпретаторе (например, slogin и т.п.)

Если в качестве первого параметра указано символьное устройство, например, /dev/ttya, screen подключается прямо к нему. Окно этого типа равносильно окну, в котором запущено screen cu −l /dev/ttya. Нужны права на чтение и запись для соответствующего файла устройства; для того, чтобы показать, что линия занята, screen пытается открыть файл эксклюзивно. Необязательный параметр принимает список из разделённых запятыми флагов в нотации stty(1):

<битовая_скорость>

Обычно 300, 1200, 9600 или 19200. Влияет как на скорость передачи, так и на скорость приёма.

cs8 или cs7

Задаёт передачу восьми (или семи) битов на байт.

ixon или −ixon

Включает (или выключает) программное управление потоком (CTRL−S/CTRL−Q) при передаче данных.

ixoff или −ixoff

Включает (или выключает) программное управление потоком при приёме данных.

istrip или −istrip

Удаляет (или сохраняет) восьмой бит в каждом полученном байте.

Можно указывать столько этих опций, сколько нужно. Если опции не указать, решение о значении параметров соединения принимает драйвер терминала. Эти значения зависят от системы и могут или принимать значения по умолчанию или значения, сохранённые с прошлого соединения.

Для tty−окон, команда info покажет в строке статуса состояние управляющих линий модема. В их числе могут быть ’RTS’, ’CTS’, ’DTR’, ’DSR’, ’CD’ и др. Список линий зависит от того какие ioctl() доступны, от системных заголовочных файлов, а также от физических возможностей платы последовательных портов. Перед названием сигналов низкого логического уровня (неактивных) ставится восклицательный знак (!), в противном случае сигнал имеет высокий логический уровень (активен). Сигналы, которые не поддерживаются оборудованием, но доступны через интерфейс ioctl(), обычно показываются неактивными.

Если бит состояния CLOCAL включён, весь набор сигналов модема выводится в фигурных скобках ({ и }). Если установлен бит CRTSCTS или TIOCSOFTCAR, в скобках показываются сигналы ’CTS’ или ’CD’ соответственно.

Для tty−окон, команда break переводит линию передачи данных (TxD) в неактивное состояние на заданный период времени. На той стороне это должно интерпретироваться как сигнал разрыва. При нажатии break данные не отправляются, линии управления модемом не трогаются.

Если первый параметр это //telnet, второй параметр должен быть именем узла, а необязательный третий параметр − номером TCP−порта (по умолчанию − 23). Screen подсоединится к удалённому серверу при помощи протокола telnet.

Для telnet−окон команда info показывает в конце статусной строки детальную информацию о соединении в квадратных скобках ([ и ]).

b

BINARY. Соединение в двоичном режиме.

e

ECHO. Локальное эхо выключено.

c

SGA. Соединение в символьном режиме (по умолчанию используется строковый режим).

t

TTYPE. Тип терминала, запрошенный удалённым узлом. Screen отправляет имя screen, если не указано что−то другое (см. также команду ’term’).

w

NAWS. Удалённая система уведомляется об изменении размера окна.

f

LFLOW. Удалённый узел отправит информацию об управлении потоком (в настоящее время игнорируется).

Дополнительные флаги для отладки: x, t и n (XDISPLOC, TSPEED и NEWENV).

Для окон telnet команда break отправляет удалённому узлу telnet−код IAC BREAK (десятичный 243).

Этот тип окна доступен только в том случае, если screen был собран с опцией BUILTIN_TELNET.

ESCAPE−ПОСЛЕДОВАТЕЛЬНОСТИ

Screen предоставляет механизм escape−последовательностей, с помощью которых в сообщения или имена файлов можно вставлять различную информацию, например, текущее время. Escape−символ − это символ ’%’, за одним исключением: внутри строки статуса вместо него используется ’^%’ (’^E’).

Полный список поддерживаемых escape−последовательностей:

%

сам escape−символ

a

или "am", или "pm"

A

или "AM", или "PM"

c

текущее время HH:MM в 24−часовом формате

C

текущее время HH:MM в 12−часовом формате

d

номер дня

D

название дня недели

E

устанавливает %? равным true (истина), если escape−символ был нажат

f

флаги окна, см. windows для значений различных флагов

F

устанавливает %? равным true (истина), если окно обладает фокусом

h

строка статуса окна

H

системное имя узла

l

текущий уровень загрузки системы

m

номер месяца

M

название месяца

n

номер окна

P

устанавливает %? равным true (истина), если текущая область в режиме копирования/вставки

S

название сеанса

s

секунды

t

заголовок окна

u

все остальные пользователи на этом окне

w

все номера окон и названия. С квалификатором ’−’: вплоть до текущего окна; с квалификатором ’+’: начиная с окна после текущего

W

номера и имена всех окон, за исключением текущего окна

y

последние две цифры года

Y

все цифры года

?

показывается часть до следующего знака ’%?’, только если символ ’%’ внутри этой части раскрывается в не пустую строку

:

часть, отображаемая в противном случае условия %?

=

заполнить строку на ширину экрана (как hfill в TeX). Если задано число, заполнить на определённый процент от ширины окна. Квалификатор ’0’ указывает screen рассматривать число, как абсолютное положение. Можно указать заполнение относительно положения последнего абсолютного заполнения добавлением определителя ’+’ или заполнение относительно правого отступа с использованием ’−’. Дополнение усекает строку если указанная позиция находится перед текущей. Для того, чтобы изменить это, нужно использовать квалификатор ’L’.

<

то же что и ’%=’, но только обрезать, и не заполнять пробелами

>

отметить текущую позицию в тексте для последующей обрезки. Когда screen должен сделать обрезку, он пытается сделать её так, чтобы отметка переместилась на заданный процент области вывода. (Область начинается с последней абсолютной выровненной позиции и заканчивается в месте, заданном оператором обрезки). Квалификатор ’L’ сообщает screen, что нужно отметить обрезанные кусочки символами ”...".

{

строка−модификатор атрибута/цвета, заканчивающаяся следующим }

Замена на вывод команды ’backtick’. Квалификатор длины неправильно идентифицирует одну из команд.

С escape−символы ’c’ и ’C’ можно использовать квалификатор ’0’, чтобы screen использовал ноль вместо пробела в качестве символа заполнения. Квалификатор ’0’ заставляет escape−последовательность ’=’ использовать абсолютные позиции. Escape−символы ’n’ и ’=’ понимают квалификатор длины (например, ’%3n’). Перед ’D’ и ’M’ можно указывать ’L’ для генерирования длинных имён, а если поставить ’L’ перед ’w’ и ’W’ также будут показываться флаги окон.

Модификатор атрибута/цвета используется для изменения настроек атрибута или цвета. Его формат [модификатор атрибута] [описание цвета]. Если модификатор атрибута можно перепутать с описанием цвета, перед ним надо ставить специальный индикатор изменения типа. Это один из следующих символов:

+

добавляет указанное множество к текущим атрибутам

удаляет указанное множество из текущих атрибутов

!

инвертирует множество текущих атрибутов

=

заменяет множество текущих атрибутов на указанное множество

Множество атрибутов может быть задано или в виде шестнадцатеричного числа или в виде комбинации следующих букв:

d

тусклый

u

подчёркнутый

b

полужирный

r

реверсивный

s

выдающийся

B

мигающий

Цвета кодируются или шестнадцатеричным числом или комбинацией двух букв, указывающих цвет фона и цвет символа (в таком порядке). Известны такие цвета:

k

чёрный

r

красный

g

зелёный

y

жёлтый

b

синий

m

фиолетовый

c

цвета морской волны

w

белый

d

по умолчанию

.

оставить цвет без изменения

Буквы в верхнем регистре обозначают яркие цвета. Можно использовать букву псевдо−цвет ’i’, которая меняет яркость, но оставляет сам цвет таким же.
Одно цифровое/буквенное описание цвета рассматривается как цвет символа или как цвет фона в зависимости от текущих атрибутов: если установлен реверсивный режим, меняется фон, а не цвет символа. Если поставить перед цветом ., так происходить не будет. Если нужно такое же поведение, как при двухсимвольном описании цвета, нужно тоже ставить ..
Особый случай, %{−} восстанавливает атрибуты и цвет, которые были установлены до того, как были сделаны последние изменения (т.е., выталкивает один уровень изменений цвета из стека).

Примеры:

G

установить ярко−зелёный цвет

+b r

использовать красный полужирный

= yd

стереть все атрибуты, писать цветом по умолчанию на жёлтом фоне

%−Lw%{= BW}%50>%n%f* %t%{−}%+Lw%<

Список окон, обрезанный до доступной величины (слева и справа). Текущее окно выводится белым на синем фоне. Можно использовать вместе с hardstatus alwayslastline.

%?%F%{.R.}%?%3n %t%? [%h]%?

Номер окна, заголовок и строка статуса, если что−либо задано. Также использует красный фон, если есть фокус. Полезно для строки заголовка.

УПРАВЛЕНИЕ ПОТОКОМ

У каждого окна есть настройки управления потоком, которые определяют, как screen будет работать с XON И XOFF символами (и, возможно, символом прерывания). Когда управление потоком выключено, screen игнорирует символы XON и XOFF, которые позволяют пользователю посылать их в текущую программу просто печатая их (это полезно, например, для редактора emacs). Минус в том, что обычной программе нужно больше времени для того, чтобы остановиться, когда она увидит XOFF. Если управление потоком включено, символы XON и XOFF немедленно останавливают вывод в текущее окно. Эти символы по−прежнему можно отправить программе, но для этого нужно использовать соответствующие двухсимвольные команды screen (обычно C−a q (xon) и C−a s (xoff)). Команды xon/xoff также полезны для передачи симолов C−s и C−q в обход терминала, который перехватывает эти символы.

У каждого окна есть начальное значение настройки управления потоком, которое задаётся или опцией −f или командой defflow из файла .screenrc. По умолчанию окна настроены на автоматическое переключение потока. Потом состояние можно интерактивно переключать с помощью комбинации клавиш "C−a f" или команды flow между вариантами ’fixed on’, ’fixed off’ и ’automatic’.

Режим автоматического переключения потока работает с управлением потоком через режим TIOCPKT (наподобие rlogin). Если драйвер терминала не поддерживает TIOCPKT, screen пытается найти правильный режим исходя из текущих настроек клавиш приложения − когда они включены, управление потоком выключено и наоборот. Конечно, можно по−прежнему манипулировать управлением потоком вручную, если нужно.

Если screen работает с включённым аппаратным управлением потоком, и нажатие клавиши прерывания (обычно C−c) срабатывает не сразу, а после того как прокрутятся ещё 6−8 строк, нужно попробовать запустить screen с опцией interrupt (нужно добавить флаг interrupt к команде flow в файле .screenrc, или использовать опцию −i). В этом случае вывод, который screen накопил от интерактивных программ, очищается. Недостаток в том, что память виртуального терминала хранит не окончательный вывод, что иногда может приводить к неточностям при отображении. Например, если переключить экран, а потом вернуться, или обновить экран при помощи C−a l, на экране будет вывод такой же, как если бы interrupt был выключен. Если выполнять программу, которой нужно передать символ прерывания как ввод (например, прервать вывод виртуального терминала на физический), нужно выключать управление потоком (или использовать режим автоматического управления потоком для того, чтобы выключать его автоматически). В этой ситуации простое обновление экрана screen с помощью C−a l вернёт всё в исходное состояние. Можно попробовать все режимы, и использовать тот, который удобнее.

НАЗВАНИЯ (именование окон)

Можно настраивать имена окон (которые выводятся, например, по команде windows (C−a w)) одной из команд title. Обычно имя окна − это имя команды, запущенной в этом окне. Но иногда хочется чтобы окна с одной командой как−то отличались, или что бы имя менялось на ходу и отражало текущее состояние окна.

Имя по умолчанию для всех окон с интерпретаторами можно задать командой shelltitle в файле .screenrc, а имена окон, созданных по команде screen, можно задать при помощи опции −t. Для интерактивной смены есть escape−последовательность (<esc>kимя<esc>\) и команда title (C−a A). В первом случае строку может выводить приложение, работающее в окне, автоматически, а во втором − имя вводится интерактивно в соответствующее приглашение. Также можно создавать привязки установки предопределённых имён на комбинации клавиш с командой title и не вводить их каждый раз.

Кроме того, у screen есть специальный механизм, который включается путём установки имени окна равным поиск|имя. Для этого нужно, чтобы в приглашение выводилась специальная невидимая escape−последовательность. Часть поиск задаёт строку, которая будет считаться концом приглашения, а часть имя определяет имя по умолчанию для этого окна. Если имя оканчивается на ’:’, screen дописывает имя текущей команды (с его точки зрения), работающей в окне, к названию интерпретатора окна (например, имя:команда). Иначе имя команды, пока она выполняется, перекрывает имя интерпретатора.

Вот как это работает: нужно изменить приглашение командного интерпретатора так, чтобы невидимая строка title−escape−sequence (<esc>k<esc>\) выводилась как его часть. Последняя часть приглашения должна быть в точности равна строке, которая была задана как строка для поиска заголовка окна. При такой настройке, screen при помощи title−escape−sequence будет очищать название предыдущей команды и ожидать следующей. Потом, когда он увидит что от интерпретатора получен перевод строки, он ищет окончание приглашения. Если находит, первое слово после него считает именем команды. Если команда начинается с ’!’, ’%’, или ’^’, screen возьмёт имя не из этой строки, а из следующей за ней. Это помогает пользователям csh при использовании механизмами управления работами и истории.

Вот несколько примеров команд из .screenrc:

screen −t top 2 nice top

Если добавить эту строку в файл .screenrc, то на окне 2 будет запускаться команда top с пониженным приоритетом через nice. Окно будет называться top, а не nice.

shelltitle ’> |csh’

screen 1

В результате выполнения команды будет запущен интерпретатор с заданным заголовком shelltitle. Заголовок автоматический, который предполагает, что приглашение и команда выглядят следующим образом:

/usr/joe/src/dir> trn

(имя команды ищется после последовательности ’> ’). В строке статуса показывает имя trn пока выполняется команда и возвращает csh после того, как она завершится.

bind R screen −t ’% |root:’ su

Если добавить такую команду в файл .screenrc,комбинация клавиш C−a R будет привязана к команде su (с заголовком root:). Если это автоматическое именование работает, будет происходить так:

% !em

emacs file.c

Здесь пользователь ввёл команду истории !em интерпретатора csh, которая вызвала введённую ранее команду emacs. Строка статуса окна во время исполнения команды будет показывать root:emacs, а после того как она завершится, превратится просто в root:.

bind o title

bind E title ""

bind u title (неизвестно)

У первой привязки нет аргументов, поэтому при нажатии C−a o нужно будет ввести заголовок. При нажатии второй комбинации (C−a E) очищаются текущие настройки автоматического заголовка (auto−title). Третья привязка: по нажатию (C−a u) u устанавливает заголовок текущего окна равным (неизвестно).

Нужно иметь в виду, что при добавлении невидимой строки в приглашение, некоторые интерпретаторы (такие как csh) учитывают все неуправляющие символы при вычислении длины приглашения. Если число этих невидимых символов не кратно 8, то при удалении табуляции с помощью backspace появятся ошибки при отображении. Единственный способ обойти эту проблему − использовать приглашение наподобие такого:

set prompt=’^[[0000m^[k^[\% ’

Escape−последовательность <esc>[0000m не только нормализует атрибуты символов, но и округляет нулями число невидимых символов до кратного 8. Пользователи bash могут задать escape−последовательность в переменной PROMPT_COMMAND:

PROMPT_COMMAND=’printf "\033k\033\134"’

(Я использовал строку 134 для вывода символа ’\’ из−за ошибки в bash v1.04).

ВИРТУАЛЬНЫЙ ТЕРМИНАЛ

Каждое окно в сеансе screen эмулирует терминал VT100 с некоторыми дополнительными функциями. Может эмулироваться только VT100, никакие другие типы терминалов эмулироваться не могут screen.
Обычно screen старается выполнять эмуляцию как можно ближе к стандарту VT100/ANSI. Но если у терминала, на котором выполняется screen, не хватает некоторых возможностей, эмуляция будет частичной. В этих случаях screen должен сообщить приложению, что некоторые возможности отсутствуют. Это не проблема, если используется termcap, т.к. screen может использовать переменную $TERMCAP для подстройки своего стандартного termcap.

Но при удалённом заходе на машину, которая поддерживает только terminfo, этот метод работать не будет. У screen есть способ, который он использует в этой ситуации. Вот как это работает:

Когда screen хочет определить имя терминала для себя, сначала он пытается найти запись screen.<терминал>, где <терминал> − это содержимое переменной $TERM. Если такой записи нет, screen пробует найти screen (или screen−w для широких терминалов (132 колонки или больше)). Если и эту запись найти не удаётся, в качестве замены используется vt100.

Идея состоит в том, что если терминал не поддерживает важную функцию (например, удаление символа или очистку до конца строки (EOS)), можно добавить новую запись в termcap/terminfo для screen (и назвать её screen.<dumbterm>), в которой эта возможность будет отключена. Когда такая запись есть на машине, при удалённом заходе на неё termcap/terminfo−запись будет правильной. Имя терминала помещается в переменную $TERM всех новых окон. Screen также устанавливает переменную $TERMCAP, так чтобы она отражала возможности эмулируемого терминала. Однако отметим, что на машинах, где используется база данных terminfo, эта переменная не действует. Кроме того, в переменной $WINDOW устанавливается номер каждого окна.

Действительный набор возможностей, поддерживаемых виртуальным терминалом, зависит от того, какие возможности поддерживаются физическим терминалом. Если, например, физический терминал не поддерживает режим подчёркивания, screen соответственно не указывает возможности ’us’ и ’ue’ в переменной $TERMCAP окна. Однако, для запуска screen нужна поддержка минимального количества возможностей; в частности, прокрутка, очистка, прямая адресация курсора (кроме того, screen не будет работать на hardcopy−терминалах или на overstrike−терминалах).

Также, значение переменной $TERMCAP можно изменить с помощью команды .screenrc termcap или, если задать переменную $SCREENCAP до запуска screen. В последнем случае её значение копируется в неизменном виде в переменную $TERMCAP каждого окна. В ней может быть или полное определение терминала или имя файла, где определён терминал screen (и/или screen−w).

Отметим, что если в системе используется база данных terminfo, а не termcap, у screen имеется команда terminfo.

Если в записи termcap терминала, на котором был вызван screen, присутствует булевая возможность ’G0’, терминал поддерживает несколько наборов символов. Это даёт возможность приложению использовать, например, или псевдографическое множество символов терминала VT100 или множество символов национального алфавита. Поддерживаются следующие управляющие функции из ISO 2022: lock shift G0 (SI), lock shift G1 (SO), lock shift G2, lock shift G3, single shift G2 и single shift G3. При создании или сбросе виртуального терминала таблица символов ASCII назначается на G0, G1, G2 и G3. Если присутствует возможность ’G0’, screen вычисляет возможности ’S0’, ’E0’, и ’C0’ если есть. ’S0’ это последовательность, которую терминал использует для того, чтобы включить псевдографический набор символов вместо SI. ’E0’ соответствующая замена для SO. ’C0’ даёт строку посимвольного соответствия. Эта строка используется в псевдографическом режиме. Строка строится так же, как и возможность ’acsc’ terminfo.

Если в termcap−записи терминала присутствуют возможности ’po’ и ’pf’, приложения, работающие в screen могут отправлять вывод на печать через порт печати терминала. Это позволяет пользователю иметь приложение в одном окне, посылая вывод на принтер, подключённый к терминалу, в то время как другие окна остаются активными (порт принтера активируется и деактивируется заново для каждой порции выводимых данных). Побочный эффект: программы, работающие в разных окнах одновременно, могут отправлять данные на печать одновременно. Данные, которые отправляются на печать, не показываются в окне. Пока печать активна, команда info будет показывать строку, начинающуюся символами ’PRIN’.

Каждому экрану screen предоставляет строку статуса. Если какое−то окно становится активным, строка статуса обновляется содержимым строки статуса этого окна. Если у дисплея нет аппаратной строки, строка отображается, как обычное сообщение screen. Строку статуса можно поменять с помощью ANSI Application Program Command (APC): ESC_<строка>ESC\. Для удобства пользователей xterm последовательность ESC]0..2;<строка>^G также допустима.

Некоторые возможности указываются в переменной $TERMCAP виртуального терминала только если они могут быть эффективно реализованы с помощью физического терминала. Например, ’dl’ (delete line) указывается в переменной $TERMCAP только при условии, что терминал поддерживает или удаление строки или прокрутку областей. Заметьте, что это может спровоцировать путаницу если происходит переподключение с другого терминала, т.к. значение $TERMCAP нельзя изменить из родительского процесса.

Возможность "дополнительный экран" по умолчанию отключена. Задайте команду altscreen в .screenrc чтобы её включить.

Ниже приводится список управляющих последовательностей, которые распознаёт screen. (V) и (A) обозначают функции, специфичные для VT100 и для ANSI− или ISO−, соответственно.

ESC E

Следующая строка

ESC D

Индекс

ESC M

Обратный индекс

ESC H

Горизонтальный набор табуляции

ESC Z

Отправить строку идентификации VT100

ESC 7 (V)

Сохранить курсор и атрибуты

ESC 8 (V)

Восстановить курсор и атрибуты

ESC [s (A)

Сохранить курсор и атрибуты

ESC [u (A)

Восстановить курсор и атрибуты

ESC c

Сбросить в начальное состояние

ESC g

Визуальный звонок

ESC Pn p

Видимость курсора (97801)

Pn = 6

Невидимый

7

Видимый

ESC = (V)

Режим клавиатуры приложения

ESC > (V)

Режим цифровой клавиатуры

ESC # 8 (V)

Заполнить экран E

ESC \ (A)

Завершение строки

ESC ^ (A)

Строка Конфиденциального Сообщения (Строка Сообщения)

ESC !

Глобальная Строка Сообщения (Строка Сообщения)

ESC k

известна как Строка Определения

ESC P (A)

Строка Управления Устройством. Выводит строку прямо на терминал, без интерпретации.

ESC _ (A)

Команда приложения (строка статуса)

ESC ] 0 ; строка ^G (A)

Команда операционной системы (строка статуса, xterm title hack)

ESC ] 83 ; команда ^G (A)

Выполнить команду screen. Работает только если screen собран с поддержкой многопользовательского режима. При проверке списка доступа используется псевдопользователь :window:. Команда addacl :window: −rwx #? создаёт пользователя без прав и разрешает ему только необходимые команды.

Control−N (A)

Зафиксировать использование G1 (SO)

Control−O (A)

Зафиксировать использование G0 (SI)

ESC n (A)

Зафиксировать использование G2

ESC o (A)

Зафиксировать использование G3

ESC N (A)

Однократное использование G2

ESC O (A)

Однократное использование G3

ESC ( Pcs (A)

Назначить набор символов как G0

ESC ) Pcs (A)

Назначить набор символов как G1

ESC * Pcs (A)

Назначить набор символов как G2

ESC + Pcs (A)

Назначить набор символов как G3

ESC [ Pn ; Pn H

Прямая адресация курсора

ESC [ Pn ; Pn f

то же

ESC [ Pn J

Удалить на экране

Pn = None or 0

От курсора до конца экрана

1

От начала экрана до курсора

2

Весь экран

ESC [ Pn K

Удалить в строке

Pn = None or 0

От курсора до конца строки

1

От начала строки до курсора

2

Всю строку

ESC [ Pn X

Удалить символ

ESC [ Pn A

Курсор вверх

ESC [ Pn B

Курсор вниз

ESC [ Pn C

Курсор вправо

ESC [ Pn D

Курсор влево

ESC [ Pn E

Курсор на следующую строку

ESC [ Pn F

Курсор на предыдущую строку

ESC [ Pn G

Горизонтальная позиция курсора

ESC [ Pn

то же

ESC [ Pn d

Вертикальная позиция курсора

ESC [ Ps ;; Ps m

Выбрать графическое начертание

Ps = None or 0

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

1

Полужирный

2 (A)

Бледный

3 (A)

Режим выделения (ANSI: курсив)

4

Подчеркнутый

5

Мигающий

7

Негативное изображение

22 (A)

Нормальная интенсивность

23 (A)

Режим выделения отключен (ANSI: курсив выключен)

24 (A)

Без подчёркивания

25 (A)

Не мигать

27 (A)

Позитивное изображение

30 (A)

Чёрные символы

31 (A)

Красные символы

32 (A)

Зелёные символы

33 (A)

Жёлтые символы

34 (A)

Синие символы

35 (A)

Фиолетовые символы

36 (A)

Символы цвета морской волны

37 (A)

Белые символы

39 (A)

Цвет символов по умолчанию

40 (A)

Чёрный фон

...

...

49 (A)

Цвет фона по умолчанию

ESC [ Pn g

Удалить табуляцию

Pn = None or 0

Удалить табуляцию на текущей позиции

3

Стереть все табуляции

ESC [ Pn ; Pn r (V)

Задать область прокрутки

ESC [ Pn I (A)

Горизонтальная табуляция

ESC [ Pn Z (A)

Обратная табуляция

ESC [ Pn L (A)

Вставить строку

ESC [ Pn M (A)

Удалить строку

ESC [ Pn @ (A)

Вставить символ

ESC [ Pn P (A)

Удалить символ

ESC [ Pn S

Прокрутить область прокрутки вверх

ESC [ Pn T

Прокрутить область прокрутки вниз

ESC [ Pn ^

то же

ESC [ Ps ;...; Ps h

Режим Set

ESC [ Ps ;...; Ps l

Режим Reset

Ps = 4 (A)

Режим вставки

20 (A)

Режим автоматической прокрутки

34

Нормальная видимость курсора

?1 (V)

Клавиши управления курсором приложения

?3 (V)

Изменить ширину терминала на 132 колонки

?5 (V)

Реверсивное видео

?6 (V)

Исходный режим (origin)

?7 (V)

Режим обрамления (wrap)

?9

Отслеживание мыши X10

?25 (V)

Видимый курсор

?47

Альтернативный экран (старый код xterm)

?1000 (V)

Отслеживание мыши VT200

?1047

Альтернативный экран (новый код xterm)

?1049

Альтернативный экран (новый код xterm)

ESC [ 5 i (A)

Начать ретрансляцию на принтер (ANSI Media Copy)

ESC [ 4 i (A)

Остановить ретрансляцию на принтер (ANSI Media Copy)

ESC [ 8 ; Ph ; Pw t

Изменить размер для окна на "Ph" строк и "Pw" колонок (для SunView)

ESC [ c

Отправить строку идентификации VT100

ESC [ x

Отправить отчёт с параметрами терминала

ESC [ > c

Отправить строку атрибутов вторичного устройства VT220

ESC [ 6 n

Отправить отчёт о позиции курсора

ТРАНСЛЯЦИЯ ПРИ ВВОДЕ

Для полной эмуляции VT100 screen должен определять, нажатием какой клавиши была сгенерирована последовательность во входном потоке, и превращать её в последовательность подходящую VT100. Screen в этом отношении очень гибок − он позволяет привязывать произвольные команды к произвольным последовательностям символов. Для стандартной эмуляции VT100 команда всегда будет вставлять строку в буфер ввода окна (см. также команду stuffв таблице команд). Так как последовательности, генерируемые по нажатию клавиши, могут измениться при подключении из терминала с другим типом, можно привязывать команды к termcap−именам клавиш. Screen будет делать правильные привязки после каждого переподключения. Обратитесь к описанию команды bindkey за подробной информацией и примерами.

Ниже представлена таблица привязок по умолчанию. (A) обозначает, что команда выполняется если клавиатура переключена в режим приложения.

Клавиша Имя termcap Команда ______________________________________________________

Курсор вверх

ku

stuff \033[A

stuff \033OA

(A)

Курсор вниз

kd

stuff \033[B

stuff \033OB

(A)

Курсор вправо

kr

stuff \033[C

stuff \033OC

(A)

Курсор влево

kl

stuff \033[D

stuff \033OD

(A)

Клавиша функции 0

k0

stuff \033[10~

Клавиша функции 1

k1

stuff \033OP

Клавиша функции 2

k2

stuff \033OQ

Клавиша функции 3

k3

stuff \033OR

Клавиша функции 4

k4

stuff \033OS

Клавиша функции 5

k5

stuff \033[15~

Клавиша функции 6

k6

stuff \033[17~

Клавиша функции 7

k7

stuff \033[18~

Клавиша функции 8

k8

stuff \033[19~

Клавиша функции 9

k9

stuff \033[20~

Клавиша функции 10

k;

stuff \033[21~

Клавиша функции 11

F1

stuff \033[23~

Клавиша функции 12

F2

stuff \033[24~

Home

kh

stuff \033[1~

End

kH

stuff \033[4~

Insert

kI

stuff \033[2~

Delete

kD

stuff \033[3~

Page up

kP

stuff \033[5~

Page down

kN

stuff \033[6~

Серый 0

f0

stuff 0

stuff \033Op

(A)

Серый 1

f1

stuff 1

stuff \033Oq

(A)

Серый 2

f2

stuff 2

stuff \033Or

(A)

Серый 3

f3

stuff 3

stuff \033Os

(A)

Серый 4

f4

stuff 4

stuff \033Ot

(A)

Серый 5

f5

stuff 5

stuff \033Ou

(A)

Серый 6

f6

stuff 6

stuff \033Ov

(A)

Серый 7

f7

stuff 7

stuff \033Ow

(A)

Серый 8

f8

stuff 8

stuff \033Ox

(A)

Серый 9

f9

stuff 9

stuff \033Oy

(A)

Серый +

f+

stuff +

stuff \033Ok

(A)

Серый −

f−

stuff −

stuff \033Om

(A)

Серый *

f*

stuff *

stuff \033Oj

(A)

Серый /

f/

stuff /

stuff \033Oo

(A)

Серый =

fq

stuff =

stuff \033OX

(A)

Серый .

f.

stuff .

stuff \033On

(A)

Серый ,

f,

stuff ,

stuff \033Ol

(A)

Серый enter

fe

stuff \015

stuff \033OM

(A)

СПЕЦИАЛЬНЫЕ ВОЗМОЖНОСТИ ТЕРМИНАЛА

Приведённая ниже таблица описывает все возможности терминала, которые распознаются screen и отсутствуют в руководстве termcap(5). Можно поместить эти возможности в записи termcap (в файле ’/etc/termcap’) или использовать их с командами ’termcap’, ’terminfo’ и ’termcapinfo’ в файле screenrc. Часто невозможно добавить возможности в базу terminfo.

LP (bool)

У терминала есть отступы в стиле VT100 (’волшебные отступы’ или ’magic margins’). Заметьте, что эта возможность устаревшая, т.к. screen использует стандартную ’xn’ вместо неё.

Z0 (str)

Установить ширину равной 132 колонкам.

Z1 (str)

Установить ширину равной 80 колонкам.

WS (str)

Изменить размер экрана. Желаемая ширина и высота передаются как аргументы. Пример для SunView(tm): ’\E[8;%d;%dt’.

NF (bool)

Терминалу не нужно управление потоком. Передавать ^S и ^Q непосредственно приложению. То же, что и ’flow off’. Возможность противоположная ’nx’.

G0 (bool)

Терминал может работать с последовательностями выбора шрифта ISO 2022.

S0 (str)

Переключить кодировку ’G0’ на заданную. По умолчанию: ’\E(%.’.

E0 (str)

Переключить кодировку ’G0’ обратно на стандартную. По умолчанию: ’\E(B’.

C0 (str)

Использовать строку, как таблицу преобразования для шрифта ’0’. За подробностями обратитесь к описанию возможности ’ac’.

CS (str)

Переключить клавиши управления курсором в режим приложения.

CE (str)

Переключить клавиши управления курсором обратно в нормальный режим.

AN (bool)

Включить autonuke. За подробностями обратитесь к описанию команды ’autonuke’.

OL (num)

Задаёт лимит буфера вывода. За подробностями обратитесь к описанию команды ’obuflimit’.

KJ (str)

Задать кодировку терминала. За списком обратитесь к описанию команды ’encoding’.

AF (str)

Изменить цвет символов способом соответствующим ANSI. Эта возможность почти всегда равна ’\E[3%dm’ (или ’\E[3%p1%dm’ на машинах с terminfo).

AB (str)

То же, что и ’AF’, но изменяет цвет фона.

AX (bool)

Понимает ANSI−последовательности для установки цвета букв и цвета фона по умолчанию (\E[39m / \E[49m).

XC (str)

Описать преобразование символов в строки в зависимости от текущего шрифта. Подробности описаны в следующем разделе.

XT (bool)

Терминал понимает специальные последовательности xterm (OSC, слежение за мышью).

C8 (bool)

Терминалу нужен полужирный текст для того, чтобы выводить цвета высокой яркости (например, Eterm).

TF (bool)

Добавляет недостающие возможности в запись termcap/info. (Установлено по умолчанию).

ПРЕОБРАЗОВАНИЕ СИМВОЛОВ

У screen есть мощный механизм преобразования символов в зависимости от текущего шрифта и типа терминала. Эту возможность можно использовать, если нужно работать со стандартным набором символов (скажем, ISO8851−latin1) на терминалах, работающих с дополнительными необычными символами из нескольких страниц со шрифтами национальных языков.

Синтаксис:
XC=
<отображение−кодировки>{,,<отображение−кодировки>}
<отображение−кодировки>
:= <определитель><шаблон>{,<отображение>}
<отображение>
:= <символ−для−отображения><аргумент−шаблон>

Элементы, заключённые в скобки, могут повторяться произвольное число раз.

Последовательность <отображение−кодировки> говорит screen, как отображать символы в кодировке <определитель> (’B’: Ascii, ’A’: UK, ’K’: German, и т.д.) в строки. Каждое <отображение> описывает какие символы будут преобразовываться. Используется механизм шаблонов, т.к. чаще всего кодировки имеют много общего (например, строки для переключения на другую и с другой кодировки). Каждое вхождение символа ’%’ в <шаблон> заменяется на <аргумент−шаблона>, указанный вместе с символом. Если строки вообще не похожи, то укажите ’%’ в качестве шаблона и пометите полную строку в <аргумент−шаблона>. Для использования настоящего символа ’%’ есть специальный механизм экранирования: символ ’\’ экранирует специальные символы ’\’, ’%’, и ’,’.

Пример:

termcap hp700 ’XC=B\E(K%\E(B,\304[,\326\\\\,\334]’

Строка сообщает screen, как транслировать символы с умляутами в верхнем регистре в кодировке ISOlatin1 (кодировка ’B’) на терминале hp700, который имеет немецкую кодировку. ’\304’ транслируется в ’\E(K[\E(B’ и т.д. Отметим, перед построением таблицы трансляции строка обрабатывается трижды, поэтому для вставки обычного ’\’ нужно столько экранирований.

Для улучшения эмуляции было добавлено другое расшиерние: если отображение транслируется в неэкранированный символ ’%’, этот символ отправляется при каждом переключении screen на соответствующую кодировку <определитель>. В этом особом случае предполагается, что шаблон это просто ’%’, т.к. последовательность переключения кодировок и отображение символов имеют мало общего.

В этом примере показан один из способов использования расширения:

termcap xterm ’XC=K%,%\E(B,[\304,\\\\\326,]\334’

Здесь на xterm эмулируется часть немецкой (’K’) кодировки. Если screen нужно будет перейти на кодировку ’K’, он отправит на терминал символ ’\E(B’, т.е. взамен будет использоваться кодировка ASCII. Шаблон − это просто ’%’, поэтому отображение прямое: ’[’ на ’\304’, ’\’ на ’\326’, и ’]’ на ’\334’.

ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ

COLUMNS

Количество столбцов терминала (перекрывает запись termcap).

HOME

Каталог, в котором нужно искать файл .screenrc.

LINES

Количество строк терминала (перекрывает запись termcap).

LOCKPRG

Программа блокирования терминала.

NETHACKOPTIONS

Включает опцию nethack

PATH

Используется для обнаружения программ перед запуском.

SCREENCAP

Для модификации значения TERMCAP терминала.

SCREENDIR

Альтернативный каталог для сокетов.

SCREENRC

Альтернативный конфигурационный файл screenrc.

SHELL

Имя интерпретатора по умолчанию, который используется для открытия окон (по умолчанию /bin/sh). См. также команду shell в .screenrc.

STY

Альтернативное имя сокета.

SYSSCREENRC

Альтернативный системный файл конфигурации screenrc.

TERM

Имя терминала.

TERMCAP

Описание терминала.

WINDOW

Номер окна (в момент создания)

ФАЙЛЫ

.../screen−4.?.??/etc/screenrc

.../screen−4.?.??/etc/etcscreenrc

Примеры пользовательского и глобального файлов инициализации, входящие в дистрибутив screen.

$SYSSCREENRC

/etc/screenrc

Команды инициализации screen

$SCREENRC

$HOME/.screenrc

Считывается после /etc/screenrc

$SCREENDIR/S−<login>

/var/run/screen/S−<login>

Каталог с сокетами screen (по умолчанию)

/usr/tmp/screens/S−<login>

Альтернативный каталог с сокетами.

<socket directory>/.termcap

Записанный функцией вывода "termcap"

/usr/tmp/screens/screen−exchange

или

/tmp/screen−exchange

’Буфер межпроцессного взаимодействия’ screen

hardcopy.[0−9]

Образы screen, созданные функцией hardcopy

screenlog.[0−9]

Журнал, созданный функцией log

/usr/lib/terminfo/?/*

или

/etc/termcap

База данных возможностей терминала

/var/run/utmp

Записи о входе в систему

$LOCKPRG

Программа для блокировки терминала.

СМОТРИ ТАКЖЕ

termcap(5), utmp(5), vi(1), captoinfo(1), tic(1)

АВТОРЫ

Изначально программа была создана Оливером Ломанном (Oliver Laumann). Последняя (эта) версия была сделана Юргеном Вигертом (Juergen Weigert), Михаелем Шрёдером (Michael Schroeder), Мика Кованом (Micah Cowan) и Садрул Хабиб Чоудхури (Sadrul Habib Chowdhury).

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Игорь Чубин <igor@chub.in>.

Преобразование в формат man и обновление перевода - Вячеслав Чертов <aqua_marine@fastmail.fm>.

Обновление и вычитка перевода - Владимир Ступин <vladimir@stupin.su>.

COPYLEFT

Copyright (c) 2010

Юрген Вайгерт (Juergen Weigert) (jnweiger@immd4.informatik.uni−erlangen.de)

Садрул Хабиб Чоудхури (Sadrul Habib Chowdhury) (sadrul@users.sourceforge.net)

Copyright (c) 2008, 2009

Юрген Вайгерт (Juergen Weigert) (jnweiger@immd4.informatik.uni−erlangen.de)

Михаэль Шрёдер (Michael Schroeder) (mlschroe@immd4.informatik.uni−erlangen.de)

Мика Кован (Micah Cowan) (micah@cowan.name)

Садрул Хабиб Чоудхури (Sadrul Habib Chowdhury) (sadrul@users.sourceforge.net)

Copyright (C) 1993−2003

Юрген Вайгерт (Juergen Weigert) (jnweiger@immd4.informatik.uni−erlangen.de)

Михаэль Шрёдер (Michael Schroeder) (mlschroe@immd4.informatik.uni−erlangen.de)

Copyright (C) 1987 Оливер Лауман (Oliver Laumann)
Эта программа является свободным программным обеспечением; его можно распространять и/или модифицировать в соответствии с лицензионным соглашением GNU General Public License, опубликованным Free Software Foundation; версии 3, или (на ваш выбор) любой более поздней версии.
Эта программа распространяется в надежде на то, что она будет полезной, но БЕЗ КАКИХ−ЛИБО ГАРАНТИЙ; за исключением подразумеваемых гарантий ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КАКИХ−ЛИБО ЗАДАЧ. За подробностями обратитесь к GNU General Public License.
Вместе с этой программой вы должны получить копию лицензии GNU General Public License (см. файл COPYING); если нет, пишите по адресу Free Software Foundation, Inc., 59 Temple Place − Suite 330, Boston, MA 02111−1307, USA

УЧАСТНИКИ

Кен Бил (Ken Beal) (kbeal@amber.ssd.csd.harris.com),
Рудольф Кёнинг (Rudolf Koenig) (rfkoenig@immd4.informatik.uni−erlangen.de),
Торлес Эккерт (Toerless Eckert) (eckert@immd4.informatik.uni−erlangen.de),
Вэйн Дэвидсон (Wayne Davison) (davison@borland.com),
Патрик Волфи (Patrick Wolfe) (pat@kai.com, kailand!pat),
Барт Шефер (Bart Schaefer) (schaefer@cse.ogi.edu),
Натан Глассер (Nathan Glasser) (nathan@brokaw.lcs.mit.edu),
Ларри У. Вирден (Larry W. Virden) (lvirden@cas.org),
Ховард Чю (Howard Chu) (hyc@hanauma.jpl.nasa.gov),
Тим МакКензи (Tim MacKenzie) (tym@dibbler.cs.monash.edu.au),
Маркку Ярвинен (Markku Jarvinen) (mta@{cc,cs,ee}.tut.fi),
Марк Бушер (Marc Boucher) (marc@CAM.ORG),
Дуг Сиберт (Doug Siebert) (dsiebert@isca.uiowa.edu),
Кн Стиллсон (Ken Stillson) (stillson@tsfsrv.mitre.org),
Ян Фречетт (Ian Frechett) (frechett@spot.Colorado.EDU),
Браен Коэмштед (Brian Koehmstedt) (bpk@gnu.ai.mit.edu),
Дон Смит (Don Smith) (djs6015@ultb.isc.rit.edu),
Франк ван дер Линден (Frank van der Linden) (vdlinden@fwi.uva.nl),
Мартин Швайкерт (Martin Schweikert) (schweik@cpp.ob.open.de),
Давид Врона (David Vrona) (dave@sashimi.lcu.com),
И. Тай МакКуин (E. Tye McQueen) (tye%spillman.UUCP@uunet.uu.net),
Мэтью Грин (Matthew Green) (mrg@eterna.com.au),
Кристофер Уильямс (Christopher Williams) (cgw@pobox.com),
Мэт Мосли (Matt Mosley) (mattm@access.digex.net),
Грегор Нил Шапиро (Gregory Neil Shapiro) (gshapiro@wpi.WPI.EDU),
Джоанс Целлнер (Johannes Zellner) (johannes@zellner.org),
Пабло Авербуй (Pablo Averbuj) (pablo@averbuj.com).

ВЕРСИЯ

Документация написана для screen версии 4.1.0. Она основана на объединении версии 2.3PR7 Вайана Дэвисона (Wayne Davison) и нескольких улучшений к версии 2.0 Оливера Ломанна (Oliver Laumann). Следует иметь в виду, что все версии 2.x принадлежат Оливеру Ломанну (Oliver Laumann).

ДОСТУПНОСТЬ

Последний официальный релиз screen доступен через анонимный ftp на gnudist.gnu.org, nic.funet.fi или других сайтах, распространяющих GNU. Домашний сайт screen − ftp.uni−erlangen.de, в каталоге pub/utilities/screen. Подкаталог ’private’ содержит последний бета−тестовый релиз. Если вы хотите помочь, отправьте сообщение на screen@uni−erlangen.de.

НЕИСПРАВНОСТИ

’dm’ (режим удаления) и ’xs’ не обрабатываются корректно (они игнорируются). ’xn’ воспринимается, как волшебный индикатор отступа.

Screen ничего не знает о символах двойной высоты и двойной ширины. Но это единственное место, где vttest может не работать.

Нет возможности поменять переменную окружения $TERMCAP при переподключении из терминала другого типа.

Поддержка terminfo−систем очень ограничена. Добавление новых возможностей в $TERMCAP может не иметь должного эффекта.

Screen не использует аппаратную табуляцию.

На большинстве систем screen должен быть установлен с битом set−uid и пользователем root, чтобы он мог корректно изменять владельца файла tty−устройства для каждого окна. Особые права доступа также могут понадобиться для изменения файла /var/run/utmp.

Записи в /var/run/utmp не удаляются, если screen завершается по сигналу SIGKILL. В результате некоторые программы (такие, как "w" или "rwho") показывают, что пользователь зарегистрирован в системе, хотя на самом деле его нет.

Screen может выдавать странное предупреждение, если для терминала нет записи в utmp.

Если модемная линия разорвалась, screen может и не отключиться (или завершиться) автоматически, если драйвер устройства не настроен на отправку сигнала HANGUP. Для отключения сеанса screen нужно использовать опции командной строки −D или −d.

Опции −d и −D отключают сеанс без подтверждения, даже если установлен пароль.

И breaktype и defbreaktype изменяют способ генерирования разрыва для всех терминальных устройств. При этом, первый изменяет только текущие настройки, а второй − задаёт настройки для новых, будущих окон.

При подключении к многопользовательскому сеансу файл .screenrc пользователя не обрабатывается. Все настройки пользователей должны быть включены в файл .screenrc пользователя, который запускает сеанс screen, или изменены вручную.

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

Сообщения об ошибках, исправления, улучшения, футболки, деньги, пиво и пиццу отправляйте по адресу screen@uni−erlangen.de.