screen: консольный оконный менеджер на стероидах.

Проект "Пакет дня" нуждается в помощи переводчиков. Если Вы можете помочь с переводом статей, пожалуйста, присоединяйтесь!

Оригинальная статья: Ico Doornekamp
Перевод: Соломин Евгений

GNU screen одна из моих все время любимых Unix инструментов. В соответствии с официальной документации, screen это полноэкранный оконный менджер который мультиплексирует терминал между несколлькими процессами.

Итак, что это означет? GNU screen разрешает Вам запкскать несколько консольных приложений как редакторы, оболчки IRC клиенты, читалки новостей и т.д. в одном терминале. screen позволяет Вам переключаться между приложениями или распологать несколько окон в одном терминале. Одна из наиболее острых фич это то, что программы запускаемые в screen'ах могут быть отделены - это означает, что они все еще запущены, даже если текущий терминал закрыт.

После создания нового терминала могут быть прикреплены к этому терминалу, даже если терминал открывается с другого хоста!

Далее идет небольшой демонстрационный пример типичной сессии screen'а, реальная история системного администратора Боба.

Боб подключается к серверу и запускает новую screen сессию.

bob@desktop$ ssh bob@server

bob@server$ screen

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

screen version 4.00.03 (FAU) 23-Oct-06

Copyright (c) 1993-2002 Juergen Weigert, Michael

Copyright (c) 1987 Oliver Laumann

This program is free software; you can redistribute

it and/or modify it under the terms of the GNU

General Public License as published by the Free

Software Foundation; either version 2, or

(at your option) any later version.

[Press Space for next page; Return to end.]

Теперь оболка запущена в screen сессии. Боб запускает его любимый редактор...

bob@server:~$ su -

Password:

server:~# vi /etc/apache/httpd.conf

... и делает некоторые тяжелые изменениия.

ProxyRequests On

Order deny,allow

Deny from all

Allow from 10.0.0.

/etc/apache/httpd.conf 993,25 94%

Пока идет редактирование, Боб решает проверить свою почту. Вместо открытия еще одного SSH соединения с сервером, он нажимает C-a, C - как есть, т.е. он печатает Ctrl-a и затем "c".

screen теперь создает новое окно, открывается новая оболочка...

bob@server$ mutt

... и Боб запускает "mutt", его почтовый агент.

q:Quit d:Del u:Undel s:Save m:Mail r:Reply g:Gro

2 + Dec 22 Daniel Hirschi (0.6K) Implementing s

3 + Jan 06 Ricki Silversto (3.0K) Paycheck

4 + Jan 26 Roberto (1.0K) Read this!

5 C Jan 26 Michel Wraith (9.0K) RE: finished

—Mutt: ~/Maildir [Msgs:5 19K]—(threads/date)—(a)

Используя комбинации C-a 1 и C-a 2 Боб теперь способен переключаться между vi и mutt с таких же консолей.

Время возвращаться домой. Боб нажимает комбинацию клавиш C-a D, которая отделит текущую screen сессию от терминала и вернет его домой.

bob@server$ screen -x

[detached]

bob@desktop:$ logout

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

bob@home$ ssh bob@server.company.com

bob@sever$ screen -x

Редактор vi и почтовый агент mutt все еще запущены, и Боб сейчас может продолжить свою работу из дома с момента на котором он остановился.

ProxyRequests On

Order deny,allow

Deny from all

Allow from 10.0.0.

/etc/apache/httpd.conf 993,25 94%

– INSERT —

screen был доступен все время и в Debian и в Ubuntu.