Команда Screen в Linux с примерами

Screen – это инструмент для мультиплексирования терминала между несколькими процессами. С помощью screen вы можете запускать несколько экземпляров сеансов из одного терминального сеанса. Давайте рассмотрим некоторые полезные команды screen в Linux и объясним, как работает этот универсальный инструмент.

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

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

Что такое команда «screen»?

На Linux-машине команда screen позволяет запускать и использовать несколько терминальных сессий из одного сеанса SSH Процесс может быть прерван через сессию, и мы можем возобновить сессию в более позднее время, если процесс запускается с помощью команды screen.

Screen – это инструмент для мультиплексирования терминала или оболочки. С его помощью можно запустить любой экранный сеанс и открыть в нем несколько окон. Выполняемые процессы будут продолжать работать в сеансе screen, даже если он будет отключен. Это также включает отключение от терминальной сессии.

При вызове команды «screen» создается единственное окно, содержащее оболочку (или заданную команду), что позволяет использовать программу непрерывно.

Впоследствии в любой момент можно создать дополнительные полноэкранные окна, каждое со своей программой (включая оболочки). Существующие окна можно завершить, просмотреть список окон, включить или выключить регистрацию вывода, скопировать и вставить текст между окнами, получить доступ к истории прокрутки и переключаться между окнами любым удобным способом. Это очень гибкая программа.

Каждое окно работает независимо от других, причем программы продолжают выполняться, даже когда их соответствующие окна не видны или когда вся экранная сессия отсоединена от терминала пользователя. При завершении программы screen (по умолчанию) завершает окно, в котором она находилась. Если это окно находится на переднем плане, дисплей переключается на предыдущее окно; если окон не осталось, screen завершает работу.

Как установить Screen

Screen обычно устанавливается по умолчанию на машинах Linux. Но если он еще не установлен, мы можем выполнить эти команды при входе на сервер по SSH.

Ubuntu, Debian и Linux Mint

apt install screen

CentOS, AlmaLinux, Rocky Linux и т.д.

yum install screen

Синтаксис команды screen

screen [-opts] [cmd [args]]

Опции команды

Screen имеет следующие опции командной строки, а также их описание:

  • -a Эта команда вводит все возможности в termcap каждого окна.
  • -A Она подгоняет все окна под изменившиеся ширину и высоту дисплея.
  • -c file Вместо .screenrc читается конфигурационный файл.
  • -d Удаляет работающий в другом месте экран (и снова подключается здесь).
  • -dmS имя Запускается как демон, т.е. экранная сессия в отключенном режиме.
  • -D Отключается и выходит из удаленной системы (и снова подключается здесь).
  • -D Выполняет необходимое действие для получения экранной сессии.
  • -e Это изменяет символы командной строки.
  • -f Используется для включения контроля потока, -fn=off, -fa=auto.
  • -h lines Используется для установки размера буфера истории прокрутки.
  • -i Прерывает вывод раньше, если включен контроль потока.
  • -l Включает режим входа в систему, (обновление /var/run/utmp), -ln=off.
  • -ls Используется для отображения всех подключенных экранов.
  • -L Включает протоколирование вывода.
  • -m Игнорирует переменную $STY и создает новую экранную сессию.
  • -O Выбирает оптимальный вывод вместо точной эмуляции vt100.
  • -p window Используется для предварительного выбора именованного окна, если оно существует.
  • -q Утихомиривает запуск. В случае неудачи происходит выход с ненулевым кодом возврата.
  • -Q Помогает отправить ответ в stdout запрашивающего процесса.
  • -r Повторно подключается к отсоединенному экранному процессу.
  • -R Если возможно, повторно подключается; в противном случае создается новая сессия.
  • -S sockname Именует сессию как «sockname».
  • -t title Используется для установки заголовка (имени окна).
  • -T term Использует термин как $TERM для окон вместо «screen».
  • -U Указывает экрану использовать кодировку UTF-8.
  • -v Выводит версию экрана. Будет выведено «Screen version 4.06.02 (GNU) 23-Oct-17».
  • -x Прикрепляется к не отсоединенному экрану.
  • -X Запускается как команда screen в заданной сессии.

Быстрые клавиши

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

  • Ctrl + a + c Создать новое окно (оболочку)
  • Ctrl + a + k Убить текущее окно
  • Ctrl + a + w Список всех окон (текущее окно отмечено символом «*»)
  • Ctrl + a + 0-9 Перейти к окну с номером 0-9
  • Ctrl + a + n Перейти к следующему окну
  • Ctrl + a + Ctrl + a Переключение между текущим и предыдущим окном
  • Ctrl + a + [ Запустить режим копированияCtrl-a ] Вставить скопированный текст
  • Ctrl + a + ? Справка (отображение списка команд)
  • Ctrl + a + Ctrl + \ Выход из экрана
  • Ctrl + a + D Отключение питания и выход из системы
  • Ctrl + a + d Отключение, но сохранение окна оболочки открытым

Пример

В этом разделе мы попытаемся глубже понять команду screen.

Проверка версии

Чтобы проверить версию, просто вызовите эту команду

screen --version

Команда покажет вам вывод, подобный этому:

Screen version 4.09.00 (GNU) 30-Jan-22

Запустите новую сессию экрана

screen

Вы увидите сообщение, как показано на рисунке ниже.

Просто нажмите ENTER или ПРОБЕЛ на клавиатуре. После этого вы должны оказаться в экранной сессии. Вы можете набрать что-нибудь на экране, например, «This is a screen session».

Затем нажмите клавишу Ctrl + A, а затем введите букву d, чтобы отсоединить экран. После отсоединения вы получите сообщение в сеансе SSH, подобное этому:

[detached from 71107.pts-0.rh]

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

screen -x

После присоединения вы должны увидеть сеанс экрана, который вы оставили, и сообщение «This is a screen session». Таким образом, вы сможете выполнять команды и проверять их позже, даже если вас отключат от сети.

Список экранных сессий

Чтобы составить список экранных сессий, выполните следующую команду.

screen -ls

Команда выдаст результат, подобный этому:

There are screens on:
71199.rosehosting-screen (09/19/2023 05:49:18 AM) (Attached)
71107.pts-0.rh (09/19/2023 05:41:09 AM) (Detached)
2 Sockets in /run/screen/S-root.

Возобновление сеанса экрана

После перечисления сеансов экрана вы можете вернуться к одному из них, выполнив следующую команду:

screen -r [PID] or {NAME}

Так, чтобы возобновить сеанс экрана с PID 71199

screen -r 71199

Команда выше приведет вас к сеансу.

Вот и все! Вы изучили команды экрана в Linux с примерами. Надеемся, теперь вы лучше понимаете команду screen и ее использование. Если вы хотите изучить ее глубже, вы можете запустить эту команду и прочитать документацию.

man screen

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.rosehosting.com

Похожие статьи

Комментарии (0)