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

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

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

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

*** ссылки только после регистрации или входа - свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана. tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux, находящемуся в фоне.  Tmux является штатным мультиплексором терминалов *** ссылки только после регистрации или входа. Программа tmux задумывалась как замена программы *** ссылки только после регистрации или входа.

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

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

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

Итак, уже интересно. Выполним установку tmux из портов.
Код: *** ссылки только после регистрации или входа
# cd /usr/ports/sysutils/tmux && make install clean && rehash
Итак, установка прошла без проблем... Первый запуск:
Код: *** ссылки только после регистрации или входа
# 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, однако для подключения обратно используется другой аргумент командной строки:
Код: *** ссылки только после регистрации или входа
# 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:
Код: *** ссылки только после регистрации или входа
# 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 можно ознакомиться *** ссылки только после регистрации или входа.
« Последнее редактирование: Января 12, 2014, 07:33:37 am от Дмитрий »


  • admin.ix-ua@jabber.ua
Новости из мира *** ссылки только после регистрации или входа