Шпаргалка по GNU Screen

3 мин чтения·Matthieu

Краткий справочник по клавишным комбинациям, флагам CLI, навигации в режиме копирования и управлению областями GNU Screen.

Управление сессиями

Действие Команда
Запустить именованную сессию screen -S name
Список сессий screen -ls
Подключиться к сессии screen -r name
Принудительно отключить и подключить screen -D -r name
Отключить удаленную сторону, подключить здесь screen -d -r name
Multi-display подключение screen -x name
Запустить фоновую сессию screen -dmS name
Удалить мертвые сессии screen -wipe
Отправить команду сессии screen -S name -X quit
Включить логирование с начала screen -L -S name

Клавишные комбинации

Все комбинации начинаются с префикса Ctrl-a (escape-клавиша по умолчанию).

Комбинация Действие
Ctrl-a d Отключиться от сессии
Ctrl-a c Создать новое окно
Ctrl-a n Следующее окно
Ctrl-a p Предыдущее окно
Ctrl-a 0-9 Перейти к окну по номеру
Ctrl-a " Список окон (интерактивный)
Ctrl-a A Переименовать текущее окно
Ctrl-a k Закрыть текущее окно
Ctrl-a ? Показать все привязки клавиш

Управление областями (разделение)

Комбинация Действие
Ctrl-a S Горизонтальное разделение
Ctrl-a | Вертикальное разделение
Ctrl-a Tab Перейти к следующей области
Ctrl-a X Закрыть текущую область
Ctrl-a Q Закрыть все области кроме текущей
Ctrl-a :resize +5 Увеличить область на 5 строк
Ctrl-a :resize -5 Уменьшить область на 5 строк

Раскладка областей теряется при отключении. После повторного подключения нужно разделять заново.

Режим копирования

Войди в режим копирования: Ctrl-a [ или Ctrl-a Esc. Вставка: Ctrl-a ].

Клавиша Действие
Стрелки / h/j/k/l Перемещение курсора
Ctrl-u / Ctrl-d Полстраницы вверх / вниз
0 / $ Начало / конец строки
g / G Начало / конец буфера
/ / ? Поиск вперед / назад
Space Установить метку (начало/конец выделения)
Enter Скопировать выделение и выйти
Esc Выйти без копирования

Увеличь стандартный буфер прокрутки (100 строк) в .screenrc:

defscrollback 10000

Базовый .screenrc

startup_message off
shell /bin/bash
defscrollback 10000
term screen-256color
vbell off
altscreen on
autodetach on
nonblock on
deflogin on
hardstatus alwayslastline
hardstatus string '%{= kG}[%{G}%H%{g}][%=%{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%=%{g}][%{B}%Y-%m-%d %{W}%c%{g}]'

Быстрое устранение проблем

Проблема Решение
Сессия зависла как «Attached» screen -D -r name
Мертвые сессии в списке screen -wipe
Терминал завис (XOFF) Ctrl-a q
Искаженные символы Добавь defutf8 on и term screen-256color в .screenrc
Включить логирование окна Ctrl-a H (логи в screenlog.N)

Полное руководство: Как использовать GNU Screen на Linux VPS.