Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> менеджер окон screen

менеджер окон screen

Автор: Al.


Есть такая забавная программка - называется screen. Вкратце, суть ее в том,что позволяет в одном терминале запускать несколько интерактивных шелл-процессов и переключаться между ними. Например, надо одновременно почитать логи и следить за загрузкой удаленного сервера. В данной случае вместо открытия двух ssh окон мы открываем одно и запускаем в нем screen. В скрине запускаем два шела - в одном,например,тор, в другом - тейл. И переключаемся между ними посредством сочетания клавиш.
Кого заинтересовало, ставим
Port:   screen-4.0.3_5
Path:   /usr/ports/sysutils/screen
Info:   A multi-screen window manager
Maint:  cy@FreeBSD.org
B-deps:
R-deps:
WWW:    http://www.gnu.org/software/screen/

не забываем rehash, кто под csh, и пробуем.
[mx1:/usr/ports]#screen  

Видим краткое описание. Читаем,кому надо, и жмем enter.
Все. Перед нами наш шелл. На первый взгляд ничем не отличается от того,что было.
Дальше под с-а понимается одновременное нажатие Ctrl+a.
Запускаем в нем,например,top.
Жмем с-а, затем с
Появляется чистенький шелл. Запускаем в нем,например, tail -f /var/log/maillog.
И переключаемся между шелами с-а, затем p
Чтобы закрыть текущий сеанс, жмем с-а, затем k.
Бывает, что надо,например, запустить собираться что-нть на работе вечером, а придя домой посмотреть процесс.
Запускаем сборку в screen, затем жмем с-а и d. Мы отключились от скрина, но сам скрин и программы  продолжают работать. Закрываем ssh и идем домой. Дома набираем screen -r и мы попадаем в шелл, в котором поставили на сборку пакеты.

теперь ключи запуска  screen

-a Включить ВСЕ возможности (с некоторыми незначительными исключениями) в каждом окне, даже если screen     должен перерисовать часть экрана для применения функции.
-A  адаптирует размер всех окон к размеру текущего терминала. По умолчанию, screen пытается восстановить старый размер окна,когда присоединяется к терминалу.
-c file изменяет путь к конф. файлу с "$HOME/.screenrc" на file
-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 Можно указать "горячие" клавиши при запуске. Например, дефолтовые значения "C-a" и `a' могут быть указаны как "-e^Aa". При создании сессий эта команда будет воприниматься как команда по умолчанию.
-f, -fn, и -fa Включает,выключает или переводит в автоматический режим flow-control. Так же может быть определено через "defflow" в .screenrc.
-h num устанавливает размер буфера истории в num линий
-i Вызов последовательности прерывания (обычно C-c) для немедленного прерывания когда включен flow-control. Смотрите "defflow" команду в .screenrc для подробных разъяснений.
-l и -ln включает или выключает login  mode (для обновления /etc/utmp). Может быть определена через "deflogin" в .screenrc.
-ls и  -list Не запускает screen, но показывает текущие запущенные процессы screen. Сессии, помеченные как `detached' могут быть восстановлены путем ввода "screen -r". Помеченные как `attached' запущены и имеют контролирующий терминал. Если сиссия запущена в многопользовательском режиме,то она маркируется как `multi'. Сиссии маркируются как `unreachable',если они находятся на другом хосте или умерли - `dead'. Недоступные сессии считаются мертвыми,если их имена совпадают с именем локальной машины или указаны параметры, если таковые имеются. Смотрите -r флаг. Там описано, как строятся совпадения(pid.tty.host, как я понял). Сессии, помеченные как `dead', должны быть проверены и удалены. Удаляйте сессии с помощью опции -wipe.
-L указывает screen включить автоматическое логирование вывода окон.
-m указывает screen игнорировать переменную $STY. Запуск "screen  -m" принужденно создает сессию, даже если она запускается из уже существующей сессии screen.
-d -m запускает screen в "отсоединенном" режиме. Используется для стартовых скриптов.
-D -m так же запускает screen в "отсоединенном" режиме, но не создает новых процессов. Команды закрываются,если сессия уничтожается.
-p number_or_name Выбор окна. Используется,если вы хотите присоединиться к определенной сессии screen или послать команду с использованием "-X" определенному окну.
-q подавляет вывод сообщений об ошибках. В комбинации с "-ls" коды завершения следующие: 9 каталог без сессий. 10 каталог с запущенными но не присоединенными сессиями. 11 (или более)  указывает 1 (или более) возможных к использованию сессий. В комбинации с "-r" коды завершения следующие: 10 нет сессий для возобновления. 12(или более) обозначает,что 2 или более сессии для возобновления и вам необходимо выбрать одну. В других случаях "-q" не имеет эффекта.
-r [pid.tty.host]  подключается к процессу screen. [pid.tty.host] берется из screen -ls.  [pid.tty.host] используется, если запущенно более одного процесса screen для данного пользователя.  -r sessionowner/[pid.tty.host] используется для подключения к процессу screen другого пользователя.
-R Подсоединяется к первому найденному скрину. Если удачно,то другие опции командной строки игнорируются. Если не находит - создает новый с последующими опциями.
-s Указывает шелл по умолчанию. Может быть определена через "shell" в .screenrc.
-S sessionname При создании новой сессии можно задать ее имя. Это имя будет отображаться при выводе "screen -list" и "screen -r" вместо стандартного [tty.host] суффикса.
-t name Указывает титл. Может быть указан через "shelltitle" в .screenrc.
-U  запускает screen в UTF-8 режиме.
-v вывод версии программы
-wipe [match] делает то же,что и "screen  -ls",но уничтожает сессии,помеченные как `dead'.
-x  Присоединяется к screen, за которым уже работают. Позволяет нескольким человекм работать за одним терминалом.
-X посылает указанную команду работающей screen сессии. Вы можете использовать -d или -r для указаная screen для выполнения подключенные или отключенные сессии. Эта опция не работает, если сессии защищены паролем.

Далее команды для работа в screen

C-a ' - приглашение к вводу номера окна,на которое переключиться (нумерация с 0)
C-a " - показывает список запущенных окон с возможностью переключения
C-a num  - переключиться на окно под номером num
C-a C-a  - переключиться на предыдущее окно
C-a A - приглашение на ввод имени окна (текущего сеанса шелл)
C-a c - создать новое окно с шелл и переключиться на него
C-a d - отсоединиться от сеанса screen. Присоединиться можно командой screen -r
C-a D D - отсоединиться и logout
C-a F - подгоняет размеры окна
C-a h - записать жесткую копию окна в файл "hardcopy.n"
C-a H - включить - выключить логирование текущего окна в файл "screenlog.n"
C-a i  - показать информацию о текущем окне
C-a k - уничтожить текущее окно
C-a l - полностью обновить текущее окно
C-a space - переключиться на следующее окно
C-a N - показать номер и заголовок текущего окна
C-a backspace - переключиться на предыдущее окно
C-a q - послать control-q текущему окну
C-a s  - послать control-s текущему окну
C-a S - разделить окно на 2 части - одна консоль сверху, другая - снизу. Переключаемся C-a tab. В новой создаем новое окно или переключаемся на существующее. Удобно для сравнения конфигов.
C-a w - показать список существующих окон
C-a x - заблокировать терминал
C-a ? - показать назначенные клавиши
C-a C-\ - закрыть все окна и сам csreen
C-a esc - Enter copy/scrollback mode
C-a ] - вставить содержимоебуфера в текущее окно
C-a > - записать скопированный буфер в файл
C-a *  - показывает список подсоединенных экранов

напомню, что C-a здесь - это Ctrl+a

Легкое отступление.
Для тех,кто не хочет заморачиваться на ключи,есть маленькая прога для управления окнами.
Port:   screenie-1.30.0_1
Path:   /usr/ports/sysutils/screenie
Info:   A small and lightweight screen(1) wrapper
Maint:  ehaupt@FreeBSD.org
B-deps:
R-deps: screen-4.0.3_5
WWW:    http://pubwww.fhzh.ch/~mgloor/screenie.html

Ключей прога имеет всего два:
-v показывает версию
-j "<jobname>" "<job>" - запускаем на выполнение команду job и называем ее jobname.
При запуске без параметров мы попадаем в медеджер окон. Доступны только 2 кнопки
 SCREENIE - terminal screen-session handler
 written by Marc O. Gloor <mgloor@fhzh.ch>


 a) add job
 q) quit

 select:

q - выход из менеждера
a - добавить задачу. Далее нас спросят имя сессии и что выполнять будем
Добавляем
 select: a
 session name: test
 job: top

Получаем
 1) 36377.test

 a) add job
 q) quit

 select:

При нажатии 1 попадаем в окно,где выполняется top. Далее - обычный screen. Жмем C-a d и снова попадаем в менеджер окон. При выходе из менеджера незакрытые сессии сохраняются. Так можно создавать и оперативно переключаться между окнами. Убить окно можно,находясь в нем, нажав q. При этом мы снова попадаем в менеджер. Не очень удобная штука, но для тех,кто не хочет разбираться с ключами - может подойти.

Продолжение о screen

Текущей директорией программы обычно является директория $HOME/.screen или /tmp/screens или /usr/local/screens. Данный параметр устанавливается в процессе компиляции. При запуске screen выполняет команды из "/usr/local/etc/screenrc"  и  ".screenrc", который находится в домашней директории. Эти переменные могут быть переопределены следующими путями:
Глобальный файл screenrc ищется через переменную $SYSSCREENRC (эта опция может быть отключена в процессе компиляции). Пользовательский файл screenrc ищется по пути,указанному в переменной $SCREENRC, затем в $HOME/.screenrc. Задав ключ -с, можно указать другой файл screenrc.
Команды,указанные в этом файле, используются для определения опций, "закрепления" функций за клавишами и автоматического открывания одного или нескольких окон при запуске программы screen. Команды указываются по одной в строке, пустые строки игнорируются. Аргумены и ключи команд разделяются табами или пробелами и могут быть окружены одинарными или двойными ковычками. Символ `#' означает,что следующий за ним текст - коментарии. Исключением является помещение его в кавычки. О непонятных программе опциях сообщается в ворнингах и они игнорируются. Команды могут содержать ссылки на переменные окружения. Синтакс подобен шеллу - "$VAR  " или "${VAR}". Тут есть несовместимость с предыдущими версиями программы. Сейчас символ  '$' экранируется символом '\', если он не лзначает начала имени переменной. Строки в одинарных ковычках так же защищен от раскрытия.
Пример файла конфигурации находится в   /usr/local/share/examples/screen/screenrc.
Команды так же могут быть введены в процессе работы программы,путем нажатия `C-a  :'. Помните,что команды,начинающиеся с "def" изменяют дефолтовые значения,в то время как другие изменяют только текущие значения.

В файле screenrc и в "командном" режиме доступны следующие команды


acladd usernames [crypted-pw]
addacl usernames  -
Разрешает пользователям полный доступ к этой сессии screen. usernames может быть пользователем или разделенном запятыми списком пользователей. Эта команда является эквивалентом `aclchg  usernames +rwx  "#?"'. Если требуется добавить пользователя с ограниченными привелегиями, после выполните команду `aclchg'. Если задан второй опциональный параметр, он должен содержать шифрованный пароль для этого пользователя. addacl является синонимом acladd. Используется тольк в многопользовательском режиме.
acladd Al Dreflk/Qwe - Добавить пользователя Al с шифрованным паролем Dreflk/Qwe. Пароль шифруется командой password в командном режиме.

aclchg usernames permbits list
chacl usernames permbits list
Изменяют првелегии пользователей. Если пользователь не один - разделителем является запятая. Доступны следующие значения битов доступа: `r', `w' и `x'. Префикс `+' добавляет привелегии, `-'  — убирает. Третий параметр - разделенный запятыми список команд и/или окон (указывается номер или заголовок окна). Специальный символ `#' обозначает все окна, `?' — все команды. Если usernames представляет собой `*', то команды применяются ко всем пользователям.
Пользователю разрешается выполнять команды, если он имеет бит доступа `x'. Пользователь может вводить символы на экран,если имеет бит доступа `w' и никто не заблокировал запись данного окна. Другие биты на данный момент игнорируются. Для снятия запрета записи другого пользователя в окне 2 используйте: aclchg username -w+w 2'. Для включения режима только на чтение используйте aclchg username -w "#"'. По умолчанию, пользователь, добавленный в screen, имеет полный доступ на все окна.  Выполнение привелегий списков доступа, `at' и дподобные должны быть удалены иначе пользователь может восстановить право на запись. Права пользователя nobody не могут быть изменены (смотрите команду su). `Chacl' синоним `aclchg'. Используется только в многопользовательском режиме.
aclchg Al -rwx "#?" - убирает все привелегии пользователя Al
aclchg Al,test +rwx 1,3,ln - дает Al и test полные привелегии на экран 1 и 3 и разрешает выполнять команду ln.

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

aclgrp username [groupname]
Создает группу пользователей с едиными привелегиями. Имя группы является именем лидера этой группы. Каждый пользователь группы наследует привелегии лидера группы. Это значит, что если у пользователя сбой проверки доступа, дальше проверяется лидер группы. Для пользователя, удаленного из всех групп, в поле группы используется "none". Если задан второй параметр,то перечисляются все группы пользователя.
aclgrp test Al добавляет пользователя test в группу Al
aclgrp test показывает,в какие группы входит пользователь test

aclumask [[users]+bits |[users]-bits .... ]
umask [[users]+bits |[users]-bits .... ]
Указывает права доступа пользователей. users может быть no(или пустым?), одним пользователем, или списком пользователей,разделенных запятыми. Если не указан пользователь,то команда применяется ко всем существующим пользоватеелям. bits - комбинация битов доступа, используемых в aclchg. Если в качестве имени пользователя введено "?",то команда применяется к еще не созданным пользователям. Права пользователя nobody менять нельзя. `Umask' является синонимом `aclumask'.

activity message
Когда обнаруживается активность в неактивном окне,которое в данный момент мониторится, screens выводит это сообщение. Символ `%' заменяется на номер окна, а символ `^G' заменяется определенным звонком(обычно аудио). Сообщение по умолчанию:
'Activity in window %n'
По умолчанию мониторинг всех окон отключен, но может быть включен путем нажатия C-a M.

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

altscreen on|off
Если установлено в on, включается поддержка "alternate screen" в виртуальных терминалах,таких как xterm. По умолчанию установлено в `off'.

at [identifier][#|*|%] command [args ... ]
Выполняет команды на других дисплеях, какбудто они выполняются на текущем. (see man)

attrcolor attrib [attribute/color-modifier]
Эта команда может быть использована для для подсветки аттрибутов команд путем изменения их цвета.Если используется аттрибут  attrib, то указанные аттрибуты/цвета будут применены. Смотрите главу "STRING ESCAPES" для понимания синтаксиса color-modifier. Screen понимает два псевдо-аттрибута. "i" указывается для подстветки переднего плана и "I" для подсветки заднего плана.
Например.
attrcolor b "R"
Меняет цвет на красный,когда печатается bold(жирный) текст
attrcolor u "-u b"
Устанавливает голубой цвет для подчеркнутого текста.
attrcolor b ".I"
Еспользовать яркие цвета для жирного шрифта. Большинство терминалов делают это по умолчанию.
attrcolor i "+b"
Сделает яркий цветной текст также жирным.

autodetach on|off
Указывает, должен ли screen автоматически отсоединяться при разрыве связи.При этом сохраняются все работающие сессии,которые могут быть восстановлены путем присоединения: screen -r. Когда выключено, при разрыве связи(интернет пропал,прим.) screen уничтожает все сессии (hangup signal). Включено по умолчанию.

autonuke on|off
Должен ли screen уничтожать весь вывод,который не был помещен на экран. Смотрите так же "obuflimit".

backtick id lifespan autorefresh cmd args...
backtick id
Программирует backtick команду с нумерованным id. Вывод подобных команд используется для замены "%`" последовательности. lifespan является числом,указывающим кол-во секунд, в течении которых вывод считается верным. После истечения этого времени команда запускается вновь, если была получена соответствующая команда выхода. Параметр autorefresh является "выключателем" автоматического обновления заголовков и строк состояния после указанного промежутка времени. Только последняя строка вывода используется для замены.
Если оба вышеприведенных параметра являются нулем (м.б. отсутствуют), то программа переходит в бэкграунд и генерирует вывод время от времени. В этом случае команда выполняется сразу же и скрин сохраняет последнюю строку вывода. Если будет напечатана новыя строка, скрин автоматически обновит заголовок.
Вторая форма команды (backtick id) удаляет команду с номером id.

bce [on|off]
Изменяет настройки цвета удаления. Если bce установлено в on, Все символы измененные операциями удаления/вставки/скроллинга/очищения будут отображены текущим цветом фона. Иначе будет использоваться цвет фона по умолчанию.

bell_msg [message]
Когда "звонок" посылается к неактивному окну, скрин показывает уведомление в виде строки текста. Эта строка может быть изменена этой командой. Символ `%' в строке сообщения заменяется номером окна, которому был послан сигнал звонка. Символ `^G заменяется поределением звонка (обычно звуковой звонок). Сообщение по умолчанию выглядит так:

'Bell in window %n'

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

bind [-c class] key [command [args]]
Привязывает команду к кнопке. По умолчанию, большинство команд, используемых в скрин, привязаны к кнопке или их сочетанию. Эти значения указаны в секции  "DEFAULT  KEY BINDINGS".
Например, команда для создания нового окна привязана к сочетанию "C-c" и "c". Данная команда может быть использована для переопределения значений по умолчанию и определения новых сочетаний. Аргумент key может быть одним символом, последовательностью двух символов, напр. "^x" означает "C-x", обратный слеш сопровождается восьмеричными числами (ASCII код символов) или вторым символом, например  "\^" или "\\".
Если не задано более аргументов, все предыдущие привязки для этой последовательности кнопок удаляются.
Аргумент command может быть любой командой,указанной в этой секции.

Если указан параметр -с class, то кнопки будут привязяны к соответствующему классу. Используйте команду
"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  пробел"). Следующие три примера удаляют дефолтовую привязку "C-a C-k" и "C-a k". Теперь команда kill будет выполняться при нажатии "C-a K". Далее мы привязываем сочетание "C-f" к команде "создать окно и подсоединиться TELNET к foobar". Последний пример - привязка "escape" к команде,которая которая создает окно с опцией non-login с  титулом "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, если получено указанное сочетание клавиш. Существует 3 таблицы. Одна содержит записи, вносимые пользователем, другая для  значений по умолчанию и третья для режима копирования screen. Смотрите секцию "INPUT  TRANSLATION" для получения дефолтовых значений привязок клавиш.
Если задана опция -d, то bindkey изменяет таблицу со значениями по умолчанию, -m изменяет таблицу режима копирования. Аргумент string является последовательностью символов, для которых осуществляется привязка. Она может быть фиксированной строкой,или спец. кнопкой.(-к опция).
Некоторые кнопки на VT100 терминале могут посылать различные пстроки если включен режим приложения (т.е. кнопки курсора) Подобные кнопки имеют два вхождения в таблицу. Вы можете выбрать вхождения в таблице,используемые в режиме приложения, путем указания ключа -a.
Опция -t указывает  screen не делать межсимвольных синхронизаций. Это не может отключить синхронизацию, если используется совместимость с termcap.
Cmd Может быть любой командой screen с произвольным набором аргументов args.
Если параметр Cmd опущен, то привязка клавиш удаляется из таблицы.
Далее несколько примеров привязки клавиш.

bindkey -d
Показывает все привязки по умолчанию. Привязки для режима приложений помечены [A].

bindkey -k k1 select 1
Делает привязку клавиши "F1" к команде select 1 - выбор первого окна.

bindkey -t foo stuff barfoo
Делает "foo" сокращением слова "barfoo". Timeout выключен,так как пользователь может набирать не столь быстро.

bindkey "\024" mapdefault
Эта команда делает "^T" командой выхода для привязок. Если вы сделали привязку "stuff barfoo",то вы можете ввести слово "foo" путем нажатия "^Tfoo". Если вы хотите ввести "^T", то нажмите последовательность дважды (выход из последовательности для выхода).

bindkey -k F1 command
Делает F11 (не  F1!) кнопкой альтернативой выхода (как ^A)

break [duration]
Посылает сигнал прерывания на duration*0.25 секунд к этому окну. Для не Posix систем интервал должен быть округлен до полных секунд. Обычно используется, если устройство ввода присоединяется к окну раньше,чем процесс шела (Смотрите так же главу "WINDOW TYPES"). Максимальное значение duration ограничено 15 секундами.

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

blankerprg [program args]
Определяет программу blanker. Выключает программу blanker, если запущено без аргументов.

breaktype [tcsendbreak|TIOCSBRK |TCSBRK]
Выбор одного из доступных способов генерации сигнала прерывания для терминальных устройств. Команда применяется только к текущему окну. Ведет себя идентично "defbreaktype". Это будет изменено в будушем. Вызов "breaktype" без параметров показывает доступные в текущем окне методы прерываний.

bufferfile [exchange-file]
Меняет файл, используемый для чтения и записи буфера вставки (paste buffer). Если аргументы опущены, задается значение по умолчанию ("/tmp/screen-exchange"). Следующий пример будет вставит содержимое /etc/passwd на экран.

                  C-a : bufferfile /etc/passwd
                  C-a < C-a ]
                  C-a : bufferfile

c1 [on|off]
Изменяет процессинг кода с1. "C1 on" указывает screen обрабатывать вводимые символы от 128 до 159 как функции контроля. Такой 8-битовый код обычно то же самое как и ESC, сопровождаемый соответствующим 7-битовым кодом. Настройки по умолчанию для преобразования с1 кода могут быть изменены "defc1" командой. Пользователи со шрифтами, которые используют символы,используемые в с1,возможно,захотят отключить эту функцию.
     
caption always|splitonly [string]
caption string [string]
Эти команды управляют заголовком окна.Обычно заголовок используется,если более одного окна отображается на экране (режим разделения экрана). Но если установлено в always, то screen будет показывать заголовок даже если если отображено одно окно. По умолчанию splitonly.
Вторая команда изменяет текст,используемый в заголовках. Вы можете использовать все сочетания, объявленные в главе
"STRING ESCAPES". По умолчанию используется `%3n %t'.

Вы можете совместить команды,указав строку в первой команде вторым аргументом.



ту би континуед.

Ну вот,впринципе,и все. Утилита,на мой взгляд,довольно полезная.

Замечания-предложения в студию!



размещено: 2008-10-23,
последнее обновление: 2010-02-10,
автор: Al


jafff, 2009-03-18 в 23:16:49

screen -X <команда> посылаем команду в рабочий screen и исполняем (точнее screen -S <имя скрина> -X eval 'stuff <команда>\015') \015 - это enter , подскажите как послать пробел? \040 не помогает. Нужно, к примеру послать <команда><пробел><ключ><enter>

Al, 2009-03-19 в 9:01:35

Попробуй команду в кавычки. Попробуй разные. А вообще

Для вопросов есть форум!

jafff, 2009-03-19 в 9:39:34

на форуме неудобно... много лишнего...всякую херню пишут а по теме ничего нет...

MadMax, 2010-10-27 в 14:43:41

вот такая конструкция работает
-X eval "stuff 'cd /usr/local/etc'\015"



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0388 секунд
Из них PHP: 32%; SQL: 68%; Число SQL-запросов: 77 шт.
Исходный размер: 58968; Сжатая: 16637