Основная задача утилиты 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