Страница 1 из 1

Screen - полезная утилита FreeBSD

Добавлено: 29 июн 2011, 08:58
zaka
Есть такая утилита - screen.

(Копал фрюху не удобно работать с несколькими ссц вот наткнулся на эту утилиту запускаешь мульти терминал и все на 1 собираю ведро на 2-м порты обновляю а на 3-м просто дурака валяю ))))

Полноэкранный и достаточно мощный консольный оконный менеджер. Поддерживает прокрутку, поиск в окне, обладает функцией копирования и вставки между окнами, позволяет в одном терминале запускать несколько интерактивных shell-процессов и переключаться между ними. Запустив screen, можно покинуть активную ssh-сессию. Как для меня, так это очень удобно. На работе запустил, дома посмотрел (хотя дома отдыхать нужно) или наоборот. Кроме того, при разрыве связи рабочей станции с сервером screen-сессия не прерывается.

Устанавливаем?

Код: Выделить всё

# cd /usr/ports/sysutils/screen
# less pkg-descr

Screen is a full-screen window manager that multiplexes a physical terminal
between several processes (typically interactive shells).
Each virtual terminal provides the functions of a DEC VT100 terminal and, in
addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO
2022 standards (e.g. insert/delete line and support for multiple character
sets). There is a scrollback history buffer for each virtual terminal and a
copy-and-paste mechanism that allows moving text regions between windows.

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

#make
#make install
#make clean
#rehash
Приведу комбинации клавиш, которые, на мой взгляд, могут понадобиться чаще всего. В отличие от мануала клавишу буду называть своим именем. Возможно где-нибудь далее и проскочит сочетание клавиши из мануала - не обессудьте.

Код: Выделить всё

Ctrl-a c
Ctrl-a Сtrl-c	Создать новое окно screen'а.
Ctrl-a [0..9,-]	Переключиться между окнами, или получить пустое окно.
Ctrl-a "	Список окон.
Ctrl-a Ctrl-a	Переключение между двумя окнами - между активным и предыдущим.
Ctrl-a n|p	next|prev
Ctrl-a C	Очистить экран.
Ctrl-a A	Позволяет ввести заголовок окна.
Ctrl-a d	Отключиться от сеанса screen. (Присоединиться можно командой screen -r)
Ctrl-a k	Закрыть текущее окно с подтверждением.
Ctrl-a ?	Задать вопрос (очень полезно), если не знал, а еще и забыл.
Очень интересны ключи запуска. Приведу список ключей, которые могут понадобиться, на мой взгляд, чаще всего.

Код: Выделить всё

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

При запуске screen выполняет команды из "/usr/local/etc/screenrc" и "~/.screenrc". Все это можно переопределить системными переменными, но, лично я, не вижу особого смысла. Тем более, что у меня только сервер и пользователей раз-два обчелся. При запуске с ключом -с, можно указать другой файл screenrc.
Команды указываются по одной в строке, пустые строки игнорируются. Разделители между аргументами и ключами - символы табуляции или пробелы. Символ '#' и следующий за ним текст - комментарии (исключение - помещение его в кавычки).
Команды могут содержать ссылки на переменные окружения. Синтаксис подобен shell - "$VAR " или "${VAR}".
Пример файла конфигурации находится в /usr/local/share/examples/screen/screenrc. (вот тут какая-то ошибка в мануале, насчет файлов примеров - такую мелочь можно простить).
Команды можно ввести в процессе работы программы, путем нажатия 'Ctrl-a :'.
В файле screenrc и в "командном" режиме доступны следующие команды:

acl-команды, определяющие доступ к сессии, привилегии - как для пользователей, так и для групп;
bind-команды - привязка клавиш;
команды оформления;
другие команды.

Читайте мануал - команд много - все таки первоисточник.

Приведу мой конфиг:

Код: Выделить всё

###
# Screenrc configuration file
###

# Приветственное сообщение off|on
startup_message off

# визуальный биппер. off|onn
vbell on
# то, что он бипер пишет в строке статуса
vbell_msg "   Uh! - Uh! - bzzz "

# "Красивые" подписи
nethack on

# Количество строк истории хранить в буфере
defscrollback 2000
#

# Строка состояния в 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' - показывает дату

# --- Привязки специальных клавиш ---

# отделить сессию от текущего терминала
bindkey -k k7 detach

# уничтожить текущую сессию F8
bindkey -k k8 kill

# создать новое окно F9
bindkey -k k9 screen

# вернуться к предыдущему окну F11
bindkey -k F1 prev

# перейти к следущему окну F12
bindkey -k F2 next

# Удаляем некоторые ненужные или небезопасные комбинации
bind .
bind ^\
bind \\
bind ^h
bind h
Если есть желание курим ман

Код: Выделить всё

man screen
Мне понравился *COMP*
Линк

Re: Screen - полезная утилита FreeBSD

Добавлено: 29 июн 2011, 12:10
Raven
Ну скажем screen есть не только во FreeBSD, но и в любом дистрибутиве линукс. Мне лично screen не особо нравится, я ее использую только для запуска процессов/скриптов не имеющих фонового режима, и то только там где нет startproc)))

Re: Screen - полезная утилита FreeBSD

Добавлено: 29 июн 2011, 12:53
zaka
Raven
пробовал тока на фрюхе по этому написал фрюха а так штукенза удобная за конектился по ссц запустил несколько вирт. терминалов и работай)))

Re: Screen - полезная утилита FreeBSD

Добавлено: 29 июн 2011, 15:36
Gen1us2k
одного окна путти хватит )

Re: Screen - полезная утилита FreeBSD

Добавлено: 30 июн 2011, 07:51
zaka
Gen1us2k писал(а):одного окна путти хватит )
ну если есть время ждать (сборка ядра 15-30 мин, обновление портов 15-30 мин. и т.д.) то хватит.

Re: Screen - полезная утилита FreeBSD

Добавлено: 30 июн 2011, 08:44
Raven
zaka
Скорее всего Gen1us2k имел ввиду то, что для screen 1 окна путти хватит)))))

Re: Screen - полезная утилита FreeBSD

Добавлено: 30 июн 2011, 08:49
zaka
Raven
упс походу я еще не очнулся хи хи *JONKLY* *WALL BREAK*
Gen1us2k да хватит

Re: Screen - полезная утилита FreeBSD

Добавлено: 30 июн 2011, 09:46
Gen1us2k
одного окна на один сервак хватит. это я имел ввиду )
ЗЫ утилита хорошая. Можно с ней делать кучу всякого :)

Re: Screen - полезная утилита FreeBSD

Добавлено: 30 июн 2011, 13:16
zaka
Gen1us2k
согласен