screen

Александр Попов
Александр Попов
Часто работаешь удаленно? собираешь кеды из портов через ssh))? Тогда screen для тебя. Даже если терминал отпал, мы сможем подключится и продолжить работу! а теперь более детально.

SCREEN — полноэкранный и достаточно мощный консольный оконный менеджер с поддержкой скроллинга и поиска в окне и функцией копирования-вставки между ними. Наиболее интересная функция данного менеджера заключается в том что Вы можете в любой момент отсоединиться от своего screen`a и закрыть сеанс работы в шеле. После этого Вы можете присоединившись к screen`у вновь продолжить свою работу с того места где Вы остановились.

Пункт 0. Установить(да, у меня csh)
cd /usr/ports/sysutils/screen
make install clean && rehash

Пункт 1. Янихачуничивонастраивать
Что же нет ничего сложного, подключаемся по ssh, запускаем screen. жмакаем Enter. вилкамен терминал онлайн

HOTKEYS:
Ctrl+a c (create) — создания нового окна
Ctrl+a a — Для переключения между активным окнами.
Ctrl+a НОМЕР — выбор окна по номеру.
Ctrl+a (p|n) — циклическое перемещение между окнами. p — prev, n — next.
Ctrl+a « — список окон для переключения.
Ctrl+a A — изменить заголовок окна. Аналогично вводу команды title при нажатии Ctrl+a :
Ctrl+a C — очистить окно.
Ctrl-a d — Отключиться от сеанса screen. (Присоединиться можно командой screen -r)
Ctrl+a F — подогнать размер окна под текущий размер терминала.
Ctrl+a H — протоколирование окна в файл screenlog.<НОМЕР ОКНА>
Ctrl-a k — Закрыть текущее окно с подтверждением.
Ctrl+a K — уничтожить окно.
Ctrl+a M — режим слежения за активностью в окне. Если в момент этого вы находитесь в другом окне — в подсказке будет выведено:activity in window <НОМЕР ОКНА>
Ctrl+a r — переключение режима переноса по словам. (wrap)
Ctrl+a S — очень интересный режим работы. Сплит. Текущее окно разделяется на две части и в них можно открыть по новому окну. Переключение между окнами Ctrl+a; TAB, выход из режима сплит — Ctrl+a Q.
Ctrl+a ? — помощь
Ctrl+a Esc — режим скроллинга. Он же режим копирования. Для копирования подведите курсор к нужному месту и нажмите пробел.
Ctrl+a ] — Вставка выделенной области.
Ctrl+a x — Запереть менеджер. При вкомпиленной поддержке PAM — для разблокировки нужно ввести пароль пользователя от которого запущен менеджер. В обратном случае пароль для разблокировки будет запрошен при блокировании.

Опции запуска screen:
-ls (-list) Не запуская screen выдает список отсоединенных screen’ов.
-r [pid.tty.host] Подключиться к screen или же к определенной сессии.
-x Присоединиться к неотсоединенному screen — позволяет одновременно
работать с разных мест разным людям. Удобно для удаленного
обучения (хотя в FreeBSD есть watch).
-R Пытается присоединиться к первому найденному отсоединенному
screen. Если не находит — создает новый screen.

Файл настройки находиться в файле /usr/local/etc/screenrc
Я лично ничего менять не захотел, ну разве что всякие украшательства

vbell on # визуальный биппер.
vbell_msg "Uh! - Uh! - bzzz "  #то, что он бипер пишет в строке статуса
startup_message off  #выключает сообщение об авторских правах при запуске screen`а. 
defscrollback 10000 #количество строк по умолчанию для буфера прокрутки. 
# Строка состояния в screen (hardstatus)
hardstatus alwayslastline "%{=b}%{g}Window: %{b}%w %=%{kG}%с %D %Y-%m-%d"
# Расшифровка:
# %{=b} - черный цвет фона строки. 
# %{g} Window: - слово 'Window: ' зеленоe
# '%{b}%w' - список запущенных окон (звездочкой будет указан активное окно)
# '%=' - все, что идет после этого выравнивается по правому краю
# '%{kG}%с' - показывает время, я люблю формат 24-часа, без pm|am (%C%A - 12часовой с PM|AM)
# '%D, %Y-%m-%d' - показывает дату

Если есть желание поковырять настройки из самой программы, то в запущенном screen пишем
Ctrl-a :

Литература:
1. http://nexus.org.ua/weblog/message/351/
2. http://club.shelek.ru/viewart.php?id=308
3. http://xgu.ru/wiki/man:screen


Комментарии: