GNU/Linux >> Znalost Linux >  >> Linux

Jak tmux vyvolává radost ve vašem linuxovém terminálu

Dovolte mi připravit scénu:Jednoho dne jsem ladil časově náročný proces generátoru funkcí. Měl jsem otevřený terminál na svém Macu a byl jsem připojen ke svému vzdálenému virtuálnímu počítači Linux (VM), kde by byl proces zahájen. Zkontroloval jsem pár věcí ve scénáři a všechno vypadalo dobře. Ale když jsem zahájil proces, bylo právě na čase odejít z kanceláře. Zavření mého notebooku by zabilo můj shell, což by zabilo celý proces. Tento proces trvá věčnost a místo toho, abych mohl výsledky ladit, když jsem se vrátil domů, musel bych jej znovu spustit a čekat, až skončí. Začal jsem se smiřovat s tím, že budu muset zůstat pozdě, a nebyl jsem z tohoto obratu šťastný.

Spolupracovník si všiml mé frustrace a zeptal se, jak by mohl pomoci. Vysvětlil jsem svůj problém a řekl, že musí existovat způsob, jak pokračovat v procesu, i když jsem zavřel terminál, protože byl na vzdáleném virtuálním počítači. Bál jsem se, že to bude muset být napojeno na mou mušli, aby nezemřelo. Potom mi představil tmux.

Vzdálené spouštění skriptů pomocí tmux

Linuxový terminál

  • 7 nejlepších emulátorů terminálu pro Linux
  • 10 nástrojů příkazového řádku pro analýzu dat v systému Linux
  • Stáhnout nyní:SSH cheat sheet
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Výukové programy příkazového řádku systému Linux

Pro začátek jsem provedl yum instalaci tmux. Poté jsem zahájil relaci tmux zadáním tmux jako příkaz. V této relaci tmux jsem mohl dělat vše, co bych dělal ve svém normálním prostředí. Protože jsem proces právě spustil, zabil jsem ho v původním terminálu. Pak jsem přešel do relace tmux a znovu spustil skript, aby se proces spustil. Nakonec jsem svůj notebook uspal jako typický konec mého pracovního dne.

Když jsem vrátil svůj laptop zpět, můj terminálový shell se odpojil od mého VM, jak jsem očekával. Přihlásil jsem se zpět k virtuálnímu počítači v shellu, až na to, že byl prázdný, jako když shell normálně bývá, když ho právě spustíte. Moje počáteční reakce byla panika, ale pak jsem se dozvěděl, že potřebuji znovu získat přístup k relaci tmux, protože na pozadí jen hučí.

Pro opětovné připojení k mé relaci tmux jsem zadal tmux ls vypsat všechny relace, které jsem měl otevřené. Byla pouze jedna, relace 0. Abych se mohl vrátit do této relace, musel jsem udělat tmux attachment -t 0 . Hle, relace se objevila a můj skript stále běžel. Byl jsem u vytržení a rychle jsem se chtěl naučit, co dalšího bych mohl s tmuxem dělat.

Použití tmux jako správce oken

Nikdy nezavírám karty prohlížeče a nikdy nezavírám okna, takže mám pravděpodobně otevřených a spuštěných asi 20 terminálů v kterýkoli okamžik. Marie Kondo pravděpodobně cítí poruchu síly, kdykoli otevřu nové okno. Ale místo toho, abych měl otevřené čtyři terminály, které jsou všechny připojeny ke stejnému VM, a snažil jsem se je sledovat a kde se nacházejí v mém seznamu terminálů, pomocí tmux mohu otevřít jeden terminál k VM a mít v tomto terminálu čtyři panely. To se opravdu hodí. Například často spouštím proces na virtuálním počítači a pak potřebuji někde upravit soubor vlastností. Protože první proces stále běží, otevřu další terminál, abych soubor upravil. Pak si uvědomím, že musím spustit druhý proces a zároveň sledovat protokol v jiném okně, abych věděl, jak upravit soubor vlastností, který jsem právě otevřel. Bez tmux by to vytvořilo tři terminály, které by nikdy nebyly uzavřeny.

tmux byl obzvláště záchranou pro spouštění Dockeru a Kubernetes. Je neuvěřitelně užitečné věnovat kontejner jeho vlastnímu panelu namísto otevírání nového terminálu. Hlavní panel mi umožňuje sledovat stav mých kontejnerů. Kdykoli potřebuji vstoupit do kontejneru, mohu snadno otevřít nový panel. Mohu dokonce spustit docker-compose up a docker-compose down na každém kontejneru současně, pokud chci, a mít během toho otevřený pouze jeden terminál.

Panely jsou již naformátované a přiléhají k sobě, takže nemusím shromažďovat všechny své terminály, které jsou připojeny k jednomu virtuálnímu počítači, a zkoušet je přetahovat vedle sebe na svůj monitor – jen abych to musel udělat znovu, když potřebuji otevřít nový terminál. tmux vám dokonce umožňuje měnit velikost jednotlivých panelů za běhu! Je opravdu snadné zavřít panel, když s tím skončíte. Neuzavíráte terminál k VM; stačí otevřít podokno zálohovat. To mi pomáhá udržovat pracovní plochu čistou, místo abych ji zaplňoval zapomenutými terminály.

Přemapování prefixu tmux

Nedávno jsem se dozvěděl, že mohu přemapovat prefix tmux, aby bylo vše ještě jednodušší. Před provedením příkazu tmux (např. vytvořením nového panelu, změnou velikosti panelu nebo zkopírováním a vložením nějakého textu do vašeho terminálu) musíte zadat konkrétní vzor klíče, aby tmux věděl, že se chystáte vyvolat příkaz tmux místo jakéhokoli starého linuxového příkazu. Výchozí předpona je CTRL+b . Například příkaz k otevření nového panelu vodorovně sousedícího s vaším aktuálním je pouze % , ale aby tmux naslouchal, museli byste zadat CTRL+b+% . CTRL+b je pro mě trochu nepohodlné, tak jsem to přemapoval na backtick (`). Přemapovaná předpona dělá věci plynulejšími, než kdybyste museli stisknout dvě klávesy, které nejsou příliš příhodně umístěny. Nyní, pokud chci nový panel, stačí zadat `+% a voila!

tmux od začátku do konce

První věc, kterou udělám na jakémkoli novém Linuxovém VM, je nainstalovat tmux. První věc, kterou udělám v jakémkoli terminálu připojeném k virtuálnímu počítači Linux, je spuštění relace tmux! Po instalaci tmux dokonce pořizuji snímky základního virtuálního počítače, takže pokud se potřebuji vrátit ke snímku, nemusím znovu instalovat tmux. Kdykoli se znovu přihlásím k virtuálnímu počítači s Linuxem, vždy udělám tmux ls najít svou předchozí relaci tmux, pak se k ní připojit a klip přesně tam, kde jsem naposledy skončil.


Linux
  1. Jak přinést štěstí do vašeho linuxového terminálu

  2. Jak předvánočně upravit váš linuxový terminál a Shell

  3. Jak zaznamenat váš terminál Linux pomocí asciinema

  1. Jak nastavit tiskárnu v systému Linux

  2. Jak změnit barvu vašeho terminálu Linux

  3. Vydejte se na dobrodružství ve svém linuxovém terminálu

  1. Zahrajte si Tetris na svém linuxovém terminálu

  2. Jak prakticky používat svůj linuxový terminál (čtyři příklady)

  3. Jak zaznamenat relaci terminálu v systému Linux