Руководство для начинающих по tmux

Максимально используйте сеансы терминала

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

In this article:
- Install tmux
- Get Started with tmux
- Basic tmux Keybindings
- Use the Mouse
- Configure tmux
- Customize the Status Bar
- What's Next?

Tmux — терминальный мультиплексор; он позволяет создавать несколько псевдотерминалов из одного терминала. Это очень полезно для запуска нескольких программ с одним подключением, например, когда вы удаленно подключаетесь к машине с помощью Secure Shell (SSH).

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

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

  • Полностью настраиваемая строка состояния
  • Управление несколькими окнами
  • Разделение окна на несколько панелей
  • Автоматические макеты
  • Синхронизация панели
  • Возможность сценариев, которая позволяет мне создавать собственные сеансы tmux для разных целей.

Вот пример настроенного сеанса tmux:

Tmux предлагает некоторые из тех же функций, что и Экран, который устарел в некоторых дистрибутивах Linux. Tmux имеет более современную кодовую базу, чем Screen, и предлагает дополнительные возможности настройки.

Теперь, когда вы знаете некоторые преимущества tmux, я покажу вам, как его установить и использовать.

Установить тмукс

Tmux доступен в стандартных репозиториях Fedora и Red Hat Enterprise Linux (RHEL), начиная с RHEL 8. Вы можете установить его, используя dnf:

$ sudo dnf -y install tmux

Он также доступен во многих других дистрибутивах Linux, и вы сможете установить его с помощью своего любимого диспетчера пакетов дистрибутива. Для других операционных систем обратитесь к Руководству по установке tmux.

Начать работу с tmux

Чтобы начать использовать tmux, введите tmux на своем терминале. Эта команда запускает сервер tmux, создает сеанс по умолчанию (номер 0) с одним окном и присоединяется к нему.

$ tmux

Теперь, когда вы подключены к tmux, вы можете запускать любые команды или программы, как обычно. Например, для имитации длительного процесса:

$ c=1

$ while true; do echo "Hello $c"; let c=c+1; sleep 1; done
Hello 1
Hello 2
Hello 3

Вы можете отключиться от сеанса tmux, нажав Ctrl+B, а затем D. Tmux работает с использованием набора сочетаний клавиш (сочетаний клавиш), которые запускаются нажатием комбинации «префикс». По умолчанию используется префикс Ctrl+B. После этого нажмите D, чтобы отсоединиться от текущего сеанса.

[detached (from session 0)]

Вы больше не привязаны к сеансу, но ваша длительная команда безопасно выполняется в фоновом режиме. Вы можете перечислить активные сеансы tmux с помощью tmux ls:

$ tmux ls

0: 1 windows (created Sat Aug 27 20:54:58 2022)

На этом этапе вы можете отключить SSH-соединение, и команда продолжит работу. Когда вы будете готовы, снова подключитесь к серверу и снова подключитесь к существующему сеансу tmux, чтобы продолжить с того места, где вы остановились:

$ tmux attach -t 0
Hello 72
Hello 73
Hello 74
Hello 75
Hello 76
^C

Как видите, команда продолжала выполняться и выводить сообщения на экран. Вы можете нажать Ctrl+C, чтобы отменить его.

Все команды tmux тоже можно сокращать, так, например, можно ввести tmux a, и это будет работать так же, как tmux attach.

Одна только эта функциональность делает tmux отличным инструментом, но он может предложить еще больше, включая сочетания клавиш по умолчанию.

Основные сочетания клавиш tmux

Tmux предоставляет несколько сочетаний клавиш для быстрого выполнения команд в сеансе tmux. Вот некоторые из самых полезных.

Во-первых, создайте новый сеанс tmux, если вы еще не в нем. Вы можете назвать свою сессию, передав параметр -s {name} команде tmux new при создании новой сессии:

$ tmux new -s Session1
+=========================+=============================================+
|       Keybinding        |                 Description                 |
+=========================+=============================================+
| Ctrl+B D                | Detach from current session                 |
+-------------------------+---------------------------------------------+
| Ctrl+B %                | Split window into 2 panes horizontally      |
+-------------------------+---------------------------------------------+
| Ctrl+B "                | Split window into 2 panes vertically        |
+-------------------------+---------------------------------------------+
| Ctrl+B Arrow Key        | Move between panes                          |
|  (LEFT,RIGHT,UP,DOWN)   |                                             |
+-------------------------+---------------------------------------------+
| Ctrl+B X                | Close pane                                  |
+-------------------------+---------------------------------------------+
| Ctrl+B C                | Create a new window                         |
+-------------------------+---------------------------------------------+
| Ctrl+B N (or P)         | Move to next or previous window             |
+-------------------------+---------------------------------------------+
| Ctrl+B 0 (1,2...)       | Move to specific window by number           |
+-------------------------+---------------------------------------------+
| Ctrl+B :                | Enter command line to type commands.        |
|                         | Tab completion available                    |
+-------------------------+---------------------------------------------+
| Ctrl+B ?                | View all key bindings. Press "Q" to exit    |
+-------------------------+---------------------------------------------+
| Ctrl+B W                | Open a panel to navigate across windows     |
|                         | in multiple sessions                        |
+-------------------------+----------------------------------------------

Для получения дополнительных комбинаций клавиш обратитесь к справочным страницам tmux.

Используйте мышь

Tmux чаще всего используется с клавиатурой, и он предоставляет множество сочетаний клавиш, упрощающих выполнение команд, создание новых панелей и изменение их размера. Если вы предпочитаете использовать мышь, tmux также позволяет это сделать, хотя по умолчанию мышь отключена. Чтобы включить его, сначала войдите в командный режим, нажав Ctrl+B :, затем включите (или выключите) мышь с помощью команды set -g mouse.

Теперь вы можете использовать мышь для переключения между панелями и окнами и изменения их размера. Начиная с версии 3 tmux, вы также можете щелкнуть правой кнопкой мыши и открыть контекстное меню:

Это меню меняется в зависимости от того, что находится на экране под курсором мыши при щелчке.

Настроить tmux

Вы можете навсегда изменить конфигурацию tmux, изменив файл конфигурации tmux. По умолчанию этот файл расположен по адресу $HOME/.tmux.conf.

Например, префиксная комбинация клавиш по умолчанию — Ctrl+B, но иногда эту комбинацию неудобно нажимать, и для этого требуются обе руки. Вы можете изменить его на что-то другое, отредактировав файл конфигурации. Мне нравится устанавливать клавишу префикса Ctrl+A. Для этого создайте новый файл конфигурации и добавьте в него следующие строки:

$ vi $HOME/.tmux.conf

# Set the prefix to Ctrl+a
set -g prefix C-a

# Remove the old prefix
unbind C-b

# Send Ctrl+a to applications by pressing it twice
bind C-a send-prefix

:wq

Когда вы запускаете сеанс tmux на этом компьютере, вы можете выполнить перечисленные выше команды, сначала нажав Ctrl+A. Используйте файл конфигурации, чтобы изменить или добавить другие сочетания клавиш и команды tmux.

Настройте строку состояния

Строка состояния Tmux полностью настраивается. Вы можете изменить цвета каждого раздела и то, что отображается. Вариантов так много, что для их освещения потребовалась бы отдельная статья, поэтому я начну с основ.

Стандартный зеленый цвет всей строки состояния затрудняет просмотр различных разделов. Особенно сложно увидеть, сколько окон у вас открыто и какое из них активно.

Вы можете изменить это, обновив цвета строки состояния. Сначала войдите в командный режим, набрав Ctrl+B : (или Ctrl+A :, если вы изменили конфигурацию префикса выше). Затем измените цвета с помощью этих команд:

  • Изменить цвет фона строки состояния: set -g status-bg cyan
  • Изменить цвет неактивного окна: set -g window-status-style bg=yellow
  • Изменить цвет активного окна: set -g window-status-current-style bg=red,fg=white

Добавьте эти команды в свой файл конфигурации для постоянных изменений.

С этой конфигурацией ваша строка состояния выглядит лучше, и гораздо проще увидеть, какое окно активно:

Что дальше?

Tmux — это фантастический инструмент для защиты ваших удаленных подключений, который полезен, когда вы проводите много времени за терминалом. В этой статье рассматриваются только основные функции, и есть еще много чего для изучения. Для получения дополнительной информации о tmux посетите его официальную вики-страницу.

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

Ознакомьтесь с Книгой Рикардо, изданной The Pragmatic Bookshelf.



Напишите свои собственные быстрые, надежные и кроссплатформенные инструменты командной строки с помощью языка программирования Go.