Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
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}} |