Шпаргалка по tmux

21 февраля 2017 19:00
11732
0

Введение

Мне нравится работать с  командной строкой. Серьёзно, я считаю, что нет более продуктивного инструмента при разработке ПО, чем терминал. Может быть это связано с тем, что при работе в консоли начинаешь чувствовать себя хакером/волшебником/гиком, но не важно.

Работая, мы выполняем задачи совместно с другими программистами. У каждого есть свой ноутбук или ПК, и каждый подбирает удобные для себя инструменты. Так как я люблю работать с командной строкой, то я потратил некоторое время на совершенствование своей терминальной среды. Вот что видят мои напарники, когда начинают работать со мной:
Основные команды Tmux

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

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

Что такое tmux?

Разработчики позиционируют его как терминальный мультиплексор. За этим термином скрывается простой смысл - вы можете создавать много окон в пределах одного терминала. Благодаря этому можно запускать много консольных приложений не засоряя рабочее пространство множеством открытых окон эмуляторов терминала.

Tmux сохраняет весь результат вашей работы в сессиях. Вы можете покидать сессию в любой момент времени. По терминологии tmux это называется detaching. Позже, вы сможете восстановить сессию, пока запущен сервер tmux (пока компьютер не будет перезагружен).

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

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

Начало

Установка.

Tmux доступен в большинстве репозиториев, поэтому его установка сводится к классическому набору команд:

Для debian:

apt-get install tmux

Gentoo:

emerge tmux

MacOS:

brew install tmux

Запускаем первую сессию.

Для запуска первой сессии просто вводим команду в терминале:

tmux

Строка состояния является важной частью tmux. Помимо текущих открытых окон (слева) на ней также отображается некоторая системная информация, такая как дата и время (справа).

Разделение панелей

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

Все команды в tmux вызываются ключом префикса с последующим ключом команды (очень похож на Emacs). По умолчанию, tmux использует C-B в качестве ключа префикса. Эта запись может показаться немного странной, если вы не привыкли к tmux. Обозначение C- означает "нажмите и удерживайте клавишу Ctrl". Таким образом, С-Ь означает просто нажмите Ctrl и клавиши B одновременно.

Разделить рабочее окно на левую и правую панель можно при помощи комбинаций С-b %. КОманды следует вводить последовательно. Тоесть сначала нажимаем Ctrl+B затем отпускаем и нажимаем %.

Разделение панелей в tmux

Для разделение окна по вертикали используется комманда С-b ". Как и в предыдущем примере, сначала вводим Ctrl+B, затем ".

Навигация между панелями

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

Закрытие панелей

Для того, чтобы закрыть панель достаточно ввести команду exit или нажать комбинацию Ctrl+d.

Создание окон

Окнами в tmux называются некие рабочие пространства (аналогично с рабочими столами в KDE, GNOME, XFCE). Чтобы создать окно необходимо набрать комбинацию С-b -> c . Навигация между окнами осуществляется при помощи комбинации С-b p (предыдущее окно) С-b n (следующее окно). Или при помощи С-b <номер окна>.

Работа с сессиями

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

Чтобы свернуть сессию необходимо набрать С-b d (от англ. detach). Если нажать С-b D, то tmux предложит вам выбрать какую сессию необходимо свернуть.

Чтобы просмотреть список свернутых сессий выполним команду

tmux ls

В ответ вы получите что-то похожее на это:

0: 1 windows (created Tue Feb 21 13:50:54 2017) [135x33]

Чтобы подключиться к сессии необходимо выполнить комманду:

tmux attach -t 0

Где 0 - идентификатор сессии. Для того, чтобы дать сессии более красивое имя существует команда

tmux new -s database

Переименовать сессию можно набрав

tmux rename-session -t 0 database

А подключиться к сессии используя имя:

tmux attach -t database

В заключении

Приведу еще несколько полезных команд

C-b ? - вывод списка всех команд

C-b z - развернуть/свернуть панель во весь экран

C-b C-<стрелки> - переключение активной панели

C-b , - переименование текущего окна

Похожие статьи