linux-labs

Вики / Базовые команды

screen (мультиплексор терминала)

Команда GNU 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 (скрипты)