Как использовать tmux в Linux (и почему он лучше экрана) фатмавати ахмад дзенури / ShutterstockLinux 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На Манджаро вы можете использовать pacman:sudo pacman -Sy tmuxНа Fedora 31, tmux уже установлено.Запуск сессии tmux Начать tmux, просто введите его и нажмите Enter:tmuxОкно терминала покажет строку состояния, когда вы находитесь в tmux сессия.В правой части строки состояния отображается имя хоста, а также время и дата. Левая сторона показывает следующую информацию о сеансе:[0]: Это имя сеанса. По умолчанию они нумеруются, начиная с нуля. Мы рассмотрим, как вы можете дать значимые имена для сессий ниже.0: Баш *: 0 указывает, что это первое окно в этом сеансе. Единственный процесс, запущенный в этом сеансе bash, Если вы запустите программу, ее имя появится здесь. Звездочка (*) означает, что это окно, на которое вы смотрите. Каждый раз, когда вы создаете новое окно в tmux сеанс, номер его окна и название программы, запущенной в нем, добавляются в строку состояния. screen Команда не дает вам строку состояния. Вы должны летать вслепую и полагаться на свое остроумие, чтобы знать, что происходит, что требует немного практики.С другой стороны, вы не потеряете линейку оконных объектов недвижимости. Конечно, вы обычно расширяете окно терминала, чтобы использовать мультиплексор терминала. В этом случае потеря одной строки для строки состояния не является большой проблемой. Мы оставили здесь изображения окон терминала в размере по умолчанию, чтобы вы могли видеть информацию.Команды даны tmux используя нажатия клавиш, и есть две части этого. Сначала вы нажимаете Ctrl + B, чтобы получить tmuxВнимание. Затем вы быстро нажимаете следующую клавишу, чтобы отправить командуtmux, Команды выдаются нажатием букв, цифр, знаков пунктуации или клавиш со стрелками.То же самое в screen, кроме того, что вы нажимаете Ctrl + A, чтобы привлечь его внимание.Чтобы закрыть окно, нажмите Ctrl + B, а затем быстро нажмите X. Строка состояния становится желтой. Затем вам будет предложено подтвердить, что вы хотите убить окно.Нажмите Y, чтобы закрыть окно, или N, если вы передумали. Вам не нужно нажимать Enter после этого; Y или N достаточно, чтобы зарегистрировать ваш выбор.Если вы нажмете Y, окно закроется. Поскольку это единственное окно в этом сеансе, сеанс прекращается. tmux сеанс закрыт, и вы вернулись в командную строку, из которой вы запустили tmux, Ты увидишь “[exited]”В окне терминала.Это может показаться очевидным, но это подтверждение того, что вы закрыли сеанс и не оставили его отключенным и работающим. Мы обсудим отдельные сессии ниже.Запуск именованной сессии tmuxЕсли вы регулярно начинаете несколько tmux сеансы, вы быстро оцените функциональность, дав каждому из них осмысленное имя. Вы можете назвать сессии в screenтоже, но они нигде не отображаются в окнах сеанса.Начать tmux с именем сеанса используйте new (новый сеанс) и -s (имя сеанса) вариант. Наш сеанс будет называться «geek-1», поэтому мы набираем следующее:tmux new -s geek-1Когда tmux при загрузке сеанса «geek-1» отображается в качестве первой записи в строке состояния, в крайнем левом углу.Добавление большего количества оконЧтобы создать новое окно в текущем сеансе, нажмите Ctrl + B, а затем C. В текущем сеансе вы получите пустое окно терминала. Итак, у нас будет что-то запущенное в этом новом окне, давайте начнем dmesg команда с -w (следовать) вариант:dmesg -wТеперь у нас есть два окна в сеансе; один бежит top, и другие dmesg, Однако мы можем видеть только по одному за раз (подробнее об этом чуть позже).Взгляните на левую сторону строки состояния. Мы все еще в «Компьютерщик-1» tmux сессия. В нулевом окне работает top, а в первом – dmesg это работает. Звездочка (*) после dmesg говорит нам, какое окно видно.Для переключения между окнами нажмите Ctrl + B, а затем одну из следующих клавиш:N: Показать следующее окно.П: Показать предыдущее окно.От 0 до 9: Отображение окна с номерами от 0 до 9.Вы также можете выбрать окно из списка. Если вы нажмете Ctrl + B, а затем W, появится список окон.Чтобы переместить желтую полосу выделения, нажмите стрелки вверх или вниз, Home или End. В нижней части экрана отображается предварительный просмотр содержимого в выделенном окне.Нажмите Enter, чтобы перейти к выделенному окну, или Esc, чтобы выйти из списка без переключения.Отсоединение и прикрепление сессийЕсли вы нажмете Ctrl + B, а затем D, вы отключите сеанс. Он будет продолжать работать в фоновом режиме, но вы не сможете видеть или взаимодействовать с ним.Мы начали top в сессии, поэтому у нас есть запущенный процесс для демонстрации. Затем мы нажимаем Ctrl + B, а затем D. Сеанс исчезает и становится фоновым сеансом.Вернемся к исходному окну терминала. Есть сообщение от tmux говорит нам, что сессия оторвана. Это также напоминает нам название, которое мы дали сессии. Это удобно, потому что это то, что мы используем, чтобы прикрепить к фоновому сеансу, а затем восстановить его в интерактивном.Чтобы прикрепить отдельный сеанс, мы будем использовать пояснения attach-session команда с -t (целевой сеанс) вариант. Мы также предоставим название сессии, которую мы хотим вспомнить.Мы вводим следующее:tmux attach-session -t geek-1Наш сеанс возвращается и снова становится видимым, интерактивным сеансом.Любые длительные или непрерывные процессы, которые вы запустили перед отключением сеанса, по-прежнему будут выполняться в фоновом режиме (если они не завершены), когда вы присоединяете сеанс.screen Можно сделать это, но не так интуитивно.Обработка нескольких сессийДавайте откроем другое окно терминала и начнем новое tmux Сессия под названием «Компьютерщик-2»:tmux new -s geek-2На этой сессии мы начнем dmesg:dmesg -wТеперь у нас есть наш оригинальный «Компьютерщик-1» tmux сеанс, и новый называется «Компьютерщик-2».Строка состояния показывает нам, что этот сеанс называется «Geek-2», и у него есть одно окно, которое работает dmesg,Если мы нажмем Ctrl + B, а затем D, мы отсоединим эту сессию.Вернуться в «Компьютерщик-1» tmux сеанс, мы нажимаем Ctrl + B, а затем S, чтобы увидеть список tmux сессий.Чтобы было понятно, это список сессий. Подобный дисплей, который мы видели ранее, представлял собой список окон за один сеанс.Вы можете переместить желтую полосу выделения, нажимая стрелки вверх и вниз, Home и End. В нижней части отображается предварительный просмотр содержимого выделенного сеанса.Если нажать стрелку вправо, отобразятся окна для выделенного сеанса.Нажмите Enter, чтобы перейти к выделенному сеансу или окну, или Esc, чтобы выйти из списка сеансов без изменения сеансов. Если вы выбираете новый сеанс, ваш текущий отключается, а тот, который вы выбрали, прикрепляется.Мы отделили сеанс «Компьютерщик-2», прежде чем мы это сделали. Тем не менее, вы можете сделать это с сеансами, которые по-прежнему подключены к своим исходным окнам терминала. Когда вы это сделаете, любые изменения экрана появятся одновременно в обоих tmux сессий. screen Команда может сделать это тоже с помощью аналогичного набора команд.Работа с оконными панелямиЕсли вы нажмете Ctrl + B, а затем двойные кавычки («»), вы разделите окно по горизонтали на две панели.Это влияет только на текущее окно; остальные на сессии не будут изменены. Мы использовали tmux ls Команда в верхней панели, чтобы вывести список окон в этом сеансе. Их два, и строка состояния говорит нам, что мы в первом окне. Если мы перейдем к нулевому окну, нажав Ctrl + B, а затем 0 (ноль), мы увидим, что это то же самое, что мы оставили.Это две независимые командные строки, а не два представления в одном окне; это разные и отдельные оболочки. Мы можем показать это, запустив разные команды на каждой панели.Мы вводим следующее: uname -als -hlЧтобы перейти с одной панели на другую, нажмите Ctrl + B, а затем стрелку вверх, вниз, влево или вправо.Если вы нажмете Ctrl + B, а затем знак процента (%) он разделяет текущую панель по вертикали.Нажмите Ctrl + B, а затем Q, чтобы сделать tmux кратко высветите номер каждой панели.Эти номера используются в приглашениях и сообщениях от tmux, Нажмите Ctrl + B, а затем X, чтобы закрыть текущую панель. Строка состояния изменится на желтый, и вам будет предложено подтвердить, что вы хотите закрыть этот номер панели. Нажмите Y, чтобы удалить панель, или N, чтобы оставить все как есть.Если вы нажмете Y, панель будет удалена. 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, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)