Close all tmux windows

Шпаргалка по tmux

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 : — открыть командную строку.
Читайте также:  Cognos data manager linux

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

Как пользоваться tmux

1. Создание сессии

Чтобы создать новую сессию достаточно выполнить команду без параметров:

Также можно создать сессию командой new-session и задать ей удобное имя:

tmux new-session -s losst

2. Разделение окна на панели

Окно сессии можно разделить на несколько панелей. Чтобы выполнить разделение по горизонтали нажмите Ctrl+b отпустите, а затем нажмите Shift+»:

Аналогично можно разделить панель по вертикали, нажав Ctrl+b, а затем Shift+%:

Размер активной панели можно менять нажав Ctrl+b, а потом Ctrl и стрелка:

А для переключения между панелями используйте клавиши Ctrl+b и стрелка. Сначала не привычно, но потом удобно.

3. Поддержка мышки

По умолчанию поддержка мышки отключена, но если вы работаете в графическом окружении, вы можете её включить. Это даст несколько преимуществ: вы сможете выбирать активную панель мышкой, копировать текст во внутренний буфер обмена, менять размер панелей, использовать прокрутку для просмотра истории вывода и так далее. Для этого откройте файл

/.tmux.conf и добавьте туда следующие строки:

set-option -g -q mouse on
bind-key -T root WheelUpPane if-shell -F -t = «#» «send-keys -M» «select-pane -t =; copy-mode -e; send-keys -M»
bind-key -T root WheelDownPane if-shell -F -t = «#» «send-keys -M» «select-pane -t =; send-keys -M»

Сохраните изменения, нажмите Ctrl+b :, а потом выполните такую команду чтобы перезагрузить tmux:

Настройка tmux завершена, теперь мышь будет работать.

4. Копирование и вставка

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

Если вы хотите иметь возможность скопировать в системный буфер обмена, перед тем как выполнять действия мышкой зажмите Shift:

Кроме того, в tmux есть управление копированием и вставкой с помощью клавиш. Для перехода в режим копирования нажмите Ctrl+B [, затем переместите курсор к нужному месту с помощью стрелок. Кстати, этот режим можно использовать также для прокрутки. Потом нажмите Ctrl+пробел для начала выделения, выделите нужный фрагмент стрелками и нажмите Ctrl+w для копирования.

Чтобы вставить текст из внутреннего буфера обмена нужно нажать сочетание клавиш Ctrl+b ]. Для выхода из режима копирования используйте q или Esc.

5. Окна tmux

Кроме панелей в tmux можно открывать окна. Это аналог рабочих столов в Linux. Каждое окно привязано к определенной цифровой кнопке и имеет свой набор панелей. Для создания нового окна нажмите Ctrl+b c:

Читайте также:  Как удалить сертификат безопасности windows

Список окон выводится внизу окна терминала. Для переключения на нужное окно нажмите Ctrl+b и номер окна.

6. Отключение от сессии

Чтобы отключиться от текущей сессии достаточно нажать сочетание клавиш Ctrl+b d.

После отключения все запущенные в сессии программы продолжат работать и вы всегда сможете снова подключиться и посмотреть их вывод. Это удобно при подключении по SSH, которое всегда может разорваться.

7. Подключение к сессии

Посмотреть список сессий можно командой ls:

А для подключения используйте attach:

tmux attach -t losst

Ещё можно посмотреть список клиентов, подключенных к сессии:

Выводы

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

Шпаргалка по работе с Tmux (терминальный мультиплексор)

На Хабрахабре Tmux (ти-макс) упоминался неоднократно, тем не менее, решил написать еще одну шпаргалку, т.к. в других некоторые важные моменты не показаны.

Tmux (терминальный мультиплексор) позволяет работать с несколькими сессиями в 1 окне. Вместо нескольких окон терминала к серверу — вы можете использовать одно. Позволяет подключаться/отключаться к текущему состоянию сессии. Запущенные программы и процессы продолжают работать. (Можно использовать вместо nohup, dtach).

Например, на работе правим файлы в Vim. Окно терминала с открытыми файлами, процессами. Отключаемся от сессии. Далее подключаемся к этой сессии из дома и получаем те же окна с открытыми файлами в Vim, процессами и т.д. Можно продолжить работу с того же момента, на котором остановились. Также удобно при разрыве связи. Дополнительно можно работать совместно с другими в терминале, если подключены к одной сессии. Каждый видит, что делает другой.

1. Установка

2. Конфигурационные файлы

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

3. Работа с Tmux

Старт
# tmux //без параметров будет создана сессия 0
# tmux new -s session1 //новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.

Префикс (с него начинаются команды)
(CTRL + b)

Новое окно (нажать CTRL+b, затем нажать с)

Список окон
// переключиться курсором вверх-вниз

Переключение
// следующее окно
// предыдущее окно
// переключиться на номер окна

Окна можно делить на панели (Panes)
Как в тайловых (мозаичных) оконных менеджерах.

Деление окна горизонтально

либо команда
# tmux split-window -h

Деление окна вертикально

либо команда
# tmux split-window -v

Переход между панелей
// либо режим мыши

Изменение размеров панелей
// либо режим мыши

Закрытие окон
// нужно подтвердить y
либо
# exit

Отключение от сессии

либо
# tmux detach

Список сессий
# tmux ls

Подключиться к работающей сессии
# tmux attach //подключение к сессии, либо к единственной, либо последней созданной
# tmux attach -t session1 // подключение к сессии session1

Завершение сессии
# tmux kill-session -t session1

Завершить все сессии
# tmux kill-server

Список поддерживаемых комманд
# tmux list-commands

Дополнительная информация
# man tmux

How to close a tmux session

I am using tmux to manage multiple terminal windows. Currently I have 2 windows open with multiple panes. I know that I have to use the prefix (for me it is ctrl + a ) to enter commands.

Читайте также:  Windows 1251 или unicode

How can I close the session from inside of tmux? What command would close the session (all windows and panes) and tmux at the same time?

3 Answers 3

Press your prefix (e.g. Ctrl + A or B , which is the default) and then : and type kill-session , then hit Enter . This will, as the name of the command suggests, kill the session.

If you want to close session other than the current session (and hence keep tmux running; closing the current session as in @0xC0000022L’s answer, also closes tmux even if other sessions are available), do the following in one of the tmux windows:

This deletes the «otherSession» or session number 3, and leaves tmux running, assuming you didn’t have «otherSession» or number 3 session selected when you deleted them.

TMUX Prefix (e.g. ctrl + b ) + :kill-session

tmux kill-session (could run either from the inside of a session or the outside)

Both styles of invocation can use the flags:

-t target-session destroys the given session
-a destroys all sessions but the given one or the one you are attached to

Running kill-session from the outside of TMUX kills the last session you were attached to. -a inverts that.

In the event, that you have more than one session running you could kill all sessions at once with: kill-server .

How to terminate a window in tmux?

How to terminate a window in tmux? Like the Ctrl a k shortcut in screen with Ctrl a being the prefix.

10 Answers 10

Kent’s response fully answered your question, however if you are looking to change tmux’s configuration to be similar to GNU Screen, here’s a tmux.conf that I’ve used to accomplish this:

in your .tmux.conf , you can press Prefix + q to kill the window too, only if there is only one panel in that window.

if you have multiple panes and want to kill the whole window at once use killw instead of killp in your config.

the default of Prefix above is Ctrl + b , so to terminate window by default you can use Ctrl + b &

So for example, if you are in window 1 and you want to kill window 9:

For me solution looks like:

  1. ctrl+b q to show pane numbers.
  2. ctrl+b x to kill pane.

Killing last pane will kill window.

If you just want to do it once, without adding a shortcut, you can always type

While you asked how to kill a window resp. pane, I often wouldn’t want to kill it but simply to get it back to a working state (the layout of panes is of importance to me, killing a pane destroys it so I must recreate it); tmux provides the respawn commands to that effect: respawn-pane resp. respawn-window . Just that people like me may find this solution here.

ctrl + d kills a window in linux terminal, also works in tmux.

Оцените статью