man:screen

Материал из Xgu.ru

(Перенаправлено с Man:screen)
Перейти к: навигация, поиск

Перевод: Игорь Чубин
http://linux.die.net/man/1/screen

Эта страница является переводом официальной man-страницы программы GNU Screen, текстового оконного менеджера, эмулирующего терминал VT100/ANSI.


Содержание

[править] Имя

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 list
chacl 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 не указано, привязка удаляется из таблицы.
Вот некоторые примеры привязок:
   bindkey -d
Показать все привязки клавиш. Записи приложений (application mode entries) отмечаются символом [A].
   bindkey -k k1 select 1
F1 переключает на окно 1.
   bindkey -t foo stuff barfoo
Сделать слово foo сокращением для слова barfoo. Таймаут отключён, поэтому можно набирать медленно.
   bindkey "\024" mapdefault
Сделать "^T" escape-последовательностью для привязок клавиш. Если вы выполнили предыдущую команду, теперь слово "foo" нужно будеть вводить через "^T": "^Tfoo". Если вы хотите вставить "^T", надо нажать её дважды. (т.е. экранировать второе нажатие с помощью первого).
   bindkey -k F1 command
Сделать F11 (не F1!) альтернативой escape-символу (^A).
break [duration]
Отправляет сигнал разрыва (break) длительностью duration*0.25 секунд. Для не-POSIX систем число секунд может округляться до целого. Наиболее полезно в том случае, когда символьное устройство подключено к окну, а не процессу командного интерпретатора (см. Типы окон). Максимальная длительность сигнала ограничена величиной 15 секунд.
blanker
Активирует хранитель экрана. Сначала очищается экран. Потом, если хранитель экрана не задан, выключается курсор; если же курсор задан, он запускается и его вывод направляется на экран. По первому нажатию клавиши хранитель завершается, а его вывод стирается. Нажатая клавиша не запоминается. Обычно, эта команда используется совместно с командой idle.
blankerprg [program args]
Указывает какая программа должна использоваться в качестве хранителя экрана. Или отключает хранитель экрана вообще, если этот параметр не задан.
breaktype [tcsendbreak|TIOCSBRK |TCSBRK]
Выбрать один из доступных способов генерирования сигнала разрыва (break) для терминальных устройств. Команда должна действовать только на текущее окно, но до сих пор она работает как defbreaktype. В будущем это изменится. Если вызвать breaktype без параметров, будет выведена текущая настройка.
bufferfile [exchange-file]
Изменить имя файла, использующегося для чтения и записи буфера обмена. Если имя файла не указано, реактивируется настройка по умолчанию (/tmp/screen-exchange). В этом примере системный файл passwd копируется в окно (при помощи буфера обмена, в котором остаётся копия):
   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 [string]
caption string [string]
Команда управляет отображением заголовков окон. По умолчанию, заголовки показываются только если на экране больше одного окна (режим split screen). Если же включен режим caption always, заголовок будет показываться всегда. По умолчанию включён режим splitonly.
Вторая форма вызова изменяет текст заголовка. Можно использовать escape-последовательности (см. раздел Escape-последовательности). По умолчанию заголовок: "%3n %t". Можно смешивать обе формы и задавать строку как дополнительный аргумент.
charset set
Изменяет текущее назначение слотов и привязку кодировок. Первые четыре символа рассматриваются как описание кодировки, а пятый и шестой должны находиться в диапазоне и задавать настройку отображения GL/GR. В каждой позиции символ "." может указывать на то, что соответствующая кодировка не должна меняться (множество добивается внутри screen символами . до 6). У новых окон будет кодировка по умолчанию "BBBB02", кроме тех случаев, когда активна команда "encoding".
Текущие настройки можно посмотреть при помощи команды info.
chdir [directory]
Изменяет текущий каталог screen на заданный или, если команда вызвана без аргументов, на домашний каталог пользователя (значение переменной $HOME). У всех программ, которые запускаются в окнах, создающихся при помощи команды screen из .screenrc, или при помощи C-a c, или при помощи C-a : screen ... будет этот текущий каталог. Без вызова команды chdir текущим каталогом будет тот, из которого вызывался screen. Hardcopy-файл и файл-журнал пишутся в текущий каталог окна (а не процесса, который работает в этом окне). Можно многократно использовать эту команду в файле .screenrc: например, для того чтобы создавать различные окна с различными рабочими каталогами. Последний вызов chdir будет влиять на окна, которые создаются интерактивно.
clear
Очищает текущее окно и сохраняет его образ в буфер прокрутки.
colon [prefix]
Позволяет вводить командные строки .screenrc. Полезно для выполнения изменений привязки клавиш на лету, хитрого управления окнами. Обратите внимание на то, что ключевое слово set больше не существует. Как правило, команды воздействуют на текущее окно, а не на настройки для будущих окон. Если нужно поменять настройки для будущих окон, используются команды, начинающиеся словом def....
Вы можете воспринимать этот режим как режим Ex в screen, а режим вызываемый по комбинации C-a esc — как командный режим по аналогии с редактором Vi.
command [-c class]
Это команда делает то же самое, что и комбинация клавиш ^A. По всей видимости, толк от неё есть только при описании привязок комбинаций клавиш. Если задан ключ -c, определяется класс команды. См. также bind и bindkey.
compacthist [on|off]
Говорит screen, нужно ли подавлять последние пустые строки при прокрутке текста в буфере истории.
console [on|off]
Захватывает (или отпускает захват) системной консоли текущим окном. Захватить консоль может только владелец файла /dev/console. Кроме того, система должна поддерживать ioctl TIOCCONS.
copy
Переходит в режим копирования/прокрутки. В этом режиме можно скопировать текст из текущего окна и его истории в буфер обмена. В этом режиме активируется vi-подобный интерфейс:
Клавиши для передвижения:
  • h, j, k, l перемещают курсор на одну строку или одну колонку.
  • 0, ^ и $ перемещают курсов в самую левую колонку, в первую или последнюю позицию, где стоит непробельный символ.
  • H, M и L перемещают курсор в самую левую колнонку верхней, средней или нижней строки экрана.
  • + и - перемещают на одну строку вверих или вниз.
  • G переходит на строку с заданным номеромt (по умолчанию: до конца буфера).
  • | переходят на колонку с заданным номером.
  • w, b, e передвижение по словам.
  • B, E передвижение по СЛОВАМ (как в vi).
  • C-u и C-d прокручивает экран вверх/вниз на заданное количество строк, сохраняя при этом позицию курсора
  • (По умолчанию: пол-экрана).
  • C-b и C-f прокручивают на один экран ввер/вниз.
  • g переходит в начало буфера.
  •  % переходит на указанный процент буфера.
Замечание:
Команды перемещения в стиле Emacs можно настроит с помощью .screenrc (Например, markkeys "h=^B:l=^F:$=^E"). Нет простого способа для полной раскладки в стиле Emacs, поскольку нужно задействовать многосимвольные коды.
Маркировка:
Область копирования определяется двумя отметками. Текст между отметками подсвечивается. Отметки ставятся при помощи пробела.
  • Y и y маркируют всю строку или с начала строки.
  • W маркирует ровно одно слово.
Повтор:
Любую команду можно вводить после числа, которое обозначает количество повторов при вызове этой команды.
  • 0..9 обозначает количество повторов.
Пример: "C-a C-[ H 10 j 5 Y" копирует строки с 11 по 15 в буфер обмена.
Поиск:
  • / Поиск вперёд в стиле Vi
  •  ? Поиск назад в стиле Vi
  • C-a s Инкрементальный поиск вперёд в стиле Emacs
  • C-r Обратный интерактивный поиск в стиле Emacs
Отличия от vi:
Есть несколько клавиш, которые работают не как в vi. Vi (не vim) не позволяет работать с прямоугольными блоками текста, а screen позволяет.
  • c или C to задаёт левый или правый отступ соответственно.
Если не задан повтор, отступ будет соответствовать текущей позиции курсора.
Пример: Попробуйте такую последовательность: "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 режимами: строки разделяются символом новой строки (new line, 012), объединяются бесшовно, разделяются одним пробелом или разделяются запятой. Можно сдедать так, что бы перед символом новой строки (new line) выводился символ перевода каретки (carriage return), для этого нужно дать команду crlf on.
  • v нужна пользователям vi, которые включают ":set numbers" - переключает величину отступа между 9 и 1.
  • a переключает в режим добавления (append mode). Содержимое буфера обмена не будет стёрто, а дописано.
  • A переключает режим ввода (append mode) и ставит вторую отметку.
  • > ставит вторую отметку и записывает выделенный текст в файл screen-exchnage (по умолчанию /tmp/screen-exchange) и выходит из режима копирования.
Пример как записать весь буфер прокрутки в тот файл: "C-A [ g SPACE G $ >".
  • C-g показывает информацию о текущей строке и колонке.
  • x меняет местами первую отметку и текущую позицию курсора. Можно использовать для того чтобы передвинуть уже установленную отметку.
  • @ ничего не делает. Даже не выходит из режима копирования.
Все клавиши, которые не были описаны здесь, завершают режим копирования.
copy_reg [key]
Больше не существует, используйте readreg.
crlf [on|off]
Команда влияет на копирование блоков текста с помощью комбинации клавиш C-a [. Если установить её в on, строки будут разделяться символами CR — LF. В противном случае (по умолчанию) они будут разделяться только LF. При вызове без параметров, состояние переключается.
debug [on|off]
Включает или выключает отладку. Если программа screen откомпилирована с опцией -DDEBUG, отладка включена по умолчанию. Обратите внимание на то, что команда действует на отладочный вывод только главного процесса screen. Отладочный вывод attacher-процессов можно только выключить, да и то только один раз.
defc1 on|off
То же, что и команда c1, но настройка изменяется в том числе и для новых окон. По умочанию, равна on.
defautonuke on|off
То же, что и команда autonuke, но настройка изменяется по умолчанию и для новых окон. Начальная настройка равна off. Обратите внимание, что вы можете использовать специальную возможность (capability) 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 [set]
То же, что и команда charset, но настройка изменяется в том числе и для новых окон. Если вызвать без аргументов, показывает текущую настройку.
defescape xy
Задаёт командный символ. То же, что и escape, за исключением того, что может быть полезно только в многпользовательских сеансах. В многопользовательских сеансах escape меняет настройку только для вызвавшего эту команду пользователя, а defescape меняет настройку для пользователей, которые будут добавлены позже.
defflow on|off|auto [interrupt]
То же, что и команда flow, но настройка изменяется в том числе и для новых окон. Начальная настройка auto. Вызов defflow auto interrupt равносилен использованию при вызове ключей командной строки -fa и -i.
defgr on|off
То же, что и команда gr, но изменяет настройку в том числе для новых окон. По умочанию, равна off.
defhstatus [status]
Статусная строка (hardstatus) во всех новых окнах инициализируется строкой status. Команда нужна дла того чтобы в окнах screen в строке состояний выводить номера окон, их заголовки и тому подобное. В строке статуса могут использоваться те же директивы, что и в сообщениях для окон, только в качестве escape-символа используется "^E" (восьмиричное 005) вместо "%". Это сделано специально: чтобы уменьшить вероятность ошибочного распознавания сгенерированных программно статусных строк. Если параметр status не задан, показывается текущая строка статуса по умолчанию. По умолчанию hardstatus строка окон пустая.
defencoding enc
То же, что и команда encoding, но изменяет настройку в том числе для новых окон. Начальная настройка берётся из свойств терминала.
deflog on|off
То же, что и команда log, но изменяет настройку в том числе для новых окон. По умочанию, равна off.
deflogin on|off
То же, что и команда login, но изменяет настройку в том числе для новых окон. По умочанию, равна on (см. config.h.in в исходниках).
defmode mode
Режим доступа (права), которые устанавливаются для каждого нового псевдотерминала. Режим задаётся в виде восьмиричного числа. По умолчанию 0622.
defmonitor on|off
То же, что и команда monitor, но настройка изменяется в том числе и для новых окон. Настройка по умолчанию: off.
defnonblock on|off|numsecs
То же, что и команда nonblock, но настройка изменяется в том числе и для новых окон. Настройка по умолчанию: off.
defobuflimit limit
То же, что и команда obuflimit, но изменяется в том числе и настройка по умолчанию для новых окон. Начальное значение: 256 байтов. Если вы хотите, чтобы параметр зависел от типа терминала, вы можете использовать специальную возможность (capability) терминала, которая называется OL.
defscrollback num
То же, что и команда scrollblock, но изменяется в том числе и настройка по умолчанию для новых окон. Начальное значение: 100.
defshell command
Синоним команды shell. Смотрите эту команду.
defsilence on|off
То же, что и команда silence, но изменяется настройка по умолчанию для новых окон. Начальное значение: off.
defslowpaste msec
То же, что и команда 'slowpaste, только меняет настройку для новых окон. Начальная настройка: 0 мс, означающая off.
defutf8 on|off
То же, что и команда 'utf8, только меняет настройку для новых окон. Начальная настройка: off или on, если screen был запущен с ключом -U.
defwrap on|off
То же, что и команда 'wrap, только меняет настройку для новых окон. Начальная настройка on, может быть изменена командой wrap on|off (или с помощью "C-a r").
defwritelock on|off|auto
То же, что и команда 'writelock, только меняет настройку для новых окон. Начальная настройка off.
defzombie [keys]
Синоним команды zombie. В настоящий момент обе они меняют настройки по умолчанию. Смотрите эту команду.
detach [-h]
Отключить сеанс screen (отключить от терминала и отправить в фон). Происходит возврат в интерпретатор, из которого вызывался screen. Отключенный screen можно восстановить при помощи опции -r (см. "Опции командной строки"). Опция -h говорит, что нужно разорвать соединение с терминалом (hangup).
dinfo
Показывает, что screen думает о вашем терминале. Может пригодится, если нужно узнать почему не работают цвет или альтернативная кодировка.
displays
Показывает таблицу с списком подключенных в настоящиё момент пользователей. Очень полезная команда для многопользовательского режима работы GNU Screen.
digraph [preset]
Ввести диграф. Выдаётся приглашение пользователю для ввода двухсимвольной последовательности. По введённым двум символам в встроенной таблице ищется диграф, найденный символ вставляется в окно. Например, если ввести a:, будет вставлен a-умляут. Если первый символ это 0 (ноль), screen будет рассматривать следующие символы как восьмеричное число. Опциональный аргумент preset рассматривается как обозначение нажатого символа, т.е. с его помощью можно сделать, например, умляут-клавишу. Если сделать привяку "bindkey ^K digraph :", пользователь сможет вводить а-умляют при помощи комбинации Ctrl-K a.
dumptermcap
Сохранить записи termcap для текущего окна в .termcap-файл в каталог .screen в домашнем каталоге пользователя "$HOME/.screen" (или в другой каталог, где screen хранит свои сокеты. См. раздел Файлы). Эта запись termcap идентична значению переменной $TERMCAP, которую screen устанавливает для каждого окна. Для систем с terminfo нужно будет запускать конвертер наподобие captoinfo, а потом компилировать запись при помощи tic.
echo [-n] message
Команда может использоваться для того чтобы распространять "сообщение дня". Обычно её добавляют в /etc/screenrc. При вызове с ключом -n конечный перевод строки не выводится. См. также sleep. Ещё может пригодиться для online-проверки переменных окружения.
encoding enc [enc]
Говорит 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 (похоже на опцию -e), а символ генерирующий литерал управляющего символа равным y. Каждый параметр (x и y) это или отдельный символ, или два символа в форме "^x" (обозначает "C-x"), или обратный слэш, за которым идёт восьмеричное число (ASCII-код символа), или обратный слэш за которым идёт ещё один символ (например, \^ или \\). По умолчанию "^Aa".
eval command1 [command2 ...]
Разбирает и выполняет каждый аргумент как отдельную команду.
exec [[fdpat] newcommand [args ...]]
Запускает подпроцесс UNIX (соответствующий newcommand и её аргументам) в текущем окне. Соединение потоков (atdin/stdout/stderr) команды newcommand, процесса, работающего в окне, и собственно screen определяется шаблоном fdpat. Шаблон fdpat это фактически трёхсимвольная последовательность, представляющая стандартный поток ввода, стандартный поток вывода и стандартный поток ошибок команды newcommand. Символ точка (.) подсоединяет файловый дескриптор к screen. Символ восклицательный знак (!) говорит о том, что файловый дескриптор должен быть присоединён к приложению. Символ двоеточие (:) сочетает в себе действие двух предыдущих. Данные, которые вводятся пользователем, передаются новой команде за исключением тех случаев, когда она подключена к потоку вывода приложения, работающего в окне (первый символ fdpats это ! или :), и когда в конце fdpat стоит символ канала (|). Если вызывать exec без аргументов, будут показаны именя и аргументы процессов, работающих в текущем окне. В каждом окне за раз может исполняться только один подпроцесс. Если подпроцесс работает, команда kill подействует на него, а не на процесс, работающий в окне. В файле doc/fdpat.ps проиллюстрированы все 21 комбинация соединений. На каждом рисунке есть цифры 2,1,0 соответствующие трём файловым дескрипторам команды newcomand. Прямоугольник W это псевдотерминал, к которому с подчинённой стороны (slave side) подключено приложение. Прямоугольник P это вторичный псевдотерминал, к которому с главной стороны (master side) подключен screen.
Сокращения:
Пробелы между словом exec и fdpat можно пропустить. Точки в конце fdpat писать не обязательно; fdpat, состоящий из одних только точек, писать не обязательно. Символ "|" это синоним для шаблона "!..|"; cлово 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]
Настроить режим управления потоком окна. При вызове без параметров команда циклически переключает настройки auto, 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
gr [on|off]
Включает/выключает GR-переключение (GR charset switching). Когда screen встречает 8-битный символ, он использует charset записанный в GR-слоте и выводит символ с удалённым восьмым битом. По умолчанию (см. также defgr) GR не обрабатываются, потому что иначе символы ISO88591 перестанут работать.
hardcopy [-h] [file]
Записывает изображение текущего терминала в файл file или, если имя файла не задано, в файл hardcopy.n в текущем каталоге, где n --- это номер текущего окна. Файл или дописывается или переписывается сверху (см. ниже). Если указан ключ -h, скидывается и содержимое буфера прокрутки.
hardcopy_append on|off
Если включено (on), screen будет дописывать файлы созданные по нажатию "C-a h" в конец файла hardcopy.n, в противном случае он будет переписываться сверху. По умолчанию: off.
hardcopydir directory
Определяет каталог, в котором будет размешён hardcopy-файл. Если не задан, файлы будут размещаться в текущем каталоге программы screen.
hardstatus [on|off]
hardstatus [always]lastline|message|ignore [string]
hardstatus string [string]
Команда настраивает использование или эмуляцию hardstatus-строки терминала. Первая форма переключает использование аппаратной статусной строки (hardware status line) для отображения сообщений. Если флаг установлен в off, сообщения выводятся в реверсивном видео на экране. Настройка по умолчанию: on.
Вторая форма говорит screen что делать в том случае, когда у терминала нет строки hardstatus (то есть, в termcap/terminfo не установлены "hs", "ts","fs" и "ds"). Если используется тип lastline, screen резервирует последнюю строку экрана для строки статуса; тип message говорит screen о том, что надо использовать механизм сообщений screen и ignore -- что нужно не показывать hardstatus вообще. Если добавить слово always перед типом строки, screen будет использовать его даже в том случае, если терминал поддерживает hardstatus.
Последняя форма описывает содержимое строки hardstatus. По умолчанию используется строка "%h", т.е. показывается статус текущего окна (устанавливается строками "ESC]0;<string>^G" или "ESC_<string>ESC\"). Можно настроить строку как угодно, для этого нужно использовать Escape-последовательности (см. раздел Escape-последовательности). Если вызвать команду без аргументов, будет показана текущая настройка.
Можно смешивать вторую и третью формы --- задавать строку как дополнительный аргумент или нет.
height [-w|-d] [lines [cols]]
Задаёт высоту отображения равной количеству строк lines. Когда аргумент не задан, выполняется переключение между 24 и 42 строками. Можно определить и ширину, если нужно изменить оба значения. Опция -w говорит, что нужно оставить размер экрана неизменным и менять только размер окна, а опция -d наоборот.
help [-c class]
Не совсем помощь, а просто картинка со списком комбинаций клавиш. На первой странице показаны все внутренние команды и их текущие привязки. На последующих страницах показаны пользовательские привязки, по одной команде на одну комбинацию. Пробел переходит к следующей странице; enter -- завершает просмотр. Все остальные символы игнорируются. Если задана опция -c, выводится список всех команд указанного класса class. См. также раздел Привязки клавиш.
history
В командных интерпретаторах легко посмотреть или использовать вызванные ранее команды. Например, в csh есть !!, которая повторяет последнюю вызванную команду. В screen есть простой механизм вызова команд, начинающихся с определённой последовательности: нужно набрать интересующую последовательность, почле чего нажать "C-a {" и screen попытается найти строку, начинающуюся с текста слева от курсора (с символом приглашения, приглашение character). Найденная строка вставляется в окно. Этот механизм может использоваться как грубая замена механизма истории в командном интерпретаторе (в историю подставляются варианты как из видимой части окна, так и из буфера прокрутки).
hstatus status
Изменить строку статуса окна на status
idle [timeout [cmd args]]
Указывает команды, которая запускается после того как проходит заданное количество секунд без активности. Обычно в качестве команды указывается команда blanker, которая вызывает хранитель экрана screen. Если команда не задана, определяется только величина таймаута. Таймаут равный нулю (или специальное слово off) отключает таймер вообще. Если аргументы не заданы, показывается текущая настройка.
ignorecase [on|off]
Говорит screen, что нужно игнорировать регистр символа при поиске. По умолчанию выключено.
info
Выводит информацию о текущем окне: позиция курсора в форме "(column,row)", начиная с "(1,1)", ширина и высота терминала плюс размер буфера прокрутки в строках, например "(80,24)+50", текущее состояние управления потоком (flow control) окна XON/XOFF, показанное в виде (см. также раздел Управление потоком):
   +flow     автоматический контроль потока (automatic flow control), включен
   -flow     автоматический контроль потока (automatic flow control), выключен
   +(+)flow  контроль потока включен. Совпадает с автоматическим контролем потока
   -(+)flow  контроль потока выключен. Не совпадает с автоматическим контролем потока
   +(-)flow  контроль потока включен. Не совпадает с автоматическим контролем потока
   -(-)flow  контроль потока выключен. Совпадает с автоматическим контролем потока
Показываются настройки переноса ("+wrap" говорит, что перенос включён; "-wrap" говорит, что перенос выключен).
Флаги "ins", "org", "app", "log", "mon" или "nored" показываются в том случае, если окно находится в режиме вставки (insert), исходном (origin), приложения (application-keypad), если в нём включена журнализация вывода (output logging), мониторинг активности (activity monitoring) или частичная отрисовка (partial redraw).
Показываются активный набор символов (character set; G0, G1, G2 или G3) и в квадратных скобках символы терминала, которые выделены для G0-G3. Если окно в режиме UTF-8, вместо всего этого показывается строка UTF-8.
В конце строки статуса выводятся дополнительные режимы (см. также "Типы окон"). Если машина состояний эмулятора терминала находится не в нормальном состоянии, строка info начинается со строки, идентифицирующей текущее состояние. Для получения системной информации используется команда time.
ins_reg [key]
Больше не существует. Используйте paste
kill
Завершает текущее окно. Если выполняется команда exec, она завершается. Если нет, процесс (командный интерпретатор), работающий в окне, получает сигнал HANGUP, структура окна удаляется и screen переключается на другое окно. Когда последнее окно закрывается, screen завершает свою работу. После закрытия окна screen переключается на окно, которое отображалось до того.
Замечание: Пользователи Emacs (да и не только Emacs, но и других программ имитирующих интерфейс Emacs, в частности bash) должны помнить об этой команде, когда удаляются текст до конца строки. Или лучше не использовать "C-a" как escape-последовательность или привязать kill на "C-a K".
lastmsg
Повторно показать содержимое статусной строки. Полезно, когда вы случайно сбили сообщение при наборе (сообщение пропадает, если нажать любую клавишу), а потом хотите его посмотреть. См. также msgwait и msgminwait (тонкая настройка режима показа сообщения).
license
Показать страницу-disclaimer. Она показывается при запуске 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 filename
logfile flush secs
Определяет имя файла журнала. По умолчанию "screenlog.%n". Вторая форма определяет количество секунд, которые screen будет ждать прежде чем сбросить буфер файла журнала на диск. По умолчанию 10 секунд.
login [on|off]
Добавляет или удаляет запись в базе данных utmp для текущего окна. Фактически, регистрирует (log in) окно. При вызове без параметров переключается состояние (регистрирует/разрегистрирует). Помимо этого, удобно когда есть комбинации клавиш для регистрации и разрегистрации. Например, "bind I login on" и "bind O login off" привязывают эти действия к "C-a I" и "C-a O". Настройка по умолчанию (в config.h.in) должна быть on для окон, наботающих с установленным битом suid-root. Состояние "по умолчанию" для новых окон задаётся при помощи команды deflogin. Обе команды есть только в том случае, если screen откомпилирован с поддержкой utmp.
logtstamp [on|off]
logtstamp after [secs]
logtstamp string [string]
Команда управляет временными