Статьи

Введение в Tmux

Одним из наиболее широко используемых инструментов в процессе веб-разработки, безусловно, является терминал. Когда вы работаете над проектом, часто вы обнаруживаете, что можете использовать терминал с несколькими открытыми одновременно вкладками, одна для запуска локального веб-сервера, вторая вкладка для управления базой данных, другая для копирования файлов и так далее. Это может скоро стать грязным и трудным обращаться. Одним из решений этой проблемы, которое хорошо работает для меня, является терминальный мультиплексор tmux .


tmux — это мультиплексор терминалов: он позволяет нескольким терминалам, на каждом из которых выполняется отдельная программа, создавать, получать доступ и управлять ими с одного экрана.

Вышеприведенное определение, взятое с веб-сайта tmux , ясно: из одного окна терминала мы можем запустить и контролировать несколько других терминалов, и в каждом из них запустить другое приложение или другой экземпляр приложения.

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

С другой стороны, к каждому сеансу можно подключить несколько клиентов. Таким образом, один или несколько пользователей могут подключаться к сеансу tmux с разных компьютеров, и они совместно используют одну и ту же информацию в окне. Это чрезвычайно полезно при обучении или совместной работе, поскольку пользователи, использующие сеанс tmux видят ту же информацию в своих окнах терминала.

Подключение к сеансу tmux выполняется путем запуска приложения с помощью следующей команды:

1
tmux attach <session_name>

Когда один пользователь хочет завершить совместное использование терминала, используется следующая команда:

1
tmux detach

tmux работает на Linux и Mac. На момент написания этой статьи я не знал о версии приложения для Windows.

Для большинства дистрибутивов Linux в их репозиториях есть пакет:

На Arch (который я использую) установка — это просто выполнение следующей команды:

1
sudo pacman -S tmux

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

  • В меню «Настройки» перейдите в « Редактировать текущий профиль» и установите для поля « Команда» значение tmux как tmux на tmux экрана ниже:
настройки tmux

Если вы работаете на Mac, iTerm2 поставляется с установленным tmux , и чтобы запустить его, вы должны выполнить команду: 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 легко настраивается. Файл конфигурации — это /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 полезным для улучшения рабочего процесса вашего терминала. Я представил здесь только несколько команд, которые я использую чаще всего. Если вы хотите узнать больше, есть несколько доступных ресурсов. Я очень рекомендую: