Основная задача утилиты SCREEN— возможность запуска нескольких сессий одновременно в рамках одной. Наиболее важной её возможностью является возможность сохранения и поддержки текущей сессии даже при закрытии основного управляющего окна на стороне пользователя.
Установка.
FreeBSD:
# cd /usr/ports/sysutils/screen/ && make BATCH=yes install clean
Debian/Ubuntu:
# aptitude -y install screen
CentOS/RHEL:
# yum -y install screen
Запускаем:
$ screen
При первом запуске внешний вид довольно малоинформативен и неудобен — выглядит как обычная консоль. Исправить это можно с помощью файла .screenrc, размещённого в домашнем каталоге пользователя.
Для примера — существующий файл, используемый давно и многими пользователями/администраторами:
08:39:19 [root@akira /usr/home/setevoy] # ls -la | grep screen
-rw-rw-r— 1 setevoy setevoy 634 Jul 22 2012 .screenrc
В файл добавляем следующие строки:
# cat .screenrc
caption always ‘ %{-b dd}%-w%{cd}%n* %t%{-}%+w %{cd}%-=(%l) %d/%m %c%{-} ‘
startup_message off
autodetach on
altscreen on
shelltitle «$ |bash»
nonblock on
vbell off
vbell_msg » Wuff —- Wuff!! %n »
bell_msg «bell in %n (%t) [%w:%s]~»
activity «activity in %n (%t) [%w:%s]~»
defmonitor on
defscrollback 10000
crlf off
bind + resize +3
bind — resize -1
bind k
bind ^k
bind .
bind ^
bind
bind ^h
bind h
#make them better
bind ‘K’ kill
bind ‘I’ login on
bind ‘O’ login off
bind ‘}’ history
msgwait 15
silencewait 30
hardstatus alwayslastline «%{= kw}[ %{= kb}%H%{= kw} ][ %{r}%l%{w} ]%{w}[%{r} %d/%m/%y %C %A %{w}]%{w}»
После применения этого файла — картинка в консоли кардинально изменится:
В самом нижнем ряду отображаются:
[имя_хоста][показатели load avarage][текущие дата и время]
Чуть выше располагается список активных сессий с их названиями и номерами:
0* htop 1 update 2 bash 3 bash 4 bash
Для повтороного запуска screen со всеми сессиями — наберите:
$ screen -r
Что бы сессии сохранились — не выходите из screen при завершении работы в терминале, а просто закройте само окно.
Еесли вы оставили активное окно терминала на одном компьютере, а хотите восстановить сессию на другом при вводе screen -r получите сообщение об ошибке:
$ screen -r
There is a screen on:
15702.pts-0.akira (Attached)
There is no screen to be resumed.
Что бы «убить» активную сессию и запустить её в новом терминале — выполните:
$ screen -rD
Можно не «убивать», а подключиться к запущенной сессии.
Посмотреть список активных сессий можно командой:
$ screen -ls
There is a screen on:
15702.pts-0.akira (Attached)
1 Socket in /tmp/screens/S-setevoy.
Что бы подключиться к ней — выполните:
$ screen -x 15702
Таким образом, в двух различных терминалах на двух разных машинах можно одновременно работать в одной и той же консоли.
Навигация между сессиями в пределах одной консоли с запущенным screen выполняется комбинацией Ctrl+a+*, где * — номер требуемой сессии. Обратите внимание — команды для screen чувствительны к регистру. Так же, можно перемещаться между разными сессиями комбинациями Ctrl+a+n (вправо по списку) или Ctrl+a+p (влево).
Например, что бы переименовать активную сессию — нажмите комбинацию Ctrl+a+Shift+a, т.е. — Ctrl+a+A.
Для запуска ещё одной копии консоли — наберите комбинацию Ctrl+a+c.
Ссылки по теме:
svn checkout svn://svn.freebsd.org/base/releng/9.1/ /usr/ports