Консольный оконный менеджер - SCREEN — различия между версиями
Root (обсуждение | вклад) (Новая страница: «'''SCREEN''' - полноэкранный и достаточно мощный консольный оконный менеджер с поддержкой скр…») |
Root (обсуждение | вклад) |
||
Строка 51: | Строка 51: | ||
| '''Ctrl+a, ?''' || помощь | | '''Ctrl+a, ?''' || помощь | ||
|} | |} | ||
+ | |||
+ | |||
+ | Программа screen может работать сколь угодно долго, пока не будет перезагружен сервер. Если такое случится, в системе останутся мертвые тушки, ранее работавших экземпляров screen, о чем вы будете проинформированы следующим образом: | ||
+ | # screen -rd | ||
+ | There are screens on: | ||
+ | 48273.ttyp5.hostname (Dead ???) | ||
+ | Remove dead screens with 'screen -wipe'. | ||
+ | There is no screen to be detached. | ||
+ | |||
+ | |||
+ | тут-же предложен вариант избавления от трупиков: | ||
+ | screen -wipe | ||
+ | |||
+ | |||
+ | Ну и ещё можно поиграться с настройками внешнего вида, подрихтовав конфиг /usr/local/etc/screenrc: | ||
+ | #Отключаем приветствие | ||
+ | startup_message off | ||
+ | #Настройка строки состояния | ||
+ | caption always "%{gk}%H%{gk} | %c %{gk}%d.%m.%Y | %{gk} %?%-Lw%?%{gk}%n*%f %t%?(%u)%?%{gk}%?%+Lw%? | %{gk} Load: %l %{gk}" |
Версия 19:37, 2 декабря 2013
SCREEN - полноэкранный и достаточно мощный консольный оконный менеджер с поддержкой скроллинга и поиска в окне и функцией копирования-вставки между ними. Наиболее интересная функция данного менеджера заключается в том что Вы можете в любой момент отсоединиться от своего screen`a и закрыть сеанс работы в шеле. После этого Вы можете присоединившись к screen`у вновь продолжить свою работу с того места где Вы остановились.
В чем собственно говоря удобство, небольшой пример из личного опыта. Интернет подключение по ADSL технологии, что подразумевает обрыв связи и переподключение, хоть и автоматически, но раз в сутки стабильно и без согласия кого-либо (особенности ADSL). Занимаясь удаленным администрированием серверов, для собственного удобства, как правило открываю несколько SSH сессий с разными серверами, и может случится неприятная ситуация, когда на одном из серверов компилируется какое-то тяжелое приложение, ядро или мир системы, а на другом например запущен какой-то скрипт выводящий данные в окно терминала, и которые я отслеживаю в реалтайме, ну или производятся какие-то другие работы, не суть важно, вдруг обрывается связь. Конечно можно перенаправлять вывод в файл, но у меня это в привычку не вошло, мне интересней быть в курсе происходящего в системе в данный момент, насколько это возможно конечно в данный момент. В общем по сути, это означает, что никто на 100% не скажет, насколько успешно завершилась операция, запущенная до обрыва связи, а это означает, что нужно переделать/запустить заново, в общем потеря времени и расход нервных клеток.
Теперь ближе к сути. По-умолчанию screen в системе не установлен, напомню, речь идет в контексте операционной системы Freebsd 8-й ветки.
# cd /usr/ports/sysutils/screen # make install
В самом screen, почти все сочетания клавиш работают через комбинацию [ Ctrl+a ], то есть сначала нажимаем ее, а уже затем управляющую комбинацию.
Для запуска просто набираем в консоли screen.
Опции командной строки:
-rd - подключиться к screen. Будет произведён detach для остальных сессий.
-r <номер_сессии> - подключение к определённой сессии.
-ls - список запущенных менеджеров.
-x - подключение к неотсоединённому screen. Для одновременной работы с одним screen.
Наиболее часто используемые мной сочетания клавиш:
Ctrl+a, c | создать новое окно терминала |
Ctrl+a, [0..9] | переключение между окнами |
Ctrl+a, " | список окон |
Ctrl+a, d | отсоединить screen от экрана. Сам screen при этом никуда не девается и висит в фоне, продолжая выполнять задачи |
Ctrl+a, S | текущее окно разделяется на две части и в обоих можно открыть по новому окну(режим сплита) |
Ctrl+a, Tab | переход между окнами, созданными предыдущей командой |
Ctrl+a, Q | выход из режима сплита |
Ctrl+a, k | убить текущее окно терминала (попросит подтверждения) |
Ctrl+a, \ | закрыть screen, все виртуальные терминалы будут при это убиты (попросит подтверждения). |
Ctrl+a, ? | Справка по доступным командам |
Ctrl+a, C | очистить окно |
Ctrl+a, F | подогнать размер окна |
Ctrl+a, H | протоколирование в файл screenlog.<номер_окна> |
Ctrl+a, ? | помощь |
Программа screen может работать сколь угодно долго, пока не будет перезагружен сервер. Если такое случится, в системе останутся мертвые тушки, ранее работавших экземпляров screen, о чем вы будете проинформированы следующим образом:
# screen -rd There are screens on: 48273.ttyp5.hostname (Dead ???) Remove dead screens with 'screen -wipe'. There is no screen to be detached.
тут-же предложен вариант избавления от трупиков:
screen -wipe
Ну и ещё можно поиграться с настройками внешнего вида, подрихтовав конфиг /usr/local/etc/screenrc:
#Отключаем приветствие startup_message off #Настройка строки состояния caption always "%{gk}%H%{gk} | %c %{gk}%d.%m.%Y | %{gk} %?%-Lw%?%{gk}%n*%f %t%?(%u)%?%{gk}%?%+Lw%? | %{gk} Load: %l %{gk}"