Одним из наиболее широко используемых инструментов в процессе веб-разработки, безусловно, является терминал. Когда вы работаете над проектом, часто вы обнаруживаете, что можете использовать терминал с несколькими открытыми одновременно вкладками, одна для запуска локального веб-сервера, вторая вкладка для управления базой данных, другая для копирования файлов и так далее. Это может скоро стать грязным и трудным обращаться. Одним из решений этой проблемы, которое хорошо работает для меня, является терминальный мультиплексор tmux .
Что такое Tmux
tmux— это мультиплексор терминалов: он позволяет нескольким терминалам, на каждом из которых выполняется отдельная программа, создавать, получать доступ и управлять ими с одного экрана.
Вышеприведенное определение, взятое с веб-сайта tmux , ясно: из одного окна терминала мы можем запустить и контролировать несколько других терминалов, и в каждом из них запустить другое приложение или другой экземпляр приложения.
tmux разработан по модели клиент-сервер. Это привносит в игру концепцию сессий. Сеанс хранится на сервере, который содержит представление окна. Каждое окно может быть связано с несколькими сессиями и перемещаться между ними.
С другой стороны, к каждому сеансу можно подключить несколько клиентов. Таким образом, один или несколько пользователей могут подключаться к сеансу tmux с разных компьютеров, и они совместно используют одну и ту же информацию в окне. Это чрезвычайно полезно при обучении или совместной работе, поскольку пользователи, использующие сеанс tmux видят ту же информацию в своих окнах терминала.
Подключение к сеансу tmux выполняется путем запуска приложения с помощью следующей команды:
|
1
|
tmux attach <session_name>
|
Когда один пользователь хочет завершить совместное использование терминала, используется следующая команда:
|
1
|
tmux detach
|
Как установить Tmux
tmux работает на Linux и Mac. На момент написания этой статьи я не знал о версии приложения для Windows.
Для большинства дистрибутивов Linux в их репозиториях есть пакет:
На Arch (который я использую) установка — это просто выполнение следующей команды:
|
1
|
sudo pacman -S tmux
|
После установки вы можете запустить tmux , введя команду tmux в окне терминала. Если вы хотите, чтобы он запускался автоматически для каждого сеанса терминала, потребуется немного настроек:
- В меню «Настройки» перейдите в « Редактировать текущий профиль» и установите для поля « Команда» значение
tmuxкакtmuxнаtmuxэкрана ниже:

Если вы работаете на Mac, iTerm2 поставляется с установленным tmux , и чтобы запустить его, вы должны выполнить команду: tmux .
Характеристики
После установки, если вы запустите окно терминала, единственное, что вы заметите, это наличие строки состояния в нижней части экрана:

Давайте посмотрим на наиболее распространенные функции. Для получения полного списка функций см. Ссылки в конце этой статьи.
Создание панелей
Или, другими словами, разбить главное окно. Прежде всего, я должен сказать, что каждая команда tmux имеет префикс, используя следующую комбинацию клавиш: <Ctrl-b> . Это можно изменить, но позже мы узнаем, как настроить и настроить tmux .
Таким образом, для разделения окна по вертикали (или на правой и левой панелях) должна использоваться следующая команда:
|
1
|
<Ctrl-b>%
|
и для разделения окна на горизонтальные панели вы можете использовать:
|
1
|
<Ctrl-b>»
|
И результат должен выглядеть следующим образом:

Перемещение с одной панели на другую и позиционирование панелей
Для перемещения курсора с одной панели на другую (активация панелей) используются клавиши со стрелками. Команда выглядит так:
|
1
|
<Ctrl-b>[Up, Down, Right, Left]
|
Если вы хотите перейти на ранее активную панель, вы можете использовать следующую команду:
|
1
|
<Ctrl-b>;
|
Кроме того, если вы не удовлетворены положением панели, вы можете вращать панели с помощью команды:
|
1
|
<Ctrl-b><Ctrl-o>
|
Изменение размеров панелей
После создания вы можете изменить размер каждой панели за один шаг ячейки, используя:
|
1
|
<Ctrl-b><Ctrl-Up[Down][Left][Right]>
|
или с шагом в пять ячеек:
|
1
|
<Ctrl-b><Meta-Up[Down][Left][Right]>
|
Закрытие панели
Если вы хотите закрыть текущую панель, вы можете использовать:
|
1
|
<Ctrl-b>x
|
Создать новое окно
Иногда вы можете захотеть создать другое окно, например, для работы над другим проектом. Это окно может содержать совершенно другой набор панелей с разными программами в каждой из них. Для этого выполните следующую команду:
|
1
|
<Ctrl-b>c
|
Тогда, если вы хотите перейти к следующему окну, вы можете использовать:
|
1
|
<Ctrl-b>n
|
И вы можете переключиться на предыдущее окно, используя:
|
1
|
<Ctrl-b>p
|
Или вы можете выбрать окно в интерактивном режиме с помощью:
|
1
|
<Ctrl-b>w
|
Закрытие окна
Чтобы закрыть открытое окно, вы используете:
|
1
|
<Ctrl-b>&
|
Режим копирования
Предположим, вы выполнили команду на терминале, и выходные данные команды не помещаются на одном экране, поэтому вам нужно прокрутить вверх, чтобы увидеть весь вывод. Если вы попробуете нажать клавишу « Вверх» , это не будет прокручивать вас вверх, поскольку покажет только историю ваших команд. Чтобы прокрутить экран вверх, используйте следующую команду:
|
1
|
<Ctrl-b>[
|
А затем нажмите одну из следующих клавиш: Up , Down , PgUp или PgDn чтобы прокрутить вверх или вниз.
Кроме того, в этом режиме вы можете скопировать текст из истории, а затем вставить его с помощью:
|
1
|
<Ctrl-b>]
|
Чтобы выйти из этого режима insert , просто нажмите Esc .
Сейчас существует множество других команд, связанных с различными клавишами. Вы можете перечислить все привязки клавиш, выполнив:
|
1
|
<Ctrl-b>?
|
Конфигурирование Tmux
tmux легко настраивается. Файл конфигурации — это /etc/tmux.conf для общесистемных настроек или (рекомендуется) ~/.tmux.conf для пользовательских настроек.
Изменить префиксный ключ
Одной из первых вещей, которую изменяет большинство пользователей, является сопоставление префиксного ключа (поскольку <Ctrl-b> не кажется таким удобным). Большинство пользователей изменяют его на <Ctrl-a> . Это можно сделать так:
|
1
2
3
|
set -g prefix Ca
unbind Cb
bind Ca send-prefix
|
Опция -g в первой команде сообщает tmux, что это глобальная опция, то есть она установлена для всех окон и сессий.
Изменить привязки клавиш
Некоторые пользователи могут предпочесть Vi или Emacs как привязки для ключевых действий. Это делается с помощью:
|
1
2
|
set -g status-keys vi
setw -g mode-keys vi
|
Команда setw устанавливает параметр для окна (влияет на все панели в окне).
Строка состояния
Вы можете выполнить различные конфигурации строки состояния: вы можете включить или выключить ее, вы можете изменить ее фон и цвет переднего плана, вы можете изменить информацию, отображаемую внутри нее, и т. Д.
Чтобы отключить строку состояния, введите следующую команду:
|
1
|
set -g status off
|
Или вы можете попробовать что-то вроде этого:
|
1
2
3
|
set -g status-bg blue
set -g status-fg white
setw -g status-left #H:#S at #W:#T
|
… который меняет фон строки состояния на синий, цвет текста на белый и слева от строки состояния отображается имя хоста localhost, за которым следуют двоеточие и имя сеанса, затем строка ‘at’ и имя окна , двоеточие и, наконец, заголовок панели.
Вы также можете отобразить строку состояния внизу или вверху окна:
|
1
|
set -g status-position [bottom |
|
Для получения дополнительной информации о конфигурации и других параметрах конфигурации вы можете проверить раздел опций руководства .
Вывод
Я надеюсь, что вы нашли это введение в tmux полезным для улучшения рабочего процесса вашего терминала. Я представил здесь только несколько команд, которые я использую чаще всего. Если вы хотите узнать больше, есть несколько доступных ресурсов. Я очень рекомендую: