====== Утилита screen ======
Утилита screen позволяет запускать много процессов в одном терминале. Эффективно использовать совместно ssh, чтобы во время одно сессии иметь доступ к нескольким консольным терминалам.
Также при обрывах связи или закрытии окна консоли сессия терминалов продолжается выполнять и к ним можно переподключиться.
# yum install screen (CentOS)
# apt-get install screen (Debian)
# emerge app-misc/screen (Gentoo)
===== Команды screen =====
^ Управление screen-ом из shell ^^
|**screen -S ** | Создать сессию screen с именем |
|**screen -ls** | Список сессий screen |
|**screen -r ** | Подключиться к сесии |
|**screen -d -r ** | Подключиться к сесии в состоянии (Attached) |
|**screen -R** | Подключиться к отключенной (detached) сесии если возможно, либо запустить новую|
|**screen -X lockscreen** | Заблокировать сессию screen (для разблокировки необходим пароль пользователя) |
^Команды screen ^^^
^Комбинация клавиш ^Команда ^Описание ^
|**Общие команды** |||
|** + <:>** |colon |Переключение в командный режим |
|** + >** |help |Справка по командам |
|** + ** |lastmsg |Повтор последнего сообщения в строке статуса |
|** + ** |meta |Передать ону управляющую комбинацию **** |
|**Управление окнами** |||
|** + ** |screen |Cоздание нового окна в текущей сессии screen |
|** + ** |windows |Вывод списка окон в строке статуса |
|** + ** |number |Вывод номера и заголовка текущего окна в строке статуса |
|** + <”>** |windowlist |Вывод интерактивного списка окон для последующего переключения |
|** + ** |select |Переключение в окно с порядковым номером |
|** + ** |next |Переключение в следующее окно |
|** + ** |prev |Переключение в предыдущее окно |
|** + ** |other |Переключение между текущим и предыдущим окнами |
|** + <'>** |select |Ввод номера окна для переключения |
|** + ** |title |Переименование текущего окна |
|** + ** |kill |Принудительно закрыть окно |
|**** | |Выход из текущего окна, в последнем окне- выход из screen |
|**Работа с содержимым окон** |||
|** + <С>** |clear |Очистить текущее окно |
|** + ** |monitor |Включение/отключение слежения за активностью в текущем окне |
|** + <_>** |silence |Включение/отключение слежения за бездействием в текущем окне |
|** + ** |log |Включение/отключение записи протокола действий в текущем окне в тектовый файл screenlog. |
|** + ** |hardcopy |Текстовый дамп содержимого окна в файл hardcopy. |
|** + <[>** |copy |Режим копирования ("пробел" отмечает начало и конец области и копирует в буфер)|
|** + <]>** |paste |Вставка содержимого буфера в текущую позицию |
|**Работа с областями экрана** |||
|** + ** |split |Разделить окно или область на 2е части |
|** + ** |focus |Перючение между областями |
|** + ** |only |Закрыть все области кроме текущей |
|** + ** |remove |Закрыть текущую область |
|**Выход из screen ** |||
|** + ** |detach |Отключение от screen, сессия остается запущенной в фоновом режиме |
|** + ** |pow_detach |Отключение от screen, передача родительскму процессу screen сигнала HANGUP (выход из shell) |
|** + ** |suspend |Перевод screen в фоновый режим как процесс shell, можно использовать команды ''jobs,bg,fg'' |
|** + <\>** |quit |Закрыть все окна и выйти из из screen |
===== Пример .screenrc =====
shell -$SHELL # Make the shell in every window as a login shell
#escape `` # use ` instesd of Ctrl-A
startup_message off # default: on (No startup messages)
autodetach on # default: off ( Automatically detach on hangup )
defscrollback 1024 # default: 100 ( Change default scrollback value for new windows )
crlf off # default: off
altscreen on
silencewait 15 # default: 30
msgminwait 0 # the first message is ignored
msgwait 10 # default 5 (The last message is displayed for 10 seconds or until keypress)
vbell on # default: off
vbell_msg " -- Ring, Ring!! -- " # default: "Wuff,Wuff!!"
#vbell_msg "bell on %t(%n)"
#activity ""
activity "Activity in %t(%n)"
hardstatus alwayslastline
hardstatus string '%{= wk} %=%{b} %t(%n) %{r}[%l]'
caption always '%{= wk}%?%-Lw%?%{b}[%{k}%n*%f%t%?(%u)%?%{b}]%{k}%?%+Lw%?%?%= %D %d %M %Y %c:%s%{-}'
# Other views for status strings
#
#hardstatus string '%{= bb}%{+b w}%n %h %=%t %d-%m-%Y %c'
#caption always "%{=}%?%{R}%H %L=%{+b}%?%{y}%-Lw%47L>%?%{g}%n*%f %t %?%{y}%+Lw%?%{b}%-31=%c %l %Y-%m-%d"
#
#caption always "%{= 45}%{+b w}Screen: %n | %h %=%t %c"
#hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
# logging
#deflog on
logfile $HOME/logs/screen_%Y-%m-%d_%0c_%n.log
# starting windows
chdir # Go to HomeDir
screen -t tcsh 1 tcsh
screen -t mc 2 mc
screen -t sumc 3 sudo mc
chdir /var/log # Go to LogsDir
screen -t logs 4
select 2 # Select mc window
===== Ссылки =====
* [[wp>GNU_Screen|GNU Screen]]
* http://www.gnu.org/software/screen/
* http://dant.net.ru/wiki/info/nix/shell/screen
* http://forum.ubuntu.ru/index.php?topic=55504.0
* http://wiki.enchtex.info/tools/console/screen
* http://phn.ho.ua/articles/screen.html