Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Как с помощью Tmux повысить производительность работы в терминале

Оригинал: How to improve your productivity in terminal environment with Tmux
Автор: Christopher Valerio
Дата публикации: August 8, 2014
Перевод: Н.Ромоданов
Дата перевода: август 2014 г.

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

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

Пакет Tmux является одним из тех инструментов, которые необходимы для повседневной работы. С помощью Tmux я могу создавать сложную среду разработки и использовать соединения SSH, причем эти панели будут располагаться друг рядом с другом. Я могу создать несколько окон, разделить одну панель на несколько, подключать и отключать сессии и т.д. После освоения Tmux вы далеко закинете свою мышь (шутка, не делайте этого :D).

Tmux (сокращение от « Terminal Multiplexer» - мультиплексор терминалов) позволяет на одном экране запустить несколько терминалов и гибко определять их положение друг относительно друга таким образом, что они при работе будут располагаться друг рядом с другом. Например, на одной панели мы можем с помощью Vim редактировать несколько конфигурационных файлов, на другой - мы используем irssi для общения в чате, а еще на одной - просматривать последние записи в журналах. Затем можно открыть еще одно окно для того, чтобы обновить систему, и еще одно — для подключения через SSH к некоторым серверам. Навигация по ним так же проста, как создание всех этих окон и панелей. Все это конфигурируется и настраивается так, что все ограничено только вашим воображением.

Установка Tmux в Linux/OSX

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

Для OSX:

# sudo brew install tmux# sudo port install tmux 

Для Debian/Ubuntu:

$ sudo apt-get install tmux 

Для RHEL/CentOS/Fedora (для RHEL/CentOS требуется EPEL repo):

$ sudo yum install tmux

Для Archlinux

$ sudo pacman -S tmux

Работа с различными сессиями

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

Давайте запустим новую сессию с именем «session» и в ней запустим команду top.

$ tmux new -s new session
$ top

Затем наберите CTRL-b d для того, чтобы оторваться от этой сессии. Чтобы повторно подключиться к ней:

$ tmux attach-session -t session

И во вновь подключенной сессии вы увидите, что команда top по-прежнему работает.

Некоторые команды для управления сессиями:

$ tmux list-session
$ tmux new-session <имя-сессии>
$ tmux attach-session -t <имя-сессии>
$ tmux rename-session -t <имя-сессии>
$ tmux choose-session -t <имя-сессии>
$ tmux kill-session -t <имя-сессии> 

Прим.пер.: Выше сверху вниз приведены следующие команды: выдача списка сессий, создание новой сессии, подключение к сессии, переименование сессии, закрытие сессии и уничтожение сессии.

Работа с различными окнами

Часто вам нужно будет в сессии запустить несколько команд и выполнять несколько различных задач. Мы можем все это организовать в нескольких окнах одной сессии. Окна можно рассматривать считать вкладками терминала современного графического интерфейса (например, терминалов iTerm или Konsole). После того, как в сессии будет настроена среда, используемая по умолчанию, мы можем в одной и той же сессии создать столько окон, сколько нам их потребуется. Когда мы отсоединяемся от текущей сессии, то окна точно также, как и наши приложения, работающие в сессиях, будут сохранены. Давайте проверим на примере:

$ tmux new -s my_session

Нажмите CTRL-b c

Будет создано новое окно и на него будет перемещен фокус. Теперь вы можете запустить в новом окне еще одно приложение. Ниже вы можете указать имя вашего текущего окна. В данном случае я запустил команду top, так что это название окна.

Для того, чтобы его переименовать, просто наберите:

CTRL-b ,

Строка состояния изменится, что даст вам возможность переименовать текущее окно.

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

CTRL-b <номер окна>

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

CTRL-b f

и выдать список всех окон:

CTRL-b w

и переходить от одного окна к другому:

CTRL-b n (переход к следующему окну )
CTRL-b p (переход к предыдущему окну )

Для того, чтобы выйти из окна, просто наберите exit или:

CTRL-b &

Вы должны подтвердить, если вы хотите удалить окно.

Разбиение окна на несколько панелей

Иногда нужно что-то набирать в редакторе и одновременно просматривать журнал, т. е. в одно и то же время удобно иметь редактор и панель, в которой работает команда tail. С помощью Tmux мы можем разделить окно на несколько панелей. Так, например, мы можем создать панель для мониторинга наших серверов и панель со сложной средой разработки с использованием редактора, компилятора и отладчика. Эти панели будут рамещены рядом друг с другом.

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

CTRL-b d

Начните новую сессию с именем «panes».

$ tmux new -s panes

Вы можете разделить окно горизонтально или вертикально. Начнем с деления по горизонтали, нажав для этого:

CTRL-b "

Теперь у вас есть две новых панели. Давайте теперь разделим окно вертикально, нажав:

CTRL-b %

и теперь есть еще две панели:

Для перемещения по ним используйте:

CTRL-b <Клавиши со стрелками>

Заключение

Я надеюсь, что эта статья была полезна для вас. В качестве бонуса воспользуйтесь такими инструментами, как Tmuxinator или Tmuxifier, которые могут упростить процесс создания и загрузки сессий, окон и панелей Tmux, так что вы сможете гораздо проще настраивать Tmux. Попробуйте их, если их у вас еще нет.