Вики / Базовые команды
screen (мультиплексор терминала)
Сессии, переживающие разрыв SSH — классическая альтернатива tmux.
screen — как tmux: держит сессию терминала на сервере, переживающую разрыв
SSH. Старше и проще; часто уже установлен. Если есть выбор — tmux
удобнее, но screen встречается повсюду.
screen # новая сессия
screen -S work # именованная
screen -ls # список сессий
screen -r work # подключиться
screen -d -r work # отцепить с другого терминала и подключить к себе
Префикс — Ctrl+a, затем клавиша:
Ctrl+a d отключиться (detach) — сессия работает дальше
Ctrl+a c новое окно
Ctrl+a n / p следующее / предыдущее окно
Ctrl+a 0..9 к окну по номеру
Ctrl+a " список окон (выбрать)
Ctrl+a A переименовать окно
Ctrl+a S разделить экран по горизонтали (Tab — переход, Ctrl+a X — закрыть регион)
Ctrl+a | разделить по вертикали
Ctrl+a [ режим прокрутки/копирования (Esc — выход)
Ctrl+a k убить окно
Ctrl+a ? справка по биндингам
screen -S log -L -Logfile out.log cmd # писать вывод сессии в файл (логирование)
screen -dmS job cmd # запустить detached сразу (для скриптов)
screen -X -S job quit # убить сессию по имени
~/.screenrc (частое):
defscrollback 10000 # длина прокрутки
startup_message off
screen -r: There is no screen to be resumed
Сессии нет (закрылась/ребут). screen -ls покажет, что есть. Сессии в памяти —
перезагрузка их убивает (для устойчивых служб — systemd).
Attached, не отключиться («There is a screen on ... Attached»)
Сессия «прилипла» к другому терминалу: screen -d -r work (отцепить и подключить).
Кракозябры/сломанное отображение
Ctrl+a затем C (очистить) или переподключись. Проверь $TERM (xterm-256color).
Прокрутка мышью не работает
screen по умолчанию прокручивается через copy-mode (Ctrl+a [). Увеличь буфер
defscrollback в ~/.screenrc. Для мыши/панелей удобнее tmux.
screen -S name ; screen -r name ; screen -ls
Ctrl+a d # отключиться (работает дальше)
Ctrl+a c / n / p # окно: новое / след / пред
Ctrl+a [ # прокрутка (Esc выход)
screen -d -r name # отцепить с другого терминала и подключить
screen -dmS job cmd # запустить detached (скрипты)
См. также
- tmux (мультиплексор терминала) — Базовые команды
- SSH-клиент (ssh, scp, туннели) — Сеть
- Фоновые задачи (&, jobs, nohup) — Процессы