- СИНТАКСИС
- ОПИСАНИЕ
- НАЧАЛО РАБОТЫ
- ОПЦИИ КОМАНДНОЙ СТРОКИ
- КОМАНДЫ ПО УМОЛЧАНИЮ
- НАСТРОЙКА
- СТРОКА СООБЩЕНИЙ
- ТИПЫ ОКON
- СТРОКОВЫЕ ПОДСТАНОВКИ
- УПРАВЛЕНИЕ ПОТОКОМ
- ЗАГОЛОВКИ (именование окон)
- ВИРТУАЛЬНЫЙ ТЕРМИНАЛ
- ОБРАБОТКА ВХОДНЫХ ДАННЫХ
- СПЕЦИАЛЬНЫЕ ВОЗМОЖНОСТИ ТЕРМИНАЛА
- ПРЕОБРАЗОВАНИЕ СИМВОЛОВ
- ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ
- ФАЙЛЫ
- АВТОРЫ
- COPYRIGHT
- УЧАСТНИКИ
- ДОСТУПНОСТЬ
- ОШИБКИ
- СМОТРИТЕ ТАКЖЕ
screen - менеджер сеансов с эмуляцией VT100/ANSI-терминала
СИНТАКСИС
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]
ОПИСАНИЕ
Screen - это полноэкранный менеджер окон, который мультиплексирует физический терминал между несколькими процессами (обычно интерактивными оболочками). Каждый виртуальный терминал предоставляет функции DEC VT100-терминала и, в дополнение к этому, несколько управляющих функций стандартов ISO 6429 (ECMA 48, ANSI X3.64) и ISO 2022 (например, вставка/удаление строк и поддержка нескольких наборов символов). Для каждого виртуального терминала есть буфер истории прокрутки, и механизм копирования и вставки позволяет перемещать текстовые области между окнами.
Когда вызывается screen, он создает одно окно с оболочкой внутри (или указанной командой) и затем уходит в сторону, чтобы вы могли использовать программу, как обычно. Затем, в любое время, вы можете создавать новые (полноэкранные) окна с другими программами (включая дополнительные оболочки), убивать существующие окна, просматривать список окон, включать и выключать ведение журнала вывода, копировать и вставлять текст между окнами, просматривать историю прокрутки, переключаться между окнами любым удобным для вас способом и т. д. Все окна запускают свои программы совершенно независимо друг от друга. Программы продолжают работать, даже когда их окно в данный момент не видно, и даже когда весь сеанс screen отключен от терминала пользователя. Когда программа завершается, screen (по умолчанию) уничтожает окно, в котором она находилась. Если это окно было на переднем плане, отображение переключается на предыдущее окно; если их не осталось, screen завершает работу. Оболочки обычно различают работу в качестве оболочки входа в систему или под-оболочки. Screen запускает их как под-оболочки, если не указано иное (см. команду .screenrc).
Все, что вы печатаете, отправляется в программу, работающую в текущем окне. Единственное исключение из этого - один символ, используемый для инициации команды для диспетчера окон. По умолчанию каждая команда начинается с Control-A (сокращенно C-a, далее) и сопровождается другим символом. Символ команды и все сочетания клавиш могут быть полностью настроены на все, что вы хотите, хотя они всегда состоят из двух символов.
Screen не понимает префикс C- как означающий Control, хотя в этом руководстве используется эта нотация для удобства чтения. Пожалуйста, используйте нотацию с символом ^ (например, ^A вместо C-a) в качестве аргументов для, например, команды escape или опции -e. Screen также будет печатать управляющие символы в нотации с символом ^.
Стандартный способ создания нового окна — нажать C-a c. Это создает новое окно, в котором запускается оболочка, и немедленно переключается на это окно, независимо от состояния процесса, выполняющегося в текущем окне. Аналогично, можно создать новое окно с пользовательской командой, сначала привязав команду к клавише (в файле .screenrc или в командной строке C-a :), а затем используя ее, как команду C-a c. Кроме того, новые окна можно создавать, выполняя команду, такую как:
screen emacs prog.c
из командной строки в ранее созданном окне. Это не запустит еще один экземпляр screen, а вместо этого передаст имя команды и ее аргументы менеджеру окон (указанному в переменной среды $STY), который использует их для создания нового окна. В приведенном выше примере будет запущен редактор emacs (для редактирования prog.c) и переключен на его окно. Обратите внимание, что вы не можете передавать переменные среды из вызывающей оболочки в приложение (emacs в данном случае), поскольку оно запускается от родительского процесса screen, а не от вызывающей оболочки.
Если файл /run/utmp доступен для записи для screen, в этот файл будет записана соответствующая запись для каждого окна, которая будет удалена при завершении окна. Это полезно для работы с talk, script, shutdown, rsend, sccs и другими аналогичными программами, которые используют файл utmp для определения того, кто вы. Пока screen активен в вашем терминале, запись терминала в файле utmp удаляется. См. также C-a L.
НАЧАЛО РАБОТЫ
Прежде чем начать использовать screen, необходимо убедиться, что вы правильно выбрали тип вашего терминала, как это делается для любой другой программы termcap/terminfo. (Это можно сделать с помощью команды test, например.)
Если вы торопитесь и хотите начать работу без дополнительного чтения, вам следует запомнить следующую команду: C-a ?. Нажатие этих двух клавиш отобразит список доступных команд screen и их привязок. Каждая клавиша обсуждается в разделе ПОДРОБНЫЕ ОПИСАНИЯ КЛАВИШ. Раздел CUSTOMIZATION посвящен содержимому вашего файла .screenrc.
Если ваш терминал является настоящим терминалом с автоматической границей (он не позволяет обновлять последнюю позицию на экране без прокрутки экрана), рассмотрите возможность использования версии termcap вашего терминала, в которой автоматическая граница отключена. Это обеспечит точное и оптимальное обновление экрана при любых обстоятельствах. В большинстве современных терминалов есть магические границы (автоматическая граница плюс используемый последний столбец). Это тип VT100 и он идеально подходит для screen. Если у вас есть только настоящий терминал с автоматической границей, screen будет использовать его, но обновление символа, помещенного в последнюю позицию на экране, может быть невозможно, пока экран не прокрутится или символ не будет перемещен в безопасную позицию другим способом. Задержка может быть уменьшена при использовании терминала с возможностью вставки символов.
ОПЦИИ КОМАНДНОЙ СТРОКИ
Screen имеет следующие опции командной строки:
-a включает все возможности в `termcap` каждого окна, даже если screen должен перерисовывать части дисплея для реализации функции.
-A адаптирует размеры всех окон к размеру текущего терминала. По умолчанию, при подключении к терминалам с изменяемым размером (имеющим WS в описании, например, suncmd или некоторые xterm), screen пытается восстановить старые размеры окон.
-c файл
переопределяет файл конфигурации по умолчанию из `$HOME/.screenrc` на указанный файл.
-d|-D [pid.tty.host]
не запускает screen, а отсоединяет уже запущенную сессию screen. Это имеет тот же эффект, что и ввод C-a d из терминала screen. -D эквивалентна клавише аварийного отсоединения. Если ни одна сессия не может быть отсоединена, эта опция игнорируется. В сочетании с опцией -r/-R можно добиться более мощных эффектов:
-d -r Повторно подключает сессию и, при необходимости, сначала отсоединяет ее.
-d -R Повторно подключает сессию и, при необходимости, отсоединяет или даже создает ее.
-d -RR Повторно подключает сессию и, при необходимости, отсоединяет или создает ее. Если доступно более одной сессии, используется первая.
-D -r Повторно подключает сессию. При необходимости сначала отсоединяет и выходит из системы удаленно.
-D -R Подключает сессию здесь и сейчас. Подробно: если сессия запущена, то подключается. При необходимости сначала отсоединяет и выходит из системы удаленно. Если она не была запущена, создает ее и уведомляет пользователя. Это любимый вариант автора.
-D -RR Подключает сессию здесь и сейчас. Что бы это ни значило, просто сделайте это.
Примечание: всегда полезно проверять статус ваших сессий с помощью команды `screen -list`.
-e xy
указывает символ команды как x и символ, генерирующий литеральный символ команды (при вводе после символа команды) как y. По умолчанию это C-a и `a`, что можно указать как -e^Aa. При создании сессии screen эта опция устанавливает символ команды по умолчанию. Во всех добавленных пользователях в многопользовательской сессии будет использоваться этот символ команды. Однако при подключении к уже запущенной сессии эта опция изменяет только символ команды подключающегося пользователя. Эта опция эквивалентна командам defescape или escape.
-f, -fn и -fa
включает, выключает или переключает в автоматический режим управление потоком. Это также можно определить с помощью команды defflow в файле .screenrc.
-h num
Указывает, что буфер истории должен быть num строк.
-i
при включенном управлении потоком заставляет прерывание (обычно C-c) немедленно прерывать отображение. См. команду defflow в файле .screenrc для получения подробной информации. Использование этой опции не рекомендуется.
-l и -ln
включает или выключает режим входа в систему (для обновления /run/utmp). Это также можно определить с помощью команды deflogin в файле .screenrc.
-ls [match]
-list [match]
не запускает screen, а выводит список строк pid.tty.host и временных меток создания,
идентифицирующих ваши сессии screen. Сессии, отмеченные как `detached`, можно возобновить с помощью `screen -r`.
Те, которые отмечены как `attached`, запущены и имеют управляющий терминал. Если сессия запущена
в многопользовательском режиме, она отмечена как `multi`. Сессии, отмеченные как `unreachable`, находятся либо на другом хосте, либо являются `dead`. Недоступная сессия считается мертвой, когда ее имя совпадает
либо с именем локального хоста, либо с указанным параметром, если он есть. См. флаг `-r`
для описания того, как создавать соответствия. Сессии, отмеченные как `dead`, следует тщательно
проверить и удалить. Если вы не уверены, обратитесь к системному администратору. Удалите сессии
с помощью опции `-wipe`.
-L указывает screen включить автоматическое ведение журнала вывода для окон.
-Logfile file
По умолчанию имя файла журнала — screenlog.0. Вы можете задать новое имя файла журнала с помощью опции `-Logfile`.
-m заставляет screen игнорировать переменную среды $STY. С помощью `screen -m` создание новой сессии принудительно, независимо от того, вызывается ли screen из другой сессии screen или нет. Этот флаг имеет особое значение в связи с опцией `-d`:
-d -m запускает screen в отсоединенном режиме. Это создает новую сессию, но не подключается к ней. Это полезно для системных сценариев запуска.
-D -m это также запускает screen в отсоединенном режиме, но не создает новый процесс. Команда завершается, если сессия прекращает работу.
-O выбирает оптимальный режим вывода для вашего терминала, а не полную эмуляцию VT100 (влияет только на автоматические терминалы с функцией переноса строк, не имеющие `LP`). Это также можно установить в вашем `.screenrc`, указав `OP` в команде termcap.
-p number_or_name|-|=|+
Предварительно выбирает окно. Это полезно, когда вы хотите повторно подключиться к определенному окну или
вы хотите отправить команду через опцию `-X` в определенное окно. Как и в команде `select` screen, `-` выбирает пустое окно. В качестве специального случая для повторного подключения `=` открывает список окон
в пустом окне, а `+` создает новое окно. Команда не будет выполнена, если указанное окно не будет найдено.
-q подавляет вывод сообщений об ошибках. В сочетании с `-ls` код выхода следующий: 9
указывает на отсутствие сессий в каталоге. 10 указывает на наличие работающих, но недоступных для подключения сессий. 11 (или больше) указывает на наличие 1 (или более) доступных сессий. В сочетании с
`-r` код выхода следующий: 10 указывает на отсутствие сессии для возобновления. 12 (или
более) указывает на наличие 2 (или более) сессий для возобновления, и вам следует указать,
какую из них выбрать. Во всех остальных случаях `-q` не имеет эффекта.
-Q некоторые команды теперь можно запросить из удаленной сессии с помощью этого флага, например, `screen -Q windows`. Команды отправят ответ в stdout процесса запроса. Если в команде произошла ошибка, то процесс запроса завершится с ненулевым статусом.
Команды, к которым можно обращаться, следующие: echo info lastmsg number select time title windows
-r [pid.tty.host]
-r sessionowner/[pid.tty.host]
Возобновляет отсоединенную сессию screen. Не допускаются другие опции (кроме комбинаций с -d/-D). Также может потребоваться необязательный префикс [pid.]tty.host, чтобы различать несколько отсоединенных сессий screen. Вторая форма используется для подключения к сессии screen другого пользователя, работающей в многопользовательском режиме. Это указывает, что screen должен искать сессии в каталоге другого пользователя. Для этого требуются права root.
-R Возобновляет screen только в том случае, если однозначно понятно, какую сессию нужно подключить, обычно, когда отсоединена только одна сессия. В противном случае отображает список доступных сессий. -RR пытается возобновить самую новую (с точки зрения времени создания) отсоединенную сессию screen. В случае успеха все остальные параметры командной строки игнорируются. Если отсоединенных сессий не существует, запускает новую сессию с использованием указанных опций, как если бы -R не был указан. Эта опция установлена по умолчанию, если screen запускается как оболочка входа в систему (фактически screen использует -xRR в этом случае). Подробности о комбинациях с опциями -d/-D см. там. Обратите внимание: выбор сессии на основе времени — это дополнение Debian.
-s program
Устанавливает оболочку по умолчанию в программу, указанную в параметре, вместо значения в переменной среды $SHELL (или /bin/sh, если она не определена). Это также можно определить с помощью команды .screenrc оболочки. См. также там.
-S sessionname
При создании новой сессии эта опция может использоваться для указания значимого имени для сессии. Это имя идентифицирует сессию для команд screen -list и screen -r. Она заменяет суффикс [tty.host] по умолчанию. Длина этого имени не должна превышать 80 символов.
-t name
Устанавливает заголовок (alias) для оболочки по умолчанию или указанной программы. См. также команду shelltitle .screenrc.
-T term
Устанавливает переменную среды $TERM, используя указанный терминал, в отличие от настроек screen по умолчанию.
-U Запускает screen в режиме UTF-8. Эта опция сообщает screen, что ваш терминал отправляет и понимает символы, закодированные в UTF-8. Она также устанавливает кодировку по умолчанию для новых окон в `utf8`.
-v Выводит номер версии.
-wipe [match]
Выполняет то же, что и screen -ls, но удаляет уничтоженные сессии, а не помечает их как `dead`. Недоступная сессия считается уничтоженной, если ее имя совпадает с именем локального хоста или с явно заданным параметром, если он есть. См. описание флага -r, чтобы узнать, как создавать шаблоны.
-x Подключается к сессии screen, которая не отсоединена (многодисплейный режим). Screen отказывается подключаться к самой себе. Но при каскадном подключении нескольких экранов циклы не обнаруживаются; будьте осторожны.
-X Отправляет указанную команду в работающую сессию screen. Вы можете использовать опцию -S, чтобы указать сессию screen, если у вас запущено несколько сессий. Вы можете использовать опцию -d или -r, чтобы указать screen искать только присоединенные или отсоединенные сессии. Обратите внимание, что эта команда не работает, если сессия защищена паролем.
-4 Разрешает имена хостов только в IPv4-адреса.
-6 Разрешает имена хостов только в IPv6-адреса.
КОМАНДЫ ПО УМОЛЧАНИЮ
Как упоминалось, каждая команда screen состоит из C-a, за которой следует еще один символ. Для вашего удобства все команды, привязанные к строчным буквам, также привязаны к соответствующим символам управления (за исключением C-a a; см. ниже), таким образом, C-a c и C-a C-c могут использоваться для создания окна. См. раздел НАСТРОЙКА для описания команды.
В следующей таблице показаны команды по умолчанию. Запятые в конце блоков с несколькими сочетаниями клавиш являются разделителями, а не частью привязок.
C-a ' (select) Предлагает ввести имя окна
или номер, к которому нужно переключиться.
C-a " (windowlist -b) Отображает список всех окон для выбора.
C-a digit (select 0-9) Переключается на окно с номером 0-9.
C-a - (select -) Переключается на окно с номером 0-9 или на пустое окно.
C-a tab (focus) Переключает фокус ввода на следующий регион. См. также split, remove, only.
C-a C-a (other) Переключается на ранее отображаемое окно. Обратите внимание, что эта привязка по умолчанию соответствует команде, введенной дважды, если она не переопределена. Например, если вы используете опцию -e]x, эта команда станет ]].
C-a a (meta) Отправляет символ команды (C-a) в окно. См. команду escape.
C-a A (title) Позволяет пользователю ввести имя для текущего окна.
C-a b, (break) Отправляет сигнал break в окно.
C-a C-b
C-a B (pow_break) Повторно открывает строку терминала и отправляет сигнал break.
C-a c, (screen) Создает новое окно с оболочкой и переключается на это окно.
C-a C-c
C-a C (clear) Очищает экран.
C-a d, (detach) Отсоединяет screen от этого терминала.
C-a C-d
C-a D D (pow_detach) Отсоединяет и выходит из системы.
C-a f, (flow) Переключает режим flow в состояние on, off или auto.
C-a C-f
C-a F (fit) Изменяет размер окна до текущего размера региона.
C-a C-g (vbell) Переключает визуальный режим звукового сигнала screen.
C-a h (hardcopy) Создает копию текущего окна в файле hardcopy.n.
C-a H (log) Начинает/завершает запись текущего окна в файл screenlog.n.
C-a i, (info) Показать информацию об этом окне.
C-a C-i
C-a k, (kill) Уничтожить текущее окно.
C-a C-k
C-a l, (redisplay) Полностью обновить текущее окно.
C-a C-l
C-a L (login) Переключить режим входа в систему для этого окна. Доступно только в том случае, если экран настроен на обновление базы данных utmp.
C-a m, (lastmsg) Повторить последнее сообщение, отображенное в строке сообщений.
C-a C-m
C-a M (monitor) Переключить мониторинг текущего окна.
C-a space, (next) Переключиться на следующее окно.
C-a n,
C-a C-n
C-a N (number) Показать номер (и заголовок) текущего окна.
C-a backspace, (prev) Переключиться на предыдущее окно (обратное C-a n).
C-a C-h,
C-a p,
C-a C-p
C-a q, (xon) Отправить сигнал Control-Q в текущее окно.
C-a C-q
C-a Q (only) Удалить все регионы, кроме текущего. См. также split, remove, focus.
C-a r, (wrap) Переключить настройку переноса строк текущего окна (включить/выключить автоматические отступы).
C-a C-r
C-a s, (xoff) Отправить сигнал Control-S в текущее окно.
C-a C-s
C-a S (split) Разделить текущий регион горизонтально на два новых. См. также only, remove, focus.
C-a t, (time) Показать системную информацию.
C-a C-t
C-a v (version) Отобразить версию и дату компиляции.
C-a C-v (digraph) Ввести диграф.
C-a w, (windows) Показать список окон.
C-a C-w
C-a W (width) Переключить 80/132 столбцов.
C-a x или C-a C-x (lockscreen) Заблокировать этот терминал.
C-a X (remove) Удалить текущий регион. См. также split, only, focus.
C-a z, (suspend) Приостановить работу screen. Ваша система должна поддерживать BSD-совместимый контроль заданий.
C-a C-z
C-a Z (reset) Сбросить виртуальный терминал к значениям, заданным при включении.
C-a . (dumptermcap) Вывести файл .termcap.
C-a ? (help) Показать привязки клавиш.
C-a \ (quit) Уничтожить все окна и завершить работу screen.
C-a : (colon) Войти в режим командной строки.
C-a [, (copy) Войти в режим копирования/прокрутки.
C-a C-[,
C-a esc
C-a C-], (paste .) Записать содержимое буфера в очередь стандартного ввода текущего окна.
C-a ]
C-a {, (history) Копировать и вставлять предыдущую строку (команду).
C-a }
C-a > (writebuf) Записывает содержимое буфера в файл.
C-a < (readbuf) Считывает содержимое файла обмена с экраном в буфер.
C-a = (removebuf) Удаляет файл, используемый командами C-a < и C-a \>.
C-a , (license) Отображает информацию об источнике Screen, о том, куда он был отправлен, и о том, почему вы можете его использовать.
C-a _ (silence) Начинает/останавливает отслеживание текущего окна на предмет бездействия.
C-a | (split -v) Разделяет текущую область вертикально на две новые.
C-a * (displays) Отображает список всех подключенных дисплеев.
НАСТРОЙКА
Каталог сокетов по умолчанию — либо $HOME/.screen, либо /tmp/screens, либо, что предпочтительнее, /run/screen, выбранный во время компиляции. Если Screen установлен с правами setuid-root, то администратор должен скомпилировать Screen с указанием подходящего (не смонтированного в NFS) каталога сокетов. Если Screen не запускается с правами setuid-root, пользователь может указать любой каталог с правами 700 в переменной окружения $SCREENDIR.
При запуске Screen выполняет команды инициализации из файлов /etc/screenrc и использует значения по умолчанию, которые можно переопределить следующими способами: для глобального файла screenrc Screen ищет переменную окружения $SYSSCREENRC (эта функция переопределения может быть отключена во время компиляции). Пользовательский файл screenrc ищется в $SCREENRC, затем в $HOME/.screenrc. Параметр командной строки -c имеет приоритет над указанными выше пользовательскими файлами screenrc.
Команды в этих файлах используются для установки параметров, привязки функций к клавишам и автоматического создания одного или нескольких окон в начале сеанса Screen. Команды перечислены по одной в строке, пустые строки игнорируются. Аргументы команды разделяются символами табуляции или пробела и могут быть заключены в одинарные или двойные кавычки. Символ # в начале строки превращает остальную часть строки в комментарий, за исключением случаев, когда она находится в кавычках. Непонятные строки отображаются как предупреждение и игнорируются. Команды могут содержать ссылки на переменные окружения. Синтаксис аналогичен синтаксису оболочки: $VAR или ${VAR}. Обратите внимание, что это приводит к несовместимости с предыдущими версиями Screen, поскольку теперь символ $ должен быть экранирован с помощью \ , если не требуется подстановка переменных. Строка в одинарных кавычках также защищена от подстановки переменных.
Два файла конфигурации поставляются в качестве примеров вместе с вашим дистрибутивом Screen: etc/screenrc и etc/etcscreenrc. Они содержат ряд полезных примеров различных команд.
Настройка также может выполняться «в режиме онлайн». Чтобы перейти в режим команд, наберите C-a :. Обратите внимание, что команды, начинающиеся с def, изменяют значения по умолчанию, в то время как остальные изменяют текущие настройки.
Доступны следующие команды:
acladd usernames [crypted-pw]
addacl usernames
Разрешить пользователям полный доступ к этому сеансу Screen. Имена пользователей могут быть указаны по одному или в виде списка, разделенного запятыми. Эта команда позволяет подключаться к сеансу Screen и выполняет то же самое, что и aclchg usernames +rwx "#?". Если указан необязательный второй параметр, он должен быть зашифрованным паролем для указанных пользователей. Addacl является синонимом acladd. Только многопользовательский режим.
aclchg имена_пользователей права список
chacl имена_пользователей права список
Изменяет права для списка пользователей, разделенных запятыми. Права представлены как r,
w и x. Префикс + предоставляет разрешение, – отменяет его. Третий параметр — список команд и/или окон, разделенных запятыми (указанных либо по номеру, либо по заголовку). Специальный список
# относится ко всем окнам, ? — ко всем командам. Если имена_пользователей состоит из одного *, то на всех известных
пользователей это повлияет.
Команда может быть выполнена, если у пользователя установлен бит `x` для этой команды. Пользователь может вводить данные в
окно, если у него установлен бит `w` и ни у одного другого пользователя нет блокировки записи для этого окна. Другие
биты в настоящее время игнорируются. Чтобы отозвать блокировку записи у другого пользователя в окне 2: `aclchg
имя_пользователя -w+w 2`. Чтобы разрешить доступ только для чтения к сеансу: `aclchg имя_пользователя -w "#"`. Как только
имя пользователя станет известно в screen, он может подключиться к сеансу и (по умолчанию) иметь полные разрешения для всех команд и окон. Разрешения для команд `acl`, `at` и других также следует удалить, иначе пользователь может восстановить права записи. Права специального
имени пользователя `nobody` нельзя изменить (см. команду `su`). `Chacl` — синоним `aclchg`. Только многопользовательский режим.
acldel имя_пользователя
Удаляет пользователя из списка управления доступом screen. Если пользователь в данный момент подключен, все его дисплеи отключаются от сеанса. Он больше не может подключаться. Только многопользовательский режим.
aclgrp имя_пользователя [имя_группы]
Создает группы пользователей, которые совместно используют общие права доступа. Имя группы — имя пользователя, который является лидером группы. Каждый участник группы наследует разрешения, которые предоставляются лидеру группы.
Это означает, что если проверка доступа для пользователя не удалась, выполняется еще одна проверка для лидера группы.
Пользователь удаляется из всех групп, для имени группы используется специальное значение none. Если второй
параметр опущен, отображаются все группы, в которых состоит пользователь.
aclumask [[ пользователи ] +биты | [ пользователи ] -биты... ]
umask [[ пользователи ] +биты | [ пользователи ] -биты... ]
Это указывает, какой доступ другие пользователи имеют к окнам, которые будут созданы вызывающим команду.
Пользователи могут быть не указаны, указаны один или список известных имен пользователей, разделенных запятыми. Если пользователи не указаны, предполагается список всех в настоящее время известных пользователей. Биты — любая комбинация разрешений, разрешенных с помощью команды aclchg. Специальное имя пользователя ? предварительно определяет доступ, который не известные пользователи будут получать к любому окну изначально. Специальное имя пользователя ?? предварительно определяет доступ, который не известные пользователи будут получать к любой команде. Права специального
имени пользователя nobody нельзя изменить (см. команду su). Umask — синоним aclumask.
activity message
Когда в фоновом окне, за которым ведется наблюдение, происходит какое-либо действие, на экране отображается уведомление в строке сообщений. Сообщение об уведомлении можно переопределить с помощью команды activity. Каждое вхождение %' в сообщении заменяется номером окна, в котором произошло действие, и каждое вхождение^Gзаменяется определением для сигнала в вашей базе данныхtermcap` (обычно звуковой сигнал). Сообщение по умолчанию:
`Activity in window %n`
Обратите внимание, что по умолчанию мониторинг отключен для всех окон, но его можно изменить с помощью команды monitor (C-a M).
allpartial [on | off]
Если установлено значение on, то при смене окна обновляется только текущая строка курсора. Это влияет на все окна и полезно для медленных терминалов. Предыдущие настройки полного/частичного обновления для каждого окна восстанавливаются, когда allpartial установлено в off. Это глобальный флаг, который немедленно вступает в силу для всех окон, переопределяя настройки частичного обновления. Он не изменяет поведение обновления новых окон по умолчанию.
altscreen [on | off]
Если установлено значение on, то в виртуальных терминалах включается поддержка "альтернативного экрана", как в xterm. Начальное значение — off.
at [identifier][#|*|%] command [args ...]
Выполняет команду в других дисплеях или окнах, как если бы она была введена там. `at` изменяет контекст (настройку "текущего окна" или "текущего дисплея") команды. Если первый параметр описывает не уникальный контекст, команда будет выполнена несколько раз. Если первый параметр имеет вид `identifier*`, то `identifier` сопоставляется с именами пользователей. Команда выполняется один раз для каждого дисплея выбранного пользователя (пользователей). Если первый параметр имеет вид `identifier%`, то `identifier` сопоставляется с дисплеями. Дисплеи называются в соответствии с tty, к которым они подключены. Префикс `/dev/` или `/dev/tty` может быть опущен из идентификатора. Если `identifier` имеет `#' или ничего после него, он сопоставляется с номерами и заголовками окон. Отсутствие идентификатора перед символами `#`, `*` или `%` выбирает всех пользователей, дисплеи или окна, поскольку выполняется сопоставление по префиксу. Обратите внимание, что на затронутых дисплеях отображается короткое сообщение, описывающее, что произошло. Разрешение проверяется для инициатора команды `at`, а не для владельцев затронутых дисплеев. Обратите внимание, что символ `#` действует как символ комментария, когда перед ним стоит пробел. Это можно экранировать, добавив перед ним `\`. Разрешение проверяется для инициатора команды `at`, а не для владельцев затронутых дисплеев.
Предостережение: при сопоставлении с окнами команда выполняется как минимум один раз для каждого окна. Команды, изменяющие внутреннюю организацию окон (например, `other`), могут быть вызваны повторно. В общих окнах команда повторяется для каждого подключенного дисплея. Будьте осторожны при использовании команд переключения, таких как `login!`. Некоторые команды (например, `process`) требуют, чтобы дисплей был связан с целевыми окнами. Эти команды могут работать неправильно при циклическом выполнении команды `at` для всех окон.
attrcolor атрибут [модификатор атрибута/цвета]
Эта команда может использоваться для выделения атрибутов путем изменения цвета текста. Если атрибут атрибут используется, указанный модификатор атрибута/цвета также применяется. Если модификатор не указан, текущий модификатор удаляется. См. главу «СТРОКОВЫЕ ЭСКАП-ПОСЛЕДОВНОСТИ» для синтаксиса модификатора. Screen распознает два псевдоатрибута: i обозначает высокую интенсивность цвета переднего плана, а I — высокую интенсивность цвета фона.
Примеры:
attrcolor b "R"
Изменить цвет на ярко-красный, если нужно вывести текст полужирным шрифтом.
attrcolor u "-u b"
Использовать синий текст вместо подчеркивания.
attrcolor b ".I"
Использовать яркие цвета для полужирного текста. Большинство эмуляторов терминалов делают это по умолчанию.
attrcolor i "+b"
Сделать текст яркого цвета также полужирным.
autodetach [on | off]
Определяет, будет ли Screen автоматически отключаться при получении сигнала hangup, что сохранит все ваши запущенные программы до тех пор, пока они не будут возобновлены с помощью команды screen -r. При отключении сигнала hangup Screen и все содержащиеся в нем процессы будут завершены. Автоматическое отключение включено по умолчанию.
autonuke [on | off]
Определяет, следует ли очищать экран, удаляя весь вывод, который не был записан в терминал. См. также obuflimit.
backtick id срок_действия автоматическое_обновление команда аргументы...
backtick id
Запрограммируйте команду backtick с числовым идентификатором id. Вывод этой команды используется для подстановки строки escape %`. Указанный срок_действия — это количество секунд, в течение которых вывод считается действительным. По истечении этого времени команда запускается снова, если встречается соответствующая строка escape. Параметр автоматическое_обновление запускает автоматическое обновление строк caption и hardstatus после указанного количества секунд. Для подстановки используется только последняя строка вывода.
Если и срок_действия, и параметр автоматическое_обновление равны нулю, предполагается, что программа backtick будет работать в фоновом режиме и время от времени генерировать вывод. В этом случае команда выполняется немедленно, и Screen сохраняет последнюю строку вывода. Если выводится новая строка, Screen автоматически обновит hardstatus или captions.
Вторая форма команды удаляет команду backtick с числовым идентификатором id.
bce [on | off]
Изменяет настройку background-color-erase. Если bce установлено значение on, все символы, удаленные операцией очистки/вставки/прокрутки/очистки экрана, будут отображаться текущим цветом фона. В противном случае используется цвет фона по умолчанию.
bell_msg [сообщение]
Когда символ звонка отправляется во фоновое окно, Screen отображает уведомление в строке сообщений. Уведомление можно переопределить с помощью этой команды. Каждое вхождение %' в сообщении заменяется номером окна, в которое был отправлен звонок, и каждое вхождение^G` заменяется определением для звонка в вашем файле termcap (обычно звуковой сигнал). Сообщение по умолчанию:
«Звонок в окне %n»
Пустая строка может быть передана команде bell_msg, чтобы подавить вывод строки сообщения
( bell_msg ""). Без параметра отображается текущее сообщение.
`bind [class] key [command [args]]`
Привязывает команду к клавише. По умолчанию большинство команд, предоставляемых screen, привязаны к одной или нескольким клавишам, как указано в разделе «СТАНДАРТНЫЕ ПРИВЯЗКИ КЛАВИШ», например, команда для создания нового окна привязана к клавишам C-c и c. Команда bind может использоваться для переопределения привязок клавиш и для определения новых привязок. Аргумент key — это либо одиночный символ, либо двухсимвольная последовательность в форме ^x (что означает C-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. Затем C-a K привязывается к команде «kill». Затем привязывает C-f к команде создания окна с TELNET-подключением к foobar и привязывает клавишу Escape к команде, которая создает не-входное окно, также известное как «root» в слоте №9, с оболочкой суперпользователя и буфером прокрутки на 1000 строк.
`bind -c demo1 0 select 10`
`bind -c demo1 1 select 11`
`bind -c demo1 2 select 12`
`bindkey "^B" command -c demo1`
делает так, что C-b 0 выбирает окно 10, C-b 1 — окно 11 и т. д.
`bind -c demo2 0 select 10`
`bind -c demo2 1 select 11`
`bind -c demo2 2 select 12`
`bind - command -c demo2`
делает так, что C-a - 0 выбирает окно 10, C-a - 1 — окно 11 и т. д.
`bindkey [-d] [-m] [-a] [[-k|-t] string [cmd-args]]`
Эта команда управляет таблицами преобразования ввода screen. Каждая запись в одной из таблиц сообщает screen, как реагировать, если будет обнаружена определенная последовательность символов. Есть три таблицы: одна, которая должна содержать действия, запрограммированные пользователем, одна для действий по умолчанию, используемых для эмуляции терминала, и одна для режима копирования screen для перемещения курсора. См. раздел «ПРЕОБРАЗОВАНИЕ ВВОДА» для списка привязок клавиш по умолчанию.
Если указана опция -d, команда bindkey изменяет таблицу по умолчанию, -m изменяет таблицу режима копирования, а если ни одна из опций не указана, выбирается таблица пользователя. Строка аргументов — это последовательность символов, к которой привязывается действие. Это может быть либо фиксированная строка, либо имя возможности терминала termcap (выбирается с помощью опции -k).
Некоторые клавиши на терминале VT100 могут отправлять другую строку, если включен режим приложения (например, клавиши курсора). Для таких клавиш в таблице преобразований есть две записи. Вы можете выбрать запись режима приложения, указав опцию -a.
Опция -t указывает screen не выполнять временные задержки между символами. Нельзя отключить временные задержки, если используется возможность termcap.
^ md может быть любой из команд screen с произвольным количеством аргументов. Если cmd опущена, привязка клавиш удаляется из таблицы.
Вот несколько примеров привязок клавиш:
bindkey -d
Отображает все привязки клавиш по умолчанию. Записи режима приложения отмечены [A].
bindkey -k k1 select 1
Заставляет клавишу "F1" переключаться на окно номер один.
bindkey -t foo stuff barfoo
Заставляет "foo" быть сокращением для слова "barfoo". Отключается временная задержка, чтобы пользователи могли печатать медленно.
bindkey "\024" mapdefault
Эта привязка клавиш делает ^T управляющим символом для привязок клавиш. Если вы выполнили указанную выше команду stuff barfoo, вы можете ввести слово foo, набрав ^Tfoo. Если вы хотите вставить ^T, вам нужно нажать клавишу дважды (т. е. экранировать символ экранирования).
bindkey -k F1 command
Заставляет клавишу F11 (а не F1!) быть альтернальной клавишей выхода из screen (помимо ^A).
break [duration]
Отправляет сигнал прерывания в течение duration * 0,25 секунды в это окно. Для систем, не соответствующих стандарту POSIX, временной интервал может быть округлен до полных секунд. Наиболее полезно, если к окну подключено символьное устройство, а не процесс оболочки (см. также главу «ТИПЫ ОКОН»). Максимальная длительность сигнала прерывания ограничена 15 секундами.
blanker
Активирует средство очистки экрана. Сначала экран очищается. Если программа очистки экрана не определена, курсор выключается, в противном случае запускается программа, и ее вывод записывается на экран. Средство очистки экрана завершается при первом нажатии клавиши, нажатая клавиша отбрасывается.
Эта команда обычно используется вместе с командой idle.
blankerprg [program-args]
Определяет программу очистки экрана. Отключает программу очистки экрана, если указан пустой аргумент. Отображает текущую программу очистки экрана, если аргументы не указаны.
breaktype [tcsendbreak|TIOCSBRK|TCSBRK]
Выберите один из доступных методов генерации сигнала прерывания для терминальных устройств. Эта команда должна влиять только на текущее окно. Но она все еще ведет себя так же, как defbreaktype. Это будет изменено в будущем. Вызов breaktype без параметров отображает метод прерывания для текущего окна.
bufferfile [exchange-file]
Изменяет имя файла, используемого для чтения и записи в буфер обмена. Если необязательный аргумент
команды bufferfile опущен, восстанавливается настройка по умолчанию (/tmp/screen-exchange).
Следующий пример поместит системный файл паролей в окно screen (используя буфер обмена, где остается копия):
C-a : bufferfile /etc/passwd
C-a < C-a ]
C-a : bufferfile
bumpleft
Переключает окно с предыдущим на списке окон.
bumpright
Переключает окно со следующим на списке окон.
c1 [ on | off ]
Изменяет обработку кодов C1. c1 on сообщает screen обрабатывать входные символы между 128 и 159
как управляющие функции. Такой 8-битный код обычно идентичен ESC, за которым следует соответствующий 7-битный код. Настройка по умолчанию — обрабатывать коды C1, и ее можно изменить с помощью команды defc1. Пользователям, у которых есть шрифты с используемыми символами в позициях C1, возможно, захочется отключить эту функцию.
caption [ top | bottom ] always|splitonly[string]
caption string [string]
Эта команда управляет отображением заголовков окон. Обычно заголовок используется только в том случае, если на дисплее показано более одного окна (режим разделенного экрана). Но если тип установлен в always, screen отображает заголовок, даже если отображается только одно окно. По умолчанию используется splitonly.
Вторая форма изменяет текст, используемый для заголовка. Вы можете использовать все управляющие последовательности из раздела «STRING ESCAPES». Screen использует по умолчанию %3n %t.
Вы можете объединить обе формы, предоставив строку в качестве дополнительного аргумента.
Заголовок можно отображать либо в верхней, либо в нижней части окна. По умолчанию используется нижняя часть.
charset set
Изменяет текущее обозначение слота набора символов и сопоставление наборов символов. Первые четыре символа set рассматриваются как обозначители набора символов, а пятый и шестой символы должны быть в диапазоне от '0' до '3' и задают сопоставление наборов символов GL/GR. На каждой позиции можно использовать '.', чтобы указать, что соответствующий набор символов/сопоставление не должно меняться (внутренне set дополняется символами '.', если это необходимо). Новые окна по умолчанию имеют набор символов "BBBB02", если только активна команда encoding.
Текущие настройки можно просмотреть с помощью команды info.
chdir [directory]
Изменяет текущий каталог screen на указанный каталог или, если она вызывается без аргумента, на ваш домашний каталог (значение переменной среды $HOME). Все окна, которые создаются с помощью команды screen внутри .screenrc или с помощью C-a : screen ... или C-a c, используют этот каталог в качестве каталога по умолчанию. Без команды chdir это был бы каталог, из которого был запущен screen.
Файлы для создания копий и файлы журналов всегда записываются в каталог по умолчанию для окна, а не в текущий каталог процесса, выполняющегося в окне. Вы можете использовать эту команду несколько раз в своем файле .screenrc, чтобы запускать различные окна в разных каталогах по умолчанию, но последнее значение chdir повлияет на все окна, которые вы создаете интерактивно.
cjkwidth [ on | off ]
Обрабатывает неоднозначные символы ширины как символы полной/половинной ширины.
clear
Очищает текущее окно и сохраняет его изображение в буфере прокрутки.
collapse
Переупорядочивает окна в списке, удаляя пробелы в нумерации между ними.
colon [prefix]
Позволяет вводить команды `.screenrc`. Полезно для оперативного изменения привязок клавиш, создания конкретных окон и изменения настроек. Обратите внимание, что ключевое слово `set` больше не существует! Обычно команды влияют на текущее окно, а не на настройки по умолчанию для будущих окон. Измените настройки по умолчанию с помощью команд, начинающихся с `def...`.
Если вы рассматриваете это как «режим команд Ex» в screen, то можете считать C-a esc (режим копирования) его «режимом команд Vi».
command [ -c class"]"
Эта команда оказывает то же действие, что и ввод символа экранирования screen (^A). Вероятно, она полезна только для привязок клавиш. Если указана опция `-c`, выберите указанный класс команд. См. также `bind` и `bindkey`.
compacthist [ on | off ]
Это указывает screen, следует ли подавлять завершающие пустые строки при прокрутке текста вверх в буфер истории.
console [ on | off ]
Захватывает или освобождает вывод консоли машины для окна. Обратите внимание: только владелец `/dev/console` может захватывать вывод консоли. Эта команда доступна только в том случае, если машина поддерживает ioctl TIOCCONS.
copy
Входит в режим копирования/прокрутки. Это позволяет копировать текст из текущего окна и его истории в буфер вставки. В этом режиме активен «редактор с полноэкранным интерфейсом, подобный Vi»:
Клавиши навигации редактора:
h, C-h, перемещают курсор влево.
стрелка влево
j, C-n, перемещают курсор вниз.
стрелка вниз
k, C-p, перемещают курсор вверх.
стрелка вверх
l ('el'), перемещают курсор вправо.
стрелка вправо
0(ноль) C-a перемещает в крайний левый столбец.
+ и - перемещают на одну строку вверх и вниз.
H, M и L перемещают курсор в крайний левый столбец верхней, центральной или нижней строки окна.
| перемещает в указанный абсолютный столбец.
g или home перемещает в начало буфера.
G или end перемещает в указанную абсолютную строку (по умолчанию: конец буфера).
% переходит к указанному проценту буфера.
^ или $ перемещает в крайний левый столбец, в первый или последний символ, не являющийся пробелом, в строке.
w, b и e перемещают курсор по словам.
B, E перемещают курсор по СЛОВАМ (как в vi).
f/F, t/T перемещают курсор вперед/назад к следующему вхождению целевого символа. (например, `3fy` переместит курсор к третьему `y` справа).
; и , повторяют последнюю команду f/F/t/T в том же/противоположном направлении.
C-e и C-y прокручивают дисплей вверх/вниз на одну строку, сохраняя положение курсора.
C-u и C-d прокручивают дисплей вверх/вниз на указанное количество строк, сохраняя положение курсора. (По умолчанию: половина экрана-полный экран).
C-b и C-f прокручивают отображение вверх/вниз на весь экран.
Примечание: клавиши перемещения в стиле Emacs можно настроить с помощью команды .screenrc. (Например, `markkeys "h=^B:l=^F:$=^E"`) Не существует простого способа создать полноценную карту клавиш в стиле Emacs, поскольку это включает многосимвольные коды.
Некоторые клавиши определены для выполнения операций выделения и замены.
Диапазон для копирования указывается путем установки двух меток. Текст между этими метками будет выделен. Нажмите:
Пробел или Enter, чтобы установить первую или вторую метку соответственно. Если `mousetrack` установлено в `on`, метки также можно установить с помощью левого щелчка мыши.
Y и y используются для выделения всей строки или выделения с начала строки.
W выделяет ровно одно слово.
Любую из этих команд можно предварять числом повторений, нажав цифры
.9, которое интерпретируется как число повторений.
Пример: C-a C-[ H 10 j 5 Y скопирует строки 11–15 в буфер вставки.
Определены следующие клавиши поиска:
/ Поиск вперед в стиле Vi.
? Поиск назад в стиле Vi.
C-a s Инкрементный поиск вперед в стиле Emacs.
C-r Обратный инкрементный поиск в стиле Emacs.
n Найти следующее совпадение.
N Найти предыдущее совпадение.
Однако некоторые клавиши работают иначе, чем в Vi. Vi не позволяет выделять прямоугольные блоки текста, но screen позволяет. Нажмите: c или C, чтобы установить левую или правую границы соответственно. Если не указано число повторений, обе границы по умолчанию устанавливаются в текущую позицию курсора.
Пример: Попробуйте это на экране с большим количеством текста:
C-a [ M 20 l SPACE c 10 l 5 j C SPACE.
Это перемещает курсор в середину экрана, перемещает его на 20 столбцов влево, отмечает начало буфера вставки, устанавливает левый столбец, перемещает на 5 строк вниз, устанавливает правый столбец, а затем отмечает конец буфера вставки. Теперь попробуйте:
C-a [ M 20 l SPACE 10 l 5 j SPACE
и обратите внимание на разницу в объеме скопированного текста.
J объединяет строки. Он переключается между 4 режимами: строки, разделенные символом новой строки (012), строки, склеенные вместе, строки, разделенные одним пробелом, и строки, разделенные запятой. Обратите внимание, что вы можете добавить в начало символа новой строки символ возврата каретки, выполнив команду `crlf on`.
v или V предназначен для всех пользователей Vi с настройкой `:set numbers` — он переключает левую границу между столбцом 9 и столбцом 1. Нажмите
a перед последней клавишей пробела, чтобы переключиться в режим добавления. Таким образом, содержимое буфера вставки не будет перезаписано, а будет добавлено в конец.
A переключает в режим добавления и устанавливает (вторую) метку.
> устанавливает (вторую) метку и записывает содержимое буфера вставки в файл обмена screen (/tmp/screen-exchange по умолчанию), когда режим копирования завершен.
Этот пример демонстрирует, как выгрузить весь буфер прокрутки в этот файл: C-A [ g SPACE G $.
C-g отображает информацию о текущей строке и столбце.
x или o меняет местами первую метку и текущую позицию курсора. Вы можете использовать это, чтобы скорректировать уже установленную метку.
C-l ('el') перерисовывает экран.
@ ничего не делает. Даже не выходит из режима копирования.
Все клавиши, не описанные здесь, вызывают выход из режима копирования.
copy_reg [key]
Больше не существует, используйте readreg.
crlf [on | off]
Это влияет на копирование текстовых областей с помощью команды C-a ['. Если установлено значение on, строки будут разделены двухсимвольной последовательностью CR - LF. В противном случае (по умолчанию) используется только LF. При отсутствии параметра состояние переключается.
debug [on | off]
Включает или выключает отладку во время выполнения. Если screen скомпилирован с опцией -DDEBUG, отладка доступна и включена по умолчанию. Обратите внимание, что эта команда влияет только на вывод отладочной информации из основного процесса SCREEN. Вывод отладочной информации из процессов-аташеров можно отключить только один раз и навсегда.
defc1 [on | off]
То же, что и команда c1, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальное значение — on.
defautonuke [on | off]
То же, что и команда autonuke, за исключением того, что изменяется настройка по умолчанию для новых дисплеев. Начальное значение — off. Обратите внимание, что вы можете использовать специальную возможность AN терминала, если хотите иметь зависимость от типа терминала.
defbce [on | off]
То же, что и команда bce, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальное значение — off.
defbreaktype [tcsendbreak | TIOCSBRK | TCSBRK]
Выберите один из доступных методов генерации сигнала прерывания для терминальных устройств. Предпочтительные методы — tcsendbreak и TIOCSBRK. Третий метод, TCSBRK, блокирует всю сессию screen на время прерывания, но может быть единственным способом генерации длительных прерываний. Методы tcsendbreak и TIOCSBRK могут или не могут генерировать длительные прерывания с импульсами (например, 4 импульса в секунду). Это зависит не только от системы, но и от драйверов последовательных портов. Вызов defbreaktype без параметра отображает текущую настройку.
defcharset [set]
Как команда charset, за исключением того, что изменяется настройка по умолчанию для новых окон. Отображает текущую настройку по умолчанию, если вызвана без аргумента.
defdynamictitle [on | off]
Устанавливает поведение по умолчанию для новых окон относительно того, должен ли screen изменять заголовок окна при получении соответствующей управляющей последовательности. См. также раздел "TITLES (именование окон)".
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. Эта команда полезна для того, чтобы в строке жесткого статуса каждого окна отображался номер окна или заголовок и т. д. Параметр status может содержать те же директивы, что и в сообщениях окна, но директива escape — ^E (восьмеричный код 005) вместо %. Это сделано для того, чтобы исключить возможность неправильной интерпретации строк жесткого статуса, сгенерированных программой. Если параметр status опущен, отображается текущая строка жесткого статуса по умолчанию. По умолчанию строка жесткого статуса новых окон пуста.
defencoding enc
То же, что и команда encoding, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — кодировка, полученная из терминала.
deflog [ on | off ]
То же, что и команда log, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — off.
deflogin [ on | off ]
То же, что и команда login, за исключением того, что изменяется настройка по умолчанию для новых окон. Эта настройка инициализируется значением on при распространении (см. config.h.in).
defmode mode
Режим каждого вновь выделенного псевдотерминала устанавливается в mode. Mode — это восьмеричное число. Если команда defmode не указана, используется режим 0622.
defmonitor [ on | off]
То же, что и команда monitor, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — off.
defmousetrack [ on | off ]
То же, что и команда mousetrack, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — off.
defnonblock [ on | off | numsecs]
То же, что и команда nonblock, за исключением того, что изменяется настройка по умолчанию для дисплеев. Начальная настройка — off.
defobuflimit limit
То же, что и команда obuflimit, за исключением того, что изменяется настройка по умолчанию для новых дисплеев. Начальная настройка — 256 байт. Обратите внимание, что вы можете использовать специальную возможность терминала OL, если хотите, чтобы настройка зависела от типа терминала.
defscrollback num
То же, что и команда scrollback, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — 100.
defshell command
Синоним команды shell .screenrc. См. там.
defsilence [ on | off ]
То же, что и команда silence, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — off.
defslowpaste msec
То же, что и команда slowpaste, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — 0 миллисекунд, что означает off.
defutf8 [ on | off ]
То же, что и команда utf8, за исключением того, что изменяется настройка по умолчанию для новых окон. Начальная настройка — on, если screen была запущена с флагом -U, в противном случае off.
defwrap [ on | off ]
То же, что и команда wrap, за исключением того, что изменяется настройка по умолчанию для новых окон. Изначально включена перестановка строк, и ее можно переключить с помощью команды wrap (C-a r) или с помощью команды "C-a : wrap on|off".
defwritelock [ on | off | auto ]
То же, что и команда writelock, за исключением того, что изменяется настройка по умолчанию для новых окон. Изначально блокировки для записи отключены.
detach [-h]
Отключить сессию screen (отсоединить ее от терминала и поместить в фоновый режим). Это вернет вас в оболочку, в которой вы запустили screen. Отключенную сессию screen можно возобновить, запустив screen с опцией -r (см. также раздел ПАРАМЕТРЫ КОМАНДНОЙ СТРОКИ). Опция -h указывает screen немедленно закрыть соединение с терминалом (завершить сеанс).
dinfo
Показывает, как screen воспринимает ваш терминал. Полезно, если вы хотите узнать, почему не работают такие функции, как цвет или альтернативный набор символов.
displays
Отображает табличный список всех подключенных пользовательских интерфейсов (дисплеев). Это наиболее полезно для многопользовательских сеансов. Следующие клавиши можно использовать в списке дисплеев:
k, C-p или вверх Переместить на одну строку вверх.
j, C-n или вниз Переместить на одну строку вниз.
C-a или home Перейти к первой строке.
C-e или end Перейти к последней строке.
C-u или C-d Переместить на полстраницы вверх или вниз.
C-b или C-f Переместить на полную страницу вверх или вниз.
mouseclick Переместить на выбранную строку. Доступно, когда mousetrack установлено в on.
space Обновить список
d Отключить этот дисплей
D Принудительно отключить этот дисплей
C-g, enter или escape Выйти из списка
Ниже приведен пример того, как может выглядеть displays: xterm 80x42 jnweiger@/dev/ttyp4 0(m11) &rWx facit 80x24 mlschroe@/dev/ttyhf nb 11(tcsh) rwx xterm 80x42 jnhollma@/dev/ttyp5 0(m11) &R.x (A) (B) (C) (D) (E) (F)(G) (H)(I)
Легенда:
(A) Тип терминала, известный screen для данного дисплея.
(B) Геометрия дисплея в виде ширины x высоты.
(C) Имя пользователя, вошедшего в систему на данном дисплее.
(D) Имя устройства дисплея или подключенного устройства.
(E) Дисплей находится в блокирующем или неблокирующем режиме. Доступные режимы: "nb", "NB", "Z<", "Z>" и "BL".
(F) Номер окна.
(G) Имя/заголовок окна.
(H) Является ли окно общим.
(I) Разрешения окна. Состоит из трех символов.
┌─────────────────────────────────────────────────────────┐
│ Индикаторы разрешений окна │
├──────────────────┬──────────────────┬───────────────────┤
│ 1-й символ │ 2-й символ │ 3-й символ │
├─────┬────────────┼─────┬────────────┼─────┬─────────────┤
│ - │нет прав чтения│ - │нет прав записи│ - │нет прав выполнения│
├─────┼────────────┼─────┼────────────┼─────┼─────────────┤
│ r │чтение │ w │запись │ x │выполнение │
├─────┼────────────┼─────┼────────────┼─────┼─────────────┤
│ │ │ W │владеет блокировкой записи│ │ │
├─────┴────────────┴─────┴────────────┴─────┴─────────────┤
│ Индикаторы разрешений, подавленных внешней блокировкой записи │
├─────┬────────────┬─────┬────────────┬─────┬─────────────┤
│ R │только чтение│ . │нет прав записи│ │ │
└─────┴────────────┴─────┴────────────┴─────┴─────────────┘
для отображения требуется область размером не менее 10 символов в ширину и 5 символов в высоту.
digraph [preset[unicode-value]]
Эта команда запрашивает у пользователя последовательность диграфов. Следующие два введенных символа ищутся в встроенной таблице, и полученный символ вставляется в поток ввода. Например, если пользователь вводит «a»", то будет вставлен символ «ä». Если первый введенный символ — 0 (ноль), то screen будет рассматривать следующие символы (до трех) как восьмеричное число. Необязательный аргумент preset обрабатывается как ввод пользователя, что позволяет создавать пользовательские сочетания клавиш для ввода символов, например, команда «bindkey ^K digraph '"'" позволяет пользователю генерировать символ «ä» путем нажатия CTRL-K a. При указании ненулевого значения unicode-value создается новый диграф с указанным пресетом. Диграф удаляется, если для unicode-value указано значение 0.
dumptermcap
Записывает запись termcap для виртуального терминала, оптимизированного для текущего активного окна, в файл .termcap в каталоге $HOME/.screen пользователя (или где бы screen ни хранил свои сокеты. См. раздел FILES ниже). Эта запись termcap идентична значению переменной среды $TERMCAP, которая настраивается screen для каждого окна. Для систем, использующих terminfo, потребуется запустить конвертер, например captoinfo, а затем скомпилировать запись с помощью tic.
dynamictitle [on | off]
Изменяет поведение окон в отношении того, должен ли screen изменять заголовок окна при получении соответствующих управляющих последовательностей. См. также раздел «ЗАГОЛОВКИ (именование окон)».
echo [-n] message
Команда echo может использоваться для того, чтобы раздражать пользователей screen сообщением «дня». Обычно устанавливается в глобальном файле /etc/screenrc. Опция -n может использоваться для подавления символа новой строки. См. также sleep. Echo также полезна для онлайн-проверки переменных среды.
encoding enc [enc]
Сообщает screen, как интерпретировать ввод/вывод. Первый аргумент задает кодировку текущего окна. Каждое окно может эмулировать различную кодировку. Необязательный второй параметр перезаписывает кодировку подключенного терминала. Обычно это не требуется, так как screen использует настройки локали для определения кодировки. Существует также способ выбора кодировки терминала в зависимости от типа терминала с помощью записи termcap KJ.
Поддерживаемые кодировки: eucJP, SJIS, eucKR, eucCN, Big5, GBK, KOI8-R, KOI8-U, CP1251, UTF-8, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6, ISO8859-7, ISO8859-8, ISO8859-9, ISO8859-10, ISO8859-15, jis.
См. также defencoding, который изменяет настройку по умолчанию для нового окна.
escape xy
Устанавливает символ команды равным x, а символ, генерирующий буквальный символ команды (активируя мета-команду), равным y (аналогично опции -e). Каждый аргумент — это либо один символ, либо двухсимвольная последовательность вида ^x (что означает C-x), либо обратная косая черта, за которой следует восьмеричное число (указывающее код ASCII символа), либо обратная косая черта, за которой следует второй символ, например \^ или \. По умолчанию — ^Aa.
eval command1[command2 ...]
Разбирает и выполняет каждый аргумент как отдельные команды.
exec [[fdpat]newcommand [args ...]]
Запускает Unix-подпроцесс (указанный исполняемым путем newcommand и его необязательными аргументами) в
текущем окне. Поток данных между stdin/stdout/stderr newcommand, процессом, изначально запущенным в окне (назовем его «приложением»), и самим screen (окном)
управляется шаблоном файлового дескриптора fdpat. Этот шаблон представляет собой трехсимвольную последовательность, представляющую stdin, stdout и stderr newcommand. Точка (.) соединяет
файловый дескриптор со screen. Восклицательный знак (!) заставляет файловый дескриптор подключаться к приложению. Двоеточие (:) объединяет оба. Ввод пользователя будет направляться в newcommand, если newcommand
не получает вывод приложения (первый символ fdpats — !' или:'), или если добавлена вертикальная черта (|) (в качестве четвертого символа) в конце fdpats.
Вызов exec без аргументов показывает имя и аргументы текущего подпроцесса в
этом окне. В каждом окне одновременно может выполняться только один подпроцесс.
Когда подпроцесс запущен, команда kill будет воздействовать на него, а не на процесс окна.
Обратитесь к файлу PostScript doc/fdpat.ps для запутанной иллюстрации всех 21 возможной комбинации. На каждой схеме показаны цифры 2, 1, 0, представляющие три файловых дескриптора newcommand. Ящик, помеченный W, — это обычный pty, на стороне подчиненного устройства которого находится приложение.
Ящик, помеченный P, — это вторичный pty, на стороне главного устройства которого теперь находится screen.
Сокращения: Пробел между словом `exec` и fdpats, а также между командами можно опустить.
Завершающие точки и fdpats, состоящий только из точек, можно опустить. Простое | является синонимом для
шаблона !..|; здесь слово exec можно опустить и всегда можно заменить на !.
Примеры:
exec ... /bin/sh
exec /bin/sh
!/bin/sh
Создает новый сеанс оболочки в том же окне, при этом исходный сеанс оболочки продолжает работать. Вывод обоих сеансов оболочки отображается, а ввод пользователя направляется в новый сеанс /bin/sh.
exec !.. stty 19200
exec ! stty 19200
!!stty 19200
Устанавливает скорость передачи данных для tty окна. Если ваша команда stty работает с stdout, то добавьте еще один символ `'!'.
exec !..| less
|less
Добавляет программу просмотра постраничного вывода к выводу окна. Специальный символ | необходим, чтобы предоставить пользователю контроль над программой просмотра, хотя она и получает свой ввод из процесса окна. Это работает, потому что less прослушивает stderr (поведение, которое screen не ожидает без символа |), когда его stdin не является tty. Версии less новее 177 в этом случае работают плохо; старая программа pg по-прежнему работает.
!:sed -n s/.*Error.*/\007/p
Отправляет вывод окна как пользователю, так и команде sed. Команда sed вставляет дополнительный символ звонка (октальный 007) в вывод окна, видимый в screen. Это вызовет сообщения "Звуковой сигнал в окне x" каждый раз, когда строка "Error" появляется в окне.
fit
Изменяет размер окна до размера текущей области. Эта команда необходима, потому что screen не адаптирует размер окна автоматически, если окно отображается несколько раз.
flow [ on | off | auto]
Устанавливает режим управления потоком данных для этого окна. Без параметров он циклически переключает текущую настройку управления потоком данных для окна от "автоматического" к "включенному" и "выключенному". Подробности см. в разделе "УПРАВЛЕНИЕ ПОТОКОМ", приведенном ниже в этом документе, и обратите внимание, что это может измениться в будущих версиях. По умолчанию используется значение defflow.
focus [ next | prev | up | down | left | right | top | bottom ]
Перемещает фокус ввода в следующую область. Это делается циклическим образом, так что верхняя левая область выбирается после нижней правой. Если опция не указана, по умолчанию используется next. Следующая область для выбора определяется тем, как области расположены слоями. Обычно выбирается следующая область в том же слое. Однако, если эта следующая область содержит один или несколько слоев, сначала выбирается первая область в верхнем слое. Если вы находитесь в последней области текущего слоя, next переместит фокус на следующую область в нижнем слое (если он есть). Prev выполняет циклическую перемотку в обратном порядке. Подробную информацию см. в разделе split.
Остальные параметры (up, down, left, right, top и bottom) в меньшей степени зависят от слоев. Параметр up перемещает фокус вверх к области, касающейся верхнего левого угла текущей области. Down перемещает фокус вниз к области, касающейся нижнего левого угла текущей области. Параметр left перемещает фокус влево к области, касающейся верхнего левого угла текущей области, а параметр right перемещает фокус вправо к области, касающейся верхнего правого угла текущей области. Перемещение влево из самой левой области или перемещение вправо из самой правой области не приведет ни к каким действиям.
Опция top переместит фокус в самый первый регион в верхнем левом углу экрана, а bottom — в регион в правом нижнем углу экрана. Перемещение вверх от самого верхнего региона или вниз от самого нижнего региона не приведет ни к каким действиям.
Полезные привязки клавиш: (h, j, k и l, как в vi) bind h focus left bind j focus down bind k focus up bind l focus right bind t focus top bind b focus bottom Обратите внимание, что клавиша k традиционно привязана к команде kill.
focusminsize [ ( width|max|_ ) ( height|max|_ ) ]
Эта команда заставляет любой текущий выбранный регион автоматически изменять размер, чтобы иметь как минимум определенную ширину и высоту. Все остальные окружающие регионы будут изменены в размере, чтобы соответствовать новым параметрам. Это ограничение применяется каждый раз, когда используется команда focus. Команда resize может использоваться для увеличения любого из размеров региона, но не ниже установленных значений с помощью focusminsize. Символ подчеркивания _ является синонимом max. Установка ширины и высоты в 0 0 (ноль ноль) отменит все ограничения и позволит выполнять ручное изменение размера. Без параметров отображаются минимальная ширина и высота.
gr [ on | off ]
Включает или выключает переключение наборов символов GR. Каждый раз, когда screen видит входной символ с установленным 8-м битом, он использует набор символов, хранящийся в слоте GR, и выводит символ, сбросив 8-й бит. По умолчанию (см. также defgr) обработка переключения GR отключена, иначе набор символов ISO88591 не будет работать.
group [grouptitle]
Изменяет или отображает группу, к которой принадлежит текущее окно. Окна можно перемещать между различными группами, указывая имя целевой группы. Если группа не указана, отображается название текущей группы.
hardcopy [-h] [file]
Выводит текущее отображаемое изображение в файл file, или, если имя файла не указано, в файл hardcopy.n в каталоге по умолчанию, где n — номер текущего окна. Этот файл либо добавляется, либо перезаписывается, если он существует. См. ниже. Если указана опция -h, также выводится содержимое буфера прокрутки.
hardcopy_append [ on | off ]
Если установлено значение «on», screen будет добавлять файлы в файлы «hardcopy.n», создаваемые командой C-a h, в противном случае эти файлы будут перезаписываться каждый раз. По умолчанию — «off».
hardcopydir directory
Определяет каталог, в котором будут размещаться файлы hardcopy. Если не указан, файлы hardcopy сохраняются в текущем рабочем каталоге screen.
hardstatus [ on | off ]
hardstatus [ always ] firstline | lastline | message | ignore [ string ]
hardstatus string [ string ]
Эта команда настраивает использование и эмуляцию аппаратной строки состояния терминала. Первая форма включает или выключает использование screen аппаратной строки состояния для отображения сообщений. Если флаг установлен в значение off, эти сообщения отображаются поверх текущей строки в обратном видеорежиме. По умолчанию установлено значение on.
Вторая форма указывает screen, что делать, если у терминала нет строки жесткого статуса (то есть не установлены возможности termcap/terminfo "hs", "ts", "fs" и "ds"). При использовании firstline/lastline screen резервирует первую/последнюю строку дисплея для строки жесткого статуса. message использует механизм сообщений screen, а ignore указывает screen никогда не отображать строку жесткого статуса. Если вы добавляете слово always к типу (например, alwayslastline), screen будет использовать этот тип, даже если терминал поддерживает строку жесткого статуса.
Третья форма указывает содержимое строки жесткого статуса. "%h" используется в качестве строки по умолчанию, то есть отображается сохраненный жесткий статус текущего окна (который можно установить с помощью ESC]0;<string>^G или ESC_<string>ESC). Вы можете настроить это на любую строку, включая управляющие последовательности из раздела STRING ESCAPES. Если вы опустите аргумент строки, будет отображена текущая строка.
Вы можете объединить вторую и третью формы, предоставив строку в качестве дополнительного аргумента.
height [-w|-d] [lines [cols]]
Установите высоту дисплея на указанное количество строк. Если аргумент не указан, переключается между отображением в 24 и 42 строки. Вы также можете указать ширину, если хотите изменить оба значения. Опция -w указывает screen оставить размер дисплея без изменений и просто установить размер окна, -d - наоборот.
help[class]
Не совсем онлайн-справка, а отображает экран справки, показывающий все сочетания клавиш. На первых страницах перечислены все внутренние команды и их текущие привязки. На последующих страницах будут отображаться пользовательские команды, по одной команде на клавишу. Нажмите клавишу пробела, когда закончите читать каждую страницу, или клавишу Return, чтобы выйти раньше. Все остальные символы игнорируются. Если указана опция -c, отображаются все привязанные команды для указанного класса команд. См. также раздел DEFAULT KEY BINDINGS.
history
Обычно пользователи работают с оболочкой, которая обеспечивает легкий доступ к предыдущим командам. Например, csh имеет команду !! для повторения последней выполненной команды. Screen позволяет вам иметь примитивный способ повторного вызова команды, которая была запущена...: просто введите первую букву этой команды, а затем нажмите C-a {, и screen попытается найти предыдущую строку, которая соответствует символу подсказки слева от курсора. Эта строка будет вставлена в очередь ввода текущего окна. Таким образом, у вас есть грубая история команд (составленная из видимого окна и его буфера прокрутки).
hstatus status
Измените строку жесткого статуса окна на строку status.
idle [timeout[cmd-args]]
Устанавливает команду, которая выполняется после достижения указанного количества секунд бездействия. Обычно эта команда — команда создания заставки экрана, но это может быть любая команда screen. Если команда не указана, устанавливается только тайм-аут. Тайм-аут, равный нулю (или специальный тайм-аут off), отключает таймер. Если аргументы не указаны, отображаются текущие настройки.
ignorecase [ on | off ]
Сообщите screen, что нужно игнорировать регистр символов при поиске. По умолчанию значение равно off. Без указания каких-либо опций состояние ignorecase переключается.
info
Использует строку сообщений для отображения некоторой информации о текущем окне: положение курсора в формате (столбец, строка), начиная с (1, 1), ширина и высота терминала, а также размер буфера истории в строках, например, (80, 24)+50. Текущее состояние автоматического управления потоком данных для окна отображается следующим образом (см. также раздел «УПРАВЛЕНИЕ ПОТОКОМ»):
┌──────────┬──────────────────────────────────────────────────────────┐
│ +flow │ автоматическое управление потоком данных, в настоящее время включено. │
├──────────┼──────────────────────────────────────────────────────────┤
│ -flow │ автоматическое управление потоком данных, в настоящее время выключено. │
├──────────┼──────────────────────────────────────────────────────────┤
│ +(+)flow │ управление потоком данных включено. Согласуется с автоматическим управлением. │
├──────────┼──────────────────────────────────────────────────────────┤
│ -(+)flow │ управление потоком данных выключено. Не согласуется с автоматическим управлением. │
├──────────┼──────────────────────────────────────────────────────────┤
│ +(-)flow │ управление потоком данных включено. Не согласуется с автоматическим управлением. │
├──────────┼──────────────────────────────────────────────────────────┤
│ -(-)flow │ управление потоком данных выключено. Согласуется с автоматическим управлением. │
└──────────┴──────────────────────────────────────────────────────────┘
Текущая настройка переноса строк (+wrap указывает на включение, -wrap — на выключение) также отображается. Флаги ins, org, app, log, mon или nored отображаются, когда окно находится в режиме вставки, исходном режиме, режиме использования функциональной клавиатуры, имеет включенную запись выходных данных, мониторинг активности или частичное обновление.
В настоящее время активный набор символов (G0, G1, G2 или G3) и в квадратных скобках отображаются наборы символов терминала, которые в настоящее время назначены в качестве G0–G3. Если окно находится в режиме UTF-8, отображается строка UTF-8.
Дополнительные режимы, зависящие от типа окна, отображаются в конце строки состояния (см. также главу «ТИПЫ ОКОН»).
Если конечное состояние эмулятора терминала отличается от состояния по умолчанию, информационная строка начинается со строки, идентифицирующей текущее состояние.
Для получения системной информации используйте команду time.
ins_reg [key]
Больше не существует, используйте paste вместо этого.
kill
Закрыть текущее окно.
Если выполняется команда exec, она будет остановлена. В противном случае процесс (оболочка), работающий в окне, получит сигнал HANGUP, структура окна будет удалена, и screen переключится на другое окно. При уничтожении последнего окна screen завершит работу. После команды kill screen переключается на ранее отображаемое окно.
Примечание: пользователям Emacs следует помнить об этой команде при удалении строки. Рекомендуется не использовать C-a в качестве клавиши перехода в `screen` или переназначить команду `kill` на C-a K.
lastmsg
Повторно отобразить последние содержимое строки сообщений/статуса. Это полезно, если вы печатаете, когда появляется сообщение, потому что сообщение исчезает при нажатии клавиши (если ваш терминал не имеет аппаратной строки состояния). Обратитесь к командам msgwait и msgminwait для более точной настройки.
layout new [title]
Создать новый макет. Screen переключится на один целый регион и переключится на пустой экран. Отсюда вы можете создавать регионы и окна, которые они будут показывать по своему усмотрению. Новый макет будет пронумерован наименьшим доступным целым числом, начиная с нуля. Вы можете дополнительно указать название для нового макета. В противном случае ему будет присвоено название по умолчанию «layout». Вы всегда можете изменить название позже, используя команду layout title.
layout remove [n|title]
Удалить, другими словами, удалить указанный макет. Можно указать либо номер, либо название. Если ни то, ни другое не указано, screen удалит текущий макет.
Удаление макета не влияет на ваши установленные окна или регионы.
layout next
Переключиться на следующий доступный макет.
layout prev
Переключиться на предыдущий доступный макет.
layout select [n|title]
Выбрать желаемый макет. Можно указать либо номер, либо название. Если ни то, ни другое не указано, screen запросит, какой макет требуется. Чтобы увидеть, какие макеты доступны, используйте команду layout show.
layout show
Вывести в строку сообщений номер(а) и название(я) доступных макетов. Текущий макет отмечен.
layout title [title]
Изменить или отобразить название текущего макета. Если указана строка, она будет использоваться для присвоения имени макету. Если параметры не указаны, текущее название и номер отображаются в строке сообщений.
layout number [n]
Изменить или отобразить номер текущего макета. Если указано целое число, оно будет использоваться для нумерации макета. Если параметры не указаны, текущий номер и название отображаются в строке сообщений.
layout attach [title|:last]
Изменить или отобразить, к какому макету следует вернуться. По умолчанию используется :last, что означает, что screen вернется к последнему использованному макету перед отключением. Указав заголовок, можно указать screen вернуться к определенному макету, независимо от того, какой из них использовался на момент отключения. Если не указаны опции, макет, к которому следует вернуться, будет отображен в строке сообщений.
layout save [n|title]
Запомнить текущее расположение регионов. При использовании screen запомнит расположение вертикально и горизонтально разделенных регионов. Это расположение восстанавливается при повторном подключении к сеансу screen или при переключении с другого макета. Если сеанс завершается или процесс screen завершается, расположение макета теряется. Команда layout dump может помочь в этом случае. Если указан номер или заголовок, screen запомнит расположение указанного макета. Если опции не указаны, screen запомнит текущий макет.
Сохранение регионов можно выполнять автоматически, используя команду layout autosave.
layout autosave [on | off]
Изменить или отобразить статус автоматического сохранения макетов. По умолчанию установлено значение on, что означает, что при отключении screen или переходе к другому макету расположение регионов и окон будет запомнено на момент изменения и восстановлено при возврате. Если autosave установлено значение off, расположение будет восстановлено либо до последнего ручного сохранения с помощью layout save, либо до момента создания макета, когда был один регион с одним окном. Если не указано on или off, текущий статус отображается в строке сообщений.
layout dump [filename]
Записать в файл порядок разделений в текущем макете. Это полезно для воссоздания порядка регионов, используемых в текущем макете. Записывается только текущий макет. Хотя порядок регионов записывается, размеры этих регионов и соответствие между окнами и регионами не записываются. Если имя файла не указано, по умолчанию используется layout-dump, который сохраняется в каталоге, из которого был запущен процесс screen. Если файл уже существует, layout dump добавит данные в этот файл. Например:
C-a : layout dump /home/user/.screenrc
сохранит или добавит макет в файл .screenrc пользователя.
license
Отобразить страницу с отказом от ответственности. Это происходит каждый раз, когда screen запускается без опций, что должно происходить достаточно часто. См. также команду startup_message.
lockscreen
Заблокировать этот дисплей. Вызвать программу блокировки экрана. Screen не принимает никакие команды, пока эта программа не завершится. В это время процессы в окнах могут продолжать выполняться, так как окна находятся в состоянии detached. Программу блокировки экрана можно изменить с помощью переменной окружения $LOCKPRG (которая должна быть установлена в оболочке, из которой запускается screen), и она выполняется с идентификатором и группой пользователя.
Внимание: если вы оставляете другие оболочки разблокированными и не установили пароль для screen, блокировка недействительна: из разблокированной оболочки можно легко повторно подключиться. Эту функцию следует скорее называть lockterminal.
log [on | off]
Начать/остановить запись вывода текущего окна в файл screenlog.n в каталоге по умолчанию для этого окна, где n — номер текущего окна. Это имя файла можно изменить с помощью команды logfile. Если параметр не указан, состояние регистрации переключается. Журнал сеанса добавляется к предыдущему содержимому файла, если он уже существует. Текущее содержимое и содержимое истории прокрутки не включаются в журнал сеанса. По умолчанию off.
logfile filename
logfile flush secs
Определяет имя, которое будут иметь файлы журнала. По умолчанию screenlog.%n. Вторая форма изменяет количество секунд, в течение которых screen будет ждать перед сбросом буфера файла журнала в файловую систему. Значение по умолчанию — 10 секунд.
login [on | off]
Добавляет или удаляет запись в файле базы данных utmp для текущего окна. Это определяет, «выполнена ли авторизация» в окне. Если параметр не указан, состояние авторизации окна переключается. В дополнение к этому переключению удобно иметь команды «войти» и «выйти». Например, bind I login on и bind O login off назначат эти команды клавишам C-a I и C-a O. Настройка по умолчанию (в config.h.in) должна быть включена для screen, работающего с правами suid-root. Используйте команду deflogin, чтобы изменить состояние авторизации по умолчанию для новых окон. Обе команды присутствуют только в том случае, если screen скомпилирован с поддержкой utmp.
logtstamp [on|off]
logtstamp after [secs]
logtstamp string
[string]
Эта команда управляет механизмом временных меток файла журнала screen. Если временные метки включены, screen добавляет строку, содержащую текущее время, в файл журнала после двух минут бездействия. Когда вывод продолжается и прошло еще две минуты, вторая временная метка добавляется для документирования возобновления вывода. Вы можете изменить этот тайм-аут с помощью второй формы команды. Третья форма используется для настройки строки временной метки (-- %n:%t -- time-stamp -%M/%d/%y %c:%s --\n по умолчанию).
mapdefault
Сообщите screen, что следующий символ ввода должен быть найден только в таблице привязок по умолчанию. См. также bindkey.
mapnotnext
Как mapdefault, но даже не ищите в таблице привязок по умолчанию.
maptimeout [timeout]
Установите таймер межсимвольных интервалов для обнаружения последовательности ввода на значение timeout мс. Значение тайм-аута по умолчанию — 300 мс. Команда maptimeout без аргументов отображает текущее значение. См. также bindkey.
markkeys string
Это способ изменения карты клавиш, используемой для режима копирования/истории. Строка состоит из пар oldchar=newchar, разделенных двоеточием (:). Пример: строка B=^B:F=^F изменит клавиши C-b и C-f на стиль vi (прокрутка вверх/вниз, заполнить страницу). Это происходит по умолчанию для B и F. Команда markkeys h=^B:l=^F:$=^E установит режим для стиля emacs. Если ваш терминал отправляет символы, из-за которых вы прерываете режим копирования, то эта команда может помочь, привязав эти символы к выполнению ничего. Символ, который ничего не делает, — это @, и он используется следующим образом: markkeys @=L=H, если вы больше не хотите использовать команды H или L. Как показано в этом примере, в одном выражении можно назначить несколько клавиш одной функции.
maxwin num
Устанавливает максимальное количество окон, которое screen может создать. Не влияет на уже существующие окна.
Количество можно увеличить только тогда, когда не существует ни одного окна.
meta
Вставляет символ команды (C-a) в текущий поток ввода окна.
monitor [ on | off ]
Переключает мониторинг активности окон. Когда мониторинг включен и активное окно переходит в фоновый режим, вы получите уведомление об активности в строке состояния при первом появлении вывода, и окно также будет помечено символом `@' в отображении статуса окна. Мониторинг изначально выключен для всех окон.
mousetrack [ on | off ]
Эта команда определяет, будет ли screen отслеживать щелчки мыши. При включении этой команды области, разделенные различными способами, можно выбирать, указывая на них мышью и щелкая левой кнопкой мыши. Без указания `on` или `off` отображается текущее состояние. По умолчанию состояние определяется командой `defmousetrack`.
msgminwait sec
Определяет время, в течение которого screen задерживает отображение нового сообщения, когда уже отображается одно сообщение. По умолчанию — 1 секунда.
msgwait sec
Определяет время, в течение которого сообщение отображается, если screen не прерывается другой активностью. По умолчанию — 5 секунд.
multiuser [ on | off ]
Переключает между режимами однопользовательской и многопользовательской работы. Стандартная работа screen осуществляется в однопользовательском режиме. В многопользовательском режиме можно использовать команды `acladd`, `aclchg`, `aclgrp` и `acldel`, чтобы разрешить (и запретить) другим пользователям доступ к этому сеансу screen.
nethack [ on | off ]
Изменяет тип сообщений об ошибках, используемых screen. Если вы знакомы с игрой nethack, вам могут понравиться сообщения в стиле nethack, которые часто немного искажают факты, но их гораздо интереснее читать. В любом случае, стандартные сообщения часто также бывают неясными.
Этот параметр доступен только в том случае, если screen был скомпилирован с определенным флагом NETHACK. В этом случае значение по умолчанию определяется наличием переменной среды `$NETHACKOPTIONS` и файла `~/.nethackrc` — если один из них присутствует, значение по умолчанию — `on`.
next
Переключается на следующее окно. Эту команду можно использовать многократно, чтобы перебирать список окон.
nonblock [ on | off | numsecs ]
Указывает, как screen должен обрабатывать пользовательские интерфейсы (дисплеи), которые перестают принимать ввод. Это может произойти, если пользователь нажимает ^S или если соединение TCP/модема прерывается, но сигнал о завершении не получен. Если `nonblock` выключен (это значение по умолчанию), screen ждет, пока дисплей не возобновит прием ввода.
Если `nonblock` включен, screen ждет истечения времени ожидания (значение `on` трактуется как 1 секунда). Если дисплей по-прежнему не принимает символы, screen считает его заблокированным и прекращает отправку символов. Если в какой-то момент дисплей возобновляет прием символов, screen разблокирует дисплей и повторно отобразит обновленное содержимое окна.
number [[+|-]n]
Изменяет номер текущего окна. Если указанный номер n уже используется другим окном, оба окна меняют свои номера местами. Если аргумент не указан, отображается текущий номер (и заголовок) окна. Использование + или - изменит номер окна на указанную относительную величину.
obuflimit [limit]
Если выходной буфер содержит больше байт, чем указанный предел, больше данных из окон не будет считываться. Значение по умолчанию — 256. Если у вас быстрый дисплей (например, xterm), вы можете установить его на большее значение. Если аргумент не указан, отображается текущая настройка.
only
Удаляет все регионы, кроме текущего.
other
Переключается на окно, которое отображалось ранее. Если этого окна больше не существует, other действует так же, как и next.
partial [on | off]
Определяет, следует ли обновлять отображение (как при использовании redisplay) после переключения на текущее окно. Эта команда влияет только на текущее окно. Чтобы немедленно применить ко всем окнам, используйте команду allpartial. По умолчанию — off, и это значение фиксировано, поскольку в настоящее время не существует команды defpartial.
password [crypted_pw]
Укажите зашифрованный пароль в файле .screenrc, и screen будет запрашивать его всякий раз, когда кто-либо попытается возобновить работу отсоединенной сессии. Это полезно, если у вас запущены привилегированные программы в screen, и вы хотите защитить свою сессию от попыток повторного подключения со стороны другого пользователя, выдающего себя за вашего. Если зашифрованный пароль не указан, screen дважды запрашивает ввод пароля и помещает его в буфер обмена. По умолчанию — none, что отключает проверку пароля.
paste [registers [dest_reg]]
Записывает (объединенное) содержимое указанных регистров в очередь stdin текущего окна. Регистр . рассматривается как буфер обмена. Если параметр не указан, пользователю предлагается ввести один регистр для вставки. Буфер обмена можно заполнить командами copy, history и readbuf. Другие регистры можно заполнить командами register, readreg и paste. Если paste вызывается со вторым аргументом, содержимое указанных регистров вставляется в именованный целевой регистр, а не в окно. Если в качестве второго аргумента используется ., целевым регистром является буфер обмена дисплея. Обратите внимание, что paste использует различные ресурсы: всякий раз, когда указан второй аргумент, текущее окно не требуется. Когда спецификация источника содержит только регистры (а не буфер обмена), целевой дисплей (терминал) не обязательно должен быть подключен, поскольку регистры являются глобальным ресурсом. Буфер обмена существует один раз для каждого пользователя.
pastefont [ on | off ]
Сообщите Screen, что необходимо включать информацию о шрифте в буфер обмена. По умолчанию это не делается. Эта команда особенно полезна для многосимвольных шрифтов, таких как кандзи.
pow_break
Повторно откройте терминальную строку окна и отправьте сигнал прерывания. См. break.
pow_detach
Отключение с отключением питания. В основном то же самое, что и detach, но также отправляет сигнал HANGUP родительскому процессу screen. ВНИМАНИЕ: Это приведет к выходу из системы, если screen был запущен из вашей оболочки входа.
pow_detach_msg [сообщение]
Сообщение, указанное здесь, выводится каждый раз, когда выполняется «Отключение с отключением питания». Его можно использовать в качестве замены сообщения о выходе из системы или для сброса скорости передачи данных и т. д. Без параметра отображается текущее сообщение.
prev
Переключитесь на окно с меньшим номером. Эту команду можно использовать несколько раз для последовательного просмотра списка окон.
printcmd [cmd]
Если cmd не является пустой строкой, screen не будет использовать возможности терминала po/pf при обнаружении ANSI-последовательности печати ESC [ 5 i, а вместо этого передаст вывод в cmd. Обычно это должна быть команда, такая как lpr или printcmd. Если команда не указана, отображается текущая настройка. ANSI-последовательность ESC [ 4 i завершает печать и закрывает канал.
Предупреждение: Будьте осторожны с этой командой! Если у других пользователей есть доступ для записи в ваш терминал,
они смогут выполнять команды печати.
process [key]
Поместите содержимое указанного регистра в очередь ввода screen. Если аргумент не указан, вам будет предложено ввести имя регистра. Текст анализируется так, как если бы он был введен пользователем с клавиатуры. Эту команду можно использовать для привязки нескольких действий к одной клавише.
quit
Удалите все окна и завершите работу screen. Обратите внимание, что на терминалах в стиле VT100 клавиши C-4 и C-\ идентичны. Это делает настройки по умолчанию опасными: будьте осторожны, чтобы не нажать C-a C-4 при выборе окна № 4. Используйте пустую команду bind (например, bind '^\'), чтобы удалить привязку клавиш.
readbuf [кодировка] [имя файла]
Считывает содержимое указанного файла в буфер обмена. Вы можете указать screen кодировку файла с помощью опции -e. Если файл не указан, используется имя файла обмена screen. См. также команду bufferfile.
readreg [кодировка] [регистр [имя файла]]
Выполняет одно из двух действий в зависимости от количества аргументов: при отсутствии аргументов или при наличии одного аргумента дублирует содержимое буфера обмена в указанный регистр или регистр, который вводится по запросу. При наличии двух аргументов считывает содержимое указанного файла в регистр, как readbuf считывает файл обмена screen в буфер обмена. Вы можете указать screen кодировку файла с помощью опции -e. Следующий пример вставит системный файл паролей в окно screen (сохраняя копию в регистре p):
C-a : readreg p /etc/passwd
C-a : paste p
`redisplay`
Обновить текущее окно. Необходимо для полного обновления экрана, когда используется частичный режим перерисовки.
`register [-eencoding] key-string`
Сохранить указанную строку в регистр с заданным ключом. Кодировку строки можно указать с помощью опции -e. См. также команду paste.
`remove`
Удалить текущий выделенный фрагмент. Если выделен только один фрагмент, команда не выполняет никаких действий.
`removebuf`
Отсоединить файл обмена экранами, используемый командами writebuf и readbuf.
`rendition [bell | monitor | silence | so] attr [color]`
Изменить способ, которым screen отображает заголовки окон, для которых установлены флаги monitor или bell в caption или hardstatus или windowlist. См. раздел "STRING ESCAPES" для синтаксиса модификаторов.
По умолчанию для monitor используется =b (полужирный, активные цвета), для bell — =ub (подчеркнутый, полужирный и активные цвета), а для silence — =u.
`reset`
Сбросить виртуальный терминал к значениям, которые были при включении. Полезно, когда после работы приложения остаются странные настройки (например, области прокрутки или графический набор символов).
`resize [-h|-v|-b|-l|-p] [[+|-] n[%] |=|max|min|_|0]`
Изменить размер текущего выделенного фрагмента. Пространство будет удалено или добавлено в соседние фрагменты в зависимости от порядка разделения. Доступные параметры для изменения размера: -h (горизонтальный), -v (вертикальный), -b (оба), -l (локально для слоя) и -p (перпендикулярно). Горизонтальное изменение размера добавляет или удаляет ширину из фрагмента, вертикальное — высоту, а изменение размера в обоих направлениях — размер в обоих измерениях. Локальное и перпендикулярное изменение размера аналогичны горизонтальному и вертикальному, но учитывают, как был разделен фрагмент. Если последний раз фрагмент был разделен горизонтально, локальное изменение размера будет работать как вертикальное. Если последний раз фрагмент был разделен вертикально, локальное изменение размера будет работать как горизонтальное. Перпендикулярное изменение размера работает противоположно локальному.
Если не указан параметр, по умолчанию используется локальное изменение размера.
Количество строк, которое нужно добавить или удалить, можно указать несколькими способами. Указание числа n само по себе изменит размер фрагмента на эту абсолютную величину. Можно указать относительную величину, добавив к числу знак + или -, например, добавить +n строк или удалить -n строк. Изменение размера также можно указать в виде абсолютного или относительного процента, добавив знак %. Использование нуля 0 является синонимом min, а использование знака подчеркивания _ — синонимом max.
Некоторые примеры:
`resize +N`
увеличить текущий фрагмент на N
`resize -N`
уменьшить текущий фрагмент на N
`resize N`
установить текущий фрагмент на N
`resize 20%`
установить текущий фрагмент на 20% от исходного размера
`resize +20%`
увеличить текущий фрагмент на 20%
`resize -b =`
сделать все окна одинаковыми
`resize max`
развернуть текущий фрагмент на весь экран
`resize min`
свернуть текущий фрагмент до минимального размера
Без аргументов screen запросит, как вы хотите изменить размер текущего фрагмента.
См. focusminsize, если вы хотите ограничить минимальный размер, до которого может быть уменьшен фрагмент.
`screen [-opts] [n] [cmd [args] | //group]`
Создается новое окно. Опции управления потоком данных (-f, -fn и -fa), опция заголовка (-t), опции входа в систему (-l и -ln), опция типа терминала (-T <term>), опция включения всех возможностей (-a) и опция буфера прокрутки (-h <num>) могут быть указаны для каждой команды. Опция (-M) включает мониторинг для этого окна. Опция (-L) включает ведение журнала вывода для этого окна. Если указано необязательное число n в диапазоне 0..MAXWIN-1, новому созданному окну присваивается номер окна n (или, если этот номер уже используется, присваивается следующий доступный номер). Если после команды screen указана команда, эта команда (с заданными аргументами) запускается в окне; в противном случае создается оболочка. Если указан //group, создается контейнерное окно, в котором могут быть созданы другие окна.
Таким образом, если ваш файл .screenrc содержит следующие строки:
# пример для .screenrc:
screen 1
screen -fn -t foobar -L 2 telnet foobar
screen создает окно оболочки (в окне #1) и окно с подключением TELNET к машине foobar (без управления потоком данных, с заголовком foobar в окне #2) и будет записывать файл журнала (screenlog.2) сеанса telnet. Обратите внимание, что, в отличие от предыдущих версий screen, при включении команд screen в файл .screenrc не создается дополнительное окно по умолчанию. После завершения инициализации screen переключается на последнее окно, указанное в файле .screenrc, или, если таковое не указано, открывает окно по умолчанию #0.
Screen имеет встроенную функциональность cu и telnet. См. также главу "ТИПЫ ОКОН".
scrollback num
Устанавливает размер буфера прокрутки для текущих окон равным num строк. Значение буфера прокрутки по умолчанию — 100 строк. См. также команду defscrollback и используйте info для просмотра текущей настройки. Для доступа и использования содержимого в буфере прокрутки используйте команду copy.
select [WindowID]
Переключается на окно, идентифицированное WindowID. Это может быть префикс заголовка окна (алфавитно-цифровое имя окна) или номер окна. Параметр является необязательным, и если он опущен, вам будет предложено ввести идентификатор. При создании нового окна первому доступному окну присваивается номер. Таким образом, первое окно можно активировать с помощью select 0. Количество окон задается параметром конфигурации MAXWIN (который по умолчанию равен 100), но его можно изменить с помощью команды `maxwin'. Существуют два специальных идентификатора WindowID: - указывает на внутреннее пустое окно, а . указывает на текущее окно. Последнее полезно при использовании опции screen -X.
sessionname [name]
Переименовывает текущий сеанс. Обратите внимание, что для screen -list имя отображается с добавлением идентификатора процесса. Если аргумент name опущен, отображается имя этого сеанса. Внимание: переменная среды $STY по-прежнему будет отражать старое имя в существующих оболочках. Это может привести к путанице. Использование этой команды обычно не рекомендуется. Используйте опцию командной строки -S, если вы хотите назвать новый сеанс. Значение по умолчанию создается на основе имен tty и хоста.
setenv [var [string]]
Устанавливает значение переменной окружения var равным строке string. Если указан только var, пользователю будет предложено ввести значение. Если не указаны параметры, пользователю будет предложено ввести как переменную, так и значение. Окружение наследуется всеми последующими порожденными оболочками.
setsid [ on | off ]
Обычно screen использует разные сессии и группы процессов для окон. Если setsid выключен, это больше не делается, и все окна будут находиться в одной и той же группе процессов, что и процесс screen. Это также нарушает управление заданиями, поэтому будьте осторожны. По умолчанию включено. Эта команда, вероятно, полезна только в редких случаях.
shell command
Устанавливает команду, которая будет использоваться для создания новой оболочки. Это переопределяет значение переменной окружения $SHELL. Это полезно, если вы хотите запустить программу-улучшитель терминала, которая ожидает выполнения программы, указанной в $SHELL. Если команда начинается с символа '-', оболочка будет запущена как оболочка входа в систему. Обычно обычные оболочки выполняют только минимальную инициализацию, когда не запускаются как оболочки входа в систему. Например, Bash не будет читать ваш ~/.bash_profile, если это не оболочка входа в систему.
shelltitle title
Устанавливает заголовок для всех оболочек, создаваемых во время запуска или с помощью команды C-A C-c. Подробности о том, что такое заголовок, см. в разделе «ЗАГОЛОВКИ (именование окон)».
silence [ on | off | sec ]
Включает/выключает мониторинг бездействия окон. Когда мониторинг бездействия включен, и затронутое окно переходит в фоновый режим, вы будете получать сообщение об отсутствии активности в строке состояния через указанный период бездействия. Время ожидания по умолчанию можно изменить с помощью команды `silencewait` или указав количество секунд вместо `on` или `off`. Отслеживание бездействия изначально выключено для всех окон.
silencewait sec
Определяет время, в течение которого все окна, отслеживаемые на предмет бездействия, должны ждать, прежде чем отображать сообщение. По умолчанию 30 секунд.
sleep num
Эта команда приостановит выполнение файла .screenrc на num секунд. Активность клавиатуры прекратит ожидание. Ее можно использовать, чтобы дать пользователям возможность прочитать сообщения, выводимые командой echo.
slowpaste msec
Определяет скорость, с которой текст вставляется в текущее окно с помощью команды вставки ("C-a ]"). Если значение slowpaste не равно нулю, текст записывается символ за символом. screen будет делать паузу в msec миллисекунд после записи каждого отдельного символа, чтобы приложение могло обработать свой ввод. Используйте slowpaste только в том случае, если ваша базовая система создает проблемы с управлением потоком при вставке больших объемов текста.
sort
Сортирует окна в алфавитном порядке по заголовкам окон.
source file
Считывает и выполняет команды из файла file. Команды source могут быть вложены до максимального уровня рекурсии в десять. Если файл не является абсолютным путем и screen уже обрабатывает команду source, родительский каталог файла текущей команды source используется для поиска нового файла команд, прежде чем screen будет использовать свой текущий каталог.
Обратите внимание, что команды termcap/terminfo/termcapinfo работают только при запуске и повторном подключении, поэтому они должны вызываться через файлы конфигурации screenrc, чтобы иметь эффект.
sorendition [attr[color]]
Эта команда устарела. Используйте "rendition so" вместо нее.
split[-v]
Разделить текущий регион на два новых. Все регионы на экране изменяют размер, чтобы освободить место для нового региона. Пустое окно отображается в новом регионе. По умолчанию создается горизонтальное разделение, в результате чего новые регионы располагаются сверху и снизу друг от друга. Использование -v создает вертикальное разделение, в результате чего новые регионы появляются рядом друг с другом. Используйте команды remove или only для удаления регионов. Используйте focus для переключения между регионами.
Когда регион разделяется противоположным образом по сравнению с предыдущим разделением (то есть вертикально, а затем горизонтально, или горизонтально, а затем вертикально), создается новый слой. Слой используется для группировки регионов, которые разделены одинаково. Обычно пользователю не нужно видеть или беспокоиться о слоях, но они влияют на поведение некоторых команд (focus и resize).
В текущей реализации screen, прокрутка данных в вертикально разделенном регионе будет происходить намного медленнее, чем в регионе, который не разделен. Это следует учитывать, если вам нужно использовать системные команды, такие как cat или tail -f.
startup_message [on | off]
Определяет, хотите ли вы видеть уведомление об авторских правах при запуске. По умолчанию установлено значение on, как вы, вероятно, заметили.
status [top | up | down | bottom] [left | right]
Окно состояния по умолчанию находится в нижнем левом углу. Эта команда может переместить сообщения состояния в любой угол экрана. top то же самое, что и up, down то же самое, что и bottom.
stuff [string]
Поместить строку string во входной буфер текущего окна. Это похоже на команду paste, но с гораздо меньшими накладными расходами. Без параметра screen запросит строку для помещения. Нельзя использовать команду stuff для вставки больших буферов. Она наиболее полезна для привязки клавиш. См. также bindkey.
su [username [password [password2]]]
Заменить пользователя дисплея. Команда запрашивает все параметры, которые не указаны. Если пароли указаны в качестве параметров, они должны быть указаны в незашифрованном виде. Первый пароль сравнивается с базой данных паролей системы, второй пароль сравнивается с паролем screen, установленным с помощью команд acladd или password. Команда su может быть полезна администратору screen для тестирования многопользовательских настроек. В случае сбоя идентификации пользователь получает доступ к командам, доступным для пользователя nobody. Это detach, license, version, help и displays.
suspend
Приостановить screen. Окна находятся в состоянии detached, пока screen приостановлен. Эта функция опирается на возможность оболочки выполнять управление заданиями.
term term
В среде каждого окна, которое открывает screen, переменная $TERM по умолчанию устанавливается в screen. Но если в локальной базе данных termcap или terminfo не установлена запись для screen, вы устанавливаете $TERM, например, в vt100. Это не сильно повредит, так как screen совместим с VT100/ANSI. Использование команды term не рекомендуется для других целей, кроме как по умолчанию. То есть, вы можете захотеть указать специальные настройки $TERM (например, vt100) для следующей команды screen rlogin othermachine. Используйте команду screen -T vt100 rlogin othermachine, а не устанавливайте и сбрасывайте значение по умолчанию.
termcap term terminal-tweaks[window-tweaks]
terminfo term terminal-tweaks[window-tweaks]
termcapinfo term terminal-tweaks[window-tweaks]
Используйте эту команду, чтобы изменить запись termcap вашего терминала, не прибегая ко всем сложностям, связанным с созданием пользовательской записи termcap. Кроме того, вы можете дополнительно настроить termcap, генерируемый для окон. Эти команды необходимо размещать в одном из файлов конфигурации screen, поскольку после запуска эмулятора терминала они не имеют смысла.
Если в вашей системе используется база данных terminfo, а не termcap, screen поймет команду terminfo, которая имеет тот же эффект, что и команда termcap. Предоставлены две отдельные команды, поскольку существуют небольшие синтаксические различия, например, когда требуется интерполяция параметров (с использованием %). Обратите внимание, что для команды terminfo необходимо использовать имена возможностей termcap.
Во многих случаях, когда аргументы допустимы как в синтаксисе terminfo, так и в синтаксисе termcap, можно использовать команду termcapinfo, которая является сокращением для пары команд termcap и terminfo с идентичными аргументами.
Первый аргумент указывает, для каких терминалов следует применять это определение. Можно указать несколько имен терминалов, разделив их символом |. Используйте * для соответствия всем терминалам и vt* для соответствия всем терминалам, начинающимся с vt.
Каждый аргумент tweak содержит одно или несколько определений termcap (разделенных двоеточиями), которые должны быть вставлены в начало соответствующей записи termcap, чтобы расширить ее или переопределить существующие значения. Первая настройка изменяет termcap вашего терминала и содержит определения, которые ваш терминал использует для выполнения определенных функций. Укажите пустую строку, чтобы оставить ее без изменений (например, ''). Вторая (необязательная) настройка изменяет termcap всех окон и должна содержать определения, которые понимает screen (см. раздел «ВИРТУАЛЬНЫЙ ТЕРМИНАЛ»).
Некоторые примеры:
termcap xterm* LP:hs@
Сообщает screen, что все терминалы, начинающиеся с xterm, имеют жесткие автоматические поля, которые позволяют обновить последнюю позицию на экране (LP), но у них фактически нет строки состояния (нет hs — добавьте @, чтобы отключить записи). Обратите внимание, что мы предполагаем LP для всех имен терминалов, начинающихся с vt, но только если вы не укажете команду termcap для этого терминала.
termcap vt* LP
termcap vt102|vt220 Z0=\E[?3h:Z1=\E[?3l
Указывает возможность LP с жесткими полями для всех терминалов, начинающихся с vt, и вторая строка также добавит последовательности escape для переключения в режим 132 символов в строке (Z0) и обратно (Z1), если это VT102 или VT220. (Вы должны указать Z0 и Z1 в своем termcap, чтобы использовать команды изменения ширины.)
termcap vt100 "" l0=PF1:l1=PF2:l2=PF3:l3=PF4
Оставляет настройки termcap для терминала vt100 без изменений и добавляет метки функциональных клавиш в запись termcap для каждого окна.
termcap h19|z19 am@:im=\E@:ei=\EO dc=\E[P
Преобразует termcap типа h19 или z19, отключает автоматические поля (am@) и включает возможности режима вставки (im) и завершения вставки (ei) (символ @ в строке im находится после =, поэтому он является частью строки). Добавление определений im и ei в termcap терминала приведет к тому, что screen автоматически будет сообщать о возможности вставки символов в termcap каждого окна. Также в termcap каждого окна будет добавлена возможность удаления символов (dc), которую screen будет преобразовывать в обновление строки для терминала (мы будем делать вид, что терминал не поддерживает удаление символов).
Если вы хотите полностью указать запись termcap для каждого окна, следует установить переменную $SCREENCAP перед запуском screen. См. раздел «ВИРТУАЛЬНЫЙ ТЕРМИНАЛ» в этом руководстве и страницу руководства termcap(5) для получения дополнительной информации об определениях termcap.
time [строка]
Использует строку сообщений для отображения текущего времени, имени хоста и средних значений загрузки за 1, 5 и 15 минут (если это доступно в вашей системе). Для получения информации, специфичной для окна, используйте info.
Если указана строка, она изменяет формат отчета о времени, как описано в главе «СТРОКОВЫЕ ЭКРАНИРОВАНИЯ». По умолчанию screen использует формат "%c:%s %M %d %H%? %l%?".
title [имя_окна]
Устанавливает имя текущего окна равным имя_окна. Если имя не указано, screen запрашивает его. В предыдущих версиях эта команда называлась aka.
unbindall
Отменяет все привязки. Это может быть полезно, когда screen используется исключительно для его возможностей отсоединения, например, когда консольное приложение запускается как демон. Если по какой-либо причине необходимо привязать команды после этого, используйте screen -X.
unsetenv var
Отменяет установку переменной окружения.
utf8 [вкл. | выкл. [вкл. | выкл.]]
Изменяет кодировку, используемую в текущем окне. Если utf8 включен, строки, отправляемые в окно, будут кодироваться в UTF-8 и наоборот. Если параметр опущен, настройка переключается. Если указан второй параметр, также изменяется кодировка дисплея (это следует делать с помощью опции -U screen). См. также defutf8, которая изменяет настройку по умолчанию для нового окна.
vbell [вкл. | выкл.]
Устанавливает настройку визуального сигнала для этого окна. Если параметр опущен, настройка переключается. Если vbell включен, но ваш терминал не поддерживает визуальный сигнал, в строке состояния отображается сообщение vbell-message, когда получен символ сигнала (^G). Поддержка визуального сигнала терминала определяется переменной termcap vb (terminfo: flash).
По умолчанию, визуальный сигнал отключен, поэтому используется звуковой сигнал. См. также bell_msg.
vbell_msg [сообщение]
Устанавливает сообщение для визуального сигнала. Сообщение выводится в строку состояния, если окно получает символ сигнала (^G), визуальный сигнал включен, но терминал не поддерживает визуальный сигнал. Сообщение по умолчанию — Wuff, Wuff!!. Без параметров отображается текущее сообщение.
vbellwait сек
Определяет задержку в секундах после каждого отображения сообщения визуального сигнала экрана. По умолчанию — 1 секунда.
verbose [вкл | выкл]
Если verbose включен, имя команды выводится каждый раз, когда создается окно (или восстанавливается из состояния "зомби"). По умолчанию — выкл. Без параметров отображается текущая настройка.
version
Выводит текущую версию и дату компиляции в строке состояния.
wall сообщение
Отправляет сообщение на все дисплеи. Сообщение появится в строке состояния терминала.
width [-w|-d] [столбцы [строки]]
Переключает ширину окна между 80 и 132 столбцами или устанавливает ее на указанное количество столбцов, если указан аргумент. Это требует соответствующего терминала и записей termcap Z0 и Z1. См. команду termcap для получения дополнительной информации. Вы также можете указать новую высоту, если хотите изменить оба значения. Опция -w указывает screen оставить размер дисплея без изменений и просто установить размер окна, -d — наоборот.
windowlist [ -b ] [ -m ] [ -g ]
windowlist строка [строка]
windowlist заголовок [заголовок]
Отображает все окна в виде таблицы для визуального выбора окна. Если screen находился в группе окон, screen выйдет из группы, а затем отобразит окна в этой группе. Если указана опция -b, screen переключится на пустое окно перед отображением списка, чтобы текущее окно также можно было выбрать. Опция -m изменяет порядок окон; вместо сортировки по номерам окон screen использует свой внутренний список наиболее часто используемых окон. Опция -g отображает окна внутри любых групп на этом уровне и ниже.
Следующие клавиши используются для навигации в windowlist:
k, C-p или вверх Переместить на одну строку вверх.
j, C-n или вниз Переместить на одну строку вниз.
C-g или escape Выйти из `windowlist`.
C-a или home Переместить в первую строку.
C-e или end Переместить в последнюю строку.
C-u или C-d Переместить на полстраницы вверх или вниз.
C-b или C-f Переместить на полную страницу вверх или вниз.
.9 Используя цифровые клавиши, переместитесь в выбранную строку.
mouseclick Переместитесь в выбранную строку. Доступно, когда `mousetrack` установлено в `on`.
/ Поиск.
n Повторить поиск в прямом направлении.
N Повторить поиск в обратном направлении.
m Переключить MRU (Most Recently Used).
g Переключить вложенность групп.
a Вид всех окон.
C-h или backspace Вернуться из группы.
, Переключить номера с предыдущим окном.
. Переключить номера со следующим окном.
K Удалить это окно.
пробел или клавиша Enter — выбрать это окно.
Формат таблицы можно изменить с помощью опций string и title; title отображается как заголовок таблицы, а строки создаются с помощью настройки string. По умолчанию используются значения Num Name%=Flags для заголовка и %3n %t%=%f для строк. См. раздел «Символы экранирования строк» для получения дополнительной информации о кодах (например, настройки цветов).
Для отображения списка окон требуется, чтобы размер области составлял не менее 10 символов в ширину и 6 символов в высоту.
windows [ string ]
Использует строку сообщений для отображения списка всех окон. Каждое окно отображается по номеру с именем процесса, который был запущен в этом окне (или его заголовком); текущее окно помечено символом *; предыдущее окно помечено символом -; все окна, в которых выполнен вход в систему, помечены символом $; фоновое окно, которое получило сигнал, помечено символом !; фоновое окно, за которым ведется наблюдение и в котором происходили какие-либо действия, помечено символом @; окно, для которого включено ведение журнала вывода, помечено символом (L); окна, используемые другими пользователями, помечены символом &; окна в состоянии «зомби» помечены символом Z. Если этот список слишком длинный, чтобы поместиться в строке состояния терминала, отображается только часть списка вокруг текущего окна. Необязательный параметр string соответствует формату «Символы экранирования строк». Если передан параметр string, размер вывода не ограничен. Команда по умолчанию, без каких-либо параметров, ограничена размером 1024 байта.
wrap [ on | off ]
Устанавливает параметр переноса строк для текущего окна. Когда включен перенос строк, второй последовательный печатный символ в конце строки будет перенесен в начало следующей строки. В качестве дополнительной функции символ возврата на шаг назад (^H) также будет переносить текст через левый край на предыдущую строку. По умолчанию установлено значение on. Без каких-либо параметров состояние переноса строк переключается.
writebuf [-e encoding] [filename]
Записывает содержимое буфера обмена в указанный файл или в общедоступный файл обмена данными screen, если имя файла не указано. Это рассматривается как примитивное средство связи между пользователями screen на одном и том же хосте. Если указана кодировка, буфер обмена преобразуется в указанную кодировку на лету. Имя файла можно установить с помощью команды bufferfile, и по умолчанию используется /tmp/screen-exchange.
writelock [ on | off | auto]
В дополнение к спискам контроля доступа, не все пользователи могут одновременно иметь возможность записи в одно и то же окно. По умолчанию writelock находится в режиме auto и предоставляет эксклюзивное разрешение на ввод пользователю, который первым переключится в это окно. Когда он покидает окно, другие пользователи могут получить writelock (автоматически). Блокировка записи для текущего окна отключается командой writelock off. Если пользователь выполняет команду writelock on, он сохраняет эксклюзивное разрешение на запись при переключении на другие окна.
xoff
xon
Вставляет символ CTRL-s / CTRL-q в очередь stdin текущего окна.
zmodem [ off | auto | catch | pass ]
zmodem sendcmd [строка]
zmodem recvcmd [строка]
Определите поддержку zmodem для screen. Screen распознает два различных режима при обнаружении запроса zmodem: pass и catch. Если режим установлен на pass, screen будет передавать все данные в аттачер до завершения передачи. В режиме catch screen действует как конечная точка zmodem и запускает соответствующие команды rz/sz. Если режим установлен на auto, screen будет использовать режим catch, если окно является tty (например, последовательным портом), в противном случае он будет использовать режим pass.
Вы можете определить шаблоны, которые screen использует в режиме catch, с помощью второй и третьей форм.
Обратите внимание, что это экспериментальная функция.
zombie [клавиши[onerror]]
По умолчанию окна screen удаляются из списка окон, как только процесс окна (например, оболочка) завершается. Когда указана строка из двух клавиш для команды zombie, «мертвые» окна останутся в списке. Команда kill может быть использована для удаления таких окон. Нажатие первой клавиши в «мертвом» окне дает тот же эффект. При нажатии второй клавиши screen попытается «воскресить» окно. Процесс, который изначально выполнялся в окне, будет запущен снова.
Вызов zombie без параметров очистит настройку zombie, в результате чего окна будут исчезать при завершении их процесса.
Поскольку настройка zombie изменяется глобально для всех окон, эту команду, вероятно, следует называть defzombie, но это не так.
Опционально вы можете добавить слово onerror после клавиш. Это заставит screen отслеживать статус выхода процесса, работающего в окне. Если он завершается нормально («0»), окно исчезает. Любое другое значение выхода приводит к тому, что окно становится «мертвым».
zombie_timeout[секунды]
По умолчанию окна screen удаляются из списка окон, как только процесс окна (например, оболочка) завершается. Если определены клавиши zombie (см. вышеуказанную команду zombie), можно также установить тайм-аут, когда screen попытается автоматически переподключиться к «мертвому» окну screen.
СТРОКА СООБЩЕНИЙ
Screen отображает информационные сообщения и другие диагностические данные в строке сообщений. Хотя эта строка распределяется, чтобы отображаться в нижней части экрана, ее можно определить для отображения в верхней части экрана во время компиляции. Если ваш терминал имеет строку состояния, определенную в его termcap, screen будет использовать ее для отображения своих сообщений, в противном случае строка текущего экрана будет временно перезаписана, и вывод будет временно прерван. Строка сообщений автоматически удаляется после небольшой задержки, но ее также можно удалить раньше (на терминалах без строки состояния), начав ввод текста.
Функция строки сообщений может использоваться приложением, работающим в текущем окне, с помощью последовательности управления ANSI Privacy message. Например, из оболочки попробуйте что-то вроде:
echo '<esc>^Hello world from window '$WINDOW'<esc>\\'
где «<esc>» — это escape-символ, «^» — это литеральный символ «стрелка вверх», а «\' преобразуется в одинарную обратную косую черту.
ТИПЫ ОКON
Screen предоставляет три различных типа окон. Новые окна создаются с помощью команды screen (см. также раздел CUSTOMIZATION). Первый параметр команды screen определяет, какой тип окна будет создан. Все различные типы окон являются частными случаями типа normal. Они были добавлены для того, чтобы эффективно использовать screen в качестве консольного мультиплексора с 100 или более окнами.
Окно normal содержит оболочку (по умолчанию, если не указан параметр) или любую другую системную команду, которую можно выполнить из оболочки (например, slogin и т. д.).
Если имя tty (символьного специального устройства) (например, /dev/ttya) указано в качестве первого параметра, то окно напрямую подключается к этому устройству. Этот тип окна аналогичен screen cu -l /dev/ttya. Требуется доступ на чтение и запись к узлу устройства, выполняется попытка эксклюзивного открытия узла, чтобы пометить подключенную линию как занятую. Дополнительно можно указать параметр, состоящий из списка флагов, разделенных запятыми, в формате, используемом stty(1):
<baud_rate>
Обычно 300, 1200, 9600 или 19200. Это влияет на скорость передачи и приема.
cs8 или cs7
Указывает передачу восьми (или семи) бит на байт.
cstopb или -cstopb
Указывает два стоп-бита на символ (один с '-')
parenb или -parenb
Генерирует бит четности в выходном потоке и ожидает бит четности во входном потоке.
parodd или -parodd
Устанавливает нечетную четность (или четную четность с '-')
ixon или -ixon
Включает (или отключает) аппаратный контроль потока (CTRL-S/CTRL-Q) для отправки данных.
ixoff или -ixoff
Включает (или отключает) аппаратный контроль потока для приема данных.
istrip или -istrip
Очищает (или оставляет) восьмой бит в каждом полученном байте.
Вы можете указать как можно больше из этих параметров. Неуказанные параметры приводят к тому, что драйвер терминала определяет значения параметров соединения. Эти значения зависят от системы и могут быть значениями по умолчанию или значениями, сохраненными из предыдущего соединения.
Для окон tty команда info показывает некоторые из линий управления модемом в строке состояния. Они могут включать `RTS', `CTS', `DTR', `DSR', `CD' и другие. Это зависит от доступных ioctl() и системных заголовочных файлов, а также от физических возможностей последовательной платы. Сигналы, которые находятся в логическом низком (неактивном) состоянии, имеют свое имя, которому предшествует восклицательный знак (!), в противном случае сигнал находится в логическом высоком (активном) состоянии. Сигналы, которые не поддерживаются оборудованием, но доступны через интерфейс ioctl(), обычно отображаются в низком состоянии.
Когда установлен флаг состояния CLOCAL, весь набор сигналов модема помещается в фигурные скобки ({ и }). Когда установлен флаг CRTSCTS или TIOCSOFTCAR, сигналы `CTS' или `CD' отображаются в круглых скобках, соответственно.
Для окон tty команда break приводит к тому, что линия передачи данных (TxD) переходит в низкое состояние на указанный период времени. Предполагается, что это будет интерпретироваться как сигнал разрыва на другой стороне. При отправке сигнала break данные не отправляются, и ни одна линия управления модемом не меняется.
Если первый параметр — //telnet, то второй параметр должен быть именем хоста, а необязательный третий параметр может указывать номер TCP-порта (по умолчанию десятичное значение 23). Screen подключится к серверу, работающему на удаленном хосте, и будет использовать протокол Telnet для связи с этим сервером.
Для окон Telnet команда info отображает сведения о соединении в квадратных скобках ([ и ]) в конце строки состояния.
b BINARY. Соединение находится в двоичном режиме.
e ECHO. Локальное эхо отключено.
c SGA. Соединение находится в «символьном режиме» (по умолчанию: «строчный режим»).
t TTYPE. Удаленный хост запросил тип терминала. Screen отправляет имя `screen`, если не указано иное (см. также команду `term`).
w NAWS. Удаленный хост уведомляется об изменениях размера окна.
f LFLOW. Удаленный хост будет отправлять информацию об управлении потоком. (В данный момент игнорируется.)
Дополнительные флаги для отладки: x, t и n (XDISPLOC, TSPEED и NEWENV).
Для окон Telnet команда break отправляет код Telnet IAC BREAK (десятичное значение 243) на удаленный хост.
Этот тип окна доступен только в том случае, если Screen был скомпилирован с определенной опцией ENABLE_TELNET.
СТРОКОВЫЕ ПОДСТАНОВКИ
Screen предоставляет механизм подстановки для вставки информации, такой как текущее время, в сообщения или имена файлов. Символ подстановки — %, за исключением случая, когда внутри жесткого статуса окна используется ^% (^E).
Вот полный список поддерживаемых подстановок:
% сам символ подстановки
E устанавливает `%?` в `true`, если символ подстановки был нажат.
e кодировка
f флаги окна, см. раздел «Окна» для значений различных флагов
F устанавливает `%?` в `true`, если окно находится в фокусе
h жесткий статус окна
H имя хоста системы
n номер окна
P устанавливает `%?` в `true`, если текущая область находится в режиме копирования/вставки
S имя сессии
s размер окна
t заголовок окна
u все остальные пользователи в этом окне
w все номера и имена окон. С квалификатором `-`: до текущего окна; с квалификатором `+`: начиная со следующего окна после текущего.
W все номера и имена окон, кроме текущего
x выполняемая команда, включая аргументы, в этом окне
X выполняемая команда без аргументов, в этом окне
? часть до следующего `%?` отображается только в том случае, если подстановка `%` в этой части расширяется в непустую строку
: иначе часть `%?`
= заполнить строку до ширины дисплея (как `hfill` в TeX). Если указано число, заполнить до указанного процента от ширины окна. Квалификатор `0` указывает Screen обрабатывать число как абсолютную позицию. Можно указать заполнение относительно последней абсолютной позиции, добавив квалификатор `+`, или заполнение относительно правого края, используя `-`. Заполнение обрезает строку, если указанная позиция находится перед текущей позицией. Добавление квалификатора `L` изменит это поведение.
< аналогично '%=', но просто выполняет усечение, не заполняя пробелами
> помечает текущую позицию текста для следующего усечения. Когда экрану требуется выполнить усечение, он пытается сделать это таким образом, чтобы помеченная позиция перемещалась на указанный процент выходной области. (Область начинается с последней позиции абсолютного отступа и заканчивается
позицией, указанной оператором усечения). Квалификатор 'L' указывает экрану, что нужно
помечать усеченные части символом '...'.
{ строка-модификатор атрибутов/цвета, заканчивающаяся следующим символом }
` заменяет выходными данными команды, заключенной в обратные кавычки. Квалификатор длины используется не по назначению для
определения одной из команд.
Символы 'c' и 'C' могут быть дополнены '0', чтобы экран использовал ноль вместо пробела в качестве символа заполнения. Квалификатор '0' также заставляет символ '=' использовать абсолютные позиции. Символы 'n' и '=' понимают квалификатор длины (например, '%3n'), 'D' и 'M' могут быть дополнены 'L' для генерации длинных имен, 'w' и 'W' также отображают флаги окна, если указан 'L'.
Модификатор атрибутов/цветов используется для изменения настроек атрибутов или цветов. Его формат: [модификатор атрибутов] [описание цвета]. Модификатор атрибутов должен быть снабжен индикатором изменения, если его можно спутать с описанием цвета. Известны следующие типы изменений:
+ добавляет указанный набор к текущим атрибутам
- удаляет набор из текущих атрибутов
! инвертирует набор в текущих атрибутах
= изменяет текущие атрибуты на указанный набор
Набор атрибутов может быть указан либо в виде шестнадцатеричного числа, либо в виде комбинации следующих букв:
d тусклый
u подчеркнутый
b полужирный
r инвертированный
s /выделенный
B мигающий
Цвета кодируются либо в виде шестнадцатеричного числа, либо в виде двух букв, указывающих желаемый цвет фона и цвет текста (в этом порядке). Известны следующие цвета:
k черный
r красный
g зеленый
y желтый
b синий
m пурпурный
c голубой
w белый
d цвет по умолчанию
. оставить цвет без изменений
Заглавные версии букв указывают на яркие цвета. Вы также можете использовать псевдо-цвет 'i' для установки только яркости и оставить цвет без изменений. Однозначное описание цвета/буква рассматривается как цвет текста или цвет фона в зависимости от текущих атрибутов: если установлен режим инверсии, изменяется цвет фона вместо цвета текста. Если вам это не нравится, поставьте перед цветом '..'. Если вы хотите такое же поведение для двухбуквенных описаний цветов, также поставьте перед ними '..'.
В качестве особого случая, %{-} восстанавливает атрибуты и цвета, которые были установлены до последнего изменения (то есть выполняет откат на один уровень стека изменений цвета).
Примеры:
G установить цвет на ярко-зеленый
+b r использовать полужирный красный
= yd очистить все атрибуты, выводить обычным цветом на желтом фоне.
%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<
Доступные окна, центрированные относительно текущего окна и обрезанные до доступной ширины. Текущее окно отображается белым на синем фоне. Это можно использовать с hardstatus alwayslastline.
%?%F%{.R.}%?%3n %t%? [%h]%?
Номер и название окна, а также hardstatus окна, если он установлен. Также использовать красный фон, если это активное окно. Полезно для строки заголовка.
УПРАВЛЕНИЕ ПОТОКОМ
Каждое окно имеет настройку управления потоком, которая определяет, как screen обрабатывает символы XON и XOFF (и, возможно, символ прерывания). Когда управление потоком выключено, screen игнорирует символы XON и XOFF, что позволяет пользователю отправлять их текущей программе, просто вводя их (полезно, например, для редактора emacs). В этом случае вывод из обычной программы будет приостанавливаться при получении XOFF с некоторой задержкой. Когда управление потоком включено, символы XON и XOFF используются для немедленной приостановки вывода текущего окна. Вы все равно можете отправлять эти символы в текущую программу, но вам нужно использовать соответствующие двухсимвольные команды screen (обычно C-a q (xon) и C-a s (xoff)). Команды xon/xoff также полезны для ввода C-s и C-q в терминал, который перехватывает эти символы.
Каждое окно имеет начальное значение управления потоком, установленное либо с помощью опции -f, либо с помощью команды defflow в файле .screenrc. По умолчанию для окон установлено автоматическое переключение управления потоком. Его можно переключать между тремя состояниями: «фиксированное включение», «фиксированное выключение» и «автоматическое» с помощью команды flow, привязанной к «C-a f».
Автоматический режим переключения управления потоком использует режим TIOCPKT (как rlogin). Если драйвер tty не поддерживает TIOCPKT, screen пытается определить правильный режим на основе текущего состояния клавиши приложения — когда она включена, управление потоком выключается, и наоборот. Конечно, вы все равно можете вручную управлять управлением потоком, когда это необходимо.
Если вы работаете с включенным управлением потоком и обнаруживаете, что нажатие клавиши прерывания (обычно Cc) не прерывает отображение до тех пор, пока не прокрутится еще 6-8 строк, попробуйте запустить screen с опцией прерывания (добавьте флаг прерывания в команду flow в файле .screenrc или используйте опцию -i в командной строке). Это приводит к немедленному сбросу вывода, накопленного screen от прерванной программы. Недостатком является то, что в виртуальной памяти терминала остается версия вывода, которая не была сброшена, что в редких случаях может привести к незначительным неточностям в выводе. Например, если вы переключитесь на другой экран и вернетесь или обновите экран с помощью C-a l, вы увидите версию вывода, которую получили бы, если бы опция прерывания была отключена. Кроме того, вам может потребоваться отключить управление потоком (или использовать автоматический режим, чтобы отключить его автоматически), когда вы запускаете программу, которая ожидает, что вы введете символ прерывания, поскольку возможно прервать вывод виртуального терминала на ваш физический терминал, когда управление потоком включено. Если это произойдет, простое обновление экрана с помощью C-a l восстановит его. Попробуйте каждый режим и используйте тот, который вам больше всего подходит.
ЗАГОЛОВКИ (именование окон)
Вы можете настроить имя каждого окна в дисплее окна (который просматривается с помощью команды windows (C-a w)), установив его с помощью одной из команд заголовков. Обычно отображаемое имя — это фактическое имя команды программы, созданной в окне. Однако иногда бывает полезно различать различные программы с одним и тем же именем или изменять имя на лету, чтобы отразить текущее состояние окна.
Имя по умолчанию для всех окон оболочки можно задать с помощью команды shelltitle в файле .screenrc, а все остальные окна создаются с помощью команды screen, и поэтому их имя можно задать с помощью опции -t. В интерактивном режиме существует последовательность экранирования title-string (<esc>kname<esc>) и команда title (C-a A). Первая может выводиться приложением для управления именем окна под программным управлением, а вторая будет запрашивать имя при вводе. Вы также можете привязать предопределенные имена к клавишам с помощью команды title, чтобы быстро задавать их без запроса. Изменение заголовка с помощью этой последовательности экранирования можно контролировать с помощью команд defdynamictitle и dynamictitle.
Наконец, у screen есть специфичная для оболочки эвристика, которая включается путем установки имени окна в значение search|name и настройки таким образом, чтобы в качестве части вашей строки приглашения выводилась последовательность экранирования null title (<esc>k<esc>). Часть search указывает строку поиска конца приглашения, а часть name указывает имя оболочки по умолчанию для окна. Если имя заканчивается на :, screen будет добавлять то, что, по его мнению, является текущей выполняемой командой в окне, в конец имени оболочки окна (например, name:cmd). В противном случае текущее имя команды заменяет имя оболочки во время выполнения.
Вот как это работает: вам нужно изменить строку приглашения вашей оболочки, чтобы она выводила последовательность экранирования null title (<esc>k<esc>) как часть приглашения. Последняя часть вашего приглашения должна быть такой же, как строка, которую вы указали для части search заголовка. После этого screen будет использовать последовательность экранирования title-escape для очистки предыдущего имени команды и подготовки к следующей команде. Затем, когда от оболочки будет получен символ новой строки, будет выполнен поиск конца приглашения. Если он будет найден, screen извлечет первое слово после совпадающей строки и будет использовать его в качестве имени команды. Если имя команды начинается с любого из символов !, % или ^, screen будет использовать первое слово в следующей строке (если она найдена) вместо только что найденного имени. Это помогает пользователям csh получать лучшие имена команд при использовании команд управления заданиями или восстановления истории.
Вот несколько примеров для файла .screenrc:
screen -t top 2 nice top
Добавление этой строки в файл .screenrc запустит команду top с измененным приоритетом в окне номер 2, которое будет названо top, а не nice.
shelltitle '> |csh'
screen 1
Эти команды запустят оболочку с указанным заголовком. Указанный заголовок является автоматическим заголовком, который предполагает, что приглашение и введенная команда будут выглядеть следующим образом:
/usr/joe/src/dir> trn
(Оно смотрит после > для имени команды). Во время выполнения команды статус окна будет отображать имя trn, а после завершения – просто csh.
bind R screen -t '% |root:' su
Если эта команда будет в вашем файле .screenrc, то последовательность клавиш C-a R будет привязана к команде su и ей будет присвоено автоматическое имя root:. Чтобы этот автоматический заголовок работал, в окне должно быть что-то вроде этого:
% !em
emacs file.c
Здесь пользователь ввел команду истории csh !em, которая запустила ранее введенную команду emacs. Во время выполнения команды статус окна будет показывать root:emacs, а после завершения – просто root:.
bind o title
bind E title ""
bind u title (unknown)
Первая привязка не имеет аргументов, поэтому она будет запрашивать заголовок при нажатии C-a o. Вторая привязка очистит текущую установку автоматического заголовка (C-a E). Третья привязка установит заголовок текущего окна на (unknown) (C-a u).
Важно помнить, что при добавлении последовательности символов для очистки заголовка в приглашение оболочки, некоторые оболочки (например, csh) считают все неконтрольные символы частью длины приглашения. Если эти невидимые символы не являются кратным 8, то при нажатии клавиши Backspace после символа табуляции отображение будет некорректным. Один из способов решения этой проблемы – использовать следующее приглашение:
set prompt='^[[0000m^[k^[\% '
Последовательность ^[[0000m не только нормализует атрибуты символов, но и округляет длину невидимых символов до 8. Пользователям Bash, вероятно, потребуется вывести эту последовательность в PROMPT_COMMAND:
PROMPT_COMMAND='printf "\033k\033\134"'
(Я использовал \134 для вывода символа `\' из-за ошибки в bash v1.04).
ВИРТУАЛЬНЫЙ ТЕРМИНАЛ
Каждое окно в сеансе screen эмулирует VT100-совместимый терминал с некоторыми дополнительными функциями. Эмулятор VT100 является жестко заданным, другие типы терминалов не могут эмулироваться. Обычно screen пытается эмулировать как можно больше стандартов VT100/ANSI. Но если ваш терминал не поддерживает определенные функции, эмуляция может быть не полной. В этих случаях screen должен сообщить приложениям, что некоторые функции отсутствуют. Это не является проблемой на машинах, использующих termcap, потому что screen может использовать переменную $TERMCAP для настройки стандартного termcap screen.
Но если вы выполняете rlogin на другой машине или ваша машина поддерживает только terminfo, этот метод не работает. Из-за этого screen предлагает способ решения этих случаев. Вот как это работает:
Когда screen пытается определить имя терминала для себя, сначала он ищет запись с именем screen.<term>, где <term> – содержимое вашей переменной $TERM. Если такой записи нет, screen пытается использовать screen (или screen-w, если терминал широкий (132 столбца или больше)). Если даже эта запись не найдена, в качестве замены используется vt100.
Идея заключается в том, что если у вас есть терминал, который не поддерживает важную функцию (например, удаление символа или очистку до конца строки), вы можете создать новую запись termcap/terminfo для screen (с именем screen.<dumbterm>), в которой эта функция будет отключена. Если эта запись установлена на ваших машинах, вы сможете выполнить rlogin и при этом сохранить правильную запись termcap/terminfo. Имя терминала помещается в переменную $TERM для всех новых окон. Screen также устанавливает переменную $TERMCAP, отражающую возможности эмулируемого виртуального терминала. Обратите внимание, что на машинах, использующих базу данных terminfo, эта переменная не имеет никакого эффекта. Кроме того, устанавливается переменная $WINDOW, содержащая номер окна.
Фактический набор возможностей, поддерживаемых виртуальным терминалом, зависит от возможностей, поддерживаемых физическим терминалом. Например, если физический терминал не поддерживает режим подчеркивания, screen не помещает возможности us и ue в переменную $TERMCAP для данного окна. Однако, для работы screen терминал должен поддерживать минимальный набор возможностей: прокрутку, очистку экрана и прямое адресование курсора (в дополнение к этому, screen не работает на терминалах, предназначенных для печати, или на терминалах, которые выполняют перезапись).
Вы также можете настроить значение $TERMCAP, используемое screen, с помощью команды termcap .screenrc или путем определения переменной $SCREENCAP перед запуском. В последнем случае ее значение будет скопировано дословно в переменную $TERMCAP для каждого окна. Это может быть либо полное определение терминала, либо имя файла, в котором определен терминал screen (и/или screen-w).
Обратите внимание, что screen учитывает команду terminfo .screenrc, если в системе используется база данных terminfo, а не termcap.
Если в записи termcap для терминала, на котором запущен screen, присутствует логическая возможность G0, эмуляция терминала screen поддерживает несколько наборов символов. Это позволяет приложению использовать, например, графический набор символов VT100 или национальные наборы символов. Поддерживаются следующие управляющие функции из ISO 2022: фиксация сдвига G0 (SI), фиксация сдвига G1 (SO), фиксация сдвига G2, фиксация сдвига G3, одиночный сдвиг G2 и одиночный сдвиг G3. При создании или сбросе виртуального терминала набор символов ASCII назначается как G0–G3. Если присутствует возможность G0, screen оценивает возможности S0, E0 и C0, если они присутствуют. S0 — это последовательность, которую терминал использует для включения и запуска графического набора символов вместо SI. E0 — это соответствующая замена SO. C0 предоставляет строку перевода символ за символом, которая используется во время режима полуграфики. Эта строка строится аналогично возможности acsc в terminfo.
Если в записи termcap терминала присутствуют возможности po и pf, приложения, работающие в окне screen, могут отправлять вывод на принтерный порт терминала. Это позволяет пользователю запускать приложение в одном окне, которое отправляет вывод на принтер, подключенный к терминалу, в то время как все остальные окна остаются активными (принтерный порт включается и выключается для каждого блока вывода). Как побочный эффект, программы, работающие в разных окнах, могут одновременно отправлять вывод на принтер. Данные, отправленные на принтер, не отображаются в окне. Команда info отображает строку, начинающуюся с PRIN, когда принтер активен.
Screen поддерживает строку состояния для каждого окна. При выборе окна строка состояния дисплея обновляется, чтобы соответствовать строке состояния окна. Если у дисплея нет строки состояния, строка будет отображаться как стандартное сообщение screen. Строку состояния можно изменить с помощью ANSI Application Program Command (APC): ESC_<string>ESC. В качестве удобства для пользователей xterm также принимается последовательность ESC]0..2;<string>^G.
Некоторые возможности помещаются в переменную $TERMCAP виртуального терминала только в том случае, если их можно эффективно реализовать на физическом терминале. Например, dl (удалить строку) помещается в переменную $TERMCAP только в том случае, если терминал поддерживает либо удаление строки, либо прокрутку регионов. Обратите внимание, что это может вызвать путаницу, когда сеанс повторно подключается к другому терминалу, поскольку значение $TERMCAP не может быть изменено родительскими процессами.
Возможность «альтернативный экран» по умолчанию не включена. Установите команду altscreen .screenrc, чтобы включить ее.
Ниже приведен список управляющих последовательностей, распознаваемых screen. (V) и (A) обозначают функции, специфичные для VT100 и ANSI или ISO соответственно.
ESC E Следующая строка
ESC D Индекс
ESC M Обратный индекс
ESC H Установка горизонтальной табуляции
ESC Z Отправка строки идентификации VT100
ESC 7 (V) Сохранить курсор и атрибуты
ESC 8 (V) Восстановить курсор и атрибуты
ESC [s (A) Сохранить курсор и атрибуты
ESC [u (A) Восстановить курсор и атрибуты
ESC c Сброс до начального состояния
ESC g Визуальный звонок
ESC Pn p Видимость курсора (97801)
Pn = 6 Невидимый
Pn = 7 Видимый
ESC = (V) Режим клавиатуры приложений
ESC > (V) Режим цифровой клавиатуры
ESC # 8 (V) Заполнить экран символами E
ESC \ (A) Строковый терминатор
ESC ^ (A) Строка конфиденциального сообщения (строка сообщений)
ESC ! Глобальная строка сообщения (строка сообщения)
ESC k Альтернативная строка определения
ESC P (A) Строка управления устройством. Выводит строку непосредственно на терминал хоста
без интерпретации.
ESC _ (A) Команда приложения (статус-строка)
ESC ] 0 ; string ^G (A) Команда операционной системы (статус-строка, хак для заголовка xterm)
ESC ] 83 ; cmd ^G (A) Выполнить команду screen. Это работает только в том случае, если поддержка многопользовательского режима скомпилирована в screen. Псевдопользователь :window: используется для проверки списка управления доступом. Используйте addacl :window: -rwx #? для создания пользователя
без прав и предоставления только необходимых команд.
Control-N (A) Заблокировать Shift G1 (SO)
Control-O (A) Заблокировать Shift G0 (SI)
ESC n (A) Заблокировать Shift G2
ESC o (A) Заблокировать Shift G3
ESC N (A) Одиночный Shift G2
ESC O (A) Одиночный Shift G3
ESC ( Pcs (A) Определить набор символов как G0
ESC ) Pcs (A) Определить набор символов как G1
ESC * Pcs (A) Определить набор символов как G2
ESC + Pcs (A) Определить набор символов как G3
ESC [ Pn ; Pn H Прямое адресирование курсора
ESC [ Pn ; Pn f то же самое, что и выше
ESC [ Pn J Стереть на дисплее
Pn = None или 0 От курсора до конца экрана
Pn = 1 От начала экрана до курсора
Pn = 2 Весь экран
ESC [ Pn K Стереть в строке
Pn = None или 0 От курсора до конца строки
Pn = 1 От начала строки до курсора
Pn = 2 Вся строка
ESC [ Pn X Стереть символ
ESC [ Pn A Курсор вверх
ESC [ Pn B Курсор вниз
ESC [ Pn C Курсор вправо
ESC [ Pn D Курсор влево
ESC [ Pn E Курсор на следующую строку
ESC [ Pn F Курсор на предыдущую строку
ESC [ Pn G Курсор на горизонтальную позицию
ESC [ Pn ` то же самое, что и выше
ESC [ Pn d Курсор на вертикальную позицию
ESC [ Ps ;...; Ps m Выбрать графическую отрисовку
Ps = None или 0 Отрисовка по умолчанию
Ps = 1 Жирный шрифт
Ps = 2 (A) Слабый шрифт
Ps = 3 (A) Режим выделения (ANSI: курсив)
Ps = 4 Подчеркнутый
Ps = 5 Мигающий
Ps = 7 Инвертированное изображение
Ps = 22 (A) Нормальная интенсивность
Ps = 23 (A) Режим выделения отключен (ANSI: курсив отключен)
Ps = 24 (A) Не подчеркнутый
Ps = 25 (A) Не мигающий
Ps = 27 (A) Обычное изображение
Ps = 30 (A) Цвет переднего плана: черный
Ps = 31 (A) Цвет переднего плана: красный
Ps = 32 (A) Цвет переднего плана: зеленый
Ps = 33 (A) Цвет переднего плана: желтый
Ps = 34 (A) Цвет переднего плана: синий
Ps = 35 (A) Цвет переднего плана: пурпурный
Ps = 36 (A) Цвет переднего плана: голубой
Ps = 37 (A) Цвет переднего плана: белый
Ps = 39 (A) Цвет переднего плана: по умолчанию
Ps = 40 (A) Цвет фона: черный
Ps = ...
Ps = 49 (A) Цвет фона: по умолчанию
ESC [ Pn g Очистить табуляцию
Pn = None или 0 Очистить табуляцию в текущей позиции
Pn = 3 Очистить все табуляции
ESC [ Pn ; Pn r (V) Установить область прокрутки
ESC [ Pn I (A) Горизонтальная табуляция
ESC [ Pn Z (A) Обратная табуляция
ESC [ Pn L (A) Вставить строку
ESC [ Pn M (A) Удалить строку
ESC [ Pn @ (A) Вставить символ
ESC [ Pn P (A) Удалить символ
ESC [ Pn S Прокрутить область прокрутки вверх
ESC [ Pn T Прокрутить область прокрутки вниз
ESC [ Pn ^ то же самое, что и выше
ESC [ Ps ;...; Ps h Установить режим
ESC [ Ps ;...; Ps l Сбросить режим
Ps = 4 (A) Режим вставки
Ps = 20 (A) Автоматический перенос строки
Ps = 34 Обычная видимость курсора
Ps = ?1 (V) Курсорные клавиши приложения
Ps = ?3 (V) Изменить ширину терминала до 132 столбцов
Ps = ?5 (V) Инверсия цветов
Ps = ?6 (V) Режим начала координат
Ps = ?7 (V) Режим переноса строки
Ps = ?9 Отслеживание мыши X10
Ps = ?25 (V) Видимый курсор
Ps = ?47 (V) Альтернативный экран (старый код xterm)
Ps = ?1000 (V) Отслеживание мыши VT200
Ps = ?1047 Альтернативный экран (новый код xterm)
Ps = ?1049 Альтернативный экран (новый код xterm)
ESC [ 5 i (A) Начать ретрансляцию на принтер (ANSI Media Copy)
ESC [ 4 i (A) Остановить ретрансляцию на принтер (ANSI Media Copy)
ESC [ 8 ; Ph ; Pw t Изменить размер окна до `Ph' строк и `Pw' столбцов (специфика SunView)
ESC [ c Отправить строку идентификации VT100
ESC [ x Отправить отчет о параметрах терминала
ESC [ > c Отправить строку атрибутов вторительного устройства VT220
ESC [ 6 n Отправить отчет о позиции курсора
ОБРАБОТКА ВХОДНЫХ ДАННЫХ
Чтобы обеспечить полную эмуляцию VT100, экран должен обнаруживать, что последовательность символов во входном потоке была сгенерирована нажатием клавиши на клавиатуре пользователя, и вставлять соответствующую последовательность управляющих символов VT100. Screen имеет очень гибкий способ сделать это, позволяя назначить произвольные команды произвольным последовательностям символов. Для стандартной эмуляции VT100 команда всегда будет вставлять строку в буфер ввода окна (см. также команду в таблице команд). Поскольку последовательности, генерируемые нажатием клавиши, могут измениться после повторного подключения от другого типа терминала, можно привязывать команды к имени termcap клавиш. Screen будет вставлять правильную привязку после каждого повторного подключения. См. команду bindkey для получения дополнительной информации о синтаксисе и примерах.
Вот таблица стандартных привязок клавиш. Четвертый столбец указывает, какая команда выполняется при переключении клавиатуры в режим приложения.
┌─────────────────┬──────────────┬──────────┬──────────┐
│ Имя клавиши │ Termcap имя │ Команда │ Режим прил. │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Курсор вверх │ ku │ \033[A │ \033OA │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Курсор вниз │ kd │ \033[B │ \033OB │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Курсор вправо │ kr │ \033[C │ \033OC │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Курсор влево │ kl │ \033[D │ \033OD │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 0 │ k0 │ \033[10~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 1 │ k1 │ \033OP │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 2 │ k2 │ \033OQ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 3 │ k3 │ \033OR │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 4 │ k4 │ \033OS │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 5 │ k5 │ \033[15~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 6 │ k6 │ \033[17~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 7 │ k7 │ \033[18~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 8 │ k8 │ \033[19~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 9 │ k9 │ \033[20~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 10│ k; │ \033[21~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 11│ F1 │ \033[23~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Функциональная клавиша 12│ F2 │ \033[24~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Home │ kh │ \033[1~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ End │ kH │ \033[4~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Insert │ kI │ \033[2~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Delete │ kD │ \033[3~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Page up │ kP │ \033[5~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Page down │ kN │ \033[6~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 0 │ f0 │ 0 │ \033Op │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 1 │ f1 │ 1 │ \033Oq │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 2 │ f2 │ 2 │ \033Or │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 3 │ f3 │ 3 │ \033Os │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 4 │ f4 │ 4 │ \033Ot │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 5 │ f5 │ 5 │ \033Ou │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 6 │ f6 │ 6 │ \033Ov │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 7 │ f7 │ 7 │ \033Ow │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 8 │ f8 │ 8 │ \033Ox │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша 9 │ f9 │ 9 │ \033Oy │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша + │ f+ │ + │ \033Ok │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша - │ f- │ - │ \033Om │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша \* │ f\* │ \* │ \033Oj │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша / │ f/ │ / │ \033Oo │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша = │ fq │ = │ \033OX │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша . │ f. │ . │ \033On │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша , │ f, │ , │ \033Ol │
├─────────────────┼──────────────┼──────────┼──────────┤
│ Клавиатурная клавиша Enter │ fe │ \015 │ \033OM │
└─────────────────┴──────────────┴──────────┴──────────┘
СПЕЦИАЛЬНЫЕ ВОЗМОЖНОСТИ ТЕРМИНАЛА
В следующей таблице описываются все возможности терминала, которые распознаются программой screen и не указаны в руководстве termcap(5). Вы можете поместить эти возможности в записи termcap (в файле /etc/termcap) или использовать их с командами termcap, terminfo и termcapinfo в файлах screenrc. Часто невозможно поместить эти возможности в базу данных terminfo.
LP (bool) Терминал поддерживает VT100-подобные поля (`магические поля`). Обратите внимание, что эта возможность устарела, поскольку screen использует стандартную возможность `xn`.
Z0 (str) Изменить ширину на 132 столбца.
Z1 (str) Изменить ширину на 80 столбцов.
WS (str) Изменить размер дисплея. Эта возможность принимает желаемую ширину и высоту в качестве аргументов. Пример для SunView(tm): `\E[8;%d;%dt`.
NF (bool) Терминалу не требуется управление потоком. Отправлять символы ^S и ^Q непосредственно в приложение. То же, что и `отключение управления потоком`. Противоположность этой возможности — `nx`.
G0 (bool) Терминал может обрабатывать последовательности выбора шрифта ISO 2022.
S0 (str) Переключить набор символов `G0` на указанный набор символов. По умолчанию `\E(%.`.
E0 (str) Переключить набор символов `G0` обратно на стандартный набор символов. По умолчанию `\E(B`.
C0 (str) Использовать строку в качестве таблицы преобразования для шрифта '0'. См. описание параметра 'ac' для получения дополнительной информации.
CS (str) Переключить клавиши курсора в режим приложения.
CE (str) Вернуть клавиши курсора в нормальный режим.
AN (bool) Включить автоматическое уничтожение. См. команду 'autonuke' для получения дополнительной информации.
OL (num) Установить лимит выходного буфера. См. команду 'obuflimit' для получения дополнительной информации.
KJ (str) Установить кодировку терминала. См. команду 'encoding' для получения списка допустимых кодировок.
AF (str) Изменить цвет символов переднего плана в соответствии со стандартом ANSI. Этот параметр почти всегда будет установлен в '\E[3%dm' ('\E[3%p1%dm' для терминалов terminfo).
AB (str) То же, что и 'AF', но изменить цвет фона.
AX (bool) Поддерживает ли терминал ANSI-последовательности для установки цвета переднего и заднего плана по умолчанию (\E[39m / \E[49m).
XC (str) Описывает преобразование символов в строки в зависимости от текущего шрифта. Подробности приведены в следующем разделе.
XT (bool) Терминал понимает специальные последовательности Xterm (OSC, отслеживание мыши).
C8 (bool) Терминалу необходимо использовать полужирный шрифт для отображения цветов высокой интенсивности (например, Eterm).
TF (bool) Добавить недостающие параметры в запись termcap/info. (Устанавливается по умолчанию).
ПРЕОБРАЗОВАНИЕ СИМВОЛОВ
Screen имеет мощный механизм для преобразования символов в произвольные строки в зависимости от текущего шрифта и типа терминала. Используйте эту функцию, если вы хотите работать с общим стандартным набором символов (например, ISO8851-latin1), даже на терминалах, которые распределяют более необычные символы по нескольким национальным языковым страницам шрифтов.
Синтаксис:
XC=<charset-mapping>{,,<charset-mapping>}
<charset-mapping> := <designator><template>{,<mapping>}
<mapping> := <char-to-be-mapped><template-arg>
Элементы в фигурных скобках могут повторяться любое количество раз.
<charset-mapping> сообщает Screen, как преобразовывать символы в шрифте <designator> ('B': ASCII, 'A': UK, 'K': German и т. д.) в строки. Каждая <mapping> описывает, в какую строку будет преобразован отдельный символ. Используется механизм шаблонов, поскольку чаще всего коды имеют много общего (например, строки для переключения в другой набор символов и из него). Каждое вхождение '%' в <template> заменяется на <template-arg>, указанный вместе с символом. Если ваши строки совсем не похожи друг на друга, используйте '%' в качестве шаблона и поместите полную строку в <template-arg>. Добавлен механизм цитирования, чтобы можно было использовать реальный символ '%'. Символ '\\' экранирует специальные символы '\\', '%', и ','.
Вот пример:
termcap hp700 'XC=B\E(K%\E(B,\304[,\326\\\\,\334]'
Это сообщает Screen, как преобразовывать символы ISOlatin1 (набор символов 'B') с умлаутами в верхнем регистре на терминале hp700, который имеет немецкий набор символов. '\304' преобразуется в '\E(K[\E(B' и так далее. Обратите внимание, что эта строка анализируется трижды, прежде чем будет создана внутренняя таблица поиска, поэтому требуется много цитирования, чтобы создать один символ '\'.
Добавлено еще одно расширение, позволяющее обеспечить большую эмуляцию: если преобразование отображает незащищенный символ '%', он будет отправлен на терминал каждый раз, когда Screen переключается на соответствующий <designator>. В этом специальном случае предполагается, что шаблон представляет собой просто '%' , поскольку последовательность переключения набора символов и сопоставления символов обычно не имеют много общего.
В этом примере показано одно из применений расширения:
termcap xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334'
Здесь часть немецкого набора символов ('K') эмулируется для терминала xterm. Если screen необходимо переключиться на набор символов 'K', то в терминал будет отправлено сообщение '\E(B', то есть будет использоваться набор символов ASCII. Шаблон — это просто '%', поэтому сопоставление простое: '[' соответствует '\304', '\' соответствует '\326', а ']' соответствует '\334'.
ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ
COLUMNS Количество столбцов на терминале (переопределяет запись termcap).
HOME Каталог, в котором следует искать файл .screenrc.
LINES Количество строк на терминале (переопределяет запись termcap).
LOCKPRG Программа блокировки экрана.
NETHACKOPTIONS Включает опцию nethack.
PATH Используется для поиска программ для запуска.
SCREENCAP Для настройки значения TERMCAP терминала.
SCREENDIR Альтернативный каталог сокетов.
SCREENRC Альтернативный файл screenrc пользователя.
SHELL Программа оболочки по умолчанию для открытия окон (по умолчанию /bin/sh). См. также команду .screenrc.
STY Альтернативное имя сокета.
SYSSCREENRC Альтернативный системный файл screenrc.
TERM Имя терминала.
TERMCAP Описание терминала.
WINDOW Номер окна при создании.
ФАЙЛЫ
.../screen-4.?.??/etc/screenrc
.../screen-4.?.??/etc/etcscreenrc Примеры в пакете распространения screen для личных и глобальных файлов инициализации.
$SYSSCREENRC
/etc/screenrc Команды инициализации экрана
$SCREENRC
$HOME/.screenrc Считывается после /etc/screenrc
$SCREENDIR/S-<имя_пользователя>
/run/screen/S-<имя_пользователя> Каталоги сокетов (по умолчанию)
/usr/tmp/screens/S-<имя_пользователя> Альтернативные каталоги сокетов.
<каталог_сокетов>/.termcap Записывается функцией вывода "termcap"
/usr/tmp/screens/screen-exchange или
/tmp/screen-exchange Буфер межпроцессного взаимодействия screen
hardcopy.[0-9] Изображения экрана, созданные функцией hardcopy
screenlog.[0-9] Файлы журналов вывода, созданные функцией log
/usr/lib/terminfo/?/* или
/etc/termcap Базы данных возможностей терминала
/run/utmp Записи входа в систему
$LOCKPRG Программа, которая блокирует терминал.
АВТОРЫ
Первоначально создан Оливером Лауманном. Долгое время поддерживался и разрабатывался Юргеном Вайгертом, Михаэлем Шрёдером, Майклом Кованом и Садрулом Хабибом Чоудхури. С 2015 года поддерживается и разрабатывается Амадеушем Славинским <_> и Александром Наумовым <_>.
COPYRIGHT
Copyright (c) 2018-2023 Александр Наумов <_> Амадеуш Славинский <_> Copyright (c) 2015-2017 Юрген Вайгерт <_> Александр Наумов <_> Амадеуш Славинский <_> Copyright (c) 2010-2015 Юрген Вайгерт <_> Садрул Хабиб Чоудхури <_> Copyright (c) 2008, 2009 Юрген Вайгерт <_> Михаэль Шрёдер <_> Майкл Кован <_> Садрул Хабиб Чоудхури <_> Copyright (C) 1993-2003 Юрген Вайгерт <_> Михаэль Шрёдер <_> Copyright (C) 1987 Оливер Лауманн
Эта программа является свободным программным обеспечением; вы можете распространять и/или изменять ее в соответствии с условиями лицензии GNU General Public License, опубликованной Free Software Foundation; либо версии 3, либо (по вашему выбору) любой более поздней версии. Эта программа распространяется в надежде, что она будет полезна, но БЕЗ ЛЮБЫХ ГАРАНТИЙ; даже без подразумеваемой гарантии КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Подробности смотрите в GNU General Public License. Вы должны были получить копию GNU General Public License вместе с этой программой (см. файл COPYING); если нет, напишите в Free Software Foundation, Inc., 59 Temple Place - Suite 330 Boston, MA 02111-1307, USA.
УЧАСТНИКИ
Vincent Lefevre <_>, Carl Drougge <_>, Maarten ter Huurne <_>, Jussi Kukkonen <_>, Eric S. Raymond <_>, Thomas Renninger <_>, Axel Beckert <_>, Ken Beal <_>, Rudolf Koenig <_>, Toerless Eckert <_>, Wayne Davison <_>, Patrick Wolfe <_>, Bart Schaefer <_>, Nathan Glasser <_>, Larry W. Virden <_>, Howard Chu <_>, Tim MacKenzie <_>, Markku Jarvinen <_>, Marc Boucher <_>, Doug Siebert <_>, Ken Stillson <_>, Ian Frechett <_>, Brian Koehmstedt <_>, Don Smith <_>, Frank van der Linden <_>, Martin Schweikert <_>, David Vrona <_>, E. Tye McQueen <_>, Matthew Green <_>, Christopher Williams <_>, Matt Mosley <_>, Gregory Neil Shapiro <_>, Johannes Zellner <_>, Pablo Averbuj <_>.
ДОСТУПНОСТЬ
Последняя официальная версия screen доступна для анонимной загрузки с ftp.gnu.org/gnu/screen/ или с любого другого сайта распространения GNU. Домашняя страница screen — https://savannah.gnu.org/projects/screen/, а репозиторий Git — https://git.savannah.gnu.org/cgit/screen.git. Если вы хотите помочь, отправьте сообщение на _.
ОШИБКИ
^ m' (режим удаления) иxs' обрабатываются некорректно (они игнорируются). `xn' рассматривается как индикатор магической границы.
Screen не знает о символах двойной высоты или двойной ширины. Но это единственная область, в которой vttest может давать сбои.
Невозможно изменить переменную окружения $TERMCAP при повторном подключении к другому типу терминала.
Поддержка систем на основе terminfo очень ограничена. Добавление дополнительных возможностей в $TERMCAP может не оказывать никакого эффекта.
Screen не использует аппаратные табуляции.
Screen должен быть установлен с правами set-uid с владельцем root в большинстве систем, чтобы иметь возможность правильно изменять владельца файла устройства tty для каждого окна. Также могут потребоваться специальные разрешения для записи в файл /run/utmp.
Записи в /run/utmp не удаляются, когда screen завершается с помощью SIGKILL. Это приведет к тому, что некоторые программы (например, "w" или "rwho") будут сообщать, что пользователь вошел в систему, хотя это и не так.
Экран может выдавать странное предупреждение, когда у вашей tty нет записи в utmp.
Когда модем отключен, screen может не отсоединяться (или не завершать работу) автоматически, если драйвер устройства не настроен на отправку сигнала HANGUP. Чтобы отсоединить сессию screen, используйте опции командной строки -D или -d.
Если установлен пароль, опции командной строки -d и -D все равно отсоединяют сессию без запроса.
Обе опции breaktype и defbreaktype изменяют метод генерации прерываний, используемый всеми терминальными устройствами. Первая должна изменять специфичную для окна настройку, в то время как вторая должна изменять только значение по умолчанию для новых окон.
При подключении к многопользовательской сессии файл .screenrc пользователя не загружается. Персональные настройки каждого пользователя должны быть включены в файл .screenrc, из которого запускается сессия, или должны быть изменены вручную.
Наиболее полезно иметь богатое воображение, чтобы в полной мере использовать все возможности.
Отправляйте сообщения об ошибках, исправления, улучшения, футболки, деньги, пиво и пиццу сюда: _.
СМОТРИТЕ ТАКЖЕ
termcap(5), utmp(5), vi(1), captoinfo(1), tic(1), tty(4), pty(7)