petak, 27 decembra, 2024
Predstavljamo

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) uspećete u toj želji. Takođe, za prelazak sa jednog panela na drugi možete koristiti i strelice, C-b za prelazak na levi panel, C-b za prelazak na desni. Ukoliko želite da ekran podelite horizontalno, ništa lakše, pritiskom na C-b <“> podelićete ekran kao na slici ispod.

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 . Ovom komandom kreiramo novi prozor i automatski smo prebačeni na njega. Ukoliko želite da se vratite na prethodni, pritisnite C-b

ili C-b ukoliko želite da se vratite na neki određeni prozor. Ukoliko želite da zatvorite prozor, to možete učiniti pritiskom na C-b <&> ili jednostavnim upisivanjem exit u terminalu željenog prozora. Za zatvaranje panela je C-b ili exit u terminalu panela. Ono što je najbolja opcija ovakvih multipleksera i ono što se i meni najviše dopalo, jeste činjenica da se možete ponovo vratiti u Tmuks sesiju ukoliko ste se diskonektovali ili vam je nestala konekcija, a vi ste do guše u poslu na nekom udaljenom serveru. Da se otkačite sa Tmuks sesije, možete pritisnuti C-b i ponovo će vam biti prikazan terminal, bez zelene statusne linije. Ali, zašto biste se uopšte skidali sa sesije koju ste pokrenuli? Ako vam se to kojim slučajem desi, nikakav problem, da biste videli koje su sesije započete na Tmuksu, dovoljno je da u terminalu ukucate:

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: