tmux
A tmux ( t erminal mu ltiple x er) egy olyan szoftver, amely lehetővé teszi a több terminál (vagy ablak) létrehozását, elérését és vezérlését egyetlen képernyőről vagy terminálablakból, úgy, hogy mindegyik külön futtatni tud egy-egy programot. A tmux leválasztható egy képernyőről, és a háttérben tovább futhat, majd később újra csatlakoztatható. [1]
A GNU Screen szoftvert ismerő felhasználók számára a tmux megfelelő alternatíva lehet a használatra.
Telepítés
USE jelölőzászlók
USE flags for app-misc/tmux Terminal multiplexer
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
jemalloc
|
Use dev-libs/jemalloc for memory management |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
sixel
|
Enable sixel support |
systemd
|
Enable use of systemd-specific libraries and features like socket activation or session tracking |
utempter
|
Include libutempter support |
vim-syntax
|
Pulls in related vim syntax scripts |
Emerge
Telepítse az app-misc/tmux szoftvercsomagot:
root
#
emerge --ask app-misc/tmux
Beállítás
A tmux szabványos telepítése nem tartalmaz globális ( /etc/tmux.conf ) vagy felhasználói ( ~/.tmux.conf ) beállításfájlt. Példák találhatók a /usr/share/doc/tmux- VERSION /example_tmux.conf fájlban, és ezek másolhatóak a felhasználói és a rendszerszintű helyekre.
Beállításfájlok
- /etc/tmux.conf — Rendszerszintű beállításfájl.
- $XDG_CONFIG_HOME/tmux/tmux.conf — Felhasználószintű specifikus tmux beállításfájl.
- ~/.tmux.conf — Elavult egyfelhasználós tmux beállításfájlnak a helye.
Példa a beállításra
~/.config/tmux/tmux.conf /etc/tmux.conf
# Futtassa a felhasználó alapértelmezett shell-jét, amely például a '/bin/bash' lehet. Gyakran használják a tmux bejelentkezési shell-ek indításának megakadályozására.
#set -g default-command "${SHELL}"
# A fordítottja hasznos lehet más shell-ek megfelelő opciókkal történő indításához.
#set -g default-command "fish -l"
# Illessze a munkamenet számokat a számsorra.
set -g base-index 1
# Állítsa be a TERM változót. Az alapértelmezett érték a "screen". Ha a "tmux-256color" nem működik, akkor a "screen-256color" is kipróbálható.
set -g default-terminal "tmux-256color"
# Állítsa be az előtagot 'a' értékre. A "ctl-a > a" segítségével küldheti a "ctrl-a" parancsot a terminálra.
#set -g prefix C-a
#bind-key a send-prefix
# Állítsa be a prefix2 értékét az alapértelmezett 'b' értékre.
#set -g prefix2 C-b
# Engedélyezze az egeret.
set -g mouse on
# Ha az egérmutató problémákat okoz, akkor tiltsa le a húzási műveletet normál módban.
unbind -n MouseDrag1Pane
# Tiltsa le másolási módban is.
#unbind -Tcopy-mode MouseDrag1Pane
# Állítsa be a sávot és az inaktív határokat kékre, a jelenlegit pedig zöldre kiemelve.
#set-option -g status-style fg=black,bg=blue
#set-window-option -g window-status-current-style bg=green
#set-option -g pane-border-style fg=blue
#set-option -g pane-active-border-style fg=green
A beállításfájl újbóli betöltése érdekében futtassa a következő parancsot a parancssorban:
user
$
tmux source-file ~/.tmux.conf
Alternatív megoldásként a fájl módosításai betölthetőek a tmuxon belül a következő módon:
:
source-file ~/.tmux.conf
Automatikus csatlakozás
A tmux
exec
és a
-ADX
opciókkal való futtatása lecseréli a jelenlegi shellt és létrehoz egy munkamenetet, vagy ha már létezik, akkor csatlakozik hozzá, majd leválasztja és kilépteti a másik klienst. Ez egy nagyon következetes módja a távoli munkamenetek kezelésének, és automatikusan is futtatható:
Bash
user
$
test -n "$PS1" && test -z "$TMUX" -a -n "$SSH_TTY" && exec tmux new -ADX
Fish
user
$
status is-interactive ; and test -z "$TMUX" -a -n "$SSH_TTY" ; and exec tmux new -ADX
Bővítmények
Létezik néhány bővítmény a tmux számára. Az elérhető lehetőségekért tekintse meg az alábbi szekciókat.
tpm
A tpm egy tmux p lugin m anager (bővítménykezelő). A telepítési folyamat részleteiért tekintse meg a tpm alfejezetet.
tmux-mem-cpu-load
A tmux-mem-cpu-load egy kis szoftver, amelyet az operációs rendszer aktivitásának figyelésére terveztek a tmux állapotsorában. A telepítési folyamat részleteiért tekintse meg a tmux-mem-cpu-load alfejezetet.
Tmux Resurrect
A tmux-resurrect megőrzi a tmux környezeteket az operációs rendszer újraindítása után. A telepítési folyamat részleteiért tekintse meg a resurrect alfejezetet.
Használat
Billentyűkötések
A tmux egy csatlakoztatott kliensből vezérelhető egy előtag billentyűnek a lenyomásával (alapértelmezés szerint Ctrl + b ), amelyet egy parancs billentyű követ.
A Ctrl + b lenyomása után a következő billentyűgomb-kombinációk használhatóak:
Általános
- ? = Listázza az összes billentyűkötést.
- d = Leválasztja a jelenlegi klienst.
- : = Belép a tmux parancsértelmezőbe.
Ablakok létrehozása és kezelése
- c = Hozzon létre egy ablakot.
- n = Váltson a következő ablakra.
- p = Váltson az előző ablakra.
- l = Lépjen az előzőleg kiválasztott ablakra.
- 0-9 = Válassza ki a 0-tól 9-ig terjedő ablakokat.
- ' = Kérjen be egy ablakindexet a kiválasztáshoz. Ezután adjon meg egy számot vagy címet az ablakra váltáshoz.
- , = Nevezze át a jelenlegi ablakot.
- w = Válassza ki a jelenlegi ablakot interaktívan.
- : = Ezután írja be, hogy list-windows enter = Megjeleníti az ablakok listáját.
Panelek létrehozása és kezelése
- " = Ossza ketté a jelenlegi panelt felső és alsó részre.
- % = Ossza ketté a jelenlegi panelt bal és jobb részre.
- o = Válassza ki a következő panelt a jelenlegi ablakban.
- ; = Lépjen az előzőleg aktív panelre.
- { = Cserélje ki a jelenlegi panelt az előző panellel.
- } = Cserélje ki a jelenlegi panelt a következő panellel.
- Ctrl + o = Forgassa előre a panelek sorrendjét a jelenlegi ablakban.
- Alt + 1 to Alt + 5 = Rendezze a paneleket az öt előre beállított elrendezés egyikében: egyenletes vízszintes, egyenletes függőleges, fő vízszintes, fő függőleges vagy csempézett.
- x = Zárja be a jelenlegi panelt.
- ! = Törje ki a jelenlegi panelt az ablakból.
Másolás, beillesztés és görgetési műveletek
Az elérhető billentyűgombok attól függenek, hogy az emacs (alapértelmezett) vagy a vi mód van kiválasztva. A mode-keys opció beállítható a .tmux.conf fájlban vi mód esetén.
- [ = Lépjen be a másolási módba szöveg másolásához vagy a kimeneti előzmények megtekintéséhez a visszagörgetési pufferen keresztül. Miután másolási módban van, a j vagy k billentyűgomb lenyomása a kurzort lefelé vagy felfelé mozgatja soronként, míg a { és } billentyűk bekezdésenként mozgatják lefelé vagy felfelé.
- ] = Illessze be a legutóbb másolt szövegpuffert.
- # = Sorolja fel az összes beillesztési puffert.
- - = Törölje a legutóbb másolt szövegpuffert.
Munkamenet-vezérlés
Munkamenet elindítása
Miután elindult, a tmux létrehoz egy aljzatot (socket) a munkamenethez a /tmp/S-<UID>/<Munkamenet neve> helyen.
A tmux a következő parancs segítségével indítható el:
user
$
tmux
Abban az esetben, ha a munkamenetnek nevet szeretne adni az indításkor, akkor futtassa a következő parancsot:
user
$
tmux new-session -s portage
Munkamenetek listázása
Sorolja fel a tmux munkameneteket annak érdekében, hogy meglássa a meglévő munkamenet-információkat.
user
$
tmux ls
0: 1 windows (created Thu Apr 9 09:09:03 2015) [180x65] (attached)
A munkamenetek kilistázásakor a munkamenet neve az első elemként jelenik meg a munkamenet információs sorában. Az előző kimenetből látható, hogy a munkamenet név nélkül lett létrehozva, ezért a munkamenetre
0
néven kell hivatkozni.
Egy másik módja a munkamenetek listázásának a hosszú
list-sessions
argumentum begépelése.
user
$
tmux list-sessions
0: 1 windows (created Thu Apr 9 09:09:03 2015) [180x65] (attached)
Pontosan ugyanaz a kimenet jelenik meg, mint az előző kilistázási parancs esetében.
Munkamenet átnevezése
Egyszerűen a tmux használata a munkamenet elindításához nem ad szép, ember által olvasható nevet a munkamenetnek.
Ha az alapértelmezett munkamenetnév nem elég leíró (
0
általában nem sokat mond), akkor a munkamenet átnevezhető. Tegyük fel, hogy Larry a tehén elindította a
tmux
munkamenetet anélkül, hogy munkamenetnevet adott volna meg az indításkor. Elkezd dolgozni a Portage új verziójának a lefordításán, és szeretné megváltoztatni a munkamenet nevét annak érdekében, hogy tükrözze az aktuális feladatát. A munkamenet nevének megváltoztatásához először át kell vennie az irányítást a
tmux
fölött a mágikus
Ctrl
+
b
billentyűgomb-parancs megnyomásával, majd
:
, ami a
tmux
vezérlővonalába viszi a fókuszt. Alapértelmezetten a vonalnak sárgává kell átváltania. Miután ott van, kiadja:
:
rename-session -t 0 portage
Ahol a
0
a meglévő (alapértelmezett) munkamenetnév, és a
portage
az új kívánt név a munkamenethez. Ha a munkamenet leválasztott állapotban van a
tmux
-ról, akkor a következő parancsot kell kiadni az átnevezés érdekében:
user
$
tmux rename-session -t 0 portage
Munkamenet folytatása
Miután a munkamenet levált, az összes aktív parancssor aktív marad, és azok a parancsok is folytatódnak, amelyek még nem fejeződtek be. A munkamenet folytatásához használja a
attach -t <session_name>
parancsot.
user
$
tmux a -t portage
Illetve használja a hosszabb módját egy meglévő munkamenet csatlakoztatásának:
user
$
tmux attach -t portage
Szolgáltatás-szerű működés
Egy parancs elindításának érdekében egy
tmux
munkamenetben,
anélkül
, hogy azt hozzá kellene kapcsolni a munkamenethez (mint például egy szolgáltatáshoz), használja a
new-session -d
parancsot, amelyet idézőjelben kell végrehajtani:
user
$
tmux new-session -d 'emerge -uDNvp @world'
További olvasnivaló a témában
- Recommended_tools#Terminal_multiplexers — Egyéb parancssor-multiplexerek.
- Screen — a program that enables the creation of multiple sessions and virtual terminals within a single terminal.
Külső források
- Making tmux Pretty and Usable — A Guide to Customizing your tmux.conf .
- https://tmuxcheatsheet.com/ .
- An excellent tmux primer .
- The Tao of tmux , eBook by Tony Narlock, creator of libtmux and tmuxp .
- gpakosz/.tmux To make things easier.