screen в основном используют для создания нескольких сессий, в том числе на одном экране с использованием split функционала (смотри ниже) и быстрого переключения между ними (по сути аналог tab’ов в secureCRT).
Кроме того у сессий screen есть существенное (для кого то единственно значимое) преимущество по сравнению с “обычными ssh-сессиями” (звучит криво, но это user experience):
-
- независимость от активности ssh-сессии по причине отключения хоста/проблем в сети между сервером и хостом/etc (хотя только для задачи отвязки shell от ssh сессии проще использовать nohup, mosh, atd now с игнорированием SIGHUP для процесса)
- возможность подключения к сессии без привязки к ssh-сессии – на работе поставил скрипт, а из дома, открыв окно, посмотрел результат
У screen есть мощные альтернативы (напр. tmux, Byobu), но их нужно устанавливать, а screen часто бай-дефолт установлен в системе (есть даже на MacOS!).
Commands
screen –ls – просмотр сессий
screen –S |NAME|– создание сессии с указанном именем и заход в нее
Ctrl-a d или screen -d – выход из сессии без отключения сессии по имени (если одна то без аргументов, если несколько – по имени (если уникально) или по ID
Ctrl-a ESC – заход в copy mode. Может помочь для просмотра текста который не помещается на один экран в screen. Заходим в copy mode, далее перемещаемся используя стрелки или ctrl-b/f для навигации вверх/вниз.
Ctrl-a a – как переместиться в начало строки в screen вместо “простого” Ctrl-a.
screen –r – возобновление (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
SPLIT SCREEN
Split работает путем создания nested сессии в отдельном окне, поэтому все команды, которые работают для nested сессий (создание сессий, переключение между ними, просмотр сессий) выше работают и тут.
- Ctrl-a then| – split вертикально (vertically)
- Ctrl-a then S (uppercase ‘s’) – split горизонтально (horizontally)
- Ctrl-a c – запуск shell в созданном окне (create a new window, start a shell)
- Ctrl-a :layout save default – сохранение layout как default, так же можно сохранить в файл (save layout as default, possible way also to file)
- Ctrl-a then Q (uppercase ‘q’) – unsplit
- Ctrl-a tab – переключение от одного окна на другое (to switch from one to the other)