Tmux
-
Медіафайли у Вікісховищі
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 обмежує розмір вікон розмірами терміналу.
Зноски
- ↑ tmux source code
Джерела
- Nicholas Marriott. Tmux manual. Архів оригіналу за 31 березня 2014. Процитовано 27 квітня 2014 року.
- Офіційна сторінка tmux. Архів оригіналу за 9 січня 2012. Процитовано 27 квітня 2014 року.
- Nicholas Marriott. tmux FAQ. Архів оригіналу за 27 квітня 2014. Процитовано 27 квітня 2014 року.