среда, 24 априла, 2024
Представљамо

Тмукс, или – како се једноставно умножити

Аутор: Марјан Бугариновић

Свима нам се десило, када се закачимо на неки удаљени (енг. remote) сервер путем ССХ протокола, да нам се јави потреба да отворимо неко упутство (man page) док конфигуришемо и пролазимо кроз покретање неког алата, апликације и слично. Осим тога, зарад дебаговања (енг. debug) или траблшутовања (енг. troubleshooting) неког проблема, потребно је да имамо једну сесију на којој ћемо приказати логове, а на другој покретати апликацију. У помоћ ускаче Tмукс (енг. tmux). Тмукс, реч која је настала као скраћеница од Терминал мултиплексер (енг. Terminal Multiplexer), управо представља баш то – могућност да „умножимо” наш терминал на много различитих панела или прозора, а све то кроз једну једину сесију, било локално, било на неком удаљеном серверу коме смо приступили путем ССХ протокола. Написао га је Николас Мариот (Nicholas Marriott). Писан је у Ц програмском језику, а прва верзија је објављена још 2007. године. Направљен је као пандан Скрину (енг. screen). Намера овог текста није да докаже или покаже да је Тмукс бољи или лошији од Скрин. Не. Намера текста је да боље упозна читаоце са начином на који могу да повећају продуктивност тиме што ће кроз једну сесију моћи да раде више ствари. На интернету ћете пронаћи многа питања, да ли је Тмукс бољи од Скрина или обрнуто, али као што смо напоменули, то није тема овог текста. Једина видљива разлика је лиценца под којом су објављени: Тмукс је објављен под ИСЦ (Internet System Consortium) лиценцом, док је Скрин објављен под лиценцом ГНУ ГПЛ верзија 3. Тмукс се инсталира једноставно, путем конзоле и коришћењем предодређеног управаљача пакетима у зависности од дистрибуције Линукса коју користите. Препоручује се да инсталацију Тмукса извршите прво на локалној машини, како бисте се упознали са командама и већином функционалности, а затим, после неког времена инсталирајте овај користан алат и на серверу.

Како да инсталирате Тмукс?

Уколико је Дебијан ваша дистрибуција, или Убунту или Минт, искористићете:

apt-get install tmux

Код, рецимо Арч Линукса, ова команда ће бити:

pacman -S tmux

Уколико је дистрибуција којом располажете Федора, користите следећу команду:

dnf install tmux

Потребно је да приликом инсталације Тмукса имате привилегије рута (енг. root) или народски речено – рут привилегије. Када завршите са инсталацијом, једноставним уписивањем команде испод у терминалу покренућете сесију.

tmux

Приказаће вам се екран као на слици испод.

Уочљива промена у односу на претходни екран јесте зелена линија у дну екрана. То је уобичајена статусна линија Тмукса коју можете да исконфигуришете по сопственом нахођењу. Приликом покретања Тмукса, да бисмо могли да извршавамо команде, управљамо прозорима, делимо екране и слично, потребно је да притиснемо префикс тимкомандама. Уобичајени (енг. default) префикс у тмуксу је Ctrl b (у даљем тексту C-b). У делу префикса наступа још једна од разлика између Тмукса и Скрина. Наиме, код Скрина је префикс Ctrl a (C-a) и видећете да су многи који су користили дуго Скрин прешли на Тмукс, само мапирали C-a комбинацију као префикс. Иако никада нисам користио Скрин, то је и са мном случај, лакши ми је C-a префикс за куцање, па ми се често дешава да у свом претраживачу, у жељи да пребацим на други таб, грешком селектујем све са сајта, уместо да болдујем текст (C-b префикс је пречица за болдовање у великој већини текст уређивача). Да се вратимо на Тмукс. Покретањем горе приказане команде у терминалу, покренули сте Тмукс сесију и у оквиру ње можете радити шта год пожелите. Притиском на префикс (C-b) <%> поделићете ваш екран на два панела вертикално, као на слици испод. Мала напомена: морате притиснути карактер који се налази између < и > заграда.

Уколико желите да пређете са једног панела на други, притиском на префикс (C-b) <o> успећете у тој жељи. Такође, за прелазак са једног панела на други можете користити и стрелице, C-b <лево> за прелазак на леви панел, C-b <десно> за прелазак на десни. Уколико желите да екран поделите хоризонтално, ништа лакше, притиском на C-b <“> поделићете екран као на слици испод.

Навигација овога пута укључује стрелице горе или доле, у зависности од тога у ком се панелу налазите, наравно, уз претходно укуцавање префикса (C-b). Уколико желите да креирате нови прозор, јер један – ко ниједан, то ћете моћи да урадите притиском на C-b <c>. Овом командом креирамо нови прозор и аутоматски смо пребачени на њега. Уколико желите да се вратите на претходни, притисните C-b <p> или C-b <број прозора> уколико желите да се вратите на неки одређени прозор. Уколико желите да затворите прозор, то можете учинити притиском на C-b <&> или једноставним уписивањем exit у терминалу жељеног прозора. За затварање панела је C-b <x> или exit у терминалу панела. Оно што је најбоља опција оваквих мултиплексера и оно што се и мени највише допало, јесте чињеница да се можете поново вратити у Тмукс сесију уколико сте се дисконектовали или вам је нестала конекција, а ви сте до гуше у послу на неком удаљеном серверу. Да се откачите са Тмукс сесије, можете притиснути C-b <d> и поново ће вам бити приказан терминал, без зелене статусне линије. Али, зашто бисте се уопште скидали са сесије коју сте покренули? Ако вам се то којим случајем деси, никакав проблем, да бисте видели које су сесије започете на Тмуксу, довољно је да у терминалу укуцате:

tmux list-sessions

Приказаће вам се сесије као на слици испод.

Уколико желите да се поново закачите на сесију, само укуцајте следећу команду у терминал и решена ствар!

tmux attach -target <ime sesije>

Сесијама можете давати имена, да бисте их лакше разликовали, можете се закачити на своју локалну сесију, а затим приступити серверу и на њему се закачити на другу сесију, само том приликом морате бити пажљиви – уколико желите да укуцате команду на удаљеном серверу, потребно је два пута да притиснете префикс, а затим жељену типку на тастатури, у супротном, контролисаћете своју локалну сесију. Оно на шта морате обратити пажњу је да приликом гашења рачунара или сервера на коме је покренута сесија Тмукса, иста нестаје, зато што се чува у РАМ меморији машине. Да се изборите против овога, постоји могућност да напишете беш (енг.bash) скрипту да вам се приликом стартовања машине покрене сесија која је била затворена. Нажалост, могућност чувања сесија по гашењу машине још увек није могућа у целости и без мало твиковања (енг. tweak). Уколико желите, можете конфигурисати да вам се статусна линија налази на врху екрана, уместо на дну, можете на њу додавати повратне информације неких команди, а све то коришћењем .tmux.conf датотеке. Можете чак подебљати линију која представља границу између ваших панела. После само мало играња са .tmux.conf датотеком, уколико не постоји у вашем кућном (енг. home) директоријуму, слободно га направите тамо, ваш Тмукс може наликовати овоме.

Ово је један од јако корисних алата, ако живот проводите у конзоли и ван ње, а постоје неограничене могућности за његову употребу. Уз само неколико дана или пар недеља, постаће део ваше свакодневнице и прво што ћете урадити када отварате било који терминал биће команда – tmux или неки алијас уколико сте лењи, попут мене!

Корисни линкови: