screen: консольный оконный менеджер на стероидах. Оригинальная статья: screen: a console-base window manager on steroids Перевод: Соломин Евгений 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.