Как использовать экранную команду Linux

Терминал Linux на ноутбуке с другими терминальными сеансами позади него.
фатмавати ахмад дзенури / Shutterstock

С Linux screen Команда, вы можете отодвинуть запущенные терминальные приложения в фоновый режим и потянуть их вперед, когда захотите их увидеть. Он также поддерживает разделенные экраны и работает через соединения SSH, даже после того, как вы отключите и снова подключитесь!

Что такое экранная команда?

screen команда является оконечный мультиплексор, и это абсолютно упаковано с опциями. Сказать, что это может многое, — это дедушка преуменьшения. Страница man работает более 4100 строк,

Ниже приведены наиболее распространенные случаи, когда вы screen команда, и мы рассмотрим их далее в этой статье:

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

Установка экрана

Установить screen в Ubuntu используйте эту команду:

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

sudo apt-get install screen

Установить screen на Манджаро используйте следующую команду:

sudo pacman -Sy screen

На Fedora вы вводите следующее:

sudo dnf install screen

Начало работы с экраном

Начать screenпросто введите его, как показано ниже, и нажмите Enter:

screen

Вы увидите страницу информации о лицензии. Вы можете нажать клавишу пробела, чтобы прочитать вторую страницу, или клавишу Enter, чтобы вернуться в командную строку.

Вы остались в командной строке, и, похоже, ничего особенного не произошло. Однако теперь вы используете оболочку внутри эмулятора мультиплексированного терминала. Почему это хорошо? Что ж, давайте начнем процесс, который займет много времени. Мы загрузим исходный код для новейшего ядра Linux и перенаправим его в файл с именем latest_kernel.zip,

Для этого набираем следующее:

curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

 latest_kernel.zip «команда в окне терминала». width = «646» height = «77» onload = «pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);» OnError = «this.onerror = NULL; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (это);» />

Наша загрузка начинается, и curl вывод показывает нам прогресс.

Выход из latest_kernel.zip «команда в окне терминала». width = «646» height = «247» onload = «pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);» OnError = «this.onerror = NULL; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (это);» />

Мы не можем показать вам изображение следующего бита, потому что это последовательность нажатий клавиш. Вы нажимаете Ctrl + A, отпускаете эти клавиши и затем нажимаете d, чтобы отсоединить экран.

Процесс загрузки все еще выполняется, но окно, показывающее загрузку, удалено. Вы вернулись в окно терминала, из которого вы запустили screen сессия. Сообщение говорит вам, что screen окно с надписью 23167.pts-0.howtogeek был отделен.

Вам нужно число от начала имени окна, чтобы присоединить его. Если вы забудете это, вы всегда можете использовать -ls (список), как показано ниже, чтобы получить список отдельных окон:

screen -ls

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

screen -3 23167

Окно, которое работало в фоновом режиме, теперь возвращается к окну вашего терминала, как будто оно никогда не уходило.

Восстановленный сеанс экрана восстанавливается в окне терминала.

Если это процесс, который будет проходить до конца, он в конечном итоге завершится. Если это непрерывный процесс, вы в конечном итоге захотите прекратить его. В любом случае, когда процесс завершится, вы можете набрать exit выйти из screen, Кроме того, вы можете нажать Ctrl + A, а затем K, чтобы принудительно убить окно.

Введите следующую команду:

exit

Команда «выход» в окне терминала.

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

СВЯЗАННЫЕ С: Как использовать curl для загрузки файлов из командной строки Linux

Использование именованных сеансов экрана

Вы можете использовать -S (имя сеанса) вариант, чтобы назвать ваш screen сессия. Если вы используете запоминающееся имя, а не числовой идентификатор сеанса, более удобно повторно подключиться к сеансу. Мы вводим следующее, чтобы назвать нашу сессию «bigfile»:

screen -S bigfile

когда screen запускает наш сеанс, мы видим пустое окно с командной строкой. Мы собираемся загрузить большой файл, поэтому мы можем использовать в качестве примера длительный процесс.

Мы вводим следующее:

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

 bigfile.zip «команда в окне терминала». width = «646» height = «77» onload = «pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);» OnError = «this.onerror = NULL; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (это);» />

Когда начинается загрузка, мы нажимаем Ctrl + A, а затем нажимаем D, чтобы отменить сеанс. Мы вводим следующее, чтобы использовать -ls (список) вариант с screen чтобы увидеть детали нашего отдельного сеанса:

screen -ls

За числовым идентификатором (23266) мы видим название нашего сеанса (bigfile). Мы вводим следующее, включая имя сеанса, чтобы присоединить его:

screen -r bigfile

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

Завершение загрузки вывода в подключенном сеансе экрана в окне терминала.

Когда загрузка завершится, мы набираем exit закрыть окно сеанса.

Использование экрана с несколькими окнами

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

Мы вводим следующее, чтобы начать сеанс экрана под названием «монитор»:

screen -S monitor

В командной строке в нашем новом сеансе окна мы запустим dmesg и использовать -H (человекочитаемый) и -w (ждать новых сообщений) варианты. Это будет отображать сообщения буфера ядра; новые сообщения будут появляться по мере их появления.

Мы вводим следующее:

dmesg -H -w

Существующие сообщения появляются. Мы не вернулись в командную строку, потому что dmseg ожидает новых сообщений и будет отображать их по мере их поступления.

Вывод «dmsesg» в окне терминала.

СВЯЗАННЫЕ С: Как использовать команду dmesg в Linux

Мы хотим запустить другое приложение, поэтому нам нужно новое screen окно. Мы нажимаем Ctrl + A, а затем C, чтобы создать новое окно. Мы собираемся использовать watch в неоднократно бегать vmstat, поэтому мы получаем часто обновляемые отображение использования виртуальной памяти на нашем компьютере.

В новой командной строке мы вводим следующее:

watch vmstat

vmstat выход появляется и обновляется каждые две секунды.

Наши два процесса сейчас запущены. Прыгать между screen окна, вы нажимаете Ctrl + A, и номер окна. Первое, что мы создали, это нулевое окно (0), следующее — окно 1 и так далее. Перейти к первому окну dmesg один), нажимаем Ctrl + A и 0.

Возврат к экрану «dmesg» в окне терминала.

Если мы нажимаем Ctrl + A и 1, это возвращает нас к vmstat окно.

Возвращаясь к

Это довольно изящно! Мы можем нажать Ctrl + A, а затем D, чтобы отсоединиться от этого сеанса; мы можем прикрепить позже. Обе сессии все еще будут работать. Опять же, чтобы переключаться между окнами, мы нажимаем Ctrl + A и номер (0 или 1) окна, на которое мы хотим переключиться.

Давайте перейдем к следующему шагу и рассмотрим оба экрана в одном окне. Когда вы сделаете это, вы увеличите окно терминала до размера, который сделает этот шаг полезным. Наши примеры ограничены размером наших скриншотов, поэтому наши окна будут выглядеть немного тесными.

Для этого мы нажимаем Ctrl + A, а затем Shift + S (требуется заглавная «S»).

Окно разбивается на две «области».

Сеанс окна «экрана» разделен на две горизонтальные области в окне терминала.

Верхний регион по-прежнему отображается vmstatи нижняя область пуста. Курсор выделен на скриншоте ниже. Чтобы переместить его в нижнюю область, мы нажимаем Ctrl + A, а затем Tab.

Сеанс «экрана» окна разделен на две горизонтальные области с курсором в нижней области окна терминала.

Курсор перемещается в нижнюю область, которая на самом деле является просто пустым пространством. Это не оболочка, поэтому мы ничего не можем в ней напечатать. Чтобы получить полезное отображение, мы нажимаем Ctrl + A, а затем нажимаем «0», чтобы отобразить dmesg окно в этом регионе.

«Экранный» сеанс с горизонтальной разделенной панелью, показывающий разные процессы в каждой области в окне терминала.

Это дает нам оба живых выхода в одном разделенном окне. Если мы нажмем Ctrl + A и D, чтобы отсоединить окно, а затем снова подключим его, мы потеряем представление разделенной панели. Однако мы можем восстановить его с помощью следующих сочетаний клавиш:

  • Ctrl + A, S: Разбить окно по горизонтали.
  • Ctrl + A,, Tab: Переместить в нижнюю область.
  • Ctrl + A, 0: Отображение нулевого окна в нижней области.

Мы можем сделать еще один шаг вперед. Теперь мы разделим нижнюю панель по вертикали и добавим третий процесс на дисплей. Когда курсор находится в нижней области, мы нажимаем Ctrl + A и C, чтобы создать новое окно с оболочкой. Нижняя область отображает новое окно и дает нам командную строку.

«Экранный» сеанс с горизонтальной разделенной панелью, показывающий новое окно в нижней области в окне терминала.

Далее мы запускаем df командовать проверить использование файловой системы:

df

«Экранный» сеанс с горизонтальной разделенной панелью и «df», напечатанный в нижней области окна терминала.

Когда мы видим df работает, мы нажимаем Ctrl + A и символ трубы (|), Это разделяет нижнюю область по вертикали. Мы нажимаем Ctrl + A и Tab, чтобы перейти в новый регион. Затем мы нажимаем Ctrl + A и 0, чтобы отобразить dmesg окно.

«Экранный» сеанс, показывающий три панели в окне терминала.

Вы также можете перемещаться из региона в регион и добавлять больше вертикальных или горизонтальных разбиений. Вот еще несколько полезных комбинаций клавиш:

  • Ctrl + A: Прыгайте назад и вперед между текущим и предыдущим регионами.
  • Ctrl + A, Q: Закройте все регионы, кроме текущего.
  • Ctrl + A, X: Закройте текущий регион.

Использование экрана поверх SSH

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

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

Для нашего примера мы вводим следующее:

ssh dave@192.168.4.30

После аутентификации на удаленном компьютере и входа в систему мы набираем следующее, чтобы запустить screen сессия называется «ssh-geek»:

screen -S ssh-geek

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

Мы вводим следующее:

top

однажды top работает в окне, мы нажимаем Ctrl + A, а затем D, чтобы отсоединить окно.

«Верхний» процесс выполняется в «экранном» окне терминала.

Мы вернулись к исходному окну удаленного терминала.

Пользователь вернулся в свое исходное окно терминала

Если мы введем exitкак показано ниже, он отключает сеанс SSH, и мы снова на нашем локальном компьютере:

exit

Мы вводим следующее, чтобы восстановить соединение:

ssh dave@192.168.4.30

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

screen -r ssh-geek

Теперь мы подключились к нашему все еще работающему экземпляру top,

«Верхний» процесс выполняется в окне терминала.

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

СВЯЗАННЫЕ С: Как создать и установить ключи SSH из оболочки Linux

Совместное использование сеанса экрана

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

Он напечатал бы следующее:

ssh dave@192.168.4.30

После подключения он запускает сеанс экрана под названием «ssh-geek», используя опцию -S (имя сеанса). Он также использует -d (отсоединить) и -m (принудительное создание) опции для создания нового screen сеанс, который уже отделен.

Он печатает следующее:

screen -d -m -S ssh-geek

Он печатает следующее, используя -X (многоэкранный режим) опция для прикрепления сеанса:

screen -X ssh-geek

На компьютере Manjaro другой человек подключается к компьютеру Ubuntu с такими же учетными данными, как показано ниже:

ssh dave@192.168.4.1

Как только она подключится, она печатает screen команда и использует опцию -X (многоэкранный режим), чтобы присоединиться к той же сессии окна, например так:

screen -X ssh-geek

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

Вывод из команды «дата» в окне терминала.

Оба человека теперь разделяют screen сеанс, который выполняется на удаленном компьютере Ubuntu.


Для программного обеспечения, которое впервые увидело свет в 1987 году, screen все еще упаковывает хорошую производительность Wallop. Ознакомление с ним будет хорошо проведено время!

СВЯЗАННЫЕ С: 37 важных команд Linux, которые вы должны знать

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

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

Ваш адрес email не будет опубликован.