====== Screen ======
===== Ссылки =====
[[wp>GNU_Screen|GNU Screen]]

http://www.gnu.org/software/screen/

===== Команды screen =====

^ Управление screen-ом из shell                                                                                ^^
|**screen -S <session_name>**  | Создать сессию screen с именем <session_name>                                  |
|**screen -ls**                | Список сессий screen                                                           |
|**screen -r <session-id>**    | Подключиться к сесии <session-id>                                              |
|**screen -d -r <session-id>** | Подключиться к сесии <session-id> в состоянии (Attached)                       |
|**screen -R**                 | Подключиться к отключенной (detached) сесии если возможно, либо запустить новую|
|**screen -X lockscreen**      | Заблокировать сессию screen (для разблокировки необходим пароль пользователя)  |

^Команды screen                                                                                                    ^^^
^Комбинация клавиш            ^Команда  ^Описание                                                                    ^            
|**Общие команды**  |||
|**<ctrl + a> + <:>**          |colon          |Переключение в командный режим                                                 |
|**<ctrl + a> + <?>**          |help           |Справка по командам                                                            |
|**<ctrl + a> + <m>**          |lastmsg        |Повтор последнего сообщения в строке статуса                                   |
|**<ctrl + a> + <a>**          |meta           |Передать ону управляющую комбинацию **<Ctrl+a>**                               |
|**Управление окнами** |||
|**<ctrl + a> + <c>**          |screen         |Cоздание нового окна в текущей сессии screen                                   |
|**<ctrl + a> + <w>**          |windows        |Вывод списка окон в строке статуса                                             |
|**<ctrl + a> + <N>**          |number         |Вывод номера и заголовка текущего окна в строке статуса                        |
|**<ctrl + a> + <”>**          |windowlist     |Вывод интерактивного списка окон для последующего переключения                 |
|**<ctrl + a> + <Number>**     |select         |Переключение в окно с порядковым номером <Number>                              |
|**<ctrl + a> + <Space>**      |next           |Переключение в следующее окно                                                  |
|**<ctrl + a> + <BackSpace>**  |prev           |Переключение в предыдущее окно                                                 |
|**<ctrl + a> + <ctrl + a>**   |other          |Переключение между текущим и предыдущим окнами                                 |
|**<ctrl + a> + <'>**          |select         |Ввод номера окна для переключения                                              |
|**<ctrl + a> + <A>**          |title          |Переименование текущего окна                                                   |
|**<ctrl + a> + <k>**          |kill           |Принудительно закрыть окно                                                     |
|**<ctrl + d>**                |               |Выход из текущего окна, в последнем окне- выход из screen                      |
|**Работа с содержимым окон** |||
|**<ctrl + a> + <С>**          |clear          |Очистить текущее окно                                                          |
|**<ctrl + a> + <M>**          |monitor        |Включение/отключение слежения за активностью в текущем окне                    |
|**<ctrl + a> + <_>**          |silence        |Включение/отключение слежения за бездействием в текущем окне                   |
|**<ctrl + a> + <H>**          |log            |Включение/отключение записи протокола действий в текущем окне в тектовый файл screenlog.<number>  |
|**<ctrl + a> + <h>**          |hardcopy       |Текстовый дамп содержимого окна в файл hardcopy.<number>                       |
|**<ctrl + a> + <[>**          |copy           |Режим копирования ("пробел" отмечает начало и конец области и копирует в буфер)|
|**<ctrl + a> + <]>**          |paste          |Вставка содержимого буфера в текущую позицию                                   |
|**Работа с областями экрана** |||
|**<ctrl + a> + <S>**          |split          |Разделить окно или область на 2е части                                         |
|**<ctrl + a> + <Tab>**        |focus          |Перючение между областями                                                      |
|**<ctrl + a> + <Q>**          |only           |Закрыть все области кроме текущей                                              |
|**<ctrl + a> + <X>**          |remove         |Закрыть текущую область                                                        |
|**Выход из screen ** |||
|**<ctrl + a> + <d>**          |detach         |Отключение от screen, сессия остается запущенной в фоновом режиме             |
|**<ctrl + a> + <D><D>**       |pow_detach     |Отключение от screen, передача родительскму процессу screen сигнала HANGUP (выход из shell)      |
|**<ctrl + a> + <z>**          |suspend        |Перевод screen в фоновый режим как процесс shell, можно использовать команды ''jobs,bg,fg''      |
|**<ctrl + a> + <\>**          |quit           |Закрыть все окна и выйти из из screen                                                            |
===== Пример .screenrc =====
<code apache>
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

</code>