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

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

  • автор:

Покоряй и Властвуй: Советы по работе в терминале. Часть 9

После вводной статьи прошлого месяца мы готовы перейти к более сложным и вместе с тем более полезным аспектам конфигурации GNU Screen. Я расскажу о некоторых возможностях Screen, которые использую сам и нахожу весьма полезными. Они не так сложны, как может показаться на первый взгляд, и уж тем более не единственные достойные из всех возможностей Screen. Я буду рад, если вы пришлёте мне примеры ваших настроек этой утилиты. Я могу публиковать их каждый месяц в начале «Покоряй и Властвуй», чтобы мы все могли почерпнуть в них что-то новое. А в этой статье я расскажу о следующих вещах: автозапуск команд в новых окнах, использование Screen через SSH , разделение Screen-сессий между несколькими пользователями, разделение области окна и преимущества Screen в качестве локальной консоли. Ну что ж, давайте начнём и заставим работать наши Screen-сессии с файлами .screenrc на полную катушку!

Если вы просматривали мой конфигурационный файл из прошлого номера, вы наверняка обратили внимание на следую-щие две строки в конце файла:

# автозапуск сессий screen screen -t Zsh 0 /bin/zsh screen -t IRC 1 /usr/bin/irssi

Эти строки добавляют новое окно Screen с заголовком (значе-ние опции «-t»), указанным номером окна (следующий после заголовка параметр) и командой, которая в этом окне запускается. То есть, .screenrc запускает Screen с работающим Z-shell в окне 0, заголовок которого «Zsh», и окном 1 с заголовком «IRC», в котором запущен irssi. Screen делает активным самое новое окно, так что мои сессии всегда начина-ются с IRC , и это как раз то, что мне нужно. Не знаю, есть ли ограничения на количество окон в Screen, но я бы не советовал открывать их больше десяти (по количеству комбина-ций клавиш быстрого вызова). Эта возможность особенно полезна вам, если вы постоянно работаете с несколькими консольными программами (mutt, irssi, midnight commander и другие) и хотите, чтобы все программы были легко доступны без открытия множес-тва отдельных терминалов.

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

Другой очень удобной воз-можностью Screen является разделение сессий несколькими пользователями. Это полезно в случае, если вы редактируете какой-то текст, и вам нужна помощь другого человека. Вы можете разрешить ему подклю-читься по SSH к машине и разделить Screen-сессию с вами. Для этого вы, как хозяин, должны сделать следующее:

Ctrl+a :multiuser on

Ctrl+a —это комбинация клавиш, после нажатия которой нужно написать «:multiuser on». Также вам понадобится разрешить удалённому пользователю присоединиться к Screen-сессии:

Ctrl+a :acladd

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

screen -x $USER/

Здесь $USER нужно заменить на имя пользователя хозяина сессии, а — на идентификатор или имя нужной сессии. Именованными сессиями легче управлять, и я расскажу об этом подробней в конце статьи, сразу после той части, в которой обсуждается влияние Screen на надёжность работы в командной оболочке.

Последняя возможность программы, о которой я собирался рассказать, это способность разделять окно Screen надвое. Это значит, что вы можете запустить две командные оболочки парал-лельно, каждая на своей половине экрана, одна над другой. Без дополнительного вмешательства Screen может разделять окна только по горизонтали; есть патч, который позволяет включить вертикальное разделение, но в этом случае придётся самостоя-тельно собирать Screen из исходных кодов. Чтобы задей-ствовать горизонтальное разделение окна, нажмите следующую комбинацию клавиш:

Для тех, кто не читал предыдущей статьи, поясню, что в данном случае сначала надо нажать Ctrl+a, а затем S (Shift+s). Это приведёт к разделению окна пополам, и активное окно займёт нижнюю половину. Между получив-шимися половинами можно переключаться с помощью следующей комбинации:

Здесь обозначает клавишу табуляции. Для тех, кто хочет задействовать верти-кальное разделение окна, я приведу ссылку на инструкцию в разделе «Читайте также».

Последнее, о чём я хотел поговорить в этой статье, это почему следует использовать Screen вместо TTY или обычного командного интерпретатора. Простой ответ на этот вопрос — личные предпочтения. Более развёрнутый ответ заключается в том, что Screen позволяет организовать многозадачность в рамках одного подключения через SSH , не допуская при этом потери данных из-за разрывов соединения, и, в добавок, она экономит вам оперативную память. Кроме того, вы сможете гораздо лучше ориентироваться в запущенных программах — если ваши окна запущены в рамках одной Screen-сессии, и вы присвоили их заголовки, то можно легко получить их список в строке состояния. Я ни в коем случае не говорю, что вы обязаны использовать Screen, но тем, кого привлекают возможности программы, я горя-чо рекомендую познакомиться с ней поближе и использовать постоянно (чего я, если честно, ещё не делаю). Как всегда, не стесняйтесь присылать свои вопросы мне на электронную почту lswest34@gmail.com. Туда же присылайте любые предло-жения по новым статьям.

Заключительная команда для Screen:

screen -S

Эта команда создаёт новую сессию, используя заданное опцией -S имя для быстрого и лёгкого доступа (очень полезно, когда у вас запущено много Screen-сессий).

Использование утилиты screen в Linux

date

05.02.2021

user

VyacheslavK

directory

CentOS, Linux, Ubuntu

comments

комментария 3

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

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

Установка утилиты screen в Linux

Утилита screen по умолчанию установлена в ряде дистрибутивов Linux. В CentOS 8 утилита по умолчанию не установлена, придется доставлять вручную с помощью пакетного менеджера:

# dnf install epel-release -y — устанавливаем репозиторий EPEL, где размещается данная утилита

# dnf install screen -y – устанавливаем утилиту

установка screen в linux

На Debian/Ubuntu установка выполняется так:

# apt install screen

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

Screen version 4.06.02 (GNU) 23-Oct-17

Запуск и использование screen, работа с сессиями, фоновые процессы

Запустите сессию screen одной командой:

запуск утилиты screen в linux

Чтобы вывести справку по использованию screen, нажмите комбинацию ctrl + a и после этого введите знак вопроса (?).

горячие клавиши screen

Вернуться к сессии screen можно через кнопку пробел (space)

Чтобы полностью закрыть терминал screen, нажмите сочетание клавиш ctrl +d:

[screen is terminating]

Чтобы просто выйти из сессии screen, не закрывая ее полностью, используйтекомбинацию:

Ctrl +a d

Если у вас открыта одна сессия screen, вернуться к ней можно с помощью команды:

Проверить список запущенных сессий screen:

Если сессий несколько, можно получить ID сессии и подключиться к нужной:

подключение к сессии screen

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

изменить название сесии screen

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

Есть еще очень удобная функция в screen — это разделение экрана (split). Экран можно делить как по горизонтали, так и по вертикали. Например, чтобы разделить экран по горизонтали, в сессии screen нужно нажать ctrl+a S.

Экран разделится на две части. Чтобы переключиться на вторую часть, введите ctrl+a tab и после переключения для активации ctrl+a c. Одновременно в двух частях, можно запускать нужные скрипты или утилиты:

screen разделить экран на 2 части

Чтобы разделить экран по вертикали, используйте ctrl+a |

Более того, разделителей может быть неограниченно количество:

screen несколько экранов

Переключаемся по ним все также с помощью ctrl+a tab.

Чтобы закрыть все разделители и остаться в активном окне, используйте ctrl+a Q или просто пропишите в консоли only.

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

Еще несколько горячих клавиш screen:

  • Создать новое окно: Ctrl+a c
  • Перейти к следующем окну: Ctrl+a p
  • Перейти к предыдущему окну: Ctrl+a n
  • Изменить имя окна: Ctrl+a a

Для тонкой настройки параметров screen можно использовать конфигурационные файлы:

  • /etc/screenrc
  • ~/.screenrc

Полная справка по screen:

Сценарии использования screen в Linux

Чаще всего утилита screen используется для операций, которые выполняются продолжительное время и чувствительны к обрыву сессии. Это могут быть обновления, копирование файлов, создание бэкапа, запуск какого-то скрипта или процесса и многое другое. В моей практике не обходится и дня, чтобы я не воспользовался данной утилитой. Чаще всего, это перенос файлов с одного сервера на другой или объемные обновления пакетов. Например, можно запустить rsync файлов с одного сервера на другой:

# screen -S backup
# rsync -avzr —progress /var/www/site/ IP:/var/www/site/

Или запустите ping до какого-либо ресурса:

запуск ping в отдельном screen

В screen можно запустить любой php-скрипт, который постоянно выполняет обмен с какими-либо ресурсами, например, интеграция с сайтом или порталом:

запуск php скрипта в screen

Скрин можно запустить с такими параметрами:

# screen -A -m -d -S B24 /usr/bin/su — bitrix -c «/usr/bin/php /var/www/integration/tools/parser.php»

Мы сразу запускаем терминал и в нем выполняем запуск php-парсер, который постоянно выполняет коннект к порталу Bitrix24. Проверим список запущенных терминалов:

There is a screen on: 993.B24 (Detached)

И для максимальной надежности, можно новую сессию ssh запускать сразу с включенным screen. В файл /root/.bash_profile добавьте строчку screen:

запуск screen из bash_profile

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

автоматический запуск терминала screen в новой сессии linux

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

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Разделение терминала в Ubuntu. Команда screen в Linux

Одно из главных требований к любому IT-специалисту, который должен иметь в своем рюкзаке множество soft skills, — это умение автоматизировать! Но не всегда технически продукт или технология позволяет это сделать и для этого есть утилиты, которые помогают автоматизировать задачи в нашем случае в Linux. Одно подключение — одна сессия, это несколько неудобно для использования, и для этого разработали утилиту screen.

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

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

При создании нового окна в пределах экрана терминальный мультиплексор генерирует новый виртуальный терминал и инициирует процесс оболочки (например, bash) для этого окна. Каждый виртуальный терминал функционирует как самостоятельный процесс, управляя своим вводом и выводом, а также имея собственное окружение и рабочий каталог.

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

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

Требования к установке

  • Root — права;
  • Ubuntu 16 или более поздняя версия;
  • Некоторые знания о работе ОС;
  • Подключение к Интернету.

Мы будем работать на сервере с Ubuntu 22.04, заказанному в Serverspace.

Установка и использование

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

apt update && apt upgrade -y

Обновление

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

sudo apt-get install screen

Установка утилиты Screen

Нажмите кнопку Y для запуска процесса установки и дождитесь его завершения. Это не займет много времени, наберитесь терпения.
Затем введите приведенную ниже команду:

Приветственное сообщение

Нажмите клавишу Space или Return, чтобы пропустить всплывающее окно, после чего вы увидите новый чистый экран, утилита создала новую терминальную сессию, которая выглядит как контейнер для сохранения и управления виртуальным окном. Создадим терминал, у нас есть два типа разделения экрана: горизонтальный и вертикальный. Также можно разделить уже поделенный экран для более сложных задач. Все команды активны по комбинации Ctrl+a, давайте создадим новое окно и разделим экран, зажав комбинацию клавиш:

Деление экрана горизонтально

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

И переключать нужный виртуальный терминал комбинацией для предыдущего и следующего окна соответственно:

Ctrl+a+n и Ctrl+a+p

Также можно вывести на экран список всех окон терминала:

Список экранов

Если вы хотите увидеть более краткую информацию, введите:

Короткий список экранов

Для более наглядного использования этих окон можно изменить метку каждого окна, нажав кнопку:

Переключитесь на нужное окно и зажмите комбинацию клавиш:

Переименовать окна

В нашем примере в нижней строке отображается индекс и метка соответствия для данного окна. На экране видна вертикальная линия, разделенная командой:

Также можно выполнить более сложное деление, например, поделить правую область командой ниже:

Деление на 3 окна

В начале работы у вас не будет активного окна, выберите его, как описывали ранее:

Ctrl+a+p or n

Для уничтожения одного процесса используйте комбинацию:

Для всей связки виртуальных окон:

И согласитесь с вопросом в всплывающем окне. Но если вы хотите просто свернуть окно виртуального терминала, то нужно набрать:

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

И снова прикрепляется путем поиска нужной строки:

И введите их ID в приведенную ниже команду:

screen -r 23505

Для получения дополнительной информации об использовании комбинации можно нажать кнопку :

Помощь (справка) в screen

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

Пример использования screen

Вывод

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

Как разделить терминал Kali Linux на части

Мануал

Автор cryptoparty На чтение 1 мин Опубликовано 21.08.2017

Сегодня мы изучим, как разделить окно терминала Kali Linux на несколько частей.

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

  1. Терминал Linux
  2. В этом приеме мы используем утилиту Screen.

Поскольку в руководстве man говорится:

Screen – полноэкранный менеджер окон, который мультиплексирует физический терминал между несколькими процессами (обычно интерактивные оболочки).

  1. Выполните команду в терминале:
# screen
  1. Нажмите [ Enter ] чтобы пропустить описание и приступить с ледующему шагу.
  2. Чтобы вертикально разделить терминал :

нажмите CTRL + A и затем нажмите | (труба)

  1. Чтобы разделить терминал горизонтально:

Нажмите CTRL + A а затем SHIFT + S

  1. Чтобы перемещаться между окнами :

Нажмите CTRL + A и нажмите Tab

  1. Чтобы активировать окно :

Нажмите CTRL + A а затем нажмите c

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

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!

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

Поддержать нас

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (110)
  • Книги (27)
  • Мануал (2 385)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (835)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (122)
  • Статьи (366)
  • Философия (133)
  • Юмор (19)

Наш Telegram

Социальные сети
Поделиться

Anything in here will be replaced on browsers that support the canvas element

  • �� Как проверить IPv4-адреса в скрипте 25.12.2023

Проверка IP-адресов – распространенная задача в сетевом и системном администрировании. В этом уроке мы узнаем, как проверить IPv4-адреса с помощью скрипта оболочки. Это особенно полезно в ситуациях, когда нужно убедиться, что пользовательский ввод или данные из другого источника имеют правильный формат IPv4. IPv4 против IPv6: В чем разница между IPv4 и IPv6 Понимание формата адресов […]

Deep Packet Inspection (DPI) – это передовая техника сетевой фильтрации. Если традиционные методы мониторинга и фильтрации сети позволяют лишь поверхностно изучить заголовки пакетов, то DPI проникает глубже, тщательно анализируя фактическое содержание данных в пакетах. Такая детальная проверка позволяет получить полное представление о потоке данных, что дает возможность определить не только тип или категорию данных, но […]

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

Компания “Автозайм”: надежное залоговое кредитование в СПб и по всей России “Автозайм” представляет собой современный автоломбард, который оперирует в различных городах России, включая Санкт-Петербург – https://spb.carzaem.ru/autolombard. Компания специализируется на предоставлении кредитов под залог автомобилей, предлагая клиентам удобные и прозрачные условия. Основные преимущества Быстрый и простой процесс. Процедура получения займа в “Автозайм” максимально упрощена. Клиенты могут подать […]

Мы рассмотрим подписание коммитов и тегов ключом GPG, а также отправку и получение открытых ключей GPG на сервер ключей для проверки. Шпаргалка Неподписанный коммит: Подписанный коммит: Если ваши адреса электронной почты git и gpg-ключа отличаются, это приведет к неудаче, пока вы не настроите свой git signingkey Неподписанный тег: Подписанный тег: Переопределение параметров конфигурации автоподписания: Импорт […]

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

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