# Консольные инструменты

# Tmux

## Настройка

**Tmux** можно настроить как для текущего пользователя(**~/.tmux.conf**) так и для всей системы.

С версии 2.1 для включения режима мыши (прокручивание, изменение размера панели, выбор панели и др.) нужно добавить в **tmux.conf** строку:

`set -g mouse on`

До версии 2.1 это было так:

```
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
set -g mode-mouse on
```

## Работа с tmux

Для работы с **tmux** используется широкий набор горячих клавиш, состоящих из базового сочетания `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>` и отдельных целевых клавиш: n,p,w,b и т.д.

### Работа с сеансами в tmux

Для создания рабочего сеанса без идентификатора — достаточно ввести `tmux` в терминале. Будет создан сеанс 0:

[![изображение.png](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/scaled-1680-/izobrazenie.png)](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/izobrazenie.png)

Идентификатор сеанса отображается внизу слева в квадратных скобках. Для создания именного сеанса достаточно ввести команду `tmux new <span class="hljs-_">-s</span> название сеанса`.

Поскольку **tmux** завершает соединение с сохранением состояния сеанса, правильным способом возобновить работу **tmux** будет его запуск командой `tmux attach || tmux new`.

Команда запускает проверку уже созданных сеансов и если активных подключений нет — создается новое подключение.

Просмотреть список созданных сеансов можно командой `tmux ls`.

Команда вернёт список вида `0: 1 windows (created Mon Aug 30 13:02:31 2021) (attached)`.

Если в списке один сеанс, то командой `tmux attach` он будет автоматически восстановлен, а если в списке несколько сеансов — необходимо ввести команду `tmux attach -t наименование сеанса`.

В нашем случае сеанс называется 0.

Сменить сеанс можно также, находясь в другом сеансе. Для этого нужно воспользоваться сочетанием клавиш `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">s</span>`.

[![изображение.png](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/scaled-1680-/lCcizobrazenie.png)](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/lCcizobrazenie.png)

Выйти из сеанса можно с помощью сочетания клавиш `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">d</span>`, а завершить его командой `tmux <span class="hljs-built_in">kill</span>-session -t название сеанса`.

Закрыть все сеансы можно командой `tmux <span class="hljs-built_in">kill</span>-server`.

### Создание окон и переключение между ними

Чтобы создать окно — применяется сочетание клавиш: `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>`, а затем `<span class="key_bg_c_red">c</span>`. Просмотреть список окон можно сочетанием — `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>`, а затем `<span class="key_bg_c_red">w</span>`. Выбор конкретного окна из списка осуществляется стрелками <span class="key_bg_c_red">↑</span> и <span class="key_bg_c_red">↓</span>.

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

- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">n</span>` — следующее окно;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">p</span>` — предыдущее окно;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, номер окна (цифрой )` — переключиться на нужное окно.

### Горизонтальное и вертикальное деление окон

Окна сеансов **tmux** можно разделять вертикально и горизонтально. Для горизонтального разделения окна используется сочетание клавиш `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, "`.

[![изображение.png](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/scaled-1680-/07hizobrazenie.png)](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/07hizobrazenie.png)

Чтобы разделить окно вертикально на две равные панели — воспользуйтесь сочетанием клавиш `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">%</span>`.

[![изображение.png](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/scaled-1680-/1jSizobrazenie.png)](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/1jSizobrazenie.png)

Перемещаться между панелями можно с помощью сочетаний клавиш `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>` и стрелок.

Панели тоже можно разделять. Например, если нужно получить 3 панели, сначала окно делится горизонтально (`<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>,"`), затем осуществляется переход на нужную панель (`<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">↑</span> или <span class="key_bg_c_red">↓</span>`) и она делится вертикально (`<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">%</span>`). Получаем следующую рабочую зону:

[![изображение.png](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/scaled-1680-/dqoizobrazenie.png)](https://docs.nix-adm.ru/uploads/images/gallery/2025-01/dqoizobrazenie.png)

Закрыть панель (часть окна) можно с помощью сочетания клавиш `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">x</span>` или командой `exit`.

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

### Список часто используемых команд и горячих клавиш tmux

**Команды для управления сеансами**:

- `<span class="inline_black">tmux new [имя_сеанса]</span>` — начать новый сеанс. `Имя_сеанса` опционально;
- `<span class="inline_black">tmux attach -t [имя_сеанса]</span>` — подключиться к уже существующему сеансу. Если имя заранее не было задано, тогда команда будет выглядеть так: `<span class="inline_black">tmux attach -t 0</span>`;
- `<span class="inline_black">tmux ls</span>` — список открытых сеансов tmux;
- `<span class="inline_black">tmux kill-server</span>` — остановить все запущенные сеансы;
- `<span class="inline_black">tmux kill-session -t [имя_сеанса]</span>` — завершить сеанс;
- `<span class="inline_black">tmux list-clients -t [имя_сеанса]</span>` — посмотреть клиентов, подключенных к сеансу;
- `<span class="inline_black">tmux list-sessions</span>` — вывести список всех запущенных сеансов.

**Горячие клавиши для управления окнами**:

- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">c</span>` — создать новое окно;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">w</span>` — просмотреть список окон;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">n</span>` — следующее окно;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">p</span>` — предыдущее окно;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">номер окна (цифрой)</span>` — переключиться на нужное окно;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, "` — горизонтальное разделение окна;
- `<span class="key_bg_c_red">Ctrl</span> + <span class="key_bg_c_red">b</span>, <span class="key_bg_c_red">%</span>` — вертикальное разделение окна.
- `Ctrl + b, ,` — переименовать окно.

**Горячие клавиши для просмотра журнала команд и поиска:**

- `Ctrl + b, [` — вход в режим просмотра журнала команд.
- `Ctrl + b, [``Ctrl + s` — прямой поиск. Нажатие клавиши `n` подсвечивает следующий результат поиска.
- `Ctrl + b, [``Ctrl + r` — обратный поиск. Нажатие клавиши `n` подсвечивает следующий результат поиска.

С уверенностью можно сказать, что **tmux** — это простой и мощный консольный инструмент, позволяющая полностью настроить под себя рабочие пространство в терминале. Сила **tmux** в его гибкости и сочетании с другими консольными инструментами, например: VIM, Htop, Tree.