Screen Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
wiki:screen [2010/06/07 00:10]
создано
wiki:screen [2015/02/24 16:18] (текущий)
[Работа с несколькими скринами]
Строка 1: Строка 1:
-====== ​утилита screen ​====== +======Screen====== 
-===== введение ===== + 
-данная утилита имеет множество функцийно наиболее частое ее применение - сворачивание в фон программ,​ которые сами этого не умеют, с возможностью последюущего возврата к ним. это может быть полезно при работе с программами,​ которые реализованы не в виде "​демон+клиент",​ а единым целым и не работают без запуска интерфейса. ​типичный пример - rtorrent, который при всех своих преимуществах запускается только в виде консольного интерфейса,​ а в фон уходить не умеет, можно только "​выйти вообще"​. ​его и возьмем в качестве примера +===== Введение ===== 
-===== запуск ​screen ​и основы работы ===== +  * Данная утилита ​[[http://​ru.wikipedia.org/​wiki/​GNU_Screen|GNU Screen]] ​имеет множество функций. Очень удобно использовать эту утилиту при удаленном подключении к системе по ssh. Но наиболее частое ее применение - сворачивание в фон программ,​ которые сами этого не умеют, с возможностью последюущего возврата к ним. это может быть полезно при работе с программами,​ которые реализованы не в виде "​демон+клиент",​ а единым целыми не работают без запуска интерфейса. ​Типичный пример - rtorrent, который при всех своих преимуществах запускается только в виде консольного интерфейса,​ а в фон уходить не умеет, можно только "​выйти вообще"​. ​Его и возьмем в качестве примера. 
-screen ​создает отдельные объекты,​ называемые иногда "​скринами"​. ​каждый скрин - это что-то вроде окна, которое можно свернуть-развернуть,​ если проводить аналогию с графическим интрефейсом. ​только вместо окна вы получаете виртуальную консоль,​ которую можно отправить в фон или вывести на передний план, и в которой запускается указанное приложение. +===== Запуск и основы работы ​Screen===== 
-простейший запуск осуществляется командой+  * Screen ​создает отдельные объекты,​ называемые иногда "​скринами"​. ​Каждый скрин - это что-то вроде окна, которое можно свернуть-развернуть,​ если проводить аналогию с графическим интрефейсом. ​Только вместо окна вы получаете виртуальную консоль,​ которую можно отправить в фон или вывести на передний план, и в которой запускается указанное приложение. 
 +  * Простейший запуск осуществляется командой:
 <​code>​screen</​code>​ <​code>​screen</​code>​
-при запуске в таком виде, т.е. без параметров,​ программа создаст новый скрин, в котором откроет сессию командной оболочки,​ как если бы вы залогинились в tty-консоли или открыли новую вкладку в графическом терминаледля наглядности выполните что-нибудь в командной строке - например,​ ''​ls''​. +  * При запуске в таком виде, т.е. без параметров,​ программа создаст новый скрин, в котором откроет сессию командной оболочки,​ как если бы вы залогинились в tty-консоли или открыли новую вкладку в графическом терминаледля наглядности выполните что-нибудь в командной строке - например,​ ''​ls''​. 
-а теперь о том, как свернуть запущенный скрин вместе со всем, что в нем работает. ​для этого нужно нажать <​key>​ctrl</​key>​+<​key>​a</​key>,​ после чего нажать <​key>​d</​key>​. в принципе,​ это единственная комбинация,​ которую простому пользователю стоит запомнить. <key>ctrl</​key>​+<​key>​a</​key>​ переведет screen в командный режим. клавиша <​key>​d</​key>​ даст команду свернуть текущий скрин. ​теперь вы можете закрыть терминал или разлогиниться с tty-консоли - запущенный в свернутом скрине процесс продолжит работу в фоне. +  * Теперь о том, как свернуть запущенный скрин вместе со всем, что в нем работает. ​Для этого нужно нажать <​key>​ctrl</​key>​+<​key>​a</​key>,​ после чего нажать <​key>​d</​key>​. в принципе,​ это единственная комбинация,​ которую простому пользователю стоит запомнить. <key>Сtrl</​key>​+<​key>​a</​key>​ переведет screen в командный режим. клавиша <​key>​d</​key>​ даст команду свернуть текущий скрин. ​Теперь вы можете закрыть терминал или разлогиниться с tty-консоли - запущенный в свернутом скрине процесс продолжит работу в фоне. 
-для того, чтобы вернуться к свернутому скрину,​ достаточно запустить+  * Для того, чтобы вернуться к свернутому скрину,​ достаточно запустить:
 <​code>​screen -r</​code>​ <​code>​screen -r</​code>​
-ключ ''​-r''​ как раз и укажет программе,​ что нужно развернуть свернутый скрин (если таковой,​ конечно,​ имеется). ​перед вами должна предстать та самая сессия в консоли,​ которую вы свернули,​ со всем, что в ней было. ​теперь выйдете из сессии с помощью команды ''​exit''​. ​screen ​сообщит о завершении своей работы. ​таким образом,​ вам достаточно выйти из запущенного в скрине процесса,​ а screen выключится сама. +  * Ключ ''​-r''​ как раз и укажет программе,​ что нужно развернуть свернутый скрин (если таковой,​ конечно,​ имеется). ​Перед вами должна предстать та самая сессия в консоли,​ которую вы свернули,​ со всем, что в ней было. 
- +  * Теперь выйдете из сессии с помощью команды ''​exit''​. ​Screen ​сообщит о завершении своей работы. ​Таким образом,​ вам достаточно выйти из запущенного в скрине процесса,​ а screen выключится сама. 
-теперь запустим вышеупомянутый rtorrent. ​делается это предельно просто - нужно указать screen команду для запуска. ​тогда вместо командной оболчки откроется указанная программа+  * Далее запустим вышеупомянутый rtorrent. ​Делается это предельно просто - нужно указать screen команду для запуска. ​Тогда вместо командной оболочки откроется указанная программа:
 <​code>​screen rtorrent</​code>​ <​code>​screen rtorrent</​code>​
-ну вот, перед вами rtorrent. теперь ​можно свернуть ​его, а потом вернуться к нему, как описано выше. ​rtorrent ​будет качать/​раздавать в фоне, избавляя вас от необходимости держать ради него открытую вкладку терминала или tty-консоль (что еще и небезопасно) +  * Перед вами ​открылся ​rtorrentего можно свернуть,​ а потом вернуться к нему, как описано выше. ​Rtorrent ​будет качать/​раздавать в фоне, избавляя вас от необходимости держать ради него открытую вкладку терминала или tty-консоль (что еще и небезопасно). 
-===== работа с несколькими скринами ===== +===== Работа с несколькими скринами ===== 
-если вам нужно запустить лишь одну программу - вышеописанного более чем достаточнов случае ​же, если таких программ несколько - скринам нужно будет раздать имена, чтобы screen знала, к какому именно свернутому скрину вы хотите вернуться. ​имя создаваемого скрина задается с помощью ключа ''​-S''​+  * Eсли вам нужно запустить лишь одну программу - вышеописанного более чем достаточно, но в случае если таких программ несколько - скринам нужно будет раздать имена, чтобы screen знала, к какому именно свернутому скрину вы хотите вернуться. ​Имя создаваемого скрина задается с помощью ключа ''​-S''​:
 <​code>​screen -S rtor rtorrent</​code>​ <​code>​screen -S rtor rtorrent</​code>​
-теперь сверните скрин с rtorrent'​ом и запустите еще что-нибудь. напримерnano+  * Cверните скрин с rtorrent'​ом и запустите еще что-нибудь, к примеру nano:
 <​code>​screen -S nano nano</​code>​ <​code>​screen -S nano nano</​code>​
-и этот скрин тоже сверните. ​теперь можно вернуться к любому из двух скринов аналогично вышеописанному,​ только с указанием имени скрина,​ который вы хотите развернуть,​ например+  * Этот скрин также сверните. ​Теперь можно вернуться к любому из двух скринов аналогично вышеописанному,​ только с указанием имени скрина,​ который вы хотите развернуть,​ например:
 <​code>​screen -r nano</​code>​ <​code>​screen -r nano</​code>​
-кстати,​ список запущенных скринов можно посмотреть с помощью +  * Список запущенных скринов можно посмотреть с помощью: 
-<​code>​screen -list</​code>​ +<​code>​screen -list</​code>​ или <​code>​screen -ls</​code>​ 
-===== запуск скрина в свернутом виде ===== +  * Возможно также вернуться к уже развернутому в ином терминале скрину:​ 
-программу можно ​даже сразу ​запустить в свернутом скрине. ​это полезно в случае с автозапуском,​ или когда вы знаете,​ что программа сама все сделает (установит соединение и продолжит закачку/​раздачу в нашем примере с rtorrent), и смотреть там не на что. ​делается вся опять же просто. ​команда на запуск будет такой+<​code>​screen -x nano</​code>​ 
 +===== Запуск скрина в свернутом виде ===== 
 +  * Программу можно запустить ​сразу ​в свернутом скрине. ​Это полезно в случае с автозапуском,​ или когда вы знаете,​ что программа сама все сделает (установит соединение и продолжит закачку/​раздачу в нашем примере с rtorrent), и смотреть там не на что. ​Делается все опять же просто. ​Команда на запуск будет такой:
 <​code>​screen -dmS rtor rtorrent</​code>​ <​code>​screen -dmS rtor rtorrent</​code>​
-ключ ''​-d''​ укажет,​ что скрин нужно свернуть,​ а ключ ''​-m''​ - что его нужно для начала создать. ​процесс "​усложняется"​ по той причине,​ что ключ ''​-d''​ по умолчанию используется для сворачивания ранее запущенного скрина,​ развернутого на другой консоли или в соседней вкладке,​ с той целью, чтобы развернуть его в текущем месте.((ибо если одна и та же программа управляется из двух мест - это может и к конфузу привести)+  * Ключ ''​-d''​ укажет,​ что скрин нужно свернуть,​ а ключ ''​-m''​ - что его нужно для начала создать. ​Процесс "​усложняется"​ по той причине,​ что ключ ''​-d''​ по умолчанию используется для сворачивания ранее запущенного скрина,​ развернутого на другой консоли или в соседней вкладке,​ с той целью, чтобы развернуть его в текущем месте (ибо если одна и та же программа управляется из двух мест - это может и к конфузу привести). Таким образом нужная программа запустится сразу в фоне, а screen лишь выведет сообщение о том, что программа запущена,​ и скрин свернут. 
-вот таким образом нужная программа запустится сразу в фоне, а screen лишь выведет сообщение о том, что программа запущена,​ и скрин свернут. +===== Прочие возможности ===== 
-===== прочие возможности ===== +  * Данная статья описывает лишь основы. На самом деле утилита screen обладает массой возможностейнапримерможно разбить экран пополам,​ отобразив несколько скринов с разными программамиможно задать множество разных параметров,​ настроить под разные типа терминалов. ​Во всем этом поможет разобраться ''​screen --help''​ или ''​man screen''​. ​Также ​есть еще одна полезная комбинация клавиш. ​Как сказано в мануале, "​если вам лень читать кучу текста - запомните эту комбинацию"​ - <​key>​ctrl</​key>​+<​key>​a</​key>​ и затем <​key>?</​key>​ (("?"​ - это правый ​Shift плюс кнопка слева от него)). ​Вам будет выведен список доступных сочетаний клавиш и команд,​ которые они выполняют. ​Все это нажимается также после <​key>​ctrl</​key>​+<​key>​a</​key>​. 
-данная статья описывает лишь основы, на самом деле утилита screen обладает массой возможностейнапримерможно разбить экран пополам,​ отобразив несколько скринов с разными программамиможно задать множество разных параметров,​ настроить под разные типа терминалов. ​во всем этом ​как всегда ​поможет разобраться ''​screen --help''​ или ''​man screen''​. ​и есть еще одна полезная комбинация клавиш. ​как сказано в мануле,​ "​если вам лень читать кучу текста - запомните эту комбинацию"​ - <​key>​ctrl</​key>​+<​key>​a</​key>​ и затем <​key>?</​key>​(("?"​ - это правый ​shift плюс кнопка слева от него)). ​вам будет выведен список доступных сочетаний клавиш и команд,​ которые они выполняют. ​все это нажимается так же после <​key>​ctrl</​key>​+<​key>​a</​key>​ + 
-------------- +===== Ссылки ===== 
-если вы осилили какую-либо полезную функцию - расскажите о ней здесь!FIXME +  * [[http://​rus-linux.net/​lib.php?​name=/​MyLDP/​consol/​screen.html|GNU Screen: введение для чайников]] 
-{{tag>​консоль терминал программы ​NEW}}+  * [[http://​boombick.org/​blog/​posts/​26|Еще немного о screen]] 
 +  * [[http://​habrahabr.ru/​blogs/​personal/​27315/​|Screen — текстовый оконный менеджер]] 
 +  * [[http://​forum.ubuntu.ru/​index.php?​topic=27099.msg188959#​msg188959|Тема на ubuntu.ru]] 
 + 
 +<​note>​FIXME ​если вы осилили какую-либо полезную функцию - расскажите о ней здесь!</​note>​ 
 +{{tag>​консоль терминал программы ​FIXME}}