Перейти к содержимому

Screen ubuntu как пользоваться

  • автор:

Как пользоваться утилитой screen в Linux?

img

Сейчас вы точно прочувствуете важное команды screen . Бывало ли у вас такое, что вы выполняете (очень долго) команду в консоли — CLI на удаленной машине, будучи подключенным через SSH? Команда долго выполняется и близится к завершению как вдруг пропадает подключение, рвется SSH подключение и все, что вы делали — пропало?

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

Немножко теории

Так называемый screen это терминальный мультиплексор (нас тоже пугает это слово). Другими словами, оно дает нам возможность внутри действующей сессии открыть сколько угодно много виртуальных окон/терминалов. Что важно — процесс, запущенный внутри сессии через screen, будет продолжаться даже тогда, когда вы отключитесь от самой первой сессии.

Установка screen в Linux

Вообще, пакет screen предустановлен на большинстве современных Linux — дистров. Проверить можно командой:

screen --version Screen version 4.00.03 (FAU) 23-Oct-06

screen --version

Если случилось так, что у вас его нет — это можно быстро исправить простой установкой.

Установка screen в Ubuntu и Debian
apt install screen
Установка screen в CentOS и Fedora
yum install screen

Запуск screen в Linux

Чтобы запустить screen в консоли, просто наберите screen . Что может быть проще, не правда ли?

screen

У вас откроется новая сессия в новом окне. Уже здесь вы можете вводить все нужные shell команды. Находясь в режиме скрина (screen) вы можете посмотреть список доступных вам команд управления этим режимом. Вот так:

Ctrl+a и ?

screen список доступных вам команд

Если не получается нажать указанную выше комбинацию, можно поступить проще: нажмите отдельно Ctrl+a , отпустите, а затем в консоль наберите ? и нажмите Enter

Сессия screen с именем

Ну очень удобная фича. Если вы делаете несколько процессов параллельно, просто обзовите их так, чтобы потом понять, что и где выполняется. Синтаксис такой:

screen -S имя_сессия_скрин

Например, вы можете запустить ping — замер хоста с 1С и назвать сессию так:

screen -S pings_towards_1C

Всегда используйте скрин именно так. Будет значительно удобнее.

Как правильно работать с окнами в Windows

Как мы уже сказали, когда вы создаете новую screen — сессию, вы создадите новое окно с shell оболочкой внутри. И что интересно — внутри скрин сессии вы можете создать множество дополнительных окон. Чтобы это сделать, воспользуйтесь командой (внутри скрина) Ctrl+a и c . Новому окну будет назначен номер от 0 до 9 (первый свободный).

Ниже мы собрали все команды, которые понадобятся вам для управления скринами:

  • Ctrl+a и c — создать дополнительное окно ;
  • Ctrl+a и » — показать список всех имеющихся окон;
  • Ctrl+a и 0 — переключиться на окно с номером 0 (номер может быть иной);
  • Ctrl+a и A — переименовать текущее окно;
  • Ctrl+a и S — разделить окно по горизонтали на две области;
  • Ctrl+a и | — разделить окно по вертикали на две области;
  • Ctrl+a и tab — переключить рабочий фокус на следующую область разделенного окна;
  • Ctrl+a и Ctrl+a — переключить рабочий фокус на предыдущую область разделенного окна;
  • Ctrl+a и Q — закрыть все разделенные области кроме;
  • Ctrl+a и X — закрыть текущую область;
Выход из screen сессии

Вы можете легко выйти из screen — сессии набрав:

Ctrl+a и d

Самое важное: запущенная вами в этот момент команда не остановится и будет продолжать свое выполнение.

Возврат к screen сессии

Чтобы вернуть к screen — сессии используйте команду:

screen -r

Если у вас запущено больше чем одна screen — сессия, то после ключа r нужно указать ее ID. Узнать его просто с помощью команды:

screen -ls

Вывод этой команды будет выглядеть вот так:

screen -ls There are screens on: 32328.pings_towards_1C (Detached) 32482.wiki.merionet.ru_is_one_love (Detached) 2 Sockets in /var/run/screen/S-root.

В выводе выше мы выделили ID — сессий. Например, чтобы вернуться к сессии 32328 (pings_towards_1C), дайте команду:

screen -r 32328

Немножко кастомизации screen под вас

Когда screen запускается, он считывает свои конфигурационные параметры из /etc/screenrc и ~/.screenrc , если файл присутствует. Так вот — мы можем легко перенастроить предпочтения использования screen и сделать это в файле .screenrc .

Посмотрите пример с комментариями, как мы закастомили screen для себя:

# Выключаем приветствие startup_message off # включаем визуальный звонок vbell off # буфер для сохраненных строк делаем 10000 defscrollback 10000 # кастомим строку состояния hardstatus alwayslastline hardstatus string '%[ %%H %][%= %%?%-Lw%?%(%%n*%f%t%?(%u)%?%)%%?%+Lw%?%?%= %][% %m-%d %%c %]'

Типовой сценарий использования screen

Общий случай, так сказать. Обычно он состоит из следующих шагов:

  1. После SSH подключения к серверу, набираем screen ;
  2. Запускаем интересующую нас команду в режиме screen — сессии;
  3. Выполняем команду Ctrl + a и d , чтобы выйти из режима работы с экран-сессией
  4. Через какое-то время возвращаемся к запущенному ранее экрану командой screen -r

Выводы

Мы разобрались, как создавать screen сессии, управлять ими внутри, открывая новые окна, выходить из их режима управления (без прекращения выполнения команды), делить горизонтально и вертикально экраны.

Ах да, ещё мы научились кастомизировать screen под себя. Профит!

Как пользоваться Screen в Linux

Как пользоваться Screen в Linux

Хотите почистить место на вашем VPS или домашнем компьютере с Ubuntu? Начните с кэша apt-get, journalctl! За годы использования он копится гигабайтами. Очистить кэш apt-get Проверить сколько занимает места: sudo du -csh /var/cache/apt Очистить кэш: sudo apt-get clean Очистить кэш journalctl Проверить сколько занимают места логи: sudo journalctl

17 дек. 2023 г. 1 min read

Как проверить износ SSD диска MacBook

Как проверить износ SSD диска MacBook

Для того чтобы проверить износ диска потребуется выполнить 3 команды в терминале: 1. установить Homebrew 2. установить smartmontools 3. выполнить команду проверки. Делов на 5 минут. Установка Homebrew Если у вас еще не установлен Homebrew – зря. Это удобная утилита для установки пакетов в MacOS. Для установки выполните в терминале: /bin/

4 дек. 2023 г. 1 min read

Arc браузер будущего?

Arc браузер будущего?

Пару недель назад бороздил просторы интернета и наткнулся на новый браузер под названием Arc. Есть ощущение, что Google Chrome мне больше не нужен. ��В данный момент Arc доступен на двух платформах: MacOS, iOS. Версии для Windows, Android обещают добавить позже Откуда появился The Browser Company – стартап, который собрал более 17

Программа Screen. Запуск приложений в фоновом режиме

GNU Screen – это приложение, позволяющее запускать несколько виртуальных терминалов в режиме сессий. После того, как сессия создана, от неё можно отключиться, а позже – снова подключиться, причём с любого другого хоста, на котором установлен SSH клиент. Процессы, запущенные в Screen, продолжают выполняться и после того как пользователь отключается от сессии или вообще от хоста в целом. Это ещё одна причина (кроме повышения удобства работы в командной строке вследствие использования возможности перехода между окнами), по которой используется Screen. Если соединение с Интернетом – ненадёжное или у пользователя нет возможности поддерживать постоянное соединение, или существует необходимость запустить выполнение процесса в офисе, а остановить – дома, то использование Screen (или подобных приложений, например, Tmux) – способ решить эти проблемы.

Команды Screen для Linux

После установки, программу Screen можно запустить командой screen. При этом будет создана сессия, название которой будет включать идентификатор процесса самой сессии (PID) и часть названия хостнейма. Для того, чтобы присвоить сессии имя, необходимо указать ключ –S:

screen –S myscreensession01

После входа в сессию её управление осуществляется путём ввода комбинаций клавиш. Вводная комбинация для Screen – ctrl + a. После этого вводится символ, который определён для выполнения того или иного действия. Например, для того, чтобы отключиться от сессии, необходимо указать символ d, то есть:

ctrl + a d

Для создания нового окна используется символ c:

ctrl + a c

Переход к следующему окну:

ctrl + a n

Переход к предыдущему окну:

ctrl + a p

Для выбора конкретного окна:

ctrl + a “
ctrl + a 1 (где 1 – номер окна)

Для удаления текущего окна:

ctrl + a k

При удалении последнего окна также уничтожается и сама сессия. Для уничтожения всех окон и выхода из Screen:

ctrl + a ctrl \

Для разбиения окна на два (по горизонтали):

ctrl + a S

Полный список комбинаций можно просмотреть в документации при помощи команды:

man screen

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

screen –ls

Для подключения к определённой сессии (например, myscreensession01):

screen –x myscreensession01

Screen

Данная утилита GNU Screen имеет множество функций. Очень удобно использовать эту утилиту при удаленном подключении к системе по ssh. Но наиболее частое ее применение — сворачивание в фон программ, которые сами этого не умеют, с возможностью последюущего возврата к ним. это может быть полезно при работе с программами, которые реализованы не в виде «демон+клиент», а единым целым, и не работают без запуска интерфейса. Типичный пример — rtorrent, который при всех своих преимуществах запускается только в виде консольного интерфейса, а в фон уходить не умеет, можно только «выйти вообще». Его и возьмем в качестве примера.

Запуск и основы работы Screen

Screen создает отдельные объекты, называемые иногда «скринами». Каждый скрин — это что-то вроде окна, которое можно свернуть-развернуть, если проводить аналогию с графическим интрефейсом. Только вместо окна вы получаете виртуальную консоль, которую можно отправить в фон или вывести на передний план, и в которой запускается указанное приложение.

Простейший запуск осуществляется командой:

screen

При запуске в таком виде, т.е. без параметров, программа создаст новый скрин, в котором откроет сессию командной оболочки, как если бы вы залогинились в tty-консоли или открыли новую вкладку в графическом терминале, для наглядности выполните что-нибудь в командной строке — например, ls .

Теперь о том, как свернуть запущенный скрин вместе со всем, что в нем работает. Для этого нужно нажать Ctrl + A , после чего нажать D . в принципе, это единственная комбинация, которую простому пользователю стоит запомнить. Сtrl + A переведет screen в командный режим. клавиша D даст команду свернуть текущий скрин. Теперь вы можете закрыть терминал или разлогиниться с tty-консоли — запущенный в свернутом скрине процесс продолжит работу в фоне.

Для того, чтобы вернуться к свернутому скрину, достаточно запустить:

screen -r

Ключ -r как раз и укажет программе, что нужно развернуть свернутый скрин (если таковой, конечно, имеется). Перед вами должна предстать та самая сессия в консоли, которую вы свернули, со всем, что в ней было.

Теперь выйдете из сессии с помощью команды exit . Screen сообщит о завершении своей работы. Таким образом, вам достаточно выйти из запущенного в скрине процесса, а screen выключится сама.

Далее запустим вышеупомянутый rtorrent. Делается это предельно просто — нужно указать screen команду для запуска. Тогда вместо командной оболочки откроется указанная программа:

screen rtorrent

Перед вами открылся rtorrent, его можно свернуть, а потом вернуться к нему, как описано выше. Rtorrent будет качать/раздавать в фоне, избавляя вас от необходимости держать ради него открытую вкладку терминала или tty-консоль (что еще и небезопасно).

Работа с несколькими скринами

Eсли вам нужно запустить лишь одну программу — вышеописанного более чем достаточно, но в случае если таких программ несколько — скринам нужно будет раздать имена, чтобы screen знала, к какому именно свернутому скрину вы хотите вернуться. Имя создаваемого скрина задается с помощью ключа -S :

screen -S rtor rtorrent

Cверните скрин с rtorrent’ом и запустите еще что-нибудь, к примеру nano:

screen -S nano nano

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

screen -r nano

Список запущенных скринов можно посмотреть с помощью:

screen -list
screen -ls

Возможно также вернуться к уже развернутому в ином терминале скрину:

screen -x nano

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

Программу можно запустить сразу в свернутом скрине. Это полезно в случае с автозапуском, или когда вы знаете, что программа сама все сделает (установит соединение и продолжит закачку/раздачу в нашем примере с rtorrent), и смотреть там не на что. Делается все опять же просто. Команда на запуск будет такой:

screen -dmS rtor rtorrent

Ключ -d укажет, что скрин нужно свернуть, а ключ -m — что его нужно для начала создать. Процесс «усложняется» по той причине, что ключ -d по умолчанию используется для сворачивания ранее запущенного скрина, развернутого на другой консоли или в соседней вкладке, с той целью, чтобы развернуть его в текущем месте (ибо если одна и та же программа управляется из двух мест — это может и к конфузу привести). Таким образом нужная программа запустится сразу в фоне, а screen лишь выведет сообщение о том, что программа запущена, и скрин свернут.

Прочие возможности

Данная статья описывает лишь основы. На самом деле утилита screen обладает массой возможностей, например: можно разбить экран пополам, отобразив несколько скринов с разными программами; можно задать множество разных параметров, настроить под разные типа терминалов. Во всем этом поможет разобраться screen –help или man screen . Также есть еще одна полезная комбинация клавиш. Как сказано в мануале, «если вам лень читать кучу текста — запомните эту комбинацию» — Ctrl + A и затем ? 1) . Вам будет выведен список доступных сочетаний клавиш и команд, которые они выполняют. Все это нажимается также после Ctrl + A .

Ссылки

FIXME

если вы осилили какую-либо полезную функцию — расскажите о ней здесь!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *