Linux: использование screen

Хорошая шапаргалка

screen в основном используют для создания нескольких сессий и быстрого переключения между ними (по сути аналог tab’ов в secureCRT).

Кроме того у сессий screen есть существенное преимущество по сравнению с “обычными” ssh-сессиями –  независимость от активности ssh-сессии (по причине отключения хоста/проблем в сети между сервером и хостом/етк). К примеру – на работе поставил скрипт, а из дома открыв окно посмотрел результат. У screen есть мощные альтернативы типа tmux, но их нужно ставить, а screen чаще всего идет бай-дефолт. Хотя конечно только для этой задачи куда проще использовать nohup или atd now.

Отлавливал баг (было на debian + supperputty), когда Screen помещает вывод только на один экран, в результате длинный вывод посмотреть можно только с less. Все что выше экрана показывается для основной сессии, а не screen’овой.

Commands

screen –ls – просмотр сессий

screen –S |NAME|– создание сессии с указанном именем и заход в нее

Ctrl-a d или screen -d – выход из сессии без отключения сессии по имени (если одна то без аргументов, если несколько – по имени (если уникально) или по ID

Ctrl-a ESC – заход в copy mode. Может помочь для просмотра текста который не помещается на один экран в screen. Заходим в copy mode, далее перемещаемся используя стрелки или ctrl-b/f для навигации вверх/вниз.

screenr – возобновление (resume) созданной сессии (если одна то без аргументов, если несколько – по имени (если уникально, причем можно по началу названия только) или по ID

echo $STY – смотрим в каком screen мы находимся

exit – выход из сессии (экрана) и его полное отключение (каждый nested потребует дополнительного exit)

Nested Screen

Внутри одной screen сессии можно создать еще сессии, тем самым породив nested screen. Такое создание имеет свои плюсы:

Ctrl-a c – можно создавать nested screen сочетанием клавиш, а не только через sreen -S

Ctrl-a Ctrl-a – можно перемещаться между nested screen сочетанием клавиш (аналог alt+tab Windows)

Ctrl-a ” – можно посмотреть список nested screen, а не только через echo $STY

Leave a Reply