Tmux - это терминальный мультиплексор или иными словами, вы можете в одном терминале запустить несколько терминальных сессий и переключаться между ними или даже разместить их в одном окне, а также отключиться от сессии оставив её работать в фоне, а затем вернуться и посмотреть результат, это может быть очень удобно при работе по SSH. Если вы раньше пользовались утилитой screen, то tmux - это её аналог, который имеет намного больше функций.
Эта статья - небольшая шпаргалка по Tmux, в которой мы разберем установку программы, основные её возможности и команды, а также некоторые приемы использования. После прочтения статьи вы сможете полноценно пользоваться утилитой.
Содержание статьи
Установка Tmux
Здесь все просто. Для установки программы в Ubuntu выполните следующую команду:
sudo apt install tmux
А для установки в CentOS:
sudo yum install tmux
Синтаксис и опции команды Tmux
Синтаксис команды предельно простой, для создания новой сессии достаточно запустить утилиту без параметров. Для подключения к уже существующей придется использовать дополнительные опции. Вот основной синтаксис:
tmux команда опции
Что касается опций, то в большинстве вам придется использовать только две - это -t (target) - которая указывает цель, к которой будет применяться команда, например, идентификатор сессии или подключенного клиента, а также -s (session) - который обычно используется для обозначения источника, над которым будет выполняться действие.
Команды tmux для управления сессиями, которые вы можете использовать:
- attach-session (attach) - подключиться к уже существующей сессии. В параметре необходимо передать опцию -t и идентификатор сессии;
- detach-session (detach) - отключить всех клиентов (или переданного с помощью опции -t) от сессии, переданной в опции -s;
- has-session - проверить существует ли сессия, аналогично, надо передать идентификатор сессии;
- kill-server - остановить все запущенные сессии;
- kill-session - завершить сессию переданную в параметре -t;
- list-clients - посмотреть клиентов, подключенных к сессии -t;
- list-sessions (ls) - вывести список всех запущенных сессий;
- new-session - создать новую сессию, можно передать имя сессии в опции -s и стартовую директорию в опции -c;
- rename-session - переименовать сессию, нужно передать идентификатор сессии и новое имя;
Конечно, у tmux намного больше команд, но мы не будем рассматривать их в этой статье. В основном, команды будут использоваться для подключения и отключения от сессий, все остальные действия выполняются с помощью горячих клавиш и их тут тоже достаточно.
По умолчанию для активации сочетания клавиш нужно нажать Ctrl+B, отпустить, а потом нажать нужную клавишу. Вот основные сочетания клавиш tmux, которые вам понадобятся:
- Ctrl+b c - создать новое окно;
- Ctrl+b w - выбрать окно из списка;
- Ctrl+b 0-9 - открыть окно по его номеру;
- Ctrl+b , - переименовать текущее окно;
- Ctrl+b % - разделить текущую панель по горизонтали;
- Ctrl+b " - разделить текущую панель по вертикали;
- Ctrl+b стрелка - перейти на панель, находящуюся в стороне, куда указывает стрелка;
- Ctrl+b Ctrl+стрелка - изменить размер текущей панели;
- Ctrl+b o - перейти на следующую панель;
- Ctrl+b ; - переключаться между текущей и предыдущей панелью;
- Ctrl+b x - закрыть текущую панель;
- Ctrl+b [ - войти в режим копирования (подробнее ниже);
- Ctrl+b ] - вставить из внутреннего буфера обмена tmux;
- Ctrl+b d - отключится от текущей сессии;
- Ctrl+b : - открыть командную строку.
Для начала работы этих горячих клавиш будет достаточно. Шпаргалка tmux завершена, теперь перейдем к примерам работы с программой.
Как пользоваться tmux
1. Создание сессии
Чтобы создать новую сессию достаточно выполнить команду без параметров:
tmux
Также можно создать сессию командой new-session и задать ей удобное имя:
tmux new-session -s losst
2. Разделение окна на панели
Окно сессии можно разделить на несколько панелей. Чтобы выполнить разделение по горизонтали нажмите Ctrl+b отпустите, а затем нажмите Shift+":
Аналогично можно разделить панель по вертикали, нажав Ctrl+b, а затем Shift+%:
Размер активной панели можно менять нажав Ctrl+b, а потом Ctrl и стрелка:
А для переключения между панелями используйте клавиши Ctrl+b и стрелка. Сначала не привычно, но потом удобно.
3. Поддержка мышки
По умолчанию поддержка мышки отключена, но если вы работаете в графическом окружении, вы можете её включить. Это даст несколько преимуществ: вы сможете выбирать активную панель мышкой, копировать текст во внутренний буфер обмена, менять размер панелей, использовать прокрутку для просмотра истории вывода и так далее. Для этого откройте файл ~/.tmux.conf и добавьте туда следующие строки:
vi ~/.tmux.conf
Сохраните изменения, нажмите Ctrl+b :, а потом выполните такую команду чтобы перезагрузить tmux:
Настройка tmux завершена, теперь мышь будет работать.
4. Копирование и вставка
Одна из достаточно важных операций при работе с терминалом - это возможность что-то скопировать и куда-то перенести. После активации поддержки мышки вы можете просто выделить участок текста мышкой и он автоматически скопируется во внутренний буфер tmux.
Если вы хотите иметь возможность скопировать в системный буфер обмена, перед тем как выполнять действия мышкой зажмите Shift:
Кроме того, в tmux есть управление копированием и вставкой с помощью клавиш. Для перехода в режим копирования нажмите Ctrl+B [, затем переместите курсор к нужному месту с помощью стрелок. Кстати, этот режим можно использовать также для прокрутки. Потом нажмите Ctrl+пробел для начала выделения, выделите нужный фрагмент стрелками и нажмите Ctrl+w для копирования.
Чтобы вставить текст из внутреннего буфера обмена нужно нажать сочетание клавиш Ctrl+b ]. Для выхода из режима копирования используйте q или Esc.
5. Окна tmux
Кроме панелей в tmux можно открывать окна. Это аналог рабочих столов в Linux. Каждое окно привязано к определенной цифровой кнопке и имеет свой набор панелей. Для создания нового окна нажмите Ctrl+b c:
Список окон выводится внизу окна терминала. Для переключения на нужное окно нажмите Ctrl+b и номер окна.
6. Отключение от сессии
Чтобы отключиться от текущей сессии достаточно нажать сочетание клавиш Ctrl+b d.
После отключения все запущенные в сессии программы продолжат работать и вы всегда сможете снова подключиться и посмотреть их вывод. Это удобно при подключении по SSH, которое всегда может разорваться.
7. Подключение к сессии
Посмотреть список сессий можно командой ls:
tmux ls
А для подключения используйте attach:
tmux attach -t losst
Ещё можно посмотреть список клиентов, подключенных к сессии:
tmux list-clients
Выводы
В этой статье мы разобрали основные команды tmux, а также как пользоваться этой утилитой. Я для себя открыл tmux не давно. Слышал о программе довольно давно, но никак не доходили руки попробовать, а потом попробовал и уже не могу без неё обойтись.
Приветствую. В статье разделение окна по вертикали и по горизонтали сначала приводится в bind-списке, а чуть дальше даются примеры использования. Так вот, в примерах комбинации сплитирования для горизонтали и вертикали не совпадают с bind-списком.
Почему же, совпадают. Чтобы получить " и % нужно нажать Shift в английской раскладке. Это для таких же как я, которые в первый раз нажимают 5, вместо % и ничего не работает.
Я о другом. В одном месте в статье написано, что % - это для разделения по вертикали, а в другом месте уже указано, что % - это для разделения по горизонтали. Та же проблема и для символа ".
Приветствую. В статье в bind-списке дано:
Ctrl+b % - разделить текущую панель по горизонтали;
Ctrl+b " - разделить текущую панель по вертикали.
А из примеров, приведенных ниже списка, следует, что:
Shift+" - сплит по горизонтал;
Shift+% - сплит по вертикали.
Вы правы. непонятно почему админ до сих пор не исправил
Вы суть уловили и это главная задача данного ресурса, за что я и вы ему благодарны
Ctrl+b t - часы
Ещё можно посмотреть список клиентов, подключенных к сессии:
tmux lc
Мне кажется lc - опечатка правильно - lsc
чтобы мышь работала в обычном режиме, поместите следующие строки в файл ~/.profile
if [ $TERM = "screen" ]; then
export TERM=xterm
fi
if [ -n "$TMUX" ]; then
export COLORTERM=rxvt
fi
и желательно добавить в ~/.tmux.conf
следующую строку.
setw -g xterm-keys on
если этого не сделать то сочетание shift-стрелки, shift-Fx работать не будут…
Изменение размера панели не
Ctrl+b Ctrl+стрелка - изменить размер текущей панели, а
Ctrl+b Alt+стрелка - изменить размер текущей панели
вы злой человек, это вообще что-то другое. У меня так открывается новый экран с логином. А изменить размер панелей с контрол также не могу
Ranger не могу настроить в tmux. Он там черный какой-то и ничего не видно.
Превьюшка файлов тоже не работает.
неверно: Ctrl+b o - перейти на следующую панель;
правильно: Ctrl+b n/p - перейти на следующую/предыдущую панель;