Как использовать tmux в Linux (и почему он лучше экрана)

Стилизованный терминал Linux на ноутбуке с сессиями в фоновом режиме.
фатмавати ахмад дзенури / Shutterstock

Linux tmux команда является терминальным мультиплексором, как screen, Его сторонники многочисленны и активны, поэтому мы решили сравнить их. Является tmux действительно лучше, или это просто случай предпочтения того, что вы знаете?

Tmux против экрана

Оба tmux и GNU screen команды являются терминальными мультиплексорами, Они позволяют вам иметь несколько окон в одном окне терминала и перемещаться между ними. Окно можно разделить на панели, каждая из которых дает вам независимую командную строку.

Вы также можете отключить сеанс, и он станет обезглавленным объектом, работающим в фоновом режиме – вы даже можете закрыть окно терминала, которое его запустило. Когда вы будете готовы, вы можете открыть новое окно терминала и заново подключить все еще работающий сеанс. Вы также можете сделать это через соединение SSH.

Вы можете отключить сеанс на одном компьютере, вернуться домой и войти на удаленный компьютер. После повторного подключения вы можете повторно подключить фоновый сеанс и снова использовать его в интерактивном режиме.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Что за экран команды?

screen Команда также является терминальным мультиплексором и содержит множество опций. Для ознакомления со всем, что вы можете с ним сделать, ознакомьтесь с нашей углубленной статьей.

На этот раз мы собираемся сконцентрироваться на tmux, По мере продвижения, мы будем упоминать, как screen обрабатывает ту же функцию или функцию.

Нас раздражало только одно screen, Мы расскажем об этом, когда доберемся до него, и посмотрим, tmux Тарифы лучше.

СВЯЗАННЫЕ С: Как использовать экранную команду Linux

Установка tmux

Пока screen обычно устанавливается по умолчанию в популярных дистрибутивах Linux, tmux нет. Установить tmux в Ubuntu введите следующее:

sudo apt-get install tmux

sudo apt-get установить tmux в окне терминала.

На Манджаро вы можете использовать pacman:

sudo pacman -Sy tmux

sudo pacman -Sy tmux в окне терминала.

На Fedora 31, tmux уже установлено.

Запуск сессии tmux

Начать tmux, просто введите его и нажмите Enter:

tmux

Tmux в окне терминала.

Окно терминала покажет строку состояния, когда вы находитесь в tmux сессия.

Новый сеанс tmux в окне терминала.

В правой части строки состояния отображается имя хоста, а также время и дата. Левая сторона показывает следующую информацию о сеансе:

  • [0]: Это имя сеанса. По умолчанию они нумеруются, начиная с нуля. Мы рассмотрим, как вы можете дать значимые имена для сессий ниже.
  • 0: Баш *: 0 указывает, что это первое окно в этом сеансе. Единственный процесс, запущенный в этом сеансе bash, Если вы запустите программу, ее имя появится здесь. Звездочка (*) означает, что это окно, на которое вы смотрите. Каждый раз, когда вы создаете новое окно в tmux сеанс, номер его окна и название программы, запущенной в нем, добавляются в строку состояния.

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

С другой стороны, вы не потеряете линейку оконных объектов недвижимости. Конечно, вы обычно расширяете окно терминала, чтобы использовать мультиплексор терминала. В этом случае потеря одной строки для строки состояния не является большой проблемой. Мы оставили здесь изображения окон терминала в размере по умолчанию, чтобы вы могли видеть информацию.

Команды даны tmux используя нажатия клавиш, и есть две части этого. Сначала вы нажимаете Ctrl + B, чтобы получить tmuxВнимание. Затем вы быстро нажимаете следующую клавишу, чтобы отправить командуtmux, Команды выдаются нажатием букв, цифр, знаков пунктуации или клавиш со стрелками.

То же самое в screen, кроме того, что вы нажимаете Ctrl + A, чтобы привлечь его внимание.

Чтобы закрыть окно, нажмите Ctrl + B, а затем быстро нажмите X. Строка состояния становится желтой. Затем вам будет предложено подтвердить, что вы хотите убить окно.

Нажмите Y, чтобы закрыть окно, или N, если вы передумали. Вам не нужно нажимать Enter после этого; Y или N достаточно, чтобы зарегистрировать ваш выбор.

Сеанс tmux с желтой строкой состояния и закройте это окно, да или нет, в окне терминала.

Если вы нажмете Y, окно закроется. Поскольку это единственное окно в этом сеансе, сеанс прекращается.

Командная строка после закрытия сеанса tmux в окне терминала

tmux сеанс закрыт, и вы вернулись в командную строку, из которой вы запустили tmux, Ты увидишь “[exited]”В окне терминала.

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

Запуск именованной сессии tmux

Если вы регулярно начинаете несколько tmux сеансы, вы быстро оцените функциональность, дав каждому из них осмысленное имя. Вы можете назвать сессии в screenтоже, но они нигде не отображаются в окнах сеанса.

Начать tmux с именем сеанса используйте new (новый сеанс) и -s (имя сеанса) вариант. Наш сеанс будет называться «geek-1», поэтому мы набираем следующее:

tmux new -s geek-1

tmux new -s geek-1 в окне терминала.

Когда tmux при загрузке сеанса «geek-1» отображается в качестве первой записи в строке состояния, в крайнем левом углу.

Сессия tmux с именем

Добавление большего количества окон

Чтобы создать новое окно в текущем сеансе, нажмите Ctrl + B, а затем C. В текущем сеансе вы получите пустое окно терминала. Итак, у нас будет что-то запущенное в этом новом окне, давайте начнем dmesg команда с -w (следовать) вариант:

dmesg -w

dmesg -w в окне терминала.

Теперь у нас есть два окна в сеансе; один бежит top, и другие dmesg, Однако мы можем видеть только по одному за раз (подробнее об этом чуть позже).

dmesg работает во втором окне сеанса tmux в терминальном окне.

Взгляните на левую сторону строки состояния. Мы все еще в «Компьютерщик-1» tmux сессия. В нулевом окне работает top, а в первом – dmesg это работает. Звездочка (*) после dmesg говорит нам, какое окно видно.

Для переключения между окнами нажмите Ctrl + B, а затем одну из следующих клавиш:

  • N: Показать следующее окно.
  • П: Показать предыдущее окно.
  • От 0 до 9: Отображение окна с номерами от 0 до 9.

Вы также можете выбрать окно из списка. Если вы нажмете Ctrl + B, а затем W, появится список окон.

Список окон tmux отображается в окне терминала.

Чтобы переместить желтую полосу выделения, нажмите стрелки вверх или вниз, Home или End. В нижней части экрана отображается предварительный просмотр содержимого в выделенном окне.

Нажмите Enter, чтобы перейти к выделенному окну, или Esc, чтобы выйти из списка без переключения.

Отсоединение и прикрепление сессий

Если вы нажмете Ctrl + B, а затем D, вы отключите сеанс. Он будет продолжать работать в фоновом режиме, но вы не сможете видеть или взаимодействовать с ним.

Мы начали top в сессии, поэтому у нас есть запущенный процесс для демонстрации. Затем мы нажимаем Ctrl + B, а затем D. Сеанс исчезает и становится фоновым сеансом.

Сообщение tmux после завершения сеанса в окне терминала.

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

Чтобы прикрепить отдельный сеанс, мы будем использовать пояснения attach-session команда с -t (целевой сеанс) вариант. Мы также предоставим название сессии, которую мы хотим вспомнить.

Мы вводим следующее:

tmux attach-session -t geek-1

tmux attach-session -t geek-1 в окне терминала.

Наш сеанс возвращается и снова становится видимым, интерактивным сеансом.

Восстановленный сеанс tmux в окне терминала.

Любые длительные или непрерывные процессы, которые вы запустили перед отключением сеанса, по-прежнему будут выполняться в фоновом режиме (если они не завершены), когда вы присоединяете сеанс.

screen Можно сделать это, но не так интуитивно.

Обработка нескольких сессий

Давайте откроем другое окно терминала и начнем новое tmux Сессия под названием «Компьютерщик-2»:

tmux new -s geek-2

tmux new -s geek-2 в окне терминала.

На этой сессии мы начнем dmesg:

dmesg -w

dmesg -w в окне терминала.

Теперь у нас есть наш оригинальный «Компьютерщик-1» tmux сеанс, и новый называется «Компьютерщик-2».

Сеанс tmux geek-2 запускает dmesg в окне терминала.

Строка состояния показывает нам, что этот сеанс называется «Geek-2», и у него есть одно окно, которое работает dmesg,

Если мы нажмем Ctrl + B, а затем D, мы отсоединим эту сессию.

Отключен сеанс tmux geek-2 в терминальном виджете.

Вернуться в «Компьютерщик-1» tmux сеанс, мы нажимаем Ctrl + B, а затем S, чтобы увидеть список tmux сессий.

список сеансов tmux, отображаемых в окне терминала.

Чтобы было понятно, это список сессий. Подобный дисплей, который мы видели ранее, представлял собой список окон за один сеанс.

Вы можете переместить желтую полосу выделения, нажимая стрелки вверх и вниз, Home и End. В нижней части отображается предварительный просмотр содержимого выделенного сеанса.

список сеансов tmux, отображаемых в окне терминала.

Если нажать стрелку вправо, отобразятся окна для выделенного сеанса.

Список сеансов tmux с деталями окна, отображаемыми в окне терминала.

Нажмите Enter, чтобы перейти к выделенному сеансу или окну, или Esc, чтобы выйти из списка сеансов без изменения сеансов. Если вы выбираете новый сеанс, ваш текущий отключается, а тот, который вы выбрали, прикрепляется.

Мы отделили сеанс «Компьютерщик-2», прежде чем мы это сделали. Тем не менее, вы можете сделать это с сеансами, которые по-прежнему подключены к своим исходным окнам терминала. Когда вы это сделаете, любые изменения экрана появятся одновременно в обоих tmux сессий.

screen Команда может сделать это тоже с помощью аналогичного набора команд.

Работа с оконными панелями

Если вы нажмете Ctrl + B, а затем двойные кавычки («»), вы разделите окно по горизонтали на две панели.

Сессия tmux с горизонтальными панелями в окне терминала.

Это влияет только на текущее окно; остальные на сессии не будут изменены. Мы использовали tmux ls Команда в верхней панели, чтобы вывести список окон в этом сеансе. Их два, и строка состояния говорит нам, что мы в первом окне. Если мы перейдем к нулевому окну, нажав Ctrl + B, а затем 0 (ноль), мы увидим, что это то же самое, что мы оставили.

Это две независимые командные строки, а не два представления в одном окне; это разные и отдельные оболочки. Мы можем показать это, запустив разные команды на каждой панели.

Мы вводим следующее:

uname -a

ls -hl

Чтобы перейти с одной панели на другую, нажмите Ctrl + B, а затем стрелку вверх, вниз, влево или вправо.

Две разные команды в двух панелях в сеансе tmux в терминальной вдове.

Если вы нажмете Ctrl + B, а затем знак процента (%) он разделяет текущую панель по вертикали.

Сессия tmux с вертикальными и горизонтальными разделенными панелями в окне терминала.

Нажмите Ctrl + B, а затем Q, чтобы сделать tmux кратко высветите номер каждой панели.

tmux показывает номера панелей в окне терминала.

Эти номера используются в приглашениях и сообщениях от tmux, Нажмите Ctrl + B, а затем X, чтобы закрыть текущую панель. Строка состояния изменится на желтый, и вам будет предложено подтвердить, что вы хотите закрыть этот номер панели. Нажмите Y, чтобы удалить панель, или N, чтобы оставить все как есть.

tmux предлагает удалить панель в окне терминала.

Если вы нажмете Y, панель будет удалена.

tmux с двумя горизонтальными панелями в окне терминала.

screen У команд также есть панели, но, опять же, они менее интуитивно понятны в использовании. То, что нас раздражает screen если вы отключите сеанс с панелями, они исчезнут, когда вы снова присоедините этот сеанс. Это очень быстро стареет.

Шпаргалка Ctrl + B

Мы включили шпаргалку различных команд, которые вы можете использовать в tmux ниже.

Команды сеанса

  • S: Список сессий.
  • $: Переименовать текущую сессию.
  • D: Отключить текущий сеанс.
  • Ctrl + B, а затем? Показать страницу справки в tmux,

Команды окна

  • C: Создать новое окно.
  • ,: Переименуйте текущее окно.
  • W: Список окон.
  • N: Перейти к следующему окну.
  • П: Перейти к предыдущему окну.
  • От 0 до 9: Перейти к указанному номеру окна.

Команды панели

  • %: Создайте горизонтальное разделение.
  • «: Создайте вертикальное разделение.
  • H или стрелка влево: Переместитесь на панель слева.
  • Я или Стрелка вправо: Переместитесь на панель справа.
  • J или Стрелка вниз: Переместитесь на панель ниже.
  • K или Стрелка вверх: Переместитесь на панель выше.
  • Q: Кратко показать номера панелей.
  • O: Перемещаться по панелям по порядку. Каждое нажатие приводит вас к следующему, пока вы не пройдете через все из них.
  • }: Поменяйте местами текущую панель со следующей.
  • {: Поменять местами текущую панель с предыдущей.
  • ИКС: Закройте текущую панель.

Как они сравнивают

С точки зрения функциональности, screen а также tmux оба работают одинаково и предлагают одинаковые основные функции. Это способ доступа к этим функциям, который заметно отличается. tmux предлагает более приятные, более удобные способы добраться до различных функций. Однако это не единственная разница.

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

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

Там так много всего tmuxв том числе его невероятно гибкие возможности сценариев. Вы сами должны это проверить.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *