Screen – управления окнами из консоли

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

Устанавливаем:

#yum install -y screen

Для начала, освоим основные действия для манипуляции с окнами
Открываем любой эмулятор терминала (в моем случае - это putty) и запускаем в нем Screen:

$ screen


Это окно - первое окно Screen, которое было создано программой автоматически, при ее запуске. Создадим еще одно окно.
Набираем на клавиатуре следующую комбинацию клавиш (везде без -, - это разделитель):
 Ctrl+a – c


Запустим в этом окне какой-либо процесс. Пусть это будет top и создаем еще одно окно
 Ctrl+a – c и запустим в нем какой-либо процесс. На этот раз путь это будет  man screen

На данный момент мы имеем  в одном окне терминала putty три запущенных окна screen.
Как глянуть сколько окон? как вариант Ctrl+a – w

Мы видим в левом верхнем углу окна строку:
0$ bash 1*$ bash 2-$ bash

Это список активных, созданных нами окон screen. 012 - это номера окон, а bash - их имена (заголовки). Как видно, нумерация окон начинается с нуля. А вот имена у всех трех одинаковые - bash


Окна:
*  0$ bash - это то, которое Screen сам создал при своем запуске (забегая чуть вперед, можно сказать, что их колличество может быть не одно и выставляется оно в конфигурационном файле);
*  1-$ bash - в этом окне мы запутили top;
*  2*$ bash - в этом окне у нас запущен man screen.

Переключение производится сочетанием:
Cntrl+a - p - переключиться на предыдущую вирутальную консоль
Cntrl+a - n или пробел - переключиться на следующую вирутальную консоль
Ctrl+a – “ -- интерактивный (в отличие от Ctrl+a – w) список созданных нами окон. Можно перемещаться по нему стрелками вверх-вниз и входить Enter‘ом в нужное.


Можно перейти на нужное окно, зная его номер, по команде:
Ctrl+a – номер_окна

Например, перейдем на второе окно: 
Ctrl+a – 1

Или, чуть переиначив команду:
Ctrl+a – 

В нижней строке появится предложение ввести номер окна, в которое мы хотим перейти. Допустим, нам нужно перейти в первое окно — вводим номер 0 и нажимаем Enter:

Как мы видели из вывода команд Ctrl+a – w и Ctrl+a – “, имена (заголовки) окон одинаковые. Давайте исправим это. Наберем команду Ctrl+a – A

В нижней строке появится приглашение изменить заголовок окна. Исправляем с bash на main и нажимаем Enter. Узнать имя текущего окна можно Ctrl+a – мы увидим в левом верхнем углу окна его имя.

Информацию об окне:
Ctrl+a – i

 
Мы увидим в левом верхнем углу окнаинформацию и его имя, в нашем случае имя Main.

Как видно из предыдущих выводов, нумерация окон происходит последовательно, с возрастанием номера: 0 - 1 - 2. Если мы закроем одно из них, нумерация оставшихся окон не изменится.

Закрытие окна в Screen производится выполнением команды exit в окне. Предварительно, нужно остановить все запущенные процессы в нем. Закрытие окон можно произвести и комбинацией Ctrl+a – k. Однако, выполнять ее не рекомендуется, так как эта операция идентична команде kill – “убить” процесс.

Давайте закроем второе окно. Остановим процесс top и выполним exit. А затем посмотрим вывод команды.

Было:

 
Стало:

Видим, что нумерация теперь следующая: 0 — 2. Давайте поменяем нумерацию окон, в частности, окна под номером 2 и присвоим ему номер 1. Выполним команду:
Ctrl+a – :
Внизу окна появится приглашение в виде двоеточия для ввода команды.
Введем команду:
number 1
И нажимаем Enter.
Смотрим результат:
Ctrl+a – 

Cправка по клавиатурным комбинациям Screen:
Ctrl+a – ?

По умолчанию, Screen отображает только одно окно на экране эмулятора терминала. Однако, имеется возможность разбивать окно Screen в терминале на несколько. Для этого существует команда разбивки окна на горизонтальные части – регионы. Удобство в этом случае заключается в том, что нет надобности переключаться между окнами – все они находятся на виду и все процессы под контролем, достаточно лишь перевести взгляд на нужное окно.
Открываем эмулятор терминала и запускаем в нем Screen и выполняем команду разбивки экрана эмулятора на две горизонтальные части – регионы:
Ctrl+a – S

Как видно на скриншоте, окно эмулятора терминала putty было разбито на две одинаковые горизонтальные части. В Screen такие части, выполненные с помощью команды Ctrl+a – S, называются регионами. Таких регионов может быть не обязательно два, а много больше. Допустим, чтобы получить три окна Screen в нашем случае, нужно в текущем регионе (он у нас верхний) снова выполнить команду Ctrl+a – S. Так можно создать три, четыре, пять и т. д. окон Screen. Но мы остановимся на варианте из двух окон, для наглядности.

В верхнем регионе у нас запущен Screen и на этом регионе установлен фокус (зеленый курсор). Нижний регион у нас пуст – в нем не запущен Screen и пока там ничего нет. Нам необходимо перейти на нижний регион, создать там окно Screen и запустить в нем процесс.
Переведем фокус на нижний регион:
Ctrl+a – Tab
и создадим в нем окно Screen:
Ctrl+a – c
У нас появилась командная строка.
Запустим в здесь процесс – top

Теперь переместимся (переведем фокус) опять на верхний регион и запустим там ps -aux.
Снова вводим команду:

Ctrl+a – Tab
и выполняем:
ps -aux

Получаем:

Закрытие текущего региона в Screen производится командой Ctrl+a – X. Выполним ее в нашем текущем верхнем регионе:
Ctrl+a – X

Получим:
Если открыто несколько (больше двух) регионов, можно закрыть сразу все, кроме одного – текущего, выполнив команду:
Ctrl+a – Q

и вот еще:
Ctrl+a-| (вертикальное разбиение)

Ctrl+A - d - deattach - отключитсья от окна (но не закрыть)
Ctrl+A - H - записывать в журнал
Ctrl+A - C - (clear) очистить экран.
Ctrl+A - d - (detach) отключить screen от этого терминала.
Ctrl+A - D-D - (pow_detach)  отключиться и разрегистрироваться. 

Комментарии

Популярные сообщения из этого блога

Linux (РедОС). Сброс пароля

TRUNCATE / DELETE / DROP или как очистить таблицу

КБК. КВФО - Код вида финансового обеспечения (деятельности)

SQL Error [53200]: ОШИБКА: нехватка разделяемой памяти Подсказка: Возможно, следует увеличить параметр max_locks_per_transaction

РедОС. Подключение к сетевой папке