Сегодня я расскажу об утилите, которой должен уметь пользоваться любой системный администратор. Называеться она screen и позволяет в пределах одной сессии терминала работать с множеством командных интерпретаторов. В первую очередь это удобно для удаленного администрирования, когда достаточно один раз подключиться к удаленному компьютеру и на нем в скринах работать с неограниченным количеством терминалов.
Приемущества использования GNU Screen:
1. Возможность создания нескольких окон
2. Возможность отключаться от сесси скринов, а позже возвращяться к работе
3. Команды в скринах продолжают выполняться на удаленном сервере даже после обрыва соединения. Так же есть возможность восстановить прерванную сессию. (очень удобно оставлять что-то важное в скринах, например сборку ядра, будет гарантия что с лучае обрыва соединения процесс не прерветься и к нему можно будет вернуться позже)
Итак, приятного много, единственное что надо сделать – научиться работать со скринами =)
После запуска screen, при настройках по умолчанию мы увидим окно приветствия. Надо нажать ентер или пробел.
После, у нас запускаеться командная оболочка по умолчанию, но она выполнена уже внутри скринов.
В ней мы можем запустить процесс, например while true; do date; sleep 10; done:
Теперь отсоединимся от текущей сесси скринов (Ctrl+A, d):
Теперь узнаем ID сессий, запущеных для данного пользователя: screen -ls
И подключимся к сессии screen -dR 31798.pts-10.boffin-desktop:
Как видим, за время нашего отсутствия команда продолжала успешно выполняться.
Это основы работы с 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. Если кто хочет, могу поделиться своей конфигурацией скринов, которая отображена на первом скриншоте.







спасибо за замечательную статью
вопрос: возможно ли изменить базовую комбинацию Ctrl+a? В командной строке это переход в начало, скринах соответственно не работает и вызыват путаницу
Изменить escape можно отредактировав файл /etc/screenrc или $HOME/.screenrc, добавить в него строчку
escape ^Bb– таки образом escape последовательность будет Ctrl-B.Также можно запускать скрины с ключем -e^Bb – для указания escape последовательности для текущей сессии только.