Кого заинтересовало, ставим
Код: Выделить всё
Port: screen-4.0.3_5
Path: /usr/ports/sysutils/screen
Info: A multi-screen window manager
Maint: cy@FreeBSD.org
B-deps:
R-deps:
WWW: http://www.gnu.org/software/screen/
Код: Выделить всё
[mx1:/usr/ports]#screen
Все. Перед нами наш шелл. На первый взгляд ничем не отличается от того,что было.
Дальше под с-а понимается одновременное нажатие Ctrl+a.
Запускаем в нем,например,top.
Жмем с-а, затем с
Появляется чистенький шелл. Запускаем в нем,например, tail -f /var/log/maillog.
И переключаемся между шелами с-а, затем p
Чтобы закрыть текущий сеанс, жмем с-а, затем k.
Бывает, что надо,например, запустить собираться что-нть на работе вечером, а придя домой посмотреть процесс.
Запускаем сборку в screen, затем жмем с-а и d. Мы отключились от скрина, но сам скрин и программы продолжают работать. Закрываем ssh и идем домой. Дома набираем screen -r и мы попадаем в шелл, в котором поставили на сборку пакеты.
теперь ключи запуска screen
-A адаптирует размер всех окон к размеру текущего терминала
-h num устанавливает размер буфера истории в num линий
-l и -ln включает или выключает login mode (для обновления /etc/utmp)
-ls показывает текущие запущенные процессы screen
-d -m Запускает screen в "отсоединенном" режиме. Используется для стартовых скриптов
-r [pid.tty.host] подключается к процессу screen. [pid.tty.host] берется из screen -ls. [pid.tty.host] используется, если запущенно более одного процесса screen для данного пользователя. -r sessionowner/[pid.tty.host] используется для подключения к процессу screen другого пользователя.
-R Подсоединяется к первому найденному скрину. Если не находит - создает новый.
-U запускает screen в UTF-8 режиме
-x Присоединяется к screen, за которым уже работают. Позволяет нескольким человекм работать за одним терминалом.
Далее команды для работа в screen
C-a ' - приглашение к вводу номера окна,на которое переключиться (нумерация с 0)
C-a " - показывает список запущенных окон с возможностью переключения
C-a num - переключиться на окно под номером num
C-a C-a - переключиться на предыдущее окно
C-a A - приглашение на ввод имени окна (текущего сеанса шелл)
C-a c - создать новое окно с шелл и переключиться на него
C-a d - отсоединиться от сеанса screen. Присоединиться можно командой screen -r
C-a D D - отсоединиться и logout
C-a F - подгоняет размеры окна
C-a h - записать жесткую копию окна в файл "hardcopy.n"
C-a H - включить - выключить логирование текущего окна в файл "screenlog.n"
C-a i - показать информацию о текущем окне
C-a k - уничтожить текущее окно
C-a l - полностью обновить текущее окно
C-a space - переключиться на следующее окно
C-a N - показать номер и заголовок текущего окна
C-a backspace - переключиться на предыдущее окно
C-a q - послать control-q текущему окну
C-a s - послать control-s текущему окну
C-a S - разделить окно на 2 части - одна консоль сверху, другая - снизу. Переключаемся C-a tab. В новой создаем новое окно или переключаемся на существующее. Удобно для сравнения конфигов.
C-a w - показать список существующих окон
C-a x - заблокировать терминал
C-a ? - показать назначенные клавиши
C-a C-\ - закрыть все окна и сам csreen
C-a esc - Enter copy/scrollback mode
C-a ] - вставить содержимоебуфера в текущее окно
C-a > - записать скопированный буфер в файл
C-a * - показывает список подсоединенных экранов
напомню, что C-a здесь - это Ctrl+a
Легкое отступление.
Для тех,кто не хочет заморачиваться на ключи,есть маленькая прога для управления окнами.
Код: Выделить всё
Port: screenie-1.30.0_1
Path: /usr/ports/sysutils/screenie
Info: A small and lightweight screen(1) wrapper
Maint: ehaupt@FreeBSD.org
B-deps:
R-deps: screen-4.0.3_5
WWW: http://pubwww.fhzh.ch/~mgloor/screenie.html
-v показывает версию
-j "<jobname>" "<job>" - запускаем на выполнение команду job и называем ее jobname.
При запуске без параметров мы попадаем в медеджер окон. Доступны только 2 кнопки
Код: Выделить всё
SCREENIE - terminal screen-session handler
written by Marc O. Gloor <mgloor@fhzh.ch>
a) add job
q) quit
select:
a - добавить задачу. Далее нас спросят имя сессии и что выполнять будем
Добавляем
Код: Выделить всё
select: a
session name: test
job: top
Код: Выделить всё
1) 36377.test
a) add job
q) quit
select:
Продолжение о screen
Текущей директорией программы обычно является директория $HOME/.screen или /tmp/screens или /usr/local/screens. Данный параметр устанавливается в процессе компиляции. При запуске screen выполняет команды из "/usr/local/etc/screenrc" и ".screenrc", который находится в домашней директории. Эти переменные могут быть переопределены следующими путями:
Глобальный файл screenrc ищется через переменную $SYSSCREENRC (эта опция может быть отключена в процессе компиляции). Пользовательский файл screenrc ищется по пути,указанному в переменной $SCREENRC, затем в $HOME/.screenrc. Задав ключ -с, можно указать другой файл screenrc.
Команды,указанные в этом файле, используются для определения опций, "закрепления" функций за клавишами и автоматического открывания одного или нескольких окон при запуске программы screen. Команды указываются по одной в строке, пустые строки игнорируются. Аргумены и ключи команд разделяются табами или пробелами и могут быть окружены одинарными или двойными ковычками. Символ `#' означает,что следующий за ним текст - коментарии. Исключением является помещение его в кавычки. О непонятных программе опциях сообщается в ворнингах и они игнорируются. Команды могут содержать ссылки на переменные окружения. Синтакс подобен шеллу - "$VAR " или "${VAR}". Тут есть несовместимость с предыдущими версиями программы. Сейчас символ '$' экранируется символом '\', если он не лзначает начала имени переменной. Строки в одинарных ковычках так же защищен от раскрытия.
Пример файла конфигурации находится в /usr/local/share/examples/screen/screenrc.
Команды так же могут быть введены в процессе работы программы,путем нажатия `C-a :'. Помните,что команды,начинающиеся с "def" изменяют дефолтовые значения,в то время как другие изменяют только текущие значения.
В файле screenrc и в "командном" режиме доступны следующие команды
acladd usernames [crypted-pw]
addacl usernames -
Разрешает пользователям полный доступ к этой сессии screen. usernames может быть пользователем или разделенном запятыми списком пользователей. Эта команда является эквивалентом `aclchg usernames +rwx "#?"'. Если требуется добавить пользователя с ограниченными привелегиями, после выполните команду `aclchg'. Если задан второй опциональный параметр, он должен содержать шифрованный пароль для этого пользователя. addacl является синонимом acladd. Используется тольк в многопользовательском режиме.
acladd Al Dreflk/Qwe - Добавить пользователя Al с шифрованным паролем Dreflk/Qwe. Пароль шифруется командой password в командном режиме.
aclchg usernames permbits list
chacl usernames permbits list
Изменяют првелегии пользователей. Если пользователь не один - разделителем является запятая. Доступны следующие значения битов доступа: `r', `w' и `x'. Префикс `+' добавляет привелегии, `-' -- убирает. Третий параметр - разделенный запятыми список команд и/или окон (указывается номер или заголовок окна). Специальный символ `#' обозначает все окна, `?' -- все команды. Если usernames представляет собой `*', то команды применяются ко всем пользователям.
Пользователю разрешается выполнять команды, если он имеет бит доступа `x'. Пользователь может вводить символы на экран,если имеет бит доступа `w' и никто не заблокировал запись данного окна. Другие биты на данный момент игнорируются. Для снятия запрета записи другого пользователя в окне 2 используйте: aclchg username -w+w 2'. Для включения режима только на чтение используйте aclchg username -w "#"'. По умолчанию, пользователь, добавленный в screen, имеет полный доступ на все окна. Выполнение привелегий списков доступа, `at' и дподобные должны быть удалены иначе пользователь может восстановить право на запись. Права пользователя nobody не могут быть изменены (смотрите команду su). `Chacl' синоним `aclchg'. Используется только в многопользовательском режиме.
aclchg Al -rwx "#?" - убирает все привелегии пользователя Al
aclchg Al,test +rwx 1,3,ln - дает Al и test полные привелегии на экран 1 и 3 и разрешает выполнять команду ln.
acldel username
Удаляет пользователя username из списков доступа screen.Если пользователь в данный момент подключен, все его экраны отключаются и он не сможет присоедениться вновь. Используется только в многопользовательском режиме.
aclgrp username [groupname]
Создает группу пользователей с едиными привелегиями. Имя группы является именем лидера этой группы. Каждый пользователь группы наследует привелегии лидера группы. Это значит, что если у пользователя сбой проверки доступа, дальше проверяется лидер группы. Для пользователя, удаленного из всех групп, в поле группы используется "none". Если задан второй параметр,то перечисляются все группы пользователя.
aclgrp test Al добавляет пользователя test в группу Al
aclgrp test показывает,в какие группы входит пользователь test
ту би континуед.
Ну вот,впринципе,и все. Утилита,на мой взгляд,довольно полезная.
Замечания-предложения в студию!