Как переименовать screen linux

Обновлено: 08.07.2024

Вы когда-нибудь сталкивались с ситуацией, когда вы выполняете длительную задачу на удаленном компьютере, и внезапно ваше соединение разрывается, сеанс SSH завершается, и ваша работа теряется. Что ж, в какой-то момент это случилось со всеми нами, не так ли? К счастью, есть утилита screen которая позволяет нам возобновлять сеансы.

Введение

Установить Linux GNU Screen

В настоящее время пакет screen предустановлен в большинстве дистрибутивов Linux. Вы можете проверить, установлен ли он в вашей системе, набрав:

Если в вашей системе не установлен screen, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.

Установите Linux Screen в Ubuntu и Debian

Установите Linux Screen на CentOS и Fedora

Экран запуска Linux

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

Это откроет сеанс экрана, создаст новое окно и запустит оболочку в этом окне.

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

Начало именованного сеанса

Именованные сеансы полезны, когда вы запускаете несколько сеансов экрана. Чтобы создать именованный сеанс, запустите экранную команду со следующими аргументами:

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

Работа с Linux Screen Windows

Когда вы запускаете новый сеанс экрана, он создает одно окно с оболочкой в нем.

У вас может быть несколько окон внутри сеанса Screen.

Чтобы создать новое окно с типом оболочки Ctrl+a c , ему будет присвоен первый доступный номер из диапазона 0. 9 .

Ниже приведены некоторые наиболее распространенные команды для управления экраном Linux в Windows:

  • 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 Закрыть текущую область

Отключиться от сеанса экрана Linux

Вы можете отключиться от сеанса экрана в любое время, набрав:

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

Повторное подключение к экрану Linux

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

Если на вашем компьютере запущено несколько сеансов экрана, вам нужно будет добавить идентификатор сеанса экрана после переключателя r .

Чтобы найти идентификатор сеанса, укажите текущие сеансы запущенного экрана с помощью:

Если вы хотите восстановить экран 10835.pts-0, введите следующую команду:

Настроить экран Linux

Когда screen запускается, он считывает свои параметры конфигурации из /etc/screenrc и

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

Вот пример конфигурации

/.screenrc с настроенной строкой состояния и несколькими дополнительными параметрами:

Базовое использование экрана Linux

Ниже приведены основные шаги для начала работы с экраном:

  1. В командной строке введите screen .
  2. Запускаем желаемую программу.
  3. Используйте последовательность Ctrl-a + Ctrl-d чтобы отключиться от сеанса экрана.
  4. Повторно подключитесь к сеансу экрана, набрав screen -r .

Выводы

В этом руководстве вы узнали, как использовать Gnu Screen. Теперь вы можете начать использовать утилиту Screen и создавать несколько окон экрана из одного сеанса, перемещаться между окнами, отсоединять и возобновлять сеансы экрана и персонализировать свой экранный терминал с помощью файла .screenrc .

Больше информации о Gnu Screen можно найти на странице руководства пользователя Screen .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

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

Это очень полезно при выполнении долгих bash-скриптов: различных синхронизациях сайтов, скачивании файлов, разворачивании дампов огромных баз данных и т.п. Не нужно бояться, что, запустив многочасовой процесс в терминале, вы вернетесь через час и увидете, что соединение было прервано. За несколько часов даже при стабильном соединении с Интернет могут быть секундные разрывы, неговоря уже об нестабильной сети в офисах.

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

Установка

Команды в CentOS и Debian могут отличаться, сочетания клавиш ниже приведены для CentOS 6.9

Создание и переименование экрана

Чтобы создать новый экран, вводим:

Это виртуальный экран той же консоли, здесь доступны все те же операции. Чтобы отключиться от экрана, нажимаем [Ctrl]+[a]+[d] (регистр не важен) и попадаем в обычную консоль. При этом экран работает; если там запущен тот же top, то при возвращении он так и будет работать.

Полный список команд экрана можно получить нажав [Ctrl]+[a]+[?] .

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

Результат будет примерно такой:

Имя сокета выглядит как <pid>.<tty>.<host> . Для более понятного имени можно создавать новый экран командой:

В этом случае имя экрана будет выглядеть как <pid>.yourtitle

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

  • нажимаем [Ctrl]+[a]+[:] (двоеточие)
  • вводим sessionname yourtitle
  • Enter

Подключение к экрану и уничтожение

Для возврата в экран нужно выполнить команду:

Чтобы отключиться от экрана и уничтожить его, вводим при открытом экране [Ctrl]+[a]+[k], [y] .

Сегодня я расскажу об основных возможностях утилиты GNU Screen. Многие администраторы активно пользуются скрином при использовании ssh. Также он хорош для любого, кто активно пользуется терминалом для повседневных задач. Screen позволяет управлять несколькими сессиями из одной консоли или окна терминала. Утилита незаменима, когда к одному сеансу надо подключиться из двух мест одновременно или взаимодействовать с несколькими сессиями. Многие администраторы любят Screen за то, что при потере связи по ssh, могут вернуться в свою сессию, а выполняемые в момент разрыва операции не прервутся.

В ряде Linux дистрибутивов (и не только Linux, Mac OS тоже тут) Screen присутствует по умолчанию. В случае с Debian и форками его требуется поставить отдельно. Сделать это можно, выполнив команду:

Сразу после установки Screen готов к работе.

Для начала работы запустим Screen без параметров, создав новый скрин:

Сразу после запуска появится окно с информацией о создателях и лицензии и будет ожидаться нажатие пробела или Enter.

Команды Screen выполняются по горячим клавишам Ctrl-a. После однократного нажатия Screen ждет команду.

Запросим у Screen список всех команд:

Если не получилось, попробуйте еще раз. Нажмите Ctrl+a, отпустите, введите “?”.

Выйдем из хелпа и попрактикуемся в использовании.

Для начала в текущем скрине (в списке он нулевой) запустим:

Этой командой мы создали новый скрин и теперь они работают одновременно.

Для переключения между скринами можно либо указать номер скрина, либо выбрать скрин из списка:

Теперь свернем Screen с нашими пингами. Для этого воспользуемся хоткеем

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

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

после чего найти в выводе номер потерянного скрина и вернуть его командой:

где n — тот самый номер.

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

Можно быстро создать новый скрин с запущенной программой, например wget большого файла.

С помощью ключа -S при запуске Screen можно указать имя скрина.

Всегда есть возможность переименовать скрин хоткеем

Посмотреть все активные скрины можно командой:

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

Скрины можно закрыть от посторонних хоткеем

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

Это делается хоткеем

Переключаться между регионами можно хоткеем

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

Закрываются регионы хоткеями

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

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

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

На самом деле, Screen умеет гораздо больше. Перечислю два её основных достоинства.

Screen не зависит от login shell

Рис. 1 Сессия Screen с запущенными в ней tail и htop не зависит от текущей сессии bash (PID=13054), поскольку не является её потомком.

01

Описание утилиты screen в Linux

Рис. 2. Оба псевдотерминала в одном окне Screen (вверху) вместо двух отдельно открытых окон (внизу).

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

1. Термины и определения

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

2. Описание команд

Управляющие сочетания клавиш. Для перехода в режим ввода управляющих команд в screen по умолчанию используется Ctrl-a. После нажатия этой комбинации вводится собственно управляющий символ или сочетание, например ? (справка по командам) или Ctrl-I (переход в следующую область). Для упрощения изложения в дальнейшем будут упоминаться только сами управляющие сочетания без переключателя Ctrl-a.

Работа с окнами (псевдотерминалами, PTS)
сСоздать окно с запущенным в нём bash.
KЗакрыть окно
АПереименовать окно
rВключение / Выключение переноса строк в терминале
"Вывести список окон
Работа с областями экрана (regions)
sРазбить область на две по горизонтали
I (pipe)Разбить область на две по вертикали
TabПереключиться в следующую область экрана
QЗакрыть все остальные области и оставить текущую (в которой находится фокус)
Работа с сессиями Screen
dПеревести сессию в фоновый режим и вернуться в системную консоль

Внутренние команды Screen. Доступны после ввода управляющего символа : (двоеточие).

mousetrack onВключить поддержку мыши для переключения между областями. При этом блокируется возможность копирования / вставки по правому щелчку мыши в окне ssh-клиента Putty. Эта функция почему-то пропадает после "открепления" сессии Screen и возвращения в неё.
layout showПросмотреть список разметок экрана, заданных в конфигурационном файле
layout select [n|title]Выбрать заданную в конфигурационном файле именованную разметку экрана либо по номеру (n) либо по названию (title).
layout save XXXЭту команду нужно выполнить для сохранения текущего layout-а с именем XXX перед откреплением сессии Screen, если в конфигурационном файле не прописано ни одной именованной разметки (например, вы только установили screen). Только в этом случае последняя разметка восстанавливается при повторном входе в сессию Screen из системной консоли.
layout autosave onКоманда автосохранения разметки обычно записывается в конфигурационном файле. Она запоминает тот именованный layout, который был на экране на момент "открепления" сессии Screen. Команда действует только на разметки, явно указанные в конфигурационном файле. В противном случае текущий layout нужно сохранить командой layout save XXX (см. выше).
quitЗакрыть все окна и завершить сессию

3. Пример файла конфигурации .screenrc

Глобальный файл конфигурации screen находится по адресу /etc/screenrc, но для удобства работы лучше написать пользовательский файл, который должен располагаться в домашнем каталоге пользователя

/.screenrc. Обратите внимание, что в начале имени локального файла присутствует точка.

За основу я взял файл с Github (.screenrc by joaopizani) и подправил под свои нужды:

Читайте также: