Articles

Cum se utilizează tmux pe Linux (și de ce este mai bun decât ecranul)

  • Dave McKay

    @TheGurkha

  • 14 mai 2020, 8:00AM EDT
fatmawati achmad zaenuri/

Linux tmux comanda este un multiplexor terminal, cum ar fi screen. Avocații săi sunt mulți și vocali, așa că am decis să le comparăm pe cele două. Estetmux cu adevărat mai bun sau este doar un caz de a prefera ceea ce știi?

tmux vs. ecran

atât comenziletmuxcât și GNUscreen Sunt multiplexoare terminale. Acestea vă permit să aveți mai multe ferestre într-o singură fereastră de terminal și să săriți înainte și înapoi între ele. O fereastră poate fi împărțită în geamuri, fiecare dintre acestea oferindu-vă o linie de comandă independentă.

de asemenea, puteți detașa o sesiune și devine o entitate fără cap care rulează în fundal—puteți chiar să închideți fereastra terminalului care a lansat-o. Când sunteți gata, puteți deschide o nouă fereastră terminal și reatașați sesiunea încă în desfășurare. Puteți face acest lucru și printr-o conexiune SSH.

publicitate

puteți detașa o sesiune pe un computer, du-te acasă, și conectați-vă la computer la distanță. Când vă Reconectați, puteți reatașa sesiunea de fundal și o puteți utiliza din nou interactiv.

care este comanda ecranului?

screen comanda este, de asemenea, un multiplexor terminal și este dotat cu opțiuni. Pentru scăderea a tot ceea ce puteți face cu acesta, consultați articolul nostru aprofundat.

de data aceasta, ne vom concentra petmux. Pe măsură ce continuăm, vom menționa modul în care screen gestionează aceeași caracteristică sau funcție.

publicitate

doar un singur lucru ne enervat desprescreen. Vom acoperi că atunci când vom ajunge la ea, și a vedea dacă tmux tarifele mai bine.

RELATED: cum se utilizează comanda ecranului Linux

instalarea tmux

în timp ce screen este în general instalat implicit pe distribuțiile Linux populare, tmux nu este. pentru a instala tmux pe Ubuntu, tastați următoarele:

sudo apt-get install tmux

pe Manjaro puteți utiliza pacman:

sudo pacman -Sy tmux

pe Fedora 31, tmux este deja instalat.

pornirea unei sesiuni tmux

pentru a pornitmux, tastați-o și apăsați Enter:

tmux

fereastra terminalului va afișa o bară de stare când vă aflați într-o sesiunetmux.

partea dreaptă a barei de stare afișează numele gazdei și ora și data. Partea stângă prezintă următoarele informații legate de sesiune:

  • : Acesta este numele sesiunii. În mod implicit, acestea sunt numerotate, începând cu zero. Vom acoperi modul în care puteți da nume semnificative sesiunilor de mai jos.
  • 0:bash*: 0 indică faptul că aceasta este prima fereastră din această sesiune. Singurul proces care rulează în această sesiune este bash. Dacă rulați un program, numele acestuia va apărea aici. Asteriscul (*) înseamnă că aceasta este fereastra la care te uiți. De fiecare dată când creați o fereastră nouă într-o sesiune tmux, numărul ferestrei și numele programului care rulează în ea sunt adăugate la bara de stare.

comandascreen nu vă oferă o bară de stare. Trebuie să zbori orb și să te bazezi pe inteligența ta pentru a ști ce se întâmplă, ceea ce necesită un pic de practică.

publicitate

pe partea de plus, nu veți pierde o linie de ferestre terminale Imobiliare. Desigur, în mod normal, vă extindeți fereastra terminalului pentru a face utilă utilizarea unui multiplexor terminal. În acest caz, pierderea unei linii pentru bara de stare nu este o problemă. Am lăsat imaginile ferestrelor terminale aici la dimensiunea implicită, astfel încât să puteți vedea informațiile.

Comenzile sunt date tmux folosind apăsări de taste și există două părți în acest sens. Mai întâi, apăsați Ctrl+B pentru a obține atenția tmux. Apoi apăsați rapid tasta următoare pentru a trimite o comandă latmux. Comenzile sunt date prin apăsarea literelor, numerelor, semnelor de punctuație sau tastelor săgeată.

este la fel înscreen, cu excepția faptului că apăsați Ctrl+A pentru a-i atrage atenția.

pentru a închide fereastra, apăsați Ctrl+B, apoi apăsați rapid X. bara de stare devine chihlimbar. Apoi vi se solicită să confirmați că doriți să ucideți fereastra.

publicitate

Apăsați Y pentru a închide fereastra sau N dacă vă răzgândiți. Nu trebuie să apăsați Enter după aceea; Y sau N este suficient pentru a vă înregistra alegerea.

dacă apăsați Y, fereastra se închide. Deoarece aceasta este singura fereastră din această sesiune, sesiunea este încheiată.

tmux sesiunea este închisă și veți reveni la linia de comandă din care ați lansattmux. Veți vedea „” în fereastra terminalului.

Acest lucru ar putea părea că afirmă ceea ce este evident, dar este o confirmare că ați închis sesiunea și nu ați lăsat-o detașată și alergată. Vom discuta despre sesiunile de detașare de mai jos.

începerea unei sesiuni tmux numite

dacă începeți în mod regulat mai multe sesiunitmux, veți aprecia rapid funcționalitatea de a da fiecăruia un nume semnificativ. Puteți denumi sesiunile în screen, de asemenea, dar acestea nu sunt afișate nicăieri în ferestrele sesiunii.

Advertisement

pentru a pornitmux cu un nume de sesiune, utilizați comandanew (sesiune nouă) și opțiunea-s (nume sesiune). Sesiunea noastră se va numi „geek-1”, așa că tastăm următoarele:

tmux new -s geek-1

când se încarcă sesiunea tmux,” geek-1 ” este afișat ca prima intrare în bara de stare, în extrema stângă.

adăugarea mai multor ferestre

pentru a crea o fereastră nouă în sesiunea curentă, apăsați Ctrl+B, apoi C. Veți primi o fereastră de terminal goală în sesiunea curentă. Deci, vom avea ceva care rulează în această fereastră nouă, să începem dmesg comanda cu -w (urmați) opțiune:

dmesg -w
publicitate

acum avem două ferestre în sesiune; unul rulează top, iar celălalt dmesg. Putem vedea doar unul la un moment dat, deși (mai mult pe care într-un moment).

aruncați o privire în partea stângă a barei de stare. Suntem încă în sesiunea” geek-1″tmux. În window zero, top rulează, iar în window one,dmesg rulează. Asteriscul ( * ) după dmesg ne spune ce fereastră este vizibilă.

pentru a sări între ferestre, apăsați Ctrl+B, apoi una dintre tastele următoare:

  • N: Afișați următoarea fereastră.
  • P: afișează fereastra anterioară.
  • 0 la 9: Afișează o fereastră numerotată de la 0 la 9.

de asemenea, puteți alege o fereastră dintr-o listă. Dacă apăsați Ctrl + B și apoi W, apare o listă de ferestre.

Advertisement

pentru a muta bara de evidențiere chihlimbar, apăsați săgețile sus sau jos, acasă sau sfârșit. Secțiunea de jos a afișajului arată o previzualizare a conținutului în fereastra evidențiată.

apăsați Enter pentru a trece la fereastra evidențiată sau Esc pentru a părăsi lista de ferestre fără a comuta.

detașarea și atașarea sesiunilor

dacă apăsați Ctrl+B, apoi D, veți detașa sesiunea. Acesta va continua să ruleze în fundal, dar nu veți putea vedea sau interacționa cu acesta.

am început top în sesiune, deci avem un proces de rulare cu care să demonstrăm. Apoi, apăsăm Ctrl + B, apoi D. sesiunea dispare și devine o sesiune de fundal.

publicitate

ne întoarcem la fereastra terminalului original. Există un mesaj de la tmux care ne spune că sesiunea este detașată. De asemenea, ne amintește de numele pe care l-am dat sesiunii. Acest lucru este util pentru că asta folosim pentru a atașa la o sesiune de fundal și apoi pentru a o restabili la una interactivă.

pentru a atașa o sesiune detașată, vom folosi auto-explicativattach-session comanda cu-t (sesiune țintă) opțiune. Vom oferi, de asemenea, numele sesiunii pe care dorim să o reamintim.

tastăm următoarele:

tmux attach-session -t geek-1

sesiunea noastră revine și devine din nou o sesiune vizibilă, interactivă.

orice proces de lungă durată sau continuu pe care l-ați lansat înainte de a detașa sesiunea va continua să ruleze în fundal (cu excepția cazului în care s-au terminat) atunci când atașați sesiunea.

screen poate face acest lucru, dar nu la fel de intuitiv.

manipularea mai multor sesiuni

să deschidem o altă fereastră terminal, și începe o nouă tmux sesiune numit „geek-2”:

tmux new -s geek-2

în acea sesiune, vom începe dmesg:

dmesg -w
publicitate

acum, ne-am luat nostru Original „Geek-1” tmux sesiune, și unul nou numit „Geek-2.”

bara de stare ne arată că această sesiune se numește” geek-2″și are o fereastră care ruleazădmesg.

dacă apăsăm Ctrl+B și apoi D, detașăm acea sesiune.

publicitate

înapoi în „geek-1”tmux sesiune, apăsăm Ctrl+B, și apoi S pentru a vedea o listă detmux sesiuni.

pentru a fi clar, aceasta este o listă de sesiuni. Afișajul similar pe care l-am văzut mai devreme a fost o listă de ferestre într-o singură sesiune.

puteți muta bara de evidențiere chihlimbar apăsând săgețile sus și jos, acasă și sfârșit. Secțiunea de jos afișează o previzualizare a conținutului în sesiunea evidențiată.

dacă apăsați săgeata dreapta, se afișează ferestrele pentru sesiunea evidențiată.

Advertisement

apăsați Enter pentru a trece la sesiunea sau fereastra evidențiată sau Esc pentru a părăsi lista de sesiuni fără a schimba sesiunile. Dacă selectați o sesiune nouă, cea curentă se detașează, iar cea selectată este atașată.

am detașat sesiunea „geek-2” înainte de a face acest lucru. Cu toate acestea, puteți face acest lucru cu sesiuni care sunt încă atașate la ferestrele terminale originale. Când faceți acest lucru, orice modificare a ecranului va apărea simultan în ambele sesiuni tmux.

screen comanda poate face acest lucru, de asemenea, printr-un set similar de comenzi.

lucrul cu geamurile

dacă apăsați Ctrl+B, apoi ghilimele duble („”), împărțiți fereastra orizontal în două geamuri.

publicitate

aceasta afectează numai fereastra curentă; celelalte din sesiune nu vor fi modificate. Am folosit comanda tmux ls din panoul de sus pentru a lista ferestrele din această sesiune. Există două, iar linia de stare ne spune că suntem în prima fereastră. Dacă trecem la fereastra zero apăsând Ctrl + B și apoi 0 (zero), vedem că este exact așa cum l-am lăsat.

acestea sunt două linii de comandă independente, nu două vizualizări într-o singură fereastră; sunt cochilii distincte și separate. Putem arăta acest lucru executând o comandă diferită în fiecare panou.

tastăm următoarele:

uname -a

ls -hl

pentru a trece de la un panou la altul, apăsați Ctrl+B, apoi săgeata sus, jos, stânga sau dreapta.

dacă apăsați Ctrl+B, apoi semnul procentual (%) împarte panoul curent pe verticală.

publicitate

apăsați Ctrl+B, și apoi Q pentru a facetmux flash scurt numărul fiecărui panou.

aceste numere sunt utilizate în solicitări și mesaje de latmux. Apăsați Ctrl + B, apoi X pentru a închide panoul curent. Bara de stare se schimbă în chihlimbar și vi se solicită să confirmați că doriți să închideți numărul panoului respectiv. Apăsați Y pentru a elimina panoul sau N pentru a lăsa lucrurile așa cum sunt.

dacă apăsați Y, panoul este eliminat.

comandascreen are și geamuri, dar, din nou, sunt mai puțin intuitive de utilizat. Lucrul care ne enervează la screen este dacă detașați o sesiune cu geamuri, acestea dispar atunci când reatașați acea sesiune. Acest lucru devine vechi foarte repede.

A Ctrl+B Cheat Sheet

am inclus o foaie de cheat a diferitelor comenzi pe care le puteți utiliza întmux mai jos.

comenzi de sesiune

  • S: listează sesiunile.
  • $: redenumiți sesiunea curentă.
  • D: Detașați sesiunea curentă.
  • Ctrl+B, și apoi ?: Afișează pagina de ajutor în tmux.

comenzile ferestrei

  • C: creați o fereastră nouă.
  • ,: redenumiți fereastra curentă.
  • W: listați ferestrele.
  • N: treceți la fereastra următoare.
  • P: treceți la fereastra anterioară.
  • 0 la 9: treceți la numărul ferestrei specificat.

comenzile panoului

  • %: creați o împărțire orizontală.
  • „: creați o divizare verticală.
  • H sau Săgeată stânga: Deplasați-vă la panoul din stânga.
  • i sau Săgeată dreapta: Deplasați-vă la panoul din dreapta.
  • J sau Săgeată în jos: Deplasați-vă la panoul de mai jos.
  • K sau Săgeată sus: deplasați-vă la panoul de mai sus.
  • Î: afișați pe scurt numerele panoului.
  • O: deplasați-vă prin geamuri În ordine. Fiecare apăsare vă duce la următoarea, până când bucla prin toate acestea.
  • }: schimbați poziția panoului curent cu următoarea.
  • {: schimbați poziția panoului curent cu cea anterioară.
  • X: închideți panoul curent.

cum se compară

în termeni de funcționalitate,screen șitmux ambele funcționează în mod similar și oferă aceleași caracteristici principale. Modul în care accesați aceste funcții este semnificativ diferit. tmux oferă modalități mai ușoare și mai confortabile de a ajunge la diferitele funcții. Totuși, aceasta nu este singura diferență.

publicitate

capacitatea de a redenumi sesiuni și ferestre întmux este curat, și faptul că acesta păstrează geamurile atunci când reatașați o sesiune este un schimbător de joc.

screen, pe de altă parte, pierde complet geamurile atunci când detașați și reatașați o sesiune. Acest lucru este aproape suficient de enervant pentru a vă face să evitați detașarea în primul rând.

există atât de mult mai mult latmux, inclusiv capacitățile sale de scripting incredibil de flexibile. Îți ești dator să verifici.

Dave McKay a folosit pentru prima dată computerele când banda de hârtie perforată era în vogă și de atunci programează. După peste 30 de ani în industria IT, el este acum un jurnalist de tehnologie full-time. În timpul carierei sale, a lucrat ca programator independent, manager al unei echipe internaționale de dezvoltare software, manager de proiect de servicii IT și, cel mai recent, ca ofițer de protecție a datelor. Dave este un evanghelist Linux și avocat open source.Citește Bio complet ”