tmux — Вікіпедія

tmux
tmux з трьома панелями
Типмультиплексор для віртуальних консолей
РозробникНіколас Марріотт (Nicholas Marriott)
Перший випуск20 вересня 2009 року
Операційна системаUNIX-подібні
GNU фреймворкNcurses[1]
Мова програмуванняC
ЛіцензіяBSD
Репозиторійgithub.com/tmux/tmux
Вебсайтtmux.sourceforge.net

tmux — це програма мултиплексор віртуальних консолей, дозволяє легко перемикатись між кількома програмами в одному терміналі, від'єднуватись від програм, залишаючи їх у фоні, і приєднувати їх до іншого терміналу і багато іншого. Він є зручним інструментом для одночасного керування багатьма програмами з інтерфейсом командного рядка. tmux є альтернативою GNU Screen, проте розробляється активніше і використовує ліцензію BSD на відміну від GNU GPL v3 у GNU screen. При запуску tmux створює нову сесію з одним вікном і відображає його на екрані. Внизу екрану відображається лінія статусу з інформацією про поточну сесію, вона також використовується для введення інтерактивних команд.

Сесія tmux — це сукупність «псевдо-терміналів» під управлінням tmux, кожна сесія має одне або кілька «вікон» приєднаних до неї, вікно може бути розділене на кілька прямокутних «панелей», у кожній з яких міститься псевдо-термінал. Будь-яка кількість екземплярів tmux може приєднатись до однієї сесії і будь-яка кількість вікон може знаходитись у ній. tmux виходить при завершення всіх сесій.

Сесії tmux є стійкими і можуть пережити випадкові роз'єднання (наприклад роз'єднання ssh) або навмисне від'єднання (за допомогою комбінації клавіш CTRL+b d). Знову приєднатись до сесії можна за допомогою команди tmux attach.

tmux відображає сесії за допомогою клієнта і всі сесії управляються за допомогою єдиного сервера, клієнт і сервер є окремими процесами, комунікація яких відбувається через сокет, що міститься в директорії /tmp.

Поєднання клавіш

[ред. | ред. код]

tmux може керуватись з підєднаного клієнта, використовуючи комбінації клавіш, що починаються з префікса, стандартний префікс C+b (Ctrl+b), після якого натискається командна клавіша, клавіша-модифікатор (переважно Alt) позначена M

Комбінація Опис
C-b Надіслати клієнтові команду-префікс
C-o Перемкнутись на наступну панель у поточному вікні
C-z Призупинити tmux
! Винести панель у окреме вікно
" Розділити поточну панель горизонтально навпіл
# Перелічити всі буфери вставлення
$ Перейменувати поточну сесію
% Розділити поточну панель вертикально навпіл
& Знищити поточне вікно
' Вибрати вікно, ввівши його індекс
, Перейменувати поточне вікно
- Видалити останній скопійований у буфер текст
. Перенести поточне вікно, інтерактивно вказавши індекс
0 — 9 Вибрати вікно з вказаним індексом
: Викликати командний рядок tmux
; Повернутись до попередньої панелі
= Інтерактивно вибрати, який буфер вставити
? Показати всі поєднання клавіш
D Інтерактивно обрати, який клієнт від'єднати
[ Перейти у режим копіювання, щоб копіювати текст або переглядати історію
] Вставити останній скопійований буфер
c Створити нове вікно
d Відєднати поточний клієнт
f Ввести текст для пошуку в поточному вікні
i Показати інформацію про поточне вікно
l Перейти до попередньо відкритого вікна вікна
n Перейти до наступного вікна
o Перейти до наступної панелі в поточному вікні
p перейти до попереднього вікна
q Тимчасово показати індекси панелей
r Примусово оновити поточний клієнт
s Інтерактивно обрати нову сесію для клієнта
L Повернутись до попередньої підєднаної сесії
t Показати час у поточній панелі
w Інтерактивно обрати вікно
x Знищити поточну панель
{ Поміняти місцями поточну панель з попередньою
} Поміняти місцями поточну панель з наступною
~ Показати попередні повідомлення від tmux
Page Up Увійти в режим копіювання і піднятись на один екран вверх
Клавіші «Вверх», «Вниз», «Вліво», «Вправо» Переміщення між панелями
M-n Переміститись до наступного вікна з сигналом або маркером активності
M-p Переміститись до попереднього вікна з сигналом або маркером активності
M-o Поміняти місцями панелі поточного вікна у зворотньому напрямку
C + «Вверх», «Вниз», «Вліво», «Вправо» Змінити розмір поточної панелі з кроком розміром 1 клітинка
M + «Вверх», «Вниз», «Вліво», «Вправо» Змінити розмір поточної панелі з кроком розміром 5 клітинок

Всі комбінації клавіш можна змінити за допомогю команд bind-key і unbind-key. Щоб зробити зміни постійними, їх можна зберегти у конфігураційному файлі .tmux.conf у домашній директорії користувача.

Функціональність

[ред. | ред. код]

tmux володіє тим самим функціоналом що і GNU Screen, проте має багато додаткових можливостей, серед них можна виділити наступні:

  • Використання клієнт-серверної архітектури, де кожен сервер використовує єдиний сокет і володіє багатьма сесіями, до яких можуть приєднуватись скільки завгодно клієнтів;
  • Кращий командний інтерфейс, що дозволяє виконувати більшість команд tmux прямо з терміналу, це полегшує написання скриптів для tmux;
  • tmux має багато буферів обміну;
  • tmux може автоматично перейменовувати імена вікон відповідно до запущених у них програм;
  • можливість використання клавіатурних схем vi та emacs;
  • Можливість обмежити розмір вікна;
  • Можливість пошуку по тексту у вікні;
  • У tmux є поняття «вікно» і «панель», тоді як у GNU screen є тільки вікна. Кожне вікно може містити кілька панелей;
  • Статусна лінія tmux легша для сприйняття і використання;
  • Вихідний коди tmux більше відповідає сучасним стандартам, відповідно полегшуючи розширення;
  • tmux обмежує розмір вікон розмірами терміналу.

Зноски

[ред. | ред. код]
  1. tmux source code

Джерела

[ред. | ред. код]
  • Nicholas Marriott. Tmux manual. Архів оригіналу за 31 березня 2014. Процитовано 27 квітня 2014 року.
  • Офіційна сторінка tmux. Архів оригіналу за 9 січня 2012. Процитовано 27 квітня 2014 року.
  • Nicholas Marriott. tmux FAQ. Архів оригіналу за 27 квітня 2014. Процитовано 27 квітня 2014 року.