Используем screen в Linux. Утилита screen в Linux для выполнения задач после отключения Установка screen

Screen - очень удобная программа, если вы часто работаете в консоли, подключившись к серверу по SSH. В таком случае screen позволяет держать в одной консоли несколько разных экранов, удобно переключаясь между ними.

Установка screen

Для установки на нужно выполнить команду

$ sudo apt-get install screen

После этого нужно запустить screen:

$ screen

После запуска вы увидите либо приглашение командной строки, либо «экран приветствия», нажав SPACE или ENTER в котором, вы так же попадете в shell. При этом все команды будут запущены уже «внутри» screen’а.

Если нужно слушать log-файл постоянно и выводить их на экран. Создадим новую консоль screen так:

Screen -d -m -S tail-log tail -f /var/log/nginx/error.log

Для того, чтобы выйти из screen’а (выйти, а не отсоединиться) достаточно выйти из всех открытых в нем оболочек, либо же, нажать комбинацию клавиш Ctrl+A , и ответить «y» на вопрос «действительно ли вы хотите выйти».

Отсоединиться от текущего скрина, не закрывая и не завершая сессии, можно комбинацией Ctrl+A потом d .

Подключение к screen

Если на машине уже есть запущенная screen-сессия, и вы хотите подсоединиться к ней, то

  1. если сессия одна, достаточно просто команды: Ctrl+A потом x
  2. если сессий несколько, то: посмотреть список запущенных screen’ов можно командой screen -ls: $ screen -ls There are screens on: 2762.pts-0.debian (Detached) 2743.pts-0.debian (Detached) 2 Sockets in /var/run/screen/S-diesel.

    Выбираем нужный нам screen, и присоединяемся к нему:

    Screen -x 2762.pts-0.debian

    Названия сессий по-умолчанию малоинформативны - просто номера процессов, если есть желание запустить и использовать несколько screen-сессий для разных задач, можно придумать более вменяемые названия. Придумываем название, затем запускаем новый screen вот таким образом:

    $ screen -S "job1"

    где job1 - это название нашей «именнованной» сессии. Теперь в -ls мы увидим гораздо более понятное:

    $ screen -ls There are screens on: 2762.pts-0.debian (Detached) 2795.job1 (Detached) 2743.pts-0.debian (Detached) 3 Sockets in /var/run/screen/S-diesel.

    и сможем подсоединиться к сессии job1, просто указав ее имя:

    $ screen -x job1

Переключение между окнами screen

Как вы уже поняли, сессии сохраняются даже в то время, когда вы отключны от сервера, и все что в них запущено, продолжает выполняться. Впрочем, на этом возможности screen’а не исчерпываются. Иногда, при работе по ssh, очень хочется, чтобы было открыто сразу несколько терминалов. В этом тоже может помочь screen.

Ctrl+A потом? - вывести все доступные команды и параметры, для выхода пробел или Enter
Ctrl+A потом c - create создать окно screen
Ctrl+A потом p - strongvios переключиться к предыдущему окну screen
Ctrl+A потом n - next переключиться к следующему окну screen
Ctrl+A потом d - deatached отключиться от screen оставив сеанс работающим
Ctrl+A потом K - kill убить сеанс screen
Ctrl+A потом x - блокировка экрана, для разблокировки необходимо ввести пароль Linux.
Ctrl+A потом w - список запущенных в скрине окон
Ctrl+A потом A - подписать название разным окнам в скрине
Ctrl+A потом | - разделить окна по вертикали, после Ctrl+A вертикальная черта (не L маленькая) или введите split -v
Ctrl+A потом S - разделить окна по горизонтали
Ctrl+A потом Tab - переход между половинами
Ctrl+A Q - скрыть все окна и оставить только текущее
Ctrl+D - выйти из сеанса screen

Копирование текста между окнами и прокрутка экрана

Ctrl+A потом [ - переключит screen в Copy mode, при этом можно перемещаться по окну курсорными клавишами, для определения начала текстового фрагмента жмём пробел. Двигая стрелочками курсор, отмечаем конец выделения и снова жмём пробел. Всё, фрагмент скопирован. Вставляется он в это же или другое окно нажатием ] .

Для выхода из этого режима просто нажмите Esc .

Мониторинг выполнения команды

Если открыто несколько окон, полезной может быть возможность следить за активностью в каком-то из них. Например, если вы запустили команду и интересно узнать, когда она завершится. Переходим в окно с этой командой, жмем

Ctrl+A потом m - и включаем мониторинг активности окна. Теперь если текст окна изменится, то screen подаст звуковой сигнал, в списке окон возле его имени будет отображен символ “@”, а внизу окна на несколько секунд появится надпись “Активность в окне №…”!

Ведение лога и принт-скрин

Так же можно вести трассировку всего текста, выдаваемого в окно в особый файл screenlog. где N – номер окна.

Ctrl+A потом H

Теперь все результаты вашей работы будут логироваться и можно посмотреть историю не только ввода, но и вывода.

Так же команда для снятия текущего окна

Ctrl+A потом h

передает в файл hardcopy. только содержимое текущего окна, а не мониторит ввод-вывод постоянно. Аналог принт-скрина.

Конфигурация screen

Конфигурируется screen с помощью файла ~/.screenrc, в вашем домашнем каталоге. Например, можно написать туда:

Caption always "%{= 45}%{+b w}Screen: %n | %h %=%t %c" hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

Это даст вам все время видимый список открытых окон, и другую полезную информацию внизу экрана.

Также при запуске Screen по-умолчанию выполняются команды из файла /etc/screenrc и файла.screenrc из домашнего каталога пользователя. Многие команды которые можно использовать в файлах конфигурации были рассмотрены в таблицах выше в поле «Текстовая команда». Ниже представлен пример конфигурации Screen из файла.screenrc:

# Отключить вывод лицензионной информации при старте Screen startup_message off # Открыть оболочку для работы chdir screen -t Work # Открыть оболочку для управления конфигурацией chdir /etc screen -t Configuration # Открыть оболочку для просмотра логов chdir /var/log screen -t Logs # Выбрать первое окошко после старта select 0

Этот достаточно простой файл конфигурации открывает три окна с именами Work, Configuration, Logs, соответственно в личном каталоге пользователя, в каталоге /etc и каталоге /var/log . После запуска на экране будет находиться первое окно с именем Work. На рисунке 1 представлен пример работы Screen с этим файлом конфигурации.

Завершение Screen

Если по какой-то причине сессия screen перестает отвечать, можно завершить ее. Для этого нужно подключиться к нужной сессии, затем нажать Ctrl + A и ввести команду «:quit» .

Сегодня столкнулся с проблемой – запустил команду, время выполнения которой занимало больше суток, а ее работа прервалась после обрыва соединения. Обидно конечно, но не смертельно.

В мануалах по Linux нашел описание утилиты Screen , которая полностью решает мою проблему. Немного обидно, что раньше не знал про нее, но все бывает в первый раз. Учиться никогда не поздно.

Утилита Screen позволяет создавать при SSH соединении несколько экранов и переключаться между ними. Screen полностью решает проблему выполнения операций при разрывах соединения . Запустил команду в отдельном экране и можешь смело отключаться. Потом просто подключаешься и переходишь на нужный экран . Сессия при этом не теряется.

Пользоваться утилитой screen очень просто. Вводим в окне терминала команду screen и жмем Enter.


Если вылезет такое окно, то жмем пробел.


И еще разок на пробел.


Все – новый экран запущен.


Затем запускаем в созданном экране свою команду. Для примера введу htop.



Чтобы отключиться от экрана – жмем на клавиатуре Ctrl+A, а потом клавишу d.


После этого можно смело закрывать терминал. Ваша команда продолжит выполняться в отдельном экране.

Чтобы подключиться к нужному нам экрану, вводим команду screen -ls , которая выведет список всех запущенных экранов.



В моем случае их два:

root@raspberrypi:~# screen -ls
There are screens on:
4181.pts-0.raspberrypi (27.11.2013 11:53:14) (Detached)
3821.pts-0.raspberrypi (27.11.2013 11:03:55) (Detached)
2 Sockets in /var/run/screen/S-root.

Чтобы подключиться к нужному экрану, вводим команду:

screen -r 4181.pts-0.raspberrypi

(4181.pts-0.raspberrypi – название экрана, которое вывелось после команды screen –ls )



Вуаля. Мы видим запущенный ранее процесс.

Для выхода из сеанса screen нажмите Ctrl+D.

Всем успехов в изучении Linux.

Есть такая замечательная утилита screen , о которой я раньше вообще не знал! Теперь же стараюсь постоянно использовать. И, надеюсь, после прочтения этой статьи, будете использовать её и вы.

Итак, для чего она нужна?

Уж сколько раз была ситуация, когда, работая в терминале по SSH получал дисконнект и все наработки (открытый конфиг или процесс копирования) терялись. Screen позволяет запускать в своём окружении сеансы пользователя и получать к ним доступ, имея как бы разные виртуальные консоли. Можно оставить открытым конфиг какого-либо сервиса, отключиться под конец рабочего дня, приехать домой и подключиться к этому же сеансу из дома и всё, что было в терминале будет вам доступно, включая историю, открытый редактор и т.д. Разрывы связи теперь не помеха. Можно иметь несколько разных сеансов и подключаться к ним произвольно!

Посмотрим, как это работает:

Утилита у меня была уже установлена, о чём радостно сообщила мне команда:

# dpkg info | grep screen

Ну вот и всё! Теперь можно начинать работу.

Работа с сессиями Screen

Запускать screen можно набрав в консоли название этой программы. Вы сразу попадете либо в терминал, либо на окно приглашения, откуда после нажатия пробела или ввода опять же в терминал.

Посмотреть все сессии screen-а можно так:

Если сессии открыты, то подключиться к ним можно так:

# screen -x Имя

либо без имени, если сессия одна.

Создать сессию с определенным именем можно так:

# screen -S "name"

Кроме того, можно сразу запускать программы в Screen-сессию, набирая их:

# screen <команда>

Поработали мы со скрином, теперь можем либо убить сессию (выйдя из оболочки), либо отключиться от неё (Ctrl+D). При этом всё, что было в сессии продолжит выполняться и дальше.

Кроме того в одном окне screen можно использовать несколько консолей.

Убить сессию можно командой и затем k .

Управление Screen-ом

У screen-а весьма специфичное управление. Программе, запущенной внутри него передаются все нажатия клавиш, кроме тех, что предваряются сочетанием Ctrl+a (по умолчанию). Т.е. чтобы управлять screen-ом – нужно сперва нажать эту комбинацию, а затем набрать управляющую клавишу.

Итак, создаём новое окно внутри сессии screen:

# c

Можем переименовать это окно, для того, чтобы иметь возможность быстро его найти:

# A

Набрали текст, жмём Enter.

Просмотреть все окна можно так:

#

Выведет нам интерактивный список окон с номерами и именами, можно переключиться на любое.

Есть варианты выбрать не интерактивный список w , а так же переключаться на следующее n или на предыдущее окно p . Либо сразу на заранее известный номер окна 2 . Обратите внимание, что нумерация ведется с нуля.

Это может быть очень удобно вот для чего: допустим, нам нужно в реально времени мониторить какой-либо процесс. Предположим, нужно слушать log-файл постоянно. Для этого нам нужна команда

# tail -f /path/to/log

которая будет в реальном времени забирать 10 последних записей и выводить их на экран. Создадим новую консоль screen так:

# screen -d -m -S tail-log tail -f /var/log/nginx/error.log

– это создаст новую сессию screen-а, т.е. когда скрины пока не запущены вообще. При наборе этой команды, на первый взгляд, ничего не происходит. На самом деле так и есть. Создаётся (-m) новый сеанс по имени “ tail-log “, в котором выполняется команда “ tail -f /var/log/nginx/error.log ” (выводящая 10 последних записей лог-файла в реальном времени), и этот сеанс запускается уже свёрнутым (-d).

Если же скрин у вас уже запущен, то можно создать новое окно:

# c

Переименовать его в tail-log

# A

И запустить там нужную нам команду:

# tail -f /var/log/nginx/error.log

А в другом окне, аналогичным образом, открыть редактор правил файрволла и добавлять в DENY тех, кто нам явно нежелателен Ну или иное другое подобное применение, когда нужно быстро переключаться из окна в окно.

Мониторинг изменений окна

Но и это ещё не всё. Удобства ещё только начинаются. Есть ситуации, когда вывод какого-либо окна долго остается неизменным. Например ждать, пока в логи попадёт какая-либо информация может быть очень долго. И screen кое-что имеет на этот счёт!

Запустили мы два окна LOG в котором прослушивается лог-файл, и USER в котором наша консоль. Ждём пока в консоли. Реагировать будем тогда, когда в прослушиваемый LOG что-то придёт. Но не переключаться же постоянно туда-сюда, с целью уловить изменения?

Нажимаем сочетание:

# M

и включаем мониторинг активности окна. Теперь если текст окна изменится, то в списке окон возле его имени будет отображен символ “@”, а внизу окна на несколько секунд появится надпись “Активность в окне №…”!

Так же есть обратная возможность мониторить “тишину”, для этого используется команда: _ .

Два окна сразу

А можно ли открыть два консольных окна сразу? Конечно можно! Screen позволяет разделить окно. Вот как мы это сделаем.

Разделяем окно на части:

# S

При этом текущее окно пойдёт в верхнюю часть.

Переключение на нижестоящий регион (на первый, если уже на самом нижнем) осуществляется так:

# Tab

Открываем там другую консоль:

#

и выбираем её по имени. Имена окон подсвечиваются (0 LOG, 1 USER) чтобы мы не заплутали между ними.
2 окна сразу? Легко

Перемещая фокус ввода по Tab-у, как описано выше, мы, наконец, наигрались. Закрываем окна.

# X – закрывает текущий регион, Q закрывает все другие, кроме текущего. Смотря что вам нужно.

Копирование текста между окнами

Есть ещё одна интересная возможность – копирование текста между окнами через особый буфер.

Для этого есть команда

# [ , при этом можно перемещаться по окну курсорными клавишами, для определения начала текстового фрагмента жмём пробел. Двигая стрелочками курсор, отмечаем конец выделения и снова жмём пробел. Всё, фрагмент скопирован. Вставляется он в это же или другое окно нажатием ] . Всё просто!

Ведение лога и принт-скрин

Так же можно вести трассировку всего текста, выдаваемого в окно в особый файл screenlog. где N – номер окна.

# H

Теперь все результаты вашей работы будут логироваться и можно посмотреть историю не только ввода, но и вывода.

Так же команда для снятия текущего окна

# h

передает в файл hardcopy. только содержимое текущего окна, а не мониторит ввод-вывод постоянно. Аналог принт-скрина.

Конфигурирование

Для себя можно сконфигурировать Screen весьма гибко. После запуска выполняются команды в конфигах /etc/screenrc и персональные.screenrc в каталоге пользователя.

У каждой клавиатурной команды есть и текстовый вариант для конфига, который можно посмотреть в справке.

Но для примера вот такой конфиг, в котором отключаем приветствие, создаем заголовок и строку статуса, создаем два окна USER и LOG, в которых открываем соответствующие каталоги, делаем активным первое окно USER.
startup_message off
caption always "%{= 45}%{+b w}Screen: %n | %h %=%t %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
chdir /root/
screen -t USER
chdir /var/log/nginx/
screen -t LOG
select 0

Теперь при простом запуске скрина у нас будет следующее:

Справка

Есть и другие возможности, которые можно посмотреть так.

Screen - это полно-экранная программа, которая может быть использована для мультиплексов физической консоли между несколькими процессами (обычно интерактивными оболочками). Она предлагает пользователю открывать несколько отдельных терминалов в одном оконном менеджере терминала.

На моей Ubuntu 10.04 Server Edition, Screen был установлен по умолчанию. Но, в Linux Mint нет Screen по умолчанию, мне нужно сначала установить его, при помощи команды apt-get. Пожалуйста, следите за процессом установки screen вашего дистрибутива.

# apt-get install screen (On Debian based Systems) # yum install screen (On RedHat based Systems)

На самом деле, Screen - очень хорошая команда в Linux, которая скрыта внутри сотни Linux команд. Давайте стартанем, чтобы увидеть функции Screen.

Запускаем Screen первый раз

Просто введите screen в командной строке. Затем появится screen с таким же интерфейсом, как в командной строке.

Pungki@mint ~ $ screen

Показать параметры screen

Войдя в screen, можно выполнять различные действия, как и в нормальной окружающей среде CLI. Но так как screen - это приложение, поэтому оно имеет команды или параметры.

Наберите Ctrl-A и ? . Теперь вы увидите все команды или параметры на экране.

Screen key bindings, page 1 of 1. Command key: ^A Literal ^A: a break ^B b flow ^F f lockscreen ^X x pow_break B screen ^C c width W clear C focus ^I log H pow_detach D select " windows ^W w colon: hardcopy h login L prev ^H ^P p ^? silence _ wrap ^R r copy ^[ [ help ? meta a quit \ split S writebuf > detach ^D d history { } monitor M readbuf < suspend ^Z z xoff ^S s digraph ^V info i next ^@ ^N sp n redisplay ^L l time ^T t xon ^Q q displays * kill K k number N remove X title A dumptermcap . lastmsg ^M m only Q removebuf = vbell ^G fit F license , other ^A reset Z version v ^] paste . " windowlist -b - select - 0 select 0 1 select 1 2 select 2 3 select 3 4 select 4 5 select 5 6 select 6 7 select 7 8 select 8 9 select 9 I login on O login off ] paste .

Чтобы выйти из этого экрана, нужно нажать на кнопку "пробела " или "Enter ". (Обратите внимание, что все шоткаты, которые используют "Ctrl-A ", используются без кавычек).

Отключить screen

Одним из преимуществ screen есть то, что его можно отключить. Затем вы можете восстановить его, не теряя информации, которую выполняли перед тем. Вот пример скрипта:

Вы находитесь в середине SSH-on на вашем сервере. Давайте предположим, что вы скачиваете 400MB патча для вашей системы с помощью команды wget .

Процесс загрузки займет около двух часов. Если отключить SSH сессию или оборвать связь из-за аварии, то процесс загрузки остановится. Вам придется начать все с начала. Чтобы избежать этого, мы можем использовать screen и отключить его.

Взгляните на эту команду. Во-первых, вы должны войти в screen.

Pungki@mint ~ $ screen

Затем вы можете создать процесс загрузки. Для примера, на моем Linux Mint я апгрейднул мой dpkg пакет с помощью команды apt-get .

Pungki@mint ~ $ sudo apt-get install dpkg

Пример выходных данных

Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: dpkg 1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded. Need to get 2,583 kB of archives. After this operation, 127 kB of additional disk space will be used. Get:1 http://debian.linuxmint.com/latest/ testing/main dpkg i386 1.16.10 47% 14,7 kB/s

" и "d ". Вы ничего не увидите при нажатии этих клавиш. Результат будет выглядеть так:

Pungki@mint ~ $

Снова включить screen

После того как вы отключили screen, например, будем считать, что вы оборвали SSH сессию и пошли домой. Дома вы запускаете SSH снова на вашем сервере, и вы хотите увидеть как проходит процесс загрузки. Чтобы сделать это, вам нужно восстановить screen. Вы можете выполнить следующую команду:

Pungki@mint ~ $ screen -r

И вы увидите, что процесс возобновился с того места, где вы его оборвали.

Если у вас есть более чем 1 screen сессии, вам нужно ввести ID screen сессии. Используйте screen -ls, чтобы увидеть, сколько screen имеются.

Pungki@mint ~ $ screen -ls

Пример выходных данных

Pungki@mint ~ $ screen -ls There are screens on: 7849.pts-0.mint (10/06/2013 01:50:45 PM) (Detached) 5561.pts-0.mint (10/06/2013 11:12:05 AM) (Detached) 2 Sockets in /var/run/screen/S-pungki

Если вы хотите, то восстановите screen 7849.pts-0 .mint, затем введите эту команду.

Pungki@mint ~ $ screen -r 7849

Использование нескольких screen

Возможно ли запустить больше, чем 1 screen , чтобы выполнить работу? Да. Вы можете работать с несколькими окнами экрана одновременно. Есть 2 (два) способа сделать это.

Во-первых, вы можете отсоединить первый screen и запустить другой screen на терминале. Во-вторых, вы делаете вложения screen.

Переключение между screen

Когда у вас вложенные экраны, вы можете переключаться между ними с помощью команды "Ctrl-A " и "n ". Это будет переход к следующему экрану. Когда вам нужно вернуться к предыдущему экрану, нажмите "Ctrl-A " и "p ".

Чтобы создать новое окно экрана, просто нажмите "Ctrl-A " и "с ".

Залогинивание, которое вы делаете

Иногда важно, чтобы записать то, что вы сделали в то время, когда находились в консоли. Предположим, вы - администратор Linux, которые управляет множеством Linux серверов.

С залогиниванием экрана вам не нужно записывать каждую команду, которую вы сделали. Для активации Функция регистрации экрана просто нажмите "strong>Ctrl-А" и "H ". (Пожалуйста, будьте осторожны, мы используем большую букву H . Использование маленькой буквы h только создаст скриншот экрана в отдельном файле).

В нижней левой части экрана появится уведомление, которое сообщает: Creating logfile “screenlog.0 “. Вы найдете screenlog.0 файл в вашем домашнем каталоге.

Эта функция будет добавлять все, что вы делаете, когда находитесь в окне экрана. Закройте экран, чтобы залогиниться, нажмите "Ctrl-А " и "Н " еще раз.

Pungki@mint ~ $ screen -L

Еще один способ, чтобы активировать функцию ведения журнала - вы можете добавить параметр "-L ", когда screen запускается первый раз. Команда будет выглядеть следующим образом.

Pungki@mint ~ $ screen -L

Screen блокировки

Screen также шоткат для блокировки экрана. Вы можете нажать "Ctrl-А " и "х " для блокировки экрана. Это удобно, если вы хотите быстро заблокировать экран. Вот пример вывода блокировки экрана после нажатия на шоткаты.

Screen used by Pungki Arianto on mint. Password:

Вы можете использовать свой Linux пароль, чтобы разблокировать его.

Добавить пароль для блокировки screen

В целях безопасности, вы можете поставить пароль на вашу screen сессию. Ввести пароль будет предложено, когда вы хотите повторно приатачить screen. Этот пароль отличается от механизма блокировки экрана выше.

Чтобы защитить ваш экран паролем, вы можете редактировать файл “$HOME/.screenrc ”. Если файла не существует, его можно создать вручную. Синтаксис будет таким.

Password crypt_password

Чтобы создать "crypt_password ", вы можете использовать команду "mkpasswd " на Linux. Вот команда с паролем "pungki123 ".

Pungki@mint ~ $ mkpasswd pungki123 l2BIBzvIeQNOs

mkpasswd будет генерировать пароль, как показано выше. Как только вы получите пароль, вы можете скопировать его в файл ".screenrc " и сохранить. Теперь файл ".screenrc " будет выглядеть так.

Password l2BIBzvIeQNOs

При следующем запуске экрана отключите его, и пароль будет запрашиваться при попытке повторно включить экран, как показано ниже:

Pungki@mint ~ $ screen -r 5741 Screen password:

Введите пароль "pungki123 " и экран подключится снова.

Как только вы запустите запрос пароля экрана и нажмете "Ctrl-А " и "х ", то на выходе будет это.

Screen used by Pungki Arianto on mint. Password: Screen password:

Вам нужно будет ввести пароль два раза . Первый раз - ваш пароль Linux , второй - пароль, который вы положили в файл .screenrc .

Выход из screen

Есть 2 (два) способа выхода из экрана. Первый - мы используем "Ctrl-А " и "d ", чтобы отключить его. Второй - мы можем использовать команду погашения экрана. Вы также можете использовать "Ctrl-А " и "К " чтобы прибить экрана.

Больше года одноклассник подбивал меня начать использовать screen во время работы. Шло время, у меня всё никак не доходили до этого руки. А зря…

Screen — это полноэкранный оконный менеджер, позволяющий из одного терминального сеанса работать сразу с несколькими окнами. Иными словами, подключившись к удалённой машине по ssh вы сможите работать сразу с несколькими его окнами внутри одной сессии подобно нажатию ctrl+alt+f1, ctrl+alt+f2… У программы есть одна важная особенность: при обрыве связи или отключении от «скрина» процессы, в нём запущенные не останавливаются и к ним можно вернуться в любой момент. Этому можно найти массу применений. Например, работая с удалённым сервером можно быть уверенным в том, что запущенное компилирование программы дойдёт до конца, даже если вдруг оборвётся связь.

Установка

Устанавливается программа как обычно, например, в Ubuntu так:

apt-get install screen

Стоит так же заметить, что в моей Ubuntu 10.04 Desktop этот пакет уже был в системе.

Использование Screen

Запуск программы:

После запуска программы будет показана краткая информация о ней. Для того, чтобы убрать её нажимаем enter или пробел. Вы можете подумать, что ничего не произошло, однако, это не так: вы внутри терминала, запущенного в screen. После этого мы видим привычную нам консоль.

Для подачи команд screen используется сочетание клавишь ctrl+a. Ниже приведён список основных команд, служащих для управления оболочкой:

  • c — создание нового окна
  • n — переключение к следующему окну
  • p — переключение к предыдущему окну
  • k — закрытие окна
  • d — отключение от скрина
  • » — список запущенных в скрине окон

Например, для создания нового окна нужно нажать ctrl+a и нажать клавишу c.

При отключении от скрина все окна и процессы, запущенные в них продолжают выполняться. Для просмотра запущенных скринов используется команда:

Вывод команды будет примерно таким:

There are screens on:
18388.pts-4.asid-ubuntu-vm (23.09.2010 05:05:30) (Detached)
18272.pts-0.asid-ubuntu-vm (23.09.2010 04:54:23) (Detached)
2 Sockets in /var/run/screen/S-root.

Для того, чтобы подключиться к запущенному скрину выполняем команду screen -r . Например, так:

screen -r 18388.pts-4.asid-ubuntu-vm

или короче:

Если вы забыли отключиться от скрина с другой машины (в выводе screen -ls рядом с ним будет надпись atached), перехватить его можно с помощью параметра -rd:

screen -rd 18388

Для подключения к последнему скрину можно просто:

Ну вот, вроде бы, и всё. Подробнее об этих и других командах, как обычно, в мане.

Поделиться