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

С 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
ожидает новых сообщений и будет отображать их по мере их поступления.
СВЯЗАННЫЕ С: Как использовать команду dmesg в Linux
Мы хотим запустить другое приложение, поэтому нам нужно новое screen
окно. Мы нажимаем Ctrl + A, а затем C, чтобы создать новое окно. Мы собираемся использовать watch
в неоднократно бегать vmstat
, поэтому мы получаем часто обновляемые отображение использования виртуальной памяти на нашем компьютере.
В новой командной строке мы вводим следующее:
watch vmstat
vmstat
выход появляется и обновляется каждые две секунды.
Наши два процесса сейчас запущены. Прыгать между screen
окна, вы нажимаете Ctrl + A, и номер окна. Первое, что мы создали, это нулевое окно (0), следующее – окно 1 и так далее. Перейти к первому окну dmesg
один), нажимаем Ctrl + A и 0.
Если мы нажимаем 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
работает, мы нажимаем 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, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)