Поиск по сайту:

Как использовать tmux в Linux для многозадачности терминала


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

Установка и использование tmux

tmux можно установить из менеджера пакетов для большинства дистрибутивов. Для систем на основе Debian, таких как Ubuntu, это будет:

apt-get install tmux

Он также доступен в brew, стороннем менеджере пакетов для macOS, с brew install tmux.

После установки вы можете начать работу, введя команду tmux . Однако это запускает сеанс со случайным именем, поэтому вы можете создать новый именованный сеанс с помощью tmux new:

tmux new -s [name]

Это займет ваше окно терминала, и вы увидите новую панель команд внизу. Теперь вы работаете внутри tmux во вновь созданном сеансе. Этот сеанс действует так, как если бы вы открыли новое окно терминала или новый сеанс SSH и оставили его работающим на своем рабочем столе, за исключением того, что он работает без окна и за кулисами. tmux позволяет подключиться к нему. По сути, tmux – это среда рабочего стола для мира терминалов.

Если вы закроете фактическое окно терминала, этот сеанс tmux будет сохраняться до тех пор, пока вы не завершите его вручную (или не перезапустите систему). Точно так же это работает при подключении к удаленному серверу; все, что вы запускаете, будет сохраняться до тех пор, пока вы не завершите сеанс.

Чтобы завершить сеанс, вы можете запустить команду exit или нажать Control+A, Control+D. Вы увидите «exited» в главном терминале, когда tmux завершит работу.

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

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

tmux a -t [name]

Команда «a» — это сокращение от attach-session, что экономит количество нажатий клавиш. Кроме того, вы можете использовать ярлык # для подключения к последнему созданному сеансу:

tmux a #

Чтобы просмотреть все сеансы, вы можете запустить:

tmux ls

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

Многозадачность с панелями

Панели активно используют ярлык префикса tmux , поэтому лучше запомнить его:

Control+B

Каждая команда будет иметь этот префикс, чтобы tmux перехватывал ее.

Чтобы создать новую панель, используйте один из двух ярлыков:

  •  Control+B % для разделения по вертикали
  • Control+B \ для разделения по горизонтали

Они разделят текущую панель по вашему выбору.

Чтобы переключаться между панелями, вам нужно будет ввести Control + B, а затем клавишу со стрелкой. Вы также можете установить поддержку мыши с помощью Oh My Tmux!, что позволит вам переключаться между ними.

Если вас не устраивает размер панелей, вы можете изменить их размер с помощью этих двух команд:

Control+B :
resize-pane -R 4

Control+B, за которым следует двоеточие, открывает командную строку tmux, которая принимает более подробные команды. Здесь мы используем команду resize-pane, которая принимает направление (U — вверх, L — влево и т. д.) и количество строк для расширения. В этом случае эта команда расширяет текущую выбранную панель на четыре строки вправо.

Tmux Windows

Если вам не нравится внешний вид разделенного терминала (или вы просто хотите, чтобы многозадачные приложения работали в полноэкранном режиме), вы можете использовать tmux окна. Для работы с окнами можно использовать следующие команды:

  • Control+B c для создания нового окна
  • Control+B p для перехода к предыдущему окну
  • Control+B n для перехода к следующему окну
  • Control+B 0–9 для переключения на окно по порядковому номеру.

Кроме того, нажатие Control+Bw откроет интерактивную экспозицию, позволяющую просмотреть, какие окна у вас открыты, какие команды они выполняют и сколько у них панелей:

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

Если окно перестает отвечать на запросы, вы можете принудительно закрыть его с помощью Control+B &, что всегда приведет к завершению запущенных процессов в этом окне.

Расширение tmux

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

  • О, мой Tmux! – Тема Powerline, поддержка мыши и множество полезных функций.
  • tmux-resurrect – сохраняет макет (и не только) при перезагрузке.
  • tmux-pain-control — добавляет еще несколько сочетаний клавиш для управления панелями.
  • tmux-better-mouse-mode — улучшенная поддержка мыши для некоторых приложений CLI.
  • tmuxifier — оконный менеджер для tmux, сохраняющий файлы конфигурации.
  • И множество тем.

В tmux есть намного больше, чем описано здесь, но основная функциональность относительно проста (что делает его отличной утилитой).