tmux

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
tmux
Tmux logo.svg
Tmux-powerline.png
tmux з трьома панелями
Тип мультиплексор для віртуальних консолей
Розробник Ніколас Марріотт (Nicholas Marriott)
Перший випуск 20 вересня 2009 року
Стабільний випуск 2.1 (20 жовтня 2015; 1152 дні тому)
Версії 2.7 (22 березня 2018)[1]
Репозиторій bxr.su/o/usr.bin/tmux/
Операційна система UNIX-подібні
GNU фреймворк Ncurses[2]
Написано на C
Ліцензія BSD
tmux.sourceforge.net

tmux у Вікісховищі?

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

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

Cесії 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/tmux
  2. tmux source code

Джерела[ред. | ред. код]