В этой статье разбирается утилита tmux, которая используется для удобства или большей функциональности в работе с терминалом Linux.
Об утилите
Утилита tmux позволяет создавать несколько сессий с виртуальными терминалами, получать к ним доступ и управлять с одного экрана. Вы можете отключиться от сессии с виртуальными терминалами, а сессия с запущенными там процессами продолжит работать в фоновом режиме. Затем, вы можете, снова, подключиться к этой сессии.
Дополнительно терминал может быть разделён на несколько частей. И к одному сеансу tmux может быть подключено несколько пользователей.
Если вы ни разу не пользовались tmux, то вам наверное не стало яснее что такое tmux. Поэтому разберём всё на практике.
Устанавливается утилита из стандартных репозиториев:
# apt install tmux
Справку можете почитать здесь, или выполните:
# man tmux
Практика
Запуск сессии tmux, отключение и подключение к ней
Выполнив просто команду tmux вы запустите первую сессию:
# tmux
То что вы в виртуальном терминале понятно по строке состояния снизу:
Давайте запустим здесь, например top. А затем, чтобы отключиться от этой сессии нажмите комбинацию клавиш «Ctrl+b и затем сразу d». После выполнения такой комбинации вы отключитесь от сессии tmux, но top продолжит выполняться в фоне. Затем вы можете отключиться от SSH и повторно подключиться.
После повторного подключения по SSH, выполним команду tmux ls:
# tmux ls 0: 1 windows (created Wed Mar 13 16:40:10 2024)
Таким образом мы увидим все сессии tmux. Первый ноль — это имя сессии, оно используется для подключения.
Для того, чтобы подключиться к сессии выполним tmux attach -t <имя сессии>:
# tmux attach -t 0
После выполнения этой команды мы подключились к сессии tmux. А в этой сессии на виртуальном терминале работал top.
То есть, первая функция tmux — это запуск долгоиграющих скриптов без боязни случайно отключиться от терминала. Напомню, если вы запустите какой-то скрипт, а затем отключитесь от SSH то скрипт оборвёт своё выполнение.
Чтобы действительно завершить сессию tmux просто выполните в ней команду exit.
Именованные сессии
Можно задать своё имя для сессии при её создании. Делается это так:
# tmux new-session -s my_work
Теперь отключимся от сессии (Ctrl+b, d). И посмотрим список сессий:
# tmux ls my_work: 1 windows (created Wed Mar 13 16:59:33 2024)
Или можно переименовать сессию:
# tmux rename-session -t my_work work # tmux ls work: 1 windows (created Wed Mar 13 16:59:33 2024)
Это вторая функция tmux. Вы можете сделать столько сессий, сколько вам нужно. И к сессиям могут подключаться другие люди. При этом вы можете работать одновременно или по очереди.
Разделение экрана
Теперь подключимся к нашей сессии:
# tmux attach -t work
И выполним комбинацию клавиш: Ctrl+b и затем « (двойные кавычки с шифтом). При этом наш терминал разделится на две части по горизонтали.
А для деления по вертикале нужно выполнить комбинацию: Ctrl+b и %.
Для перемещения между окошками служат комбинации: Ctrl+b и стрелки.
А это третья функция tmux — удобство.
Повторим комбинации клавиш и команды
Команды:
- tmux — запуск сессии tmux;
- tmux ls — просмотр сессий tmux;
- tmux attach -t <имя сессии> — подключение к сессии;
- tmux new-session -s <имя сессии> — создание именованной сессии;
- tmux rename-session -t <old_name> <new_name> — переименование сессии.
Комбинации клавиш:
- Ctrl+b и затем d — отключиться от сесии;
- Ctrl+b и затем « — разделение терминала по горизонтали;
- Ctrl+b и затем % — разделение терминала по вертикали;
- Ctrl+b и стрелки — перемещения по окошкам разделённого терминала.
Итог
Теперь вам должно быть понятно, зачем использовать tmux:
- Для работы долгоиграющих команд, например передача чего-нибудь по сети.
- Для совместной работы. Например вы что-то запустили, а затем другой человек может подключиться к вашей сессии tmux, чтобы понаблюдать за процессом.
- Для удобства. Вы можете разделить экран, как вам удобно. Поработать, отключиться, а затем опять подключиться к вашей сессии tmux.