120px-icon-console Сегодня я расскажу об утилите, которой должен уметь пользоваться любой системный администратор. Называеться она screen и позволяет в пределах одной сессии терминала работать с множеством командных интерпретаторов. В первую очередь это удобно для удаленного администрирования, когда достаточно один раз подключиться к удаленному компьютеру и на нем в скринах работать с неограниченным количеством терминалов.

Приемущества использования GNU Screen:

screen11

1. Возможность создания нескольких окон

2. Возможность отключаться от сесси скринов, а позже возвращяться к работе

3. Команды в скринах продолжают выполняться на удаленном сервере даже после обрыва соединения. Так же есть возможность восстановить прерванную сессию. (очень удобно оставлять что-то важное в скринах, например сборку ядра, будет гарантия что с лучае обрыва соединения процесс не прерветься и к нему можно будет вернуться позже)

Итак, приятного много, единственное что надо сделать – научиться работать со скринами =)

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

screen2

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

В ней мы можем запустить процесс, например while true; do date; sleep 10; done:

screen3

Теперь отсоединимся от текущей сесси скринов (Ctrl+A, d):

screen4

Теперь узнаем ID сессий, запущеных для данного пользователя: screen -ls

screen5

И подключимся к сессии screen -dR 31798.pts-10.boffin-desktop:

screen6

Как видим, за время нашего отсутствия команда продолжала успешно выполняться.

Это основы работы с GNU Screen. Но рядовому администратору этого будет недостаточно.

Итак, основные гарячии клавиши:

Ctrl+a, c – создание окна

Ctrl+a, n – переход в следующее по порядку окно

Ctrl+a, p – переход в предыдущее окно

Ctrl+a, 1 – переход на первое окно (применимо для 1-9)

Ctrl+d – убивает текущее окно

Ctrl+a, A – позволяет переименовать текущее окно

Ctrl+a, » – показывает список всех окон с именами, позволяет сделать любое окно активным

Ctrl+a, S – делит экран пополам, и в каждой половине выводит окно

Ctrl+a, TAB – позволяет переключаться между видимыми окнами (когда на экране 2 и более окна)

Ctrl+a, Q – позволяет развернуть выбранное окно на весь экран.

В принципе єтого набора достаточно для полноценной работы, но в мануале можно найти еще много полезных команд =)

p.s. Если кто хочет, могу поделиться своей конфигурацией скринов, которая отображена на первом скриншоте.

2 комментариев на «GNU Screen – в помощь сисадмину»

  1. meander:

    спасибо за замечательную статью
    вопрос: возможно ли изменить базовую комбинацию Ctrl+a? В командной строке это переход в начало, скринах соответственно не работает и вызыват путаницу

  2. admin:

    Изменить escape можно отредактировав файл /etc/screenrc или $HOME/.screenrc, добавить в него строчку
    escape ^Bb – таки образом escape последовательность будет Ctrl-B.

    Также можно запускать скрины с ключем -e^Bb – для указания escape последовательности для текущей сессии только.

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