Как использовать Tmux в Linux
Tmux расшифровывается как терминальный мультиплексор.
Почему Tmux
Программа, работающая в данный момент на компьютере, является процессом. Чтобы запустить более одного процесса в Linux, вам потребуется более одного окна терминала: одно окно терминала на процесс. Эти окна будут перекрывать друг друга, причем некоторые из них почти перекрывают другие. Чтобы следить за процессом, вы должны щелкнуть окно, чтобы вывести его на передний план. Когда он находится на переднем крае, вы можете увидеть некоторые результаты или входные данные. Это многозадачность: запуск более одного процесса одновременно; в данном случае с разными окнами. Это многозадачность без использования Tmux. Tmux предлагает мультиплексирование в качестве лучшей замены — см. ниже.
Каждое окно использует оболочку, такую как Bash. Команды программы должны быть введены в оболочку перед их запуском.
Сеанс — это временный обмен сообщениями между пользователем и его компьютером или между компьютером пользователя и удаленным компьютером через физическую сеть. Процесс может включать такой обмен сообщениями. Работа с одним окном — это один сеанс. Работа со многими окнами за один раз по-прежнему является одним сеансом.
Использование окна терминала в Linux для многозадачности, как показано выше, может стать громоздким, если количество процессов больше трех и процессы длинные.
Многозадачность может выполняться в одном окне терминала, но со следующими недостатками:
Если вы запускаете процесс с одним окном терминала и хотите запустить другое, вам придется сначала приостановить первое. Когда вы приостанавливаете процесс, он останавливается и ничего не делает. Затем вы можете начать следующий процесс. Если вы завершите следующий процесс достаточно быстро, вы сможете возобновить первый процесс, все еще в том же окне. Это похоже на терминальное мультиплексирование, но это не так. При терминальном мультиплексировании процессы должны выполняться одновременно.
В одном окне терминала можно запустить более одного процесса, используя асинхронную схему. Однако разные процессы будут отправлять результаты в одно и то же окно, и отображаемые результаты будут несогласованными. Кроме того, по мере ввода данных они будут поступать в разные процессы. Эта схема может работать только тогда, когда у вас мало процессов, и вы знаете все их результаты, чтобы иметь возможность знать, какие входные данные отправлять и когда. Такая ситуация нескольких процессов маловероятна.
С помощью окна терминала вы можете запустить процесс на удаленном компьютере, а затем произойдет сбой физического соединения. При восстановлении соединения результаты будут недостоверными.
Другим недостатком обычных терминальных окон является то, что связь между окнами невозможна, когда открыто более одного окна.
Tmux — это программа, решающая эти проблемы. В этой статье объясняется, как Tmux решает эти проблемы, и обсуждаются некоторые дополнительные функции Tmux.
Содержание статьи
Решение, предлагаемое Tmux
Установка Tmux в Linux
Запуск Tmux
Создание более одного окна Tmux
-
Уничтожение текущего окна
Присоединение и отсоединение сеанса окна Tmux
Разделение окон
Заключение
Решение, предлагаемое Tmux
Как указано выше, окно терминала имеет ограничения для многозадачности. Tmux преодолевает эти ограничения. Tmux заменяет окно терминала собственным окном, пока оно активно. Tmux может иметь более одного окна. Добавленные окна накладываются друг на друга. Переключение между этими наложенными окнами возможно. Таким образом, результаты не смешиваются, входы и результаты не смешиваются. Окно Tmux можно разделить на более мелкие окна. Эти меньшие окна называются панелями.
При использовании обычного терминала, если вы запускаете удаленный процесс и происходит сбой соединения, вы не сможете продолжить работу с того места, на котором остановились, когда соединение будет восстановлено. То есть результаты удаленного процесса удаленного компьютера не будут надежными. Tmux может решить эту проблему, отсоединив сеанс окна, а затем повторно подключив его позже.
В каждом окне оболочка (например, Bash) обрабатывает команды.
Установка Tmux в Linux
Возможно, Tmux уже установлен на вашем компьютере. Итак, вы должны сначала проверить, установлен ли он, чтобы не переустанавливать. В командной строке терминала введите
и нажмите Enter.
Если он не установлен, он сообщит вам об этом. Если он установлен, вы получите обратную связь, например,
[-S socket-path] [command [flags]]
Команды в этом руководстве были протестированы с Ubuntu и работают хорошо. Поэтому, если вы в настоящее время используете операционную систему Ubuntu, вы можете тестировать команды по ходу чтения.
Установка Tmux в Ubuntu и Debian
Чтобы установить в любой из этих операционных систем, введите
и нажмите Enter. Если он попросит вас ввести пароль, введите пароль и нажмите Enter.
Установка Tmux в CentOS и Fedora
Чтобы установить в CentOS или Fedora, введите
и нажмите Enter. Отвечайте на любой заданный вопрос.
Запуск Tmux
Tmux — это утилита, которую необходимо запустить, прежде чем ее можно будет использовать. Когда вы открываете окно терминала, Tmux не работает. Его можно запустить и остановить. Когда он запускается, он берет на себя управление окном терминала и накладывает свои собственные окна. Когда он остановится, вы вернетесь в окно терминала. Чтобы запустить Tmux, введите
(все символы в нижнем регистре) и нажмите Enter. У вас появится новое окно. Tmux займет новое окно. Новое окно выглядит как окно терминала, но со строкой состояния внизу. В этой ситуации строка состояния указывает, что вы находитесь в окне Tmux 0, отображаемом как 0: bash (если вы используете оболочку Bash).
Комбинация клавиш по умолчанию для Tmux:
Ctrl+B
Вы нажимаете клавишу управления и символ b в нижнем регистре, и как только вы отпускаете клавиши, вы нажимаете какой-либо другой символ для воздействия. Чтобы отобразить список команд Tmux, введите
Ctrl+B?
То есть, нажмите клавишу управления и символ b одновременно, и как только вы отпустите две клавиши, нажмите Shift и the? Клавиша (если вы используете английскую клавиатуру). Вы должны увидеть список команд. Список довольно длинный. Курсор будет вверху. Вы можете использовать клавишу со стрелкой вниз для прокрутки списка вниз.
Чтобы выйти из списка, нажмите
вопрос
и вы вернетесь в командную строку.
Выход из текущего окна
Чтобы выйти из текущего окна, введите
и нажмите Enter. Ты увидишь
Указывает, что вы вышли из приложения Tmux (если было открыто только одно окно Tmux). Вы должны вернуться в обычное окно терминала, если у вас было только одно окно Tmux. Если вы снова выполните команду «выход», обычное окно терминала закроется.
Создание нескольких окон Tmux
В приведенном выше разделе было создано только одно окно. Когда вы запускаете Tmux, создается одно окно (0: bash). Вы можете создать больше. Если вы не открывали окно терминала, откройте его и запустите Tmux, набрав
и нажав Enter. Окно терминала должно превратиться в окно Tmux, первое окно Tmux. Создайте еще три экранных окна, введя следующие команды и нажав Enter, где c написано в нижнем регистре (и не требует клавиши Shift):
ctrl+b
ctrl+b с
ctrl+b
Для каждой из команд вы нажимаете клавишу управления и клавишу b (в нижнем регистре); отпустите эти клавиши, а затем просто нажмите клавишу c. Может потребоваться небольшой опыт, чтобы понять это правильно. Если вы успешно выполнили три команды и используете оболочку Bash, то в строке состояния вы должны увидеть
[0] означает сеанс 0. Оставшаяся часть строки означает, что вы открыли четыре окна: 0: bash, 1: bash, 2: bash и 3: bash. Подсчет окон Tmux начинается с 0.
Чтобы перейти в любое другое окно, выполните следующую команду:
ctrl+b
Вы должны увидеть другую презентацию, список презентаций Windows. Вы можете выделить метку нужного окна, используя клавишу со стрелкой влево или клавишу со стрелкой вправо на клавиатуре. С помощью клавиши со стрелкой вправо выберите окно номер 1, которое на самом деле является вторым окном, и нажмите Enter.
Если вы набрали какую-либо команду во втором окне, вы должны увидеть команды в окне. В строке состояния вы также должны увидеть 1:bash*. Звездочка (*) указывает на окно, в котором вы находитесь, и в данном случае это окно номер 1, которое на самом деле является вторым окном.
Вы можете продолжать вводить любые команды во втором окне. Вы можете перейти к другому окну аналогичным образом.
Переключение на другие окна
Вы можете переключиться на другое окно, используя метод, описанный выше. Есть еще один способ: Чтобы переключиться на окно номер 3 (четвертое окно), выполните
ctrl+b 3
Теперь вы должны были,
Со звездочкой в строке состояния, значит вы в четвертом окне. Итак, чтобы перейти в новое окно, вы можете нажать «ctrl+b index», где индекс — это порядковый номер минус один.
Переход к следующему и предыдущему окнам
Чтобы перейти к следующему окну, выполните
ctrl+b
Если бы вы были у второго окна, вы бы подошли к третьему окну. Если бы вы были у последнего окна, вы подошли бы к первому окну. Чтобы перейти к предыдущему окну, выполните
Ctrl+B
Если бы вы были у первого окна, вы подошли бы к последнему окну.
Список всех Windows
Чтобы вывести список всех окон, выполните
ctrl+b
В появившемся списке вы сможете выбрать следующее окно с помощью клавиш со стрелкой вверх или вниз. После выделения нажмите клавишу Enter, чтобы войти в выбранное окно.
Выход из окна
Чтобы выйти из типа окна,
и нажмите Enter. Вы можете выйти из всех окон, повторно выполнив команду выхода. Если вы сделаете это количество раз, соответствующее количеству окон Tmux, вы попадете в окно терминала, которое было занято утилитой Tmux; и вы увидите:
Если вы выполните команду выхода еще раз, вы закроете окно терминала.
Уничтожение текущего окна
Когда вы убиваете окно, вы убиваете его вместе с его процессом. Чтобы убить окно, сделайте
ctrl+b &
Появится сообщение, похожее на приведенное ниже, с вопросом, действительно ли вы хотите закрыть окно.
Если вы действительно хотите убить окно, нажмите y, и окно будет уничтожено, если вы не хотите убивать окно, нажмите n.
Присоединение и отсоединение сеанса Tmux
Окно Tmux используется не только для работы на локальном персональном компьютере. Его можно использовать для выполнения процесса на удаленном компьютере. Когда окно выполняет работу для локального персонального компьютера или запускает процесс на удаленном компьютере, говорят, что окно присоединено. В случае с удаленным процессом, если вы отсоединили окно и соединение разорвется, результат процесса на удаленном компьютере все равно будет достоверным. Конечно, процесс на удаленном компьютере может остановиться — это не проблема.
Когда соединение будет восстановлено, вы сможете продолжить с того места, на котором остановились, повторно прикрепив окно.
Вы можете отсоединиться от текущего сеанса, выполнив:
ctrl+b
Если команда выполнена успешно, вы выйдете из окон Tmux в окно терминала с его командной строкой. Перед подсказкой и над ней вы должны увидеть что-то вроде:
Теперь, когда вы находитесь в окне терминала, чтобы отобразить список сеансов, введите
и нажмите Enter. В первом столбце списка указано имя сеанса. В случае с этой статьей должна быть только одна сессия с именем 0. Итак, чтобы повторно подключиться к сессии, введите
и нажмите Enter.
Завершение сеанса
Из окна терминала вы можете завершить сеанс. Вы должны быть отсоединены от сеанса перед его уничтожением. Синтаксис для завершения сеанса из окна терминала:
tmux kill-session -t имя сеанса
Разделение окон
Разделение по вертикали
Чтобы разделить текущее окно по вертикали, выполните
Ctrl+B %
Если вы используете английскую клавиатуру, вам нужно будет нажать клавишу Shift и клавишу с %, чтобы получить %. Если бы вы это сделали, то у вас была бы вертикальная линия посередине окна.
Чтобы перейти к следующей панели, выполните
ctrl+b
Где o не ноль, это символ алфавита, o. Движение циклично. При этом условии это одно окно, которое было разделено на панели. Другие окна не имеют окон. В окне с панелями команды можно вводить в каждой из панелей.
Уничтожение панели
Чтобы закрыть панель с ее командами, пока курсор находится на панели, выполните
ctrl+b x
Где x — строчная буква x, ответьте на любой заданный вопрос. Панель умирает со своими командами. Команды не присоединяются к командам любой другой панели.
Горизонтальное разделение
Чтобы разделить текущее окно по горизонтали, выполните
ctrl+b “
Если вы используете английскую клавиатуру, вам нужно будет нажать клавишу Shift и клавишу с надписью «, чтобы получить «.
Чтобы перейти к следующей панели, выполните
ctrl+b
Где o не ноль, это символ алфавита, o. Движение циклично.
Вы уничтожаете горизонтальную панель так же, как и вертикальную панель.
Заключение
Tmux — это приложение, которое позволяет пользователю Linux отображать сеанс окон терминала в одном окне. Каждое окно может быть разделено на панели. Комбинация клавиш по умолчанию для Tmux — ctrl+b. После этого нужно нажать другой символ, чтобы получить эффект. Со всеми своими функциями Tmux является мультиплексором терминала Windows Manager. У Tmux есть конкурент под названием Screen. Мультиплексирование здесь означает, что все его окна для его процессов находятся в одном оконном фрейме.
Крис