Автор Тема: Tmux - консольный мультиплексор  (Прочитано 3087 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий

  • Global Moderator
  • Jr. Member
  • *****
  • Сообщений: 70
  • Country: ua
  • Karma: +1/-0
  • Пол: Мужской
  • ICQ: 41488731
Tmux - консольный мультиплексор
« : Января 11, 2014, 10:43:34 pm »
Tmux - консольный мультиплексор

You are not allowed to view links. Register or Login - свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана. tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux, находящемуся в фоне.  Tmux является штатным мультиплексором терминалов You are not allowed to view links. Register or Login. Программа tmux задумывалась как замена программы You are not allowed to view links. Register or Login.

При старте tmux создаёт новую сессию с единственным окном и отображает её на экране. В статусной строке в самом низу экрана отображается информация о текущей сессии; эта же строка используется для ввода команд tmux’а.

Сессия tmux - это совокупность псевдо-терминалов, находящихся под управлением tmux’а. К каждой сессии привязаны одно или более окон. Экран может быть занят как только одним окно, так и мозаикой из нескольких окон, каждое из которых соответствует одному псевдо-терминалу.

 Основные отличия tmux от screen такие:
  • Клиент-серверная архитектура, при которой окна выполняют роль объектов, которые могут одновременно подключаться к нескольким сессиям, перемещаться между ними и просматриваться с разных клиентов (терминалов).
  • Механизм автоматизации выполняемых действий с помощью скриптов.
  • Несколько независимых буферов обмена.
  • Два варианта раскладки клавиатуры: стиль vi и emacs.
  • Более ясный формат описания строки статуса.
  • Возможность отображения вывода команды в строке статуса.
  • Экономное расходование оперативной памяти.
  • Высокая скорость работы.
  • Улучшенная поддержка UTF-8.
  • Интерактивные меню для выбора окон, сессий и клиентов.
  • Более гибкие возможности по разделению окон на регионы.

Итак, уже интересно. Выполним установку tmux из портов.
Код: You are not allowed to view links. Register or Login
# cd /usr/ports/sysutils/tmux && make install clean && rehash
Итак, установка прошла без проблем... Первый запуск:
Код: You are not allowed to view links. Register or Login
# tmux
После запуска порадовала панель статуса, включеная по дефолту, да еще и с зеленой подсветкой.
Собственно, вот скриншот первой сессии tmux без каких-либо дополнений:


Как оказалось, сочатание клавиш Ctrl-a не работает, нужно использовать сочетание клавиш Ctrl-b, что не очень удобно. Это удобно тем, что не создает конфликтов со Screen, как в случае с minicom. Но мы их потом переделаем в обычные Ctrl-a  :P

Исключая сочетания клавиш в виде Ctrl-b, большинство клавиатурных комбинаций совместимы со Screen. Так, Ctrl-b c открывает новое окно, а при Ctrl-b 1 выполняется переход к окну номер один. В то же время некоторые действия выполняются совершенно другими сочетаниями клавиш:

    Ctrl-b w - это меню открытых окон
    Ctrl-b l - предыдущее окно
    Ctrl-b " - разделить окно по вертикали
    Ctrl-b & - уничтожает окно.

Для отключения от сессии используется все та же комбинация Ctrl-b d, однако для подключения обратно используется другой аргумент командной строки:
Код: You are not allowed to view links. Register or Login
# tmux attach
Также следует отметить тот факт, что любое действие, выполняемое с помощью сочетания клавиш, можно выполнить из коммандной строки. Например:

    # tmux last-window - переход к предыдущему окну
    # tmux new-window - создание нового окна
    # tmux list-commands - список поддерживаемых комманд

Не стоит недооценивать значение команд, при использовании tmux. С их помощью выполняется конфигурирование программы. Именно для конфигурирования предназначены две команды: set-option и set-window-option. set-option служит для изменения параметров сессии, set-window-option служит для изменения настроек окон.

Опции можно внести в конфигурационный файл в /usr/local/etc/tmux.conf:
Код: You are not allowed to view links. Register or Login
# sample tmux.conf file
#
# URLs to read:
#
# http://blog.yjl.im/2009/11/migrating-to-tmux-from-gnuscreen.html
# http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/
# http://blog.hawkhost.com/2010/07/02/tmux-%E2%80%93-the-terminal-multiplexer-part-2/
# http://www.dayid.org/os/notes/tm.html
#
# Other sample tmux.conf files
#
# http://www.mindfuzz.net/?p=178
#
# -----------------------------------------------------------------------------
# Global settings

# Изменяем цвет строки статуса на белый
set -g status-bg white

# Изменяем правую часть статусной строки
set -g status-right '#(echo $USER)@#H #(uptime | cut -d "," -f 1)'

# Навигация по командной строке и списку окон в режиме vi
set -g status-keys vi
setw -g mode-keys vi

# Размер буфера истории
set -g history-limit 1000

# Меняем стандартный префикс на Ctrl-a
set -g prefix C-a
unbind C-b

# Переход к предыдущему окну по Ctrl-a
bind C-a last-window

# Ctrl-a +m включает мониторинг активности
bind M setw monitor-activity on


# Ctrl-a +m - запустить sudo mc
bind m neww 'exec sudo mc'

# Альтернативные комбинация для горизонтального Ctrl-a -(_) и вертикального Ctrl-a \ (|) разбития 
bind-key - split-window -v
bind-key _ split-window -v
bind-key \ split-window -h
bind-key | split-window -h

# Cтарт индексации окон с единицы (default 0)
set -g base-index 1


Также есть возможность модифицировать статусную строку. Для этого предназначены комманды status-left и status-right. Как можно догадаться, первая влияет на левую часть статус-бара, а вторая - на правую. Формат

    #(команда) - результат выполнения указанной команды
    #H - имя хоста
    #S - имя текущей сессии
    #T - имя текущего окна
    ## - символ #

Еще одной отличительной особенностью tmux является разбиение окон на регионы.

В отличие от Screen, для разделения окна вертикально на два равных региона используется комбинация Ctrl-b ", а для переключения между регионами по умолчянию - либо комбинация Ctrl-b o, либо Ctrl-b и навигационные клавиши. Но не забываем, что мы переделали комбинацию в фале tmux.conf на более удобную Ctrl-a ;)

Изменить размер региона можно с помощью комбинаций по умолчанию Ctrl-b Alt-Up и Ctrl-b Alt-Down, а в нашей переделке уже Ctrl-a Alt-Up и Ctrl-a Alt-Down.  Однако основная изюминка скрывается в поддержке нескольких вариантов размещения регионов, для переключения между которыми предназначена комбинация Ctrl-b Space (в моем случае Ctrl-a Space). В частности, регионы могут быть расположены горизонтально, вертикально, интеллектуально, с выравниванием или без.

Кстати, есть еще одна приятная особенность. Нажав Ctrl-b t (Ctrl-a t) можно вывести на экран часы, нарисованные псевдографикой. Они не будут исчезать с экрана до нажатия любой клавиши.


На этом обзор закончим. Более подробно с возможностями tmux можно ознакомиться You are not allowed to view links. Register or Login.
« Последнее редактирование: Января 12, 2014, 07:33:37 am от Дмитрий »


Contact You are not allowed to view links. Register or Login