- Как работать с Linux Screen
- позволяет вам:
- Установка Screen с Yum
- Запуск Screen Linux
- Команда управления
- Создание окон
- Переключение между окнами
- Отсоединение от Screen
- Повторное присоединение к Screen
- Регистрация действий Screen
- Получение уведомлений
- Блокировка сеанса Screen
- Остановка Screen
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Как пользоваться утилитой screen в Linux?
- Немножко теории
- Установка screen в Linux
- Установка screen в Ubuntu и Debian
- Установка screen в CentOS и Fedora
- Запуск screen в Linux
- Сессия screen с именем
- Как правильно работать с окнами в Windows
- Выход из screen сессии
- Возврат к screen сессии
- Немножко кастомизации screen под вас
- Типовой сценарий использования screen
- Выводы
- Как пользоваться screen для управления терминалами Linux и отсоединения процессов от терминала
- Что такое screen
- Как установить screen
- Запуск screen в первый раз
- Отсоединение процесса от консоли в screen
- Повторное подсоединение консоли с запущенным процессом к screen
- Использование нескольких screen
- Переключение между экранами
- Как записать все действий в терминале
- Блокировка screen
- Добавление пароля на заблокированный screen
- Как выйти из Screen
- Как запустить скрипт, процесс которого отделён от терминала
- Как просмотреть предыдущие результаты (вывод)
- Как разделить экран на несколько вкладок в screen
- Именные окна screen
- Альтернатива для screen
Как работать с Linux Screen
позволяет вам:
- Создавать множественные окна в терминале SSH;
- Сохранять сессию активной даже при сетевых отключениях;
- Отключаться и переподключаться к сессии из разных мест;
- Выполнять длительный процесс, не поддерживая активную сессию.
Установка Screen с Yum
Наверняка, у вас уже есть Linux Screen в вашей системе. В большинстве дистрибутивов Red Hat и CentOS вы можете найти Screen Linux в /usr/bin/ screen . Чтобы увидеть, находится ли там Screen , вы можете использовать следующую команду:
]# which screen
/usr/bin/screen
Если у вас нет Screen, то можете установить его из RPM или файла пакета для вашей системы. Например, на CentOS можно установить Screen с yum:
]# yum install screen
.
Complete!
Поскольку вы, скорее всего, уже имеете Screen или можете использовать RPM, я не буду описывать установку Screen из ресурса. А расскажу, как использовать screen.
Запуск Screen Linux
Screen запускается с командной строки точно так же, как любая другая команда :
Теперь вы в окне в Screen. Оно функционирует точно так же, как нормальная оболочка за исключением нескольких специальных символов.
Команда управления
Команда : «Ctrl-a»
Screen использует команду «Ctrl-a» , это — клавиша «CTRL» и нижний регистр «a» работает как сигнал отправить команды Screen’у вместо оболочки. Например, «Ctrl-a» потом «?». У Вас должна появится страница справки Screen.
Привязка клавиш — это команды , которые принимает Screen после того, как нажаты “Ctrl-a”. Вы можете переназначить эти ключи по своему усмотрению, используя .screenrc файл, но я использую значения по умолчанию.
Создание окон
Команда: «Ctrl-a» «c». Чтобы создать новое окно используйте «Ctrl-a» «c».
Такая комбинация, с настройками по умолчанию создаст новое окно. Ваше старое окно будет все еще активно.
Например, я могу выполнить top и затем открыть новое окно, чтобы заняться чем-то другим. Top остается рабочей! Чтобы попробовать, запустите screen, а затем выполните top. (Примечание: некоторые скрины у меня урезаны, чтобы оставить свободное место.)
top — 09:10:33 up 35 days, 17:26, 1 user, load averag
Tasks: 131 total, 1 running, 130 sleeping, 0 stoppe
Cpu(s): 0.4%us, 0.2%sy, 0.0%ni, 99.4%id, 0.0%wa, 0
Mem: 12302040k total, 6363652k used, 5938388k free,
Swap: 1052248k total, 12k used, 1052236k free,
Теперь откройте новое окно с: «Ctrl-a» «c»
Ваше главное окно все еще запущено. При необходимости, вы можете переключиться на него.
Переключение между окнами
Команда : «Ctrl-a» «n»
Screen позволяет перемещаться вперед и назад. Вы можете использовать «Ctrl-a» «n», чтобы вернуться обратно. Эта команда переключает на следующее окно.
Работает как карусель — циклично выполнится назад по кругу к Вашему первому окну. Вы можете создать несколько окон и переключателя по ним «Ctrl-a» «n» для следующего окна или «Ctrl-a» «p» для предыдущего окна. Каждый процесс продолжит работать, пока вы не закроете окно.
Отсоединение от Screen
Команда: «Ctrl-a» «d»
Экран позволяет отсоединяться от окна и вернуться к нему позже. Если сетевая связь прервется, то Screen автоматически отсоединит сеанс!
Можете отсоединиться, используя «Ctrl-a» «d».
Все окна Screen все еще там, и вы можете повторно присоединиться к ним. Это удобно при использовании rsync для миграции сервера.
Повторное присоединение к Screen
Если Ваше соединение оборвалось или Вы отсоединились от Screen’а, Вы можете повторно подключиться, просто запуская:
Произойдёт повторное подключение к Вашему Screen. Однако, если у Вас есть несколько Screen’ов,то может получится это:
]$ screen -r
There are several suitable screens on:
31917.pts-5.office (Detached)
31844.pts-0.office (Detached)
Type «screen [-d] -r [pid.]tty.host» to resume one of them.
Если так, просто определите Screen, который хотите.
]$ screen -r 31844.pts-0.office
Регистрация действий Screen
Я считаю важным фиксировать то, что я делаю на чьем-либо сервере. К счастью, Screen это упрощает.
Используя «Ctrl-a» «H», запускается регистрация сеанса. Screen продолжит добавлять данные к файлу через многократные сеансы. Использовать функцию регистрации очень полезно для отслеживания того, что вы делали, особенно если требуется вносить много изменений. Если что-то пойдёт не так, всегда будет возможность найти ошибку.
Получение уведомлений
Screen может контролировать окно, его активность или бездействие. Данная функция необходима, если загружаете большие файлы, делаете компиляцию или ожидаете вывода.
Если Вы ожидаете ответа от «долгой» программы, можете использовать «Ctrl-a» «M», чтобы отследить активность. Screen высветит предупреждение внизу страницы, когда отклик будет зарегистрирован на том экране.
Я использую это при выполнении команды, которая занимает много времени. Могу просто запустить команду, переключиться на другое окно и не возвращаться обратно каждый раз, чтобы проверить состояние.
Если загружаете большой файл или компилируете программу, по завершению придёт уведомление. Это – будет сигналом того, что задание выполнено. Чтобы контролировать такие моменты без вывода экрана я используют «Ctrl-A» «_».
Блокировка сеанса Screen
Если Вам необходимо отойти от Вашего компьютера на несколько минут, Вы можете заблокировать свой сеанс, используя «Ctrl-a» «x». Для доступа к сеансу снова потребуется пароль.
Screen used by root .
Password:
Остановка Screen
Когда вы закончили работу, я бы порекомендовал закончить сеанс вместо того, чтобы оставить его на потом. Чтобы остановить Screen, можете, как обычно, просто ввести «Exit» из своей оболочки. Это закроет Screen. Чтобы завершить сеанс вы должны закрыть все окна.
Как только вы закрываете все окна выводится сообщение о том, что Screen начал завершение.
[screen is terminating]
Альтернативно, Вы можете использовать «Ctrl-a» «k».
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как пользоваться утилитой screen в Linux?
Окно в «новую жизнь»
Сейчас вы точно прочувствуете важное команды screen . Бывало ли у вас такое, что вы выполняете (очень долго) команду в консоли — CLI на удаленной машине, будучи подключенным через SSH? Команда долго выполняется и близится к завершению как вдруг пропадает подключение, рвется SSH подключение и все, что вы делали — пропало?
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Прости, что напомнили. Знаем, это болезненно. Что же, вытрем слезы. Для этих ситуаций есть команда screen о которой мы и поговорим.
Немножко теории
Так называемый screen это терминальный мультиплексор (нас тоже пугает это слово). Другими словами, оно дает нам возможность внутри действующей сессии открыть сколько угодно много виртуальных окон/терминалов. Что важно — процесс, запущенный внутри сессии через screen, будет продолжаться даже тогда, когда вы отключитесь от самой первой сессии.
Установка screen в Linux
Вообще, пакет screen предустановлен на большинстве современных Linux — дистров. Проверить можно командой:
Если случилось так, что у вас его нет — это можно быстро исправить простой установкой.
Установка screen в Ubuntu и Debian
Установка screen в CentOS и Fedora
Запуск screen в Linux
Чтобы запустить screen в консоли, просто наберите screen . Что может быть проще, не правда ли?
У вас откроется новая сессия в новом окне. Уже здесь вы можете вводить все нужные shell команды. Находясь в режиме скрина (screen) вы можете посмотреть список доступных вам команд управления этим режимом. Вот так:
Если не получается нажать указанную выше комбинацию, можно поступить проще: нажмите отдельно Ctrl+a , отпустите, а затем в консоль наберите ? и нажмите Enter
Сессия screen с именем
Ну очень удобная фича. Если вы делаете несколько процессов параллельно, просто обзовите их так, чтобы потом понять, что и где выполняется. Синтаксис такой:
Например, вы можете запустить ping — замер хоста с 1С и назвать сессию так:
Всегда используйте скрин именно так. Будет значительно удобнее.
Как правильно работать с окнами в 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 — сессии набрав:
Самое важное: запущенная вами в этот момент команда не остановится и будет продолжать свое выполнение.
Возврат к screen сессии
Чтобы вернуть к screen — сессии используйте команду:
Если у вас запущено больше чем одна screen — сессия, то после ключа r нужно указать ее ID. Узнать его просто с помощью команды:
Вывод этой команды будет выглядеть вот так:
В выводе выше мы выделили ID — сессий. Например, чтобы вернуться к сессии 32328 (pings_towards_1C), дайте команду:
Немножко кастомизации screen под вас
Когда screen запускается, он считывает свои конфигурационные параметры из /etc/screenrc и
/.screenrc , если файл присутствует. Так вот — мы можем легко перенастроить предпочтения использования screen и сделать это в файле .screenrc .
Посмотрите пример с комментариями, как мы закастомили screen для себя:
Типовой сценарий использования screen
Общий случай, так сказать. Обычно он состоит из следующих шагов:
- После SSH подключения к серверу, набираем screen ;
- Запускаем интересующую нас команду в режиме screen — сессии;
- Выполняем команду Ctrl + a и d , чтобы выйти из режима работы с экран-сессией
- Через какое-то время возвращаемся к запущенному ранее экрану командой screen -r
Выводы
Мы разобрались, как создавать screen сессии, управлять ими внутри, открывая новые окна, выходить из их режима управления (без прекращения выполнения команды), делить горизонтально и вертикально экраны.
Ах да, ещё мы научились кастомизировать screen под себя. Профит!
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Как пользоваться screen для управления терминалами Linux и отсоединения процессов от терминала
Что такое screen
Screen — это программа для «уплотнения» (мультиплекса) физических консолей. Суть в том, что несколько процессов (как правило интерактивных шеллов) могут работать в одном окне консоли. То есть эта программа позволяет пользователю иметь несколько экземпляров терминалов внутри одного терминала этого менеджера окон. Речь идёт не о вкладках, а о перемещении терминалов в фон. Одним из эффектов работы screen является то, что при закрытии окна терминала, процесс продолжает работу.
Приложение screen очень полезно если вы имеете дело с несколькими программами из интерфейса командной строки, а также для отделения программ от оболочки терминала. Она также позволяет вам делиться вашими сессиями с другими пользователями и отсоединять/подсоединять сессии терминала.
Как установить screen
На некоторых системах пакет screen может быть уже установлен. Если у вас его нет, то установите его.
На Debian, Linux Mint, Ubuntu, Kali Linux и их производных:
На RedHat и производных:
На Arch Linux, BlackArch и их производных:
Чтобы установить screen на Solaris:
На самом деле, screen это очень полезная команда в Linux которая может пригодиться при различных обстоятельствах. Давайте начнём знакомство с функциями screen.
Запуск screen в первый раз
Просто наберите screen в приглашении командной строки:
Будет выведена информация о программе — нажмите ENTER, чтобы её скрыть. Затем приглашение командной строки вернётся в точно такое же, как было и ранее.
Справка по параметрам screen
Когда вы вошли в screen, вы можете делать вашу обычную работу как будто бы вы в обычном окружении командной строки. Программа screen расширяет функциольность за счёт своих команд (параметров).
Нажмите Ctrl-A, а затем ? (то есть Shift+/). Затем вы увидите все команды (параметры) screen.
Чтобы выйти из экрана справки, нажмите Пробел или Enter.
Отсоединение процесса от консоли в screen
Одним из преимуществ screen является возможность отсоединить от консоли процесс, который запущен внутри screen. Далее вы можете даже закрыть консоль (или отключиться от SSH) — процесс всё равно продолжит свою работу. Затем вы можете восстановить окно консоли — вы увидите, что программа всё это время работала и её данные не потеряны.
Пример сценария: вы работаете по SSH на вашем сервере. Вам нужно запустить программу, выполнение которой требует много времени. Это может быть скачивание большого патча для системы с помощью wget или любая длительная команда. В качестве примера я возьму обычный ping. Предположим мне нужно проверить качество связи с помощью ping на протяжении двух часов. Если я отключусь от SSH или связь будет потеряна случайно, то тогда процесс выполнения команды в консоли будет остановлен и нужно будет вновь начинать сначала. Чтобы этого избежать, мы можем использовать screen для отсоединения процесса от консоли.
Рассмотрим на примере конкретных команд.
Вначале входим в screen:
Затем я запускаю пинг:
В процессе работы программы, мы можем нажать Ctrl-a и d. Вывод от программы прекратиться, мы увидим примерно следующую информацию:
Повторное подсоединение консоли с запущенным процессом к screen
После отсоединения процесса и закрытия screens, вы можете отключиться от сервера, то есть закрыть SSH сессию и заняться другими делами. Затем вы можете подключиться к SSH снова — причём, возможно даже с другого компьютера. После этого вы можете увидеть прогресс выполнения вашего процесса (пинг, загрузка, что угодно). Чтобы это сделать, нужно восстановить screen. Для этого запустите следующую команду:
И вы увидите, что процесс, который вы здесь оставили, всё ещё запущен.
Когда у вас больше чем одна сессия screen, то вам нужно будет ввести ID (идентификатор) сессии screen. Используйте screen -ls чтобы показать, как много сессий доступно:
Если вы хотите восстановить сессию screen 13786.pts-2.HackWare, тогда наберите следующую команду:
Использование нескольких screen
Когда нужен больше чем один screen для выполнения работы, это возможно? Да, можно одновременно работать с несколькими screen. Вы можете запустить несколько окон screen одновременно — есть два способа сделать это.
Во-первых, вы можете отсоединить первый экран screen для запуска другого screen в реальном терминале.
Во-вторых, вы можете делать вложенные экраны screen.
Переключение между экранами
Когда вы делаете вложенные screen, вы можете переключаться между ними используя команду Ctrl-a и n. В этом случае вы перейдёте к следующему окну screen. Когда вам нужно перейти к предыдущем screen, то просто нажмите Ctrl-a и p.
Для создания нового окна screen нажмите Ctrl-a и c.
Как записать все действий в терминале
Иногда важно сохранить все действия в терминале, которые вы выполнили находясь в консоли, то есть вести журнал (логи) активности в консоли.
Допустим вы администратор Linux, который управляет множеством серверов Linux. С ведением журнала в screen, вам не нужно выписывать каждую команду, которую вы ввели. Для активации функции ведения журнала screen просто нажмите Ctrl-a и H. Пожалуйста, будьте осторожны — используется заглавная H (то есть Shift+h). Использование прописной ‘h’ только создаст скриншот экрана screen в файле с именем hardcopy.
В нижней левой части экрана будет уведомление, которое говорит что-то вроде Creating logfile «screenlog.0» (производится ведение журнала экрана). В своей домашней директории вы найдёте файл screenlog.0.
Эта функция будет добавлять в файл всё, что вы делаете в окне screen. Для закрытия активности по ведению журнала screen, вновь нажмите Ctrl-a и H.
Другой способ активировать функцию ведения журнала: вы можете добавить параметр -L во время запуска screen. Команда будет выглядеть примерно так:
Блокировка screen
Screen также имеет комбинацию клавиш для блокировки окна screen. Вы можете нажать Ctrl-a и x для блокировки screen. Это полезно, если вы хотите быстро заблокировать ваш screen. Пример вывода после блокировки:
Вы можете использовать ваш пароль в Linux чтобы разблокировать его.
Добавление пароля на заблокированный screen
Для дополнительной безопасности, вы можете установить пароль на вашу сессию screen. Пароль будет спрашиваться каждый раз, когда вы хотите подсоединить screen. Этот пароль отличается от пароля в описанным выше механизме блокировки окна Screen.
Чтобы защитить паролем screen, вы можете отредактировать файл «$HOME/.screenrc». Если файл не существует, создайте его. Синтаксис будет примерно таким:
ВАШ_ПАРОЛЬ нужно указать в виде хеша, а не в виде обычного текста. Если там указано none, то пароль не будет спрашиваться. Если не указать пароль, то screen покажет приглашение для ввода пароля и его подтверждения и поместит хеш в буфер обмена.
Чтобы сгенерировать хеш, нужно выполнить следующую последовательность действий:
- запустить сессию screen:
- нажать Ctrl+a
- там ввести:
- появится приглашение ввести пароль и его подтвердить.
- затем нажать Ctrl+a и ] — пароль будет скопирован на экран.
После того, как вы установите пароль password и нажмёте Ctrl-a и x, то у вас программа будет спрашивать пароль два раза: первым будет пароль пользователя, а затем пароль от screen . При подсоединении задач пароль будет спрашиваться только от screen.
Как выйти из Screen
Есть два способа покинуть screen. Первый это использовать Ctrl-a и d для отсоединения экрана. Второй — мы можем использовать команду exit для закрытия сессии screen. Вы также можете использовать Ctrl-a и K для остановки screen.
Как запустить скрипт, процесс которого отделён от терминала
С помощью screen также возможно запуск файла скрипта, который изначально будет отделён от терминала, например:
Это запустит отделённый (независящий) от терминала процесс. Можно отделить любую команду или процесс с помощью программы screen.
Как просмотреть предыдущие результаты (вывод)
Если вывод программы очень большой, то у вас могут возникнуть затруднения при скроллинге вверх.
Вы можете нажать Ctrl-a и Esc для входа в Copy mode (режим копирования). Когда вы окажитесь в режиме копирвоания, вы можете использовать для пролистывания экранов кнопки PageUp и PageDown.
Для выхода из Copy Mode, нажмите ещё раз Esc.
Как разделить экран на несколько вкладок в screen
В screen вы можете разделить окно на несколько виртуальных терминалов, которые будут одновременно присутствовать на экране. Для этого нажмите Ctrl-a и S.
Именные окна screen
Вы можете использовать несколько именных окон screen. Для этого запустите сессию screen с опцией -S, после которой укажите желаемое имя, например:
эта команда создаст screen с именем testing.
покажет текущие сессии screen с их именами:
Чтобы подключиться к именной сессии screen используйте опцию -x с именем сессии:
в результате предыдущей команды, вы подключитесь к testing screen.
Альтернатива для screen
Если вы ищите альтернативу для screen, то присмотритесь к tmux.
Это азы использования screen которые вам пригодятся практически при каждом её использовании. У программы ещё множество функций, с которыми вы можете ознакомится в её справке или на странице man.
Источник