MAN : screen
Перевод: Игорь Чубин
http://linux.die.net/man/1/screen
Эта страница является переводом официальной man-страницы программы GNU Screen, текстового оконного менеджера, эмулирующего терминал VT100/ANSI.
- 1 Имя
- 2 Синтаксис
- 3 Описание
- 4 С чего начать?
- 5 Опции командной строки
- 6 Привязки клавиш
- 7 Индивидуальная настройка
- 8 Строка сообщений
- 9 Типы окон
- 10 Escape-последовательности
- 11 Управление потоком
- 12 Названия (именование окон)
- 13 Виртуальный терминал
- 14 Трансляция при вводе
- 15 Специальные возможности терминала
- 16 Преобразование кодировки символов
- 17 Переменные окружения
- 18 Файлы
Имя
screen — оконный менеджер с эмуляцией терминала VT100/ANSI
Синтаксис
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]Описание
Screen это полноэкранный оконный менеджер, который мультиплексирует физический терминал между несколькими процессами (обычно, интерактивными оболочками). Каждый терминал обладает функциональностью терминала DEC VT100 и некоторыми управляющими функциями из стандартов ISO 6429 (ECMA 49, ANSI X3.64) и ISO 2022 (вставка/удаление строки и поддержка множеств символов). Для каждого виртуального терминала есть буфер истории и механизм обмена, позволяющий копировать текст между окнами.
При вызове screen создаёт отдельное окно, в котором запускает оболочку командного интерпретатора (или заданную программу), и вы можете работать с ней как и обычно. Потом, в любое время, можно создавать новые (полноэкранные) окна, в которых будут исполняться другие программы (в том числе различные оболочки), закрывать существующие окна, просматривать список окон, включать/выключать запись, просматривать буфер прокрутки, переключаться между окнами самыми разнообразными способами и выполнять множество других действий. Все окна работают полностью независимо друг от друга. Программы продолжают работать, даже если они невидимы в настоящий момент, или вообще весь сеанс screen полностью отключён от терминала пользователя. Когда программа завершается, screen (по умолчанию) закрывает то окно, в котором она исполнялась. Если это окно было активным, screen активирует предыдущее; если окон не осталось, screen завершается.
Всё, что вы набираете внутри screen, отправляется программе, работающей в текущем окне. Единственное исключение --- комбинация клавиш, которая показывает, что сейчас вы хотите работать с самим оконным менеджером. По умолчанию, команды работы с оконным менеджером начинаются нажатием Control-a (далее C-a), за которым следует нажатие одной клавиши. Эта и другие управляющие комбинации могут быть настроены иначе, но они обязательно должны состоять из двух символов.
Программа screen не понимает префикс "C-" как обозначение нажатия Ctrl. Вместо этого нужно использовать запись с символом ^ (например, ^A вместо C-a). Это может пригодиться, например, как аргумент опции -e. Кроме этого, управляющие символы screen выводит в этом же формате.
Стандартный способ создать новое окно --- нажать "C-a c". Окно создаётся мгновенно, и screen сразу же делает его активным, независимо от того, в каком состоянии находится процесс, выполняющийся в текущем окне. Аналогично можно создавать новые окна, в которых будет выполняться какая-то своя команда. Для этого сначала нужно привязать команду к комбинации клавиш (это делается через конфигурационный файл .screenrc или через режим командной строки C-a :, а потом, когда будет нужно, просто использовать эту комбинацию клавиш. Кроме всего прочего, новые окна можно создавать при помощи команды:
screen emacs prog.cкоторая вызывается в командном интерпретаторе, работающем внутри screen. Новая копия screen создаваться не будет, а вместо этого команда будет передана текущему менеджеру (информация о том кто именно является текущим менеджером находится в переменной окружения $STY), который и создаст новое окно. В приведённом выше примере запускается редактор emacs (в котором открывается prog.c) и окно с этим редактором становится активным.
Если файл /var/run/utmp доступен screen для изменения, он сделает соответствующие записи для каждого окна при их создании, и удалит при их закрытии. Это очень полезно при использовании таких программ как talk, script, shutdown, rsend, sccs и многими другими, которые используют файл utmp, для того чтобы определить кто вы (то есть, какой пользователь работает с каким терминалом). До тех пор пока screen активен на терминале, запись про собственно этот терминал удаляется. Также смотрите C-a L.
С чего начать?
Перед тем как приступить к работе со screen'ом, нужно убедиться, что установлен правильный тип терминала (как и для других программ, которые используют termcap/terminfo). Это можно сделать, например, с помощью программы tset.
Если вы хотите побыстрее начать работу со screen и не углубляться в долгое чтение, вам нужно запомнить только одну команду: "C-a ?". Если нажать эту комбинацию клавиш, будет показан список доступных команд screen и привязок комбинаций клавиш к ним. Каждая комбинация клавиш обсуждается в разделе Привязки клавиш. Раздел Индивидуальная настройка рассказывает о том, что может быть в конфигурационном файле .screenrc.
Если ваш терминал — это настоящий терминал с авто-отступом (auto-marign) (не позволяет обновить последнюю позицию экрана без прокрутки), возможно вам стоит использовать такую версию termcap для вашего терминала, в которой автоматические отступы выключены. В этом случае screen будет правильно обновлять экран при любых обстоятельствах. Сегодня у большинства терминалов есть волшебные отступы (magic margins) — автоматические отступы и используемая последняя колонка, что соответствует стилю VT100 и отлично подходит для screen. Если у вас терминал с авто-отступами, screen может его использовать, но обновление последнего символа в строке может быть невозможным без прокрутки или перемещения символа в другую позицию каким-то иным способом. Задержку, связанную с этим, можно сократить, если использовать терминал, у которого есть возможность вставки символов.
Опции командной строки
У программы screen такие ключи командной строки:
-a Включать все возможности (за некоторыми небольшими исключениями) в termcap каждого окна, даже если screen должен перерисовывать часть экрана для реализации функции.
-A Адаптирует размеры всех окон под размер текущего терминала. По умолчанию screen пытается восстановить старый размер окна (при подключении к терминалам с изменяемыми размерами (те у кого есть "WS" в описании, например, suncmd или xterm).
-c file Использовать file вместо стандартного "$HOME/.screenrc" в качестве конфигурационного
-d|-D [pid.tty.host] Не запускает новый сеанс, а отключает вместо этого уже запущенный ранее. Достигается тот же эффект, что и в с случае нажатия клавиш "C-a d" на управляющем терминале screen. Ключ -D эквивалентен ключу power detach. Если ни к одному сеансу нельзя обратиться, опция игнорируется. В связке с -r/-R могут быть достигнуты другие более интересные эффекты:
-d -r Подключить к сеансу, и если необходимо, сначала отключить его.
-d -R Переподключиться к сеансу. Если необходимо — сначала отключить или создать сеанс.
-d -RR Переподключиться к сеансу. Если необходимо — сначала отключить или создать сеанс. Воспользоваться первой сессией, если больше одной сессии создать нельзя.
-D -r Подключиться к сеансу. Если необходимо, сначала отключить его удалённо и разрегистрироваться.
-D -R Подключиться здесь и сейчас. Это значит: если сессия работает, переподключиться. Если необходимо, сначала отключиться удалённо. Если не работала — создать и сообщить об этом пользователю. Любимый ключ авторов.
-D -RR Подключиться прямо сейчас. Не важно, что будет, просто сделать это.Замечание: хорошая идея всегда проверять состояние сеансов screen с помощью "screen -list"
-e xy Устанавливает управляющий символ равным x и символ, который генерирует сам этот символ в y (после ввода командного символа). По умолчанию это "C-a" и "a", что можно явным образом указать как "-e^Aa". При создании сеанса screen эта опция устанавливает управляющий символ. В многопользовательских сеансах все добавляемые пользователи будут использовать указанный символ. При подключении к существующей сессии, опция меняет управляющий символ только для пользователя, выполняющего подключение. Опция эквивалентна командам "defescape" и "escape" соответственно.
-f, -fn и -fa Включить, выключить или перевести в автоматический режим flow-control. Аналогичный результат достигается с помощью команды "defflow" конфигурационного файла.
-h num Установить размер истории буфера прокрути равным num строк.
-i Приводит к тому что клавиша прерывания (C-c) срабатывает мгновенно если включено аппаратное управление потоком. См. команду defflow. Использование этой опции не рекомендуется.
-l и -ln Включает или выключает login-режим (для обновления /var/run/utmp). Это же можно задать с помощью команды deflogin в файле ~/.screenrc
-ls и -list Не запускает screen, а показывает вместо этого список идентифицирующих сеансы screen строк pid.tty.host. Сеансы, которые отмечены словом "detached" могут быть продолжены с помощью команды "screen -r". Сеансы, которые отмечены словом "attached", работают, и у них есть управляющий терминал. Если сеанс работает в многопользовательском режиме, он отмечен словом "multi". Сеансы, которые отмечены словом "unreachable" или работают на другом хосте, или умерли (dead). Недоступный (unreachable) сеанс считается мёртвым, если его имя соответствует или имени локального хоста, или указанному параметру (если такой есть). Как описывать строки для выбора рассказывается в описании ключа -r. Сеансы, отмеченные как "dead", нужно проверить и удалить. Если вы не уверены, нужно ли удалять какой-то сеанс, вы можете обратиться к системному администратору (если это не вы сами, иначе может возникнуть бесконечная рекурсия). Удалить сеансы можно с помощью опции -wipe.
-L Включить автоматическую запись (logging) для окон.
-m Заставляет screen игнорировать переменную окружения $TTY. При использовании "screen -m" создаётся новый сеанс, независимо от того вызывается ли screen изнутри другого сеанса screen или нет. Этот флаг имеет особое значение, если вызывается с опцией:
-d -m Запустить сеанс в "отключенном" режиме. Сессия создаётся, но к ней не выполняется подключение. Это полезно для загрузочных системных скриптов.
-D -m Тоже запускает screen в "отключенном" режиме, но не создаёт новый процесс. Команда завершается, если сессия прерывается.
-O Использует более оптимальный режим вывода вашим терминалом, чем в случае с обычной эмуляцией VT100 (касается только auto-margin терминалов без поддержки LP). Такого же результата можно достичь, если установить OP в команде termcap.
-p number_or_name Заранее выбирает окно. Полезно, когда вы хотите переподключиться к конкретному окну или если вы хотите с помощью опции -X отправить команду в конкретное окно. Как и в случае с командой select, знак "-" означает пустое окно. Если вместо номера указать символ =, то при подключении появится меню windowlist со списком окон.
-q Подавляет вывод сообщений об ошибках. В сочетании с "-ls" возвращает код завершения: 9 - нет каталога с сеансами; 10 - каталог есть, но нет сеансов, к которым можно подключиться. 11 (или больше) говорит что есть 1 (или больше) рабочий сеанс. В сочетании с "-r" возвращает код завершения: 10 - нет сеансов, которые можно возобновить; 12 (или больше) что есть 2 (или больше) сеанса, работу которых можно возобновить, и нужно выбрать какой-то один. Во всех остальных случаях ключ "-q" эффекта не имеет.
-r [pid.tty.host] -r sessionowner/[pid.tty.host] Возобновляет работу отключённого сеанса. Никакие другие опции (за исключением комбинаций с -d/-D не допускаются). Необязательный параметр [pid.]tty.host может указываться для того чтобы определить какой именно сеанс из множества отключённых имеется в виду. Вторая форма используется для подключения к работающему в многопользовательском режиме сеансу другого пользователя. Эта опция говорит о том, что файл нужно искать в каталоге другого пользователя. Требует наличия бита setuid-root у программы screen.
-R Пытается возобновить работу первого попавшегося отключённого сеанса. Если попытка успешная, все остальные аргументы командной строки игнорируются. Если отключённых сеансов нет, запускает новый сеанс с учётом заданных опций, так как будто -R вообще и не указано. Эта опция подразумевается по умолчанию, когда screen вызывается как login-оболочка (если быть точным, то в этом случае подразумеваются опции "-xRR"). О том, что происходит, если вызвать screen в сочетании с опциями -d/-D, написано в описании этих опций.
-s Устанавливает оболочку по умолчанию равной заданной программе (без опции в качестве оболочки по умолчанию используется программа, что указана в $SHELL или "/bin/sh", если никакая не указана). Такой же эффект может быть получен с помощью команды shell в файле ".screenrc".
-S sessionname Эта опция может использоваться для задания имени сеансу при его создании. Имя используется для идентификации при вызове "screen -list" и "screen -r". Оно заменяет постфикс "tty.host", использующийся по умолчанию.
-t name Установить заголовок для командного интерпретатора или указанной программы. См. также команду shelltitle для .screenrc.
-U Запустить screen в режиме UTF-8. Эта опция говорит screen, что терминал посылает и понимает символы в кодировке UTF-8. Этот ключ также устанавливает кодировку по умолчанию для окон utf8.
-v Показать номер версии.
-wipe [match] Работает также как "screen -ls", только удаляет файлы уничтоженных сеансов вместо того чтобы помечать их как "dead" (мёртвые). Сеанс, который не отвечает, считается мёртвым, или если его имя соответствует имени локального хоста, или указанному явно параметру match. См. описание ключа -r, где рассказаны правила составления match.
-x Подключиться к активной (not detached) сессии screen. (Многодисплейный режим).
-X Отправить указанную команду в работающий сеанс screen. Можно указать ключ -d или -r, чтобы screen смотрел только на подключённые (attached) или отключённые (detached) сеансы. Обратите внимание на то, что команда не сработает, если сеанс защищён с помощью пароля.
Привязки клавиш
Каждая управляющая последовательность 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) Переключить фокус ввода на следующий регион. C-a C-a (other) Переключиться в ранее активное окно. (по умолчанию команда привязана
к управляющему символу, нажатому дважды — например, если вы вызовите
screen с опцией "-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) Включить/выключить/перевести в автоматический режим управление потоком (flow control). 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 space
C-a n
C-a C-n (next) Переключиться на следующее окно. C-a N (number) Показать номер (и заголовок) текущего окна. C-a backspace
C-a 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) Удалить все регионы за исключением текущего. C-a r
C-a C-r (wrap) Включить/выключить настройку line-wrap текущего окна
(включает и выключает автоматические отступы (automatic margins)) C-a s
C-a C-s (xoff) Отправить control-s в текущее окно. C-a S (split) Разделить текущий регион на два новых. 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) Закрыть текущий регион. C-a z
C-a C-z (suspend) Приостановить (suspend) screen. Система должна поддерживать
управление работами (job-control) в стиле BSD. C-a Z (reset) Сбросить виртуальные терминалы в их исходные значения. C-a . (dumptermcap) Записать файл ".termcap" C-a ? (help) Показать привязки клавиш. C-a C-\ (quit) Закрыть все окна и завершить screen. C-a : (colon) Перейти в режим ввода командной строки screen. C-a [
C-a C-[
C-a esc (copy) Перейти в режим копирования/прокрутки. 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) Показать информацию о программе GNU Screen. C-a _ (silence) Включить/выключить режим слежения за неактивностью текущего окна. C-a * (displays) Показать список всех подключенных сейчас дисплеев.Индивидуальная настройка
По умолчанию каталог для сокетов (socket directory) это или $HOME/.screen, или /tmp/screens, или, скорее всего, /var/run/screen; задаётся при компиляции. Если screen имеет бит setuid-root, каталог для сокетов обязательно должен находиться не на NFS-разделе. Если screen не имеет бита setuid, пользователь может указывать каталог через переменную $SCREENDIR. У этого каталога должен быть режим доступа 700.
При вызове screen исполняет настроечные команды из файла /etc/screenrc и файла .screenrc, что расположен в домашнем каталоге. Имена этих файлов — настройки по умолчанию, которые можно перекрыть одним из следующих способов: глобальный настроечный файл указывается при помощи переменной окружения $SYSSCREENRC (эта возможность может быть отключена при компиляции), пользовательский настроечный файл ищется по пути, указанном в $SCREENRC, и в файле $HOME/.screenrc. Есть ещё опция командной строки -c, которая имеет приоритет над перечисленными выше настройками имён конфигурационных файла.
Команды в этих файлах используются для того чтобы задавать опции, привязывать действия к функциональным клавишам, открывать несколько окон при старте сеанса screen. Команды записываются по одной в строке. Пустые строки игнорируются. Аргументы команд разделяются табуляцией или пробелами и могут объединяться с помощью двойных кавычек. Строки, которые нельзя распознать, игнорируются. При этом для каждой такой строки выдаётся предупреждение. В командах могут использоваться ссылки на переменные окружения. Синтаксис такой же как в командном интерпретаторе: $VAR или ${VAR}. Обратите внимание, что этот способ записи несовместим с предыдущими версиями screen, потому что сейчас символ $, если мы хотим передать именно его, нужно экранировать с помощью символа \. От подстановки переменных также защищают одинарные кавычки.
В дистрибутив входит два конфигурационных файла-примера: etc/etcscreenrc и etc/screenrc. В этих файлах есть много хороших примеров различных конфигурационных команд GNU Screen.
Настраивать GNU Screen можно и в on-line режиме. Для того чтобы перейти в режим командной строки, нажмите C-a :. Команды, начинающиеся с "def" меняют настройки по умолчанию, а остальные меняют текущие настройки.
Доступны следующие команды:
acladd usernames [crypted-pw]addacl usernamesДаёт пользователю возможность получения доступа к сеансу screen. В качестве параметра usernames может задаваться имя пользователя или имена нескольких пользователей, разделённых запятыми. Команда разрешает подключаться к screen и в том числе выполняет действия аналогичные действию команды aclchg usernames +rwx "#?". Для того чтобы добавить пользователя с ограниченным доступом, нужно использовать команду aclchg указанную ниже. В качестве опционального параметра crypted-pw может указываться зашифрованный пароль для заданного пользователя. Команда addacl --- синоним команды acladd. Только для многопользовательского режима.
aclchg usernames permbits listchacl usernames permbits listИзменить права для пользователей. Список пользователей usernames состоит из имён пользователей, разделённых запятыми. Права представлены символами r, w и x. Префикс + обозначает добавление права, а префикс - снятие его. Третий параметр, list это список команд и/или окон, заданных с помощью номеров или названий. Специальный список # обозначает все окна, а ? -- все команды. Если параметр * состоит из одного единственного символа *, команда применяется ко всем пользователям. Пользователь может выполнить команду, если у него есть бит "x" для этой команды. Пользователь может вводить данные в окно, если у него есть бит "w" для этого окна, и оно никем не заблокировано. Другие биты пока что игнорируются. Для того чтобы отозвать блокировку записи в окно 2 выполненную другим пользователем, нужно выполнить команду: "aclchg username -w+w 2". Для того чтобы предоставить доступ только для чтения: aclchg username -w "#". Как только имя пользователя становится известно screen, этот пользователь может подключаться к сеансу и по умолчанию у него есть права на исполнение всех команд со всеми окнами. Право на исполнение acl-команд, at и прочих нужно тоже удалить, иначе пользователь сможет восстановить себе права на запись сам. Права специального пользователя nobody изменить нельзя (подробности в описании команды su). Команда chacl это синоним для aclchg. Только для многопользовательского режима.
acldel usernameУдалить пользователя из списка контроля доступа screen. Если у пользователя есть подключенные экраны, все они отключаются. И больше подключится он не может. Это только в многопользовательском режиме.
aclgrp username [groupname]Создаёт группу пользователей с одинаковыми правами доступа. Название группы совпадает с названием лидера группы. Все члены группы наследуют права лидера группы. Это означает, что если пользователю доступ не дали, делается выполняется проверка для лидера. Пользователь удаляется изо всех групп, если в качестве имени группы используется специальное слово none. Если второй параметр не указан, на экран выводятся все группы, в которых состоит пользователь.
aclumask [[users]+bits |[users]-bits .... ]umask [[users]+bits |[users]-bits .... ]
Команда определяет, какие права будут у пользователей при доступе к окнам, которые создаст тот, кто вызывает эту команду. Аргумент users может отсутствовать или, если он есть, это список пользователей, разделённых запятыми. Если список пользователей users не указан, подразумевается что перечислены все известные пользователи. Аргумент bits это любая комбинация битов контроля доступа, которые могут использоваться в команде aclchg. Специальное имя пользователя ? определяет какие права доступа к окнам будут выдаваться пока неизвестным пользователям. Специальное имя пользователя ?? определяет какие права вызова команд будут выдаваться пока неизвестным пользователям. Права для специального пользователя nobody менять нельзя (см. команду "su"). Команда umask это синоним команды aclumask.
activity messageЕсли в окне, которое находится под наблюдением, возникает какая-то активность, screen показывает строку предупреждения. Текст предупреждения можно переопределить с помощью строки message. Символ % в сообщении заменяется номером окна, в котором возникла активность, а символ ^G заменяется на определение звонка (bell) из termcap-файла (обычно ему соответствует звуковой звонок). Сообщение по умолчанию выглядит так:
"Activity in window %n"Обратите внимание на то, что мониторинг по умолчанию выключен. Его можно включить командой (C-a M).
allpartial on|offЕсли установлен, обновляется только строка, содержащая курсор. Действует на все окна. Полезно для медленных линий. Предыдущие настройки обновления восстанавливаются при вызове allpartial off. Команда влияет на глобальный флаг, перекрывающий их собственные настройки. Команда не влияет на новые окна и их отрисовку.
altscreen on|offЕсли установлен, включается поддержка альтернативного экрана (alternate screen), как в xterm (например, когда вы выходите из man и то что бы на консоли восстанавливается). Начальная настройка "off".
at [identifier][#|*|%] command [args ... ]
Выполнить команду на другом окне или дисплее, так будто бы она была вызвана там. Команда at меняет контекст (текущее окно или дисплей). Если первый аргумент описывает не уникальный контекст, команда будет выполнена многократно.
Если первый параметр задан в форме id*, тогда id проверяется на соответствие именам пользователей. Команда выполняется по разу для каждого дисплея заданного пользователя. Если идентификатор identifier задан в форме id%, он проверяется на соответствие дисплеям. Дисплеи именуются в соответствии с названиями терминалов, к которым они подключаются. Префиксы /dev/ и /dev/tty указывать в идентификаторе не обязательно. Если идентификатор заканчивается # или никаких специальных символов в конце нет, он проверяется на соответствие номера и названиям окон.
Если не указать идентификатор перед # * или % будут выбраны все пользователи, все дисплеи или все окна соответственно. На экране появится короткое сообщение, описывающее, что происходит. Обратите внимание, что символ "#" работает как комментарий, если перед ним поставить #. Экранировать символ можно с помощью \. Разрешения проверяются для того, кто вызвал команду at, а не для владельца дисплея, на котором будет выполняться команда.
Замечание: При поиске соответствия именам окон, команда выполняется как минимум по разу для каждого окна. Команды, которые меняют порядок окон (как other) могут вызываться более одного раза. В окнах, подключенных к нескольким дисплеям, команда будет выполняться для каждого дисплея. Осторожно с переключающими (toggle) программами типа login! Некоторые программы (например, "process") требуют чтобы экран был подключен к целевому окну. Такие команды могут не очень корректно работать, когда at обходит окна.
attrcolor attrib [attribute/color-modifier]Команда предназначена для того чтобы подсвечивать атрибуты путём смены цвета текста. Если используется атрибут attrib, применяется модификатор attribute/color. Если модификатор не задан, удаляются текущие. Подробнее о синтаксисе читайте в разделе «Escape-последовательности».Программа screen понимает два псевдо-атрибута: "i" обозначает яркий цвет буквы и "I" обозначает яркий цвет фона.
Примеры:
attrcolor b "R"
Выводить ярко-красным цветом текст, который должен быть полужирным. attrcolor u "-u b"
Выводить текст синим цветом вместо подчёркнутого. attrcolor b ".I"
Использовать яркие цвета для вывода полужирного текста. Большинство терминалов и так это делает. attrcolor i "+b"
Сделать чтобы яркий текст был ещё и полужирным.autodetach on|offБудет ли screen отключаться (detach) при разрыве связи с терминалом (hangup). В результате отключения команды, работающие в screen, должны продолжать работать и не завершаться. Восстановить подключение можно с помощью команды screen -r. Если опция выключена (off), при разрыве связи с терминалом все процессы получат сигнал потери связи с терминалом (hangup, HUP) и (скорее всего) завершатся. По умолчанию: on
autonuke on|offУказывает, должна ли команда очистки экрана удалять вывод, который ещё не был отправлен на терминал. См. также obuflimit.
backtick id lifespan autorefresh cmd args...backtick id
Программирует backtick-команду (командную подстановку) с заданным идентификатором id. Вывод этой команды используется для замены строковой последовательности %` (%номер`). Заданный промежуток времени lifespan определяет количество секунду в течение которых вывод может считаться действительным. Когда время заканчивается, если встретится соответствующая escape-последовательность, программа должна запускаться заново. Параметр autorefresh включает автоматическое обновление заголовков после заданного количества секунд.
Если и lifespan, и autorefresh равны 0, предполагается, что программа должна уйти в фон и изредка генерировать вывод. В этом случае команда запускается сразу же, и screen сохраняет последнюю строчку вывода. Если печатается новая строка, screen автоматически обновляет заголовки или hardstatus. Вторая форма команды удаляет bactick с идентификатором id.
bce [on|off]Настройка background-color-erase (цвет фона при очистке). Если bce установлено, все символы, которые в настоящий момент очищаются,вставляются, выводятся из буфера-прокрутки или очищаются, будут выводиться с текущим цветом фона. В противном случае используется цвет фона, заданный по умолчанию.
bell_msg [message]Когда символ звонка (bell character) выводится в фоновом окне, screen показывает сообщение-предупреждение. Это сообщение-предупреждение можно переопределить командой bell_msg. Каждый символ "%" в сообщении заменяется номером окна в котором прозвучал звонок; а каждая последовательность "^G" заменяется на обозначения звонка из termcap (обычно, звуковым звонком). По умолчанию сообщение такое:
"Bell in window %n"Можно подавить вывод сообщения, если задать пустое сообщение в качестве аргумента (bell_msg ""). При вызове bell_msg безе параметров показывается текущее сообщение.
bind [-c class] key [command [args]]
Привязать команду к комбинации клавиш. По умолчанию, большинство команд, которые есть в screen уже привязаны к каким-то клавишам или их комбинациям (см. "Привязки клавиш"). Так, например, команда создания окна привязана к клавише "c" или "C-c". С помощью команды bind можно переопределять существующие привязки или создавать новые. Аргумент key это или один символ, или последовательность из двух символов в виде "^x" (означающая Ctrl-x), обратный слеш за которым идет восьмеричное число (обозначающее код ASCII-символа) или обратный слеш, за котором идёт другой, экранированный, символ (например, \^ или \\). Этот аргумент можно брать в кавычки. Если больше аргументов нет, удаляется сделанная ранее привязка к этому ключу. В качестве аргумента command может использоваться любая команда, описанная в этом разделе.
Если при помощи опции -c указан класс команды, ключ привязывается к команде указанного класса. Класс активируется с помощью команды command. Классы команд можно использовать для создания множественных комбинаций или многосимвольных привязок.
Некоторые примеры:
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 в слоте 0, с командным интерпретатором, запущенным от имени суперпользователя и буфером прокрутки на 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] string [cmd args] ]Команда предназначена для управления таблицами трансляции screen. Каждая запись в таблице говорит screen как реагировать на нажатие определённых последовательностей клавиш при работе в разных режимах. Есть три таблицы: в одной хранятся действия, запрограммированные пользователем; во второй действия по умолчанию при эмуляции терминала; и одну для управления курсором в режиме копирования. В разделе «Трансляция при вводе» приводится список привязок по умолчанию. Если задана опция -d, bindkey изменяет таблицу по умолчанию, -m изменяет таблицу для режима копирования, и если ключей не задавать вообще — выбирается пользовательская таблица. Аргумент string это последовательность из двух символов, к которой привязывается действие. Это может быть или строка или имя клавиатурной termcap возможность (выбор при помощи -k). На терминале VT100 некоторые клавиши могут отправлять другие последовательности, если включен режим приложения (например, клавиши управления курсором). У таких клавиш в таблице трансляции две записи. Выбор режима приложения выполняется с помощью ключа -a. Опция -t говорит screen, что ненужно делать межсимвольный тайминг. Нельзя отключить тайминг, если используюся termcap capability. Аргумент cmd может быть любой командой screen с произвольным количеством аргументов. Если cmd не указано, привязка удаляется из таблицы.