Split Screen with Screen in Linux - Работаем в screen



Очень удобная фишка скрина. Скрин вообще здорово упрощает жизнь двуногим. Стоит освоить, тем более что осваивать совсем не много. Если диагональ экрана позволяет можно одновременно смотреть несколько tail-ов логов и чего-нибудь ещё править, выкатывать тут же и т.п. Остается только снять шляпу перед разработчиками этой замечательной штуки.

Может быть кому-то будет полезен мой набор шоткатов, не идеально (как и все в этом мире), но мне хватает:

Ctrl+a - c - создаст новую "вкладку", ещё один терминал
Ctrl+a - n - переход к следующей вкладке
Ctrl+a - 1..0 - переход к вкладке по её номеру, т.е. если я хочу перейти ко второй вкладке то я должен выполнить Ctrl+a - 2
Clrl+a - a - переход к предыдущей открытой вкладке, то есть вы в пятой а предыдущая была вторая, так можно быстро перейти без ввода номера вкладки
Ctrl+a - " - выбор активного терминала для текушей "вкладки" (двойная кавычка через шифт)
Ctrl+a - Shift+a - переименование текущей вкладки, бывает удобно именовать вкладки
Ctrl+a - k - "убить" текущую вкладку, в случае если по каким-то причинам сеанс завис или сломался вывод например
Ctrl+d - это стандартный выход из сеанса, "вкладка" скрина тоже будет закрыта
Ctrl+a - ? - шпаргалка по хоткеям

Ctrl+a - Esc - перемещение по выводу screen, оно же режим копирования, скроллим вверх и вниз стрелками или PgUp/PgDn
В режиме копирования/скроллинга:
q - выход в нормальный режим
0 - переход в начало строки
$ - переход в конец строки
Ctrl+b - на страницу вверх
Ctrl+d - на страницу вниз
Space - первое нажатие - начало выделения, второе нажатие после перемещения скопирует выделенное в буфер обмена screen
Ctrl+] - вставить содержимое буфера screen
Копирование происходит в некий "внутренний" буфер screen, а не в глобальный клипборд вашей OS. Если у вас macos или linux, то есть варианты.

Разделения экрана (из видео)
Ctrl+a - Shift+s - разделяем по горизонтали
Ctrl+a - | - разделяем по вертикали (пайп вводится с шифтом конечно, посмотрите на свою клавиатуру)
Ctrl+a - Shift+x - удалить текущее разделение (ту зону, в которой сейчас находится курсор)
Ctrl+a - Tab - перейти к следующей области разделения
С этими функциями нужно поэкспериментировать чтобы до конца понять принцип действия.


Ставим скрин (если вдруг его нет):
sudo apt-get install screen

Запускаем screen:
tatuin@luke# screen

Выходим из screen, но оставляем его в процессах, чтобы при следующем заходе на сервер снова подключиться к нему (это по-модному называется detach):
Ctrl+a - d

Подключаемся к оставленному включенным на сервере screen:
tatuin@luke# screen -x

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

P.S.: ещё хорошо бы для удобства немного донастроить скрин, чтобы показывать вкладки, для этого нужно добавить в файл ~/.screenrc следующие настройки:
startup_message off
caption always
caption string "%{kw}%-w%{wr}%n %t%{-}%+w"
defutf8 on
defscrollback 5000
Все пока. Настройки легко гуглятся, как обычно :) Большая дока есть например тут, надеюсь будет живо.