Библиотека сайта 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. Попробуйте их, если их у вас еще нет.