Tmux - полезные команды

Tmux - полезная утилита, которая позволяет управлять терминальными секциями находясь в одном окне. Лично я задумался о том что мне нужен такой инструмент когда начал работать с проектами, которые требуют запуска более чем одного окна треминала (клиент, сервер, nvim, faker) - переключение между вкладками довольно утомительная история и отнимает больше внимания чем в случае с переключением в рамках нескольких окон в tmux

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

Еще одним большим преимуществом tmux является то, что ты можешь просто отключиться от сессии и при этом все запущенные внутри нее процессы продолжат работать - это ли не чудо

Почти все что есть в этом посте можно увидеть в отличном видео от NetworkChuck, так что если тебе удобнее смотреть видео, то просто просто смотри, кто я такой чтобы запрещать тебе )

Полезные команды для запуска

  • man tmux - Показать всю с справочную информацию по tmux
  • tmux --help - Команда с помощью по использованию: польза от этой команды примерно околонулевая
  • tmux ls - Показать список доступных tmux сессий (аналог для tmux list-sessions)
  • tmux - Открыть tmux в новой сессии
  • tmux new -s <session-name> - Открыть tmux в новой сессии с именем
  • tmux a - Открыть последнюю отключенную сессию (a - attach)
  • tmux a -t <sess-name> - Открыть отключенную сессию с именем (имя можго посмотреть c помощью команды ls)
  • tmux kill-session -t <sess-name> - "Убить" сессию с именем (имя можго посмотреть c помощью команды ls), сессия перестанет отображаться в списке сессий и запущенные в рамках нее процессы будут убиты
  • tmux kill-server - "Убить" все сессии сразу

Полезные команды "внутри" tmux

Тут и далее это Ctrl + <какая-то кнопка>, В основном все взaимодействие с tmux находясь внутри сесси будет заключаться в нажатии на Ctrl + b и затем <какой-то кнопки> которая будет выполнять ту или иную команду

  • <C-b>, c - Создаем новое окно в рамках текущей сессии (Ctrl + b, затем нажимаем "c")
  • <C-b>, d - Отключаемся от сессии (d stands for detach), то есть мы выходим из сессии tmux, но все запущенные в рамках сессии процессы остаются запущенными
  • <C-b>, <0-9> - Переключаемся между окнами внутри tmux (<0-9> индекс конкретного окна)
  • <C-b>, n - Переключаемся к следующему окну (n - next)
  • <C-b>, p - Переключаемся к предыдущему окну (p - previous)
  • <C-b>, $ - Переименовать текущую сессию (например чтобы в будущем вернуться к кей по понятному названию - например названию проекта)
  • <C-b>, % - Создать вертикальную вкладку в текущем окне (Например я хочу запустить две команды npm run server и npm run client)
  • <C-b>, " - Создать горизонтальную вкладку в текущем окне
  • <C-b>, <стрелочки ←↑→↓> - Переключение фокуса между вкладками текущего окна
  • <C-b>, & - Закрываем текущее окно (нужно будет подтвердить закрытие с помощью y)
  • <C-b>, x - Закрываем текущую вкладку (ту на которой в данный момент фокус)