Tmuks, ili – kako se jednostavno umnožiti
Autor: Marjan Bugarinović
Svima nam se desilo, kada se zakačimo na neki udaljeni (eng. remote) server putem SSH protokola, da nam se javi potreba da otvorimo neko uputstvo (man page) dok konfigurišemo i prolazimo kroz pokretanje nekog alata, aplikacije i slično. Osim toga, zarad debagovanja (eng. debug) ili trablšutovanja (eng. troubleshooting) nekog problema, potrebno je da imamo jednu sesiju na kojoj ćemo prikazati logove, a na drugoj pokretati aplikaciju. U pomoć uskače Tmuks (eng. tmux). Tmuks, reč koja je nastala kao skraćenica od Terminal multiplekser (eng. Terminal Multiplexer), upravo predstavlja baš to – mogućnost da „umnožimo” naš terminal na mnogo različitih panela ili prozora, a sve to kroz jednu jedinu sesiju, bilo lokalno, bilo na nekom udaljenom serveru kome smo pristupili putem SSH protokola. Napisao ga je Nikolas Mariot (Nicholas Marriott). Pisan je u C programskom jeziku, a prva verzija je objavljena još 2007. godine. Napravljen je kao pandan Skrinu (eng. screen). Namera ovog teksta nije da dokaže ili pokaže da je Tmuks bolji ili lošiji od Skrin. Ne. Namera teksta je da bolje upozna čitaoce sa načinom na koji mogu da povećaju produktivnost time što će kroz jednu sesiju moći da rade više stvari. Na internetu ćete pronaći mnoga pitanja, da li je Tmuks bolji od Skrina ili obrnuto, ali kao što smo napomenuli, to nije tema ovog teksta. Jedina vidljiva razlika je licenca pod kojom su objavljeni: Tmuks je objavljen pod ISC (Internet System Consortium) licencom, dok je Skrin objavljen pod licencom GNU GPL verzija 3. Tmuks se instalira jednostavno, putem konzole i korišćenjem predodređenog upravaljača paketima u zavisnosti od distribucije Linuksa koju koristite. Preporučuje se da instalaciju Tmuksa izvršite prvo na lokalnoj mašini, kako biste se upoznali sa komandama i većinom funkcionalnosti, a zatim, posle nekog vremena instalirajte ovaj koristan alat i na serveru.
Kako da instalirate Tmuks?
Ukoliko je Debijan vaša distribucija, ili Ubuntu ili Mint, iskoristićete:
apt-get install tmux
Kod, recimo Arč Linuksa, ova komanda će biti:
pacman -S tmux
Ukoliko je distribucija kojom raspolažete Fedora, koristite sledeću komandu:
dnf install tmux
Potrebno je da prilikom instalacije Tmuksa imate privilegije ruta (eng. root) ili narodski rečeno – rut privilegije. Kada završite sa instalacijom, jednostavnim upisivanjem komande ispod u terminalu pokrenućete sesiju.
tmux
Prikazaće vam se ekran kao na slici ispod.
Uočljiva promena u odnosu na prethodni ekran jeste zelena linija u dnu ekrana. To je uobičajena statusna linija Tmuksa koju možete da iskonfigurišete po sopstvenom nahođenju. Prilikom pokretanja Tmuksa, da bismo mogli da izvršavamo komande, upravljamo prozorima, delimo ekrane i slično, potrebno je da pritisnemo prefiks timkomandama. Uobičajeni (eng. default) prefiks u tmuksu je Ctrl b (u daljem tekstu C-b). U delu prefiksa nastupa još jedna od razlika između Tmuksa i Skrina. Naime, kod Skrina je prefiks Ctrl a (C-a) i videćete da su mnogi koji su koristili dugo Skrin prešli na Tmuks, samo mapirali C-a kombinaciju kao prefiks. Iako nikada nisam koristio Skrin, to je i sa mnom slučaj, lakši mi je C-a prefiks za kucanje, pa mi se često dešava da u svom pretraživaču, u želji da prebacim na drugi tab, greškom selektujem sve sa sajta, umesto da boldujem tekst (C-b prefiks je prečica za boldovanje u velikoj većini tekst uređivača). Da se vratimo na Tmuks. Pokretanjem gore prikazane komande u terminalu, pokrenuli ste Tmuks sesiju i u okviru nje možete raditi šta god poželite. Pritiskom na prefiks (C-b) <%> podelićete vaš ekran na dva panela vertikalno, kao na slici ispod. Mala napomena: morate pritisnuti karakter koji se nalazi između < i > zagrada.
Ukoliko želite da pređete sa jednog panela na drugi, pritiskom na prefiks (C-b)
Navigacija ovoga puta uključuje strelice gore ili dole, u zavisnosti od toga u kom se panelu nalazite, naravno, uz prethodno ukucavanje prefiksa (C-b). Ukoliko želite da kreirate novi prozor, jer jedan – ko nijedan, to ćete moći da uradite pritiskom na C-b
tmux list-sessions
Prikazaće vam se sesije kao na slici ispod.
Ukoliko želite da se ponovo zakačite na sesiju, samo ukucajte sledeću komandu u terminal i rešena stvar!
tmux attach -target
Sesijama možete davati imena, da biste ih lakše razlikovali, možete se zakačiti na svoju lokalnu sesiju, a zatim pristupiti serveru i na njemu se zakačiti na drugu sesiju, samo tom prilikom morate biti pažljivi – ukoliko želite da ukucate komandu na udaljenom serveru, potrebno je dva puta da pritisnete prefiks, a zatim željenu tipku na tastaturi, u suprotnom, kontrolisaćete svoju lokalnu sesiju. Ono na šta morate obratiti pažnju je da prilikom gašenja računara ili servera na kome je pokrenuta sesija Tmuksa, ista nestaje, zato što se čuva u RAM memoriji mašine. Da se izborite protiv ovoga, postoji mogućnost da napišete beš (eng.bash) skriptu da vam se prilikom startovanja mašine pokrene sesija koja je bila zatvorena. Nažalost, mogućnost čuvanja sesija po gašenju mašine još uvek nije moguća u celosti i bez malo tvikovanja (eng. tweak). Ukoliko želite, možete konfigurisati da vam se statusna linija nalazi na vrhu ekrana, umesto na dnu, možete na nju dodavati povratne informacije nekih komandi, a sve to korišćenjem .tmux.conf datoteke. Možete čak podebljati liniju koja predstavlja granicu između vaših panela. Posle samo malo igranja sa .tmux.conf datotekom, ukoliko ne postoji u vašem kućnom (eng. home) direktorijumu, slobodno ga napravite tamo, vaš Tmuks može nalikovati ovome.
Ovo je jedan od jako korisnih alata, ako život provodite u konzoli i van nje, a postoje neograničene mogućnosti za njegovu upotrebu. Uz samo nekoliko dana ili par nedelja, postaće deo vaše svakodnevnice i prvo što ćete uraditi kada otvarate bilo koji terminal biće komanda – tmux ili neki alijas ukoliko ste lenji, poput mene!
Korisni linkovi: