Jak používat příkaz obrazovky Linuxu

Pomocí příkazu Linux screen můžete spuštěné terminálové aplikace odsunout na pozadí a vytáhnout je dopředu, když je chcete vidět. Podporuje také rozdělené obrazovky a funguje přes připojení SSH, i když se odpojíte a znovu připojíte!

Co je příkaz obrazovky?

Příkaz obrazovky je a terminálový multiplexera je naprosto nabitý možnostmi. Říci, že to může udělat hodně, je dědeček podceňování. Manuální stránka běží na více než 4 100 řádcích.

Níže jsou uvedeny nejběžnější případy, kdy byste použili příkaz screen, a my se jim budeme dále věnovat v tomto článku:

Standardní operací je vytvoření nového okna s shellem, spuštění příkazu a následné posunutí okna na pozadí (tzv. „odpojení“). Když chcete vidět, jak si váš proces vede, můžete okno znovu vytáhnout do popředí („znovu připojit“) a znovu jej použít. To je skvělé pro dlouhé procesy, které nechcete náhodně ukončit zavřením okna terminálu.
Jakmile máte spuštěnou relaci obrazovky, můžete vytvářet nová okna a spouštět v nich další procesy. Mezi okny můžete snadno přeskakovat a sledovat jejich průběh. Můžete také rozdělit okno terminálu na vertikální nebo horizontální oblasti a zobrazit různá okna obrazovky v jednom okně.
Můžete se připojit ke vzdálenému počítači, spustit relaci obrazovky a spustit proces. Můžete se odpojit od vzdáleného hostitele, znovu se připojit a váš proces bude stále běžet.
Můžete sdílet relaci obrazovky mezi dvěma různými připojeními SSH, takže dva lidé mohou vidět totéž v reálném čase.

Instalace obrazovky

Chcete-li nainstalovat obrazovku na ubuntu, použijte tento příkaz:

sudo apt-get install screen

The

Chcete-li nainstalovat obrazovku na Manjaro, použijte následující příkaz:

sudo pacman -Sy screen

The

Na Fedoře zadáte následující:

sudo dnf install screen

The

Začínáme s obrazovkou

Chcete-li úvodní obrazovku, jednoduše ji napište, jak je uvedeno níže, a stiskněte Enter:

screen

The

Zobrazí se stránka s informacemi o licenci. Stisknutím mezerníku můžete přečíst druhou stránku nebo stisknutím klávesy Enter se vrátit na příkazový řádek.

The

Zbývá vám příkazový řádek a zdá se, že se nic moc nestalo. Nyní však spouštíte shell uvnitř multiplexovaného emulátoru terminálu. Proč je to dobrá věc? No, začněme proces, jehož dokončení bude trvat dlouho. Stáhneme si zdrojový kód nejnovějšího linuxového jádra a přesměrujeme ho do souboru s názvem nejnovější_kernel.zip.

Za tímto účelem zadáme následující:

curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

The nejnovější_kernel.zip” v okně terminálu.‘ width=”646″ height=”77″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Naše stahování začíná a výstup curl nám ukazuje průběh.

Výstup z nejnovější_kernel.zip” v okně terminálu.‘ width=”646″ height=”247″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Nemůžeme vám ukázat obrázek dalšího bitu, protože je to sekvence úhozů. Zadáte Ctrl+A, uvolníte tyto klávesy a poté stisknutím klávesy d odpojíte obrazovku.

  Jak používat možnost sledování v aplikaci Outlook

Proces stahování stále běží, ale okno zobrazující stahování je odstraněno. Vrátíte se do okna terminálu, ze kterého jste spustili relaci obrazovky. Zpráva vám sdělí, že okno obrazovky označené 23167.pts-0.wdzwdz bylo odpojeno.

K opětovnému připojení potřebujete číslo ze začátku názvu okna. Pokud jej zapomenete, můžete vždy použít volbu -ls (seznam), jak je uvedeno níže, k získání seznamu oddělených oken:

screen -ls

The

Až budete připraveni, můžete použít volbu -r (reattach) a číslo relace k opětovnému připojení, například takto:

screen -r 23167

The

Okno, které fungovalo na pozadí, se nyní vrátí zpět do okna vašeho terminálu, jako by nikdy neopustilo.

Pokud se jedná o proces, který bude probíhat až do konce, bude nakonec dokončen. Pokud se jedná o nepřetržitý proces, budete jej nakonec chtít ukončit. V každém případě, když proces skončí, můžete pro ukončení obrazovky zadat příkaz exit. Případně můžete stisknout Ctrl+A a poté K, abyste okno vynuceně zabili.

Zadejte následující příkaz:

exit

The

Vrátíte se do předchozího okna terminálu, které bude stále zobrazovat příkaz, který jste použili k opětovnému připojení okna. Protože jsme zavřeli naše jediné oddělené okno, dostaneme zprávu, že obrazovka končí.

The

Použití pojmenovaných relací obrazovky

K pojmenování relace obrazovky můžete použít volbu -S (název relace). Pokud místo číselné identity relace použijete zapamatovatelné jméno, je pohodlnější se k relaci znovu připojit. Pro pojmenování naší relace „bigfile“ zadáme následující:

screen -S bigfile

The

Když obrazovka spustí naši relaci, vidíme prázdné okno s příkazovým řádkem. Budeme stahovat velký soubor, takže jako příklad můžeme použít dlouhotrvající proces.

Zadáme následující:

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

The bigfile.zip” v okně terminálu.‘ width=”646″ height=”77″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);” onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Když stahování začne, stiskneme Ctrl+A a poté stiskneme D k odpojení relace. Chcete-li použít volbu -ls (seznam) s obrazovkou, abyste viděli podrobnosti o naší oddělené relaci, zadáme následující:

screen -ls

The

Za číselným identifikátorem (23266) vidíme název naší relace (bigfile). Abychom ji znovu připojili, zadáme následující, včetně názvu relace:

screen -r bigfile

The

Jsme znovu připojeni k našemu oknu stahování a vidíme, že dlouhé stahování stále probíhá.

Po dokončení stahování napíšeme exit, aby se okno relace zavřelo.

Použití obrazovky s více okny

Dosud jsme používali obrazovku k umístění jednoho procesu na pozadí v odděleném okně. Obrazovka však umí mnohem víc. Dále spustíme několik procesů, které nám umožní sledovat některé aspekty našeho počítače.

Chcete-li zahájit relaci obrazovky s názvem „monitor“, zadáme následující:

screen -S monitor

The

Na příkazovém řádku v naší relaci nového okna spustíme dmesg a použijeme volby -H (čitelný pro člověka) a -w (čekání na nové zprávy). Tohle bude zobrazit zprávy o vyrovnávací paměti jádra; nové zprávy se objeví, jakmile se objeví.

  Před Mac OS X: Co byl NeXTSTEP a proč ho lidé milovali?

Zadáme následující:

dmesg -H -w

The

Objeví se existující zprávy. Nejsme vráceni do příkazového řádku, protože dmseg čeká na nové zprávy a zobrazí je, jakmile dorazí.

The

Chceme spustit jinou aplikaci, takže potřebujeme nové okno obrazovky. Stisknutím Ctrl+A a poté C vytvoříme nové okno. Budeme k tomu používat hodinky opakovaně běžet vmstat, takže dostáváme často aktualizované zobrazení využití virtuální paměti na našem počítači.

Na nový příkazový řádek zadáme následující:

watch vmstat

The

Výstup vmstat se objeví a aktualizuje každé dvě sekundy.

The

Naše dva procesy nyní běží. Chcete-li přeskakovat mezi okny obrazovky, stiskněte Ctrl+A a číslo okna. První, které jsme vytvořili, je okno nula (0), další je okno 1 a tak dále. Chcete-li přejít na první okno (dmesg), stiskněte Ctrl+A a 0.

Návrat k

Pokud stiskneme Ctrl+A a 1, vrátíme se zpět do okna vmstat.

Návrat k

To je docela trefné! Můžeme stisknout Ctrl+A a potom D pro odpojení od této relace; můžeme znovu připojit později. Obě relace budou stále probíhat. Opět pro přepínání mezi okny stiskneme Ctrl+A a číslo (0 nebo 1) okna, na které se chceme přepnout.

Pojďme k dalšímu kroku a zobrazme obě obrazovky v jednom okně. Když to uděláte, roztáhnete okno terminálu na velikost, díky které je tento krok užitečný. Naše příklady jsou omezeny na velikost našich snímků obrazovky, takže naše okna budou vypadat trochu stísněně.

Chcete-li to provést, stiskněte Ctrl+A a poté Shift+S (je vyžadováno velké „S“).

Okno se rozdělí na dvě „oblasti“.

A

Horní oblast stále zobrazuje vmstat a spodní oblast je prázdná. Kurzor je zvýrazněn na snímku obrazovky níže. Chcete-li jej přesunout do nižší oblasti, stiskněte Ctrl+A a poté Tab.

A

Kurzor se přesune do spodní oblasti, která je ve skutečnosti jen prázdné místo. Není to skořápka, takže do ní nemůžeme nic napsat. Chcete-li získat užitečné zobrazení, stiskněte Ctrl+A a poté stiskněte „0“ pro zobrazení okna dmesg v této oblasti.

The

To nám dává oba živé výstupy v jednom rozděleném okně. Pokud stisknutím kláves Ctrl+A a D okno odpojíme a poté jej znovu připojíme, ztratíme zobrazení s rozděleným panelem. Můžeme jej však obnovit pomocí následujících klávesových zkratek:

Ctrl+A, S: Vodorovné rozdělení okna.
Ctrl+A, Tab: Přesune se do spodní oblasti.
Ctrl+A, 0: Zobrazení nuly okna v dolní oblasti.

Můžeme věci posunout ještě o krok dále. Nyní rozdělíme spodní panel svisle a přidáme k displeji třetí proces. S kurzorem v dolní oblasti stiskneme Ctrl+A a C pro vytvoření nového okna s shellem. Spodní oblast zobrazí nové okno a poskytne nám příkazový řádek.

A

Dále spustíme příkaz df to zkontrolovat využití systému souborů:

df

A

Když vidíme, že df běží, stiskneme Ctrl+A a znak roury (|). Tím se spodní oblast vertikálně rozdělí. Stisknutím kláves Ctrl+A a Tab se přesuneme do nové oblasti. Dále stiskneme Ctrl+A a 0 pro zobrazení okna dmesg.

  7 tipů, jak učinit web čitelnějším na iPhonu

A

Můžete se také přesouvat z oblasti do oblasti a přidat další vertikální nebo horizontální rozdělení. Zde je několik dalších užitečných kombinací kláves:

Ctrl+A: Přeskakování tam a zpět mezi aktuální a předchozí oblastí.
Ctrl+A, Q: Zavře všechny oblasti kromě aktuální.
Ctrl+A, X: Zavře aktuální oblast.

Použití obrazovky přes SSH

Pomocí obrazovky můžete spustit relaci okna, odpojit je, aby stále běželo na pozadí, odhlásit se nebo znovu přihlásit a znovu relaci připojit.

Udělejme SSH připojení k našemu počítači z jiného pomocí příkazu ssh. Musíme zadat název účtu, ke kterému se připojíme, a adresu vzdáleného počítače.

Pro náš příklad zadáme následující:

ssh [email protected]

The

Poté, co se ověříme na vzdáleném počítači a přihlásíme se, zadáme následující, abychom zahájili relaci obrazovky s názvem „ssh-geek“:

screen -S ssh-geek

The

Pro demonstrační účely spustíme v horní části okna obrazovky, ale můžete spustit jakýkoli dlouhotrvající nebo nekonečný proces.

Zadáme následující:

top

The

Jakmile v okně běží top, stiskneme Ctrl+A a poté D, abychom okno odpojili.

The

Jsme vráceni do původního okna vzdáleného terminálu.

Pokud napíšeme exit, jak je znázorněno níže, odpojí relaci SSH a jsme zpět na našem místním počítači:

exit

The

Pro opětovné připojení zadáme následující:

ssh [email protected]

The

Až se znovu připojíme a přihlásíme, můžeme relaci obrazovky znovu připojit zadáním následujícího:

screen -r ssh-geek

The

Nyní jsme znovu připojeni k naší stále běžící instanci top.

The

To je skvělé, pokud chcete zahájit proces na jednom počítači a poté pokračovat tam, kde jste skončili na jiném.

Sdílení relace obrazovky

Můžete také použít relaci obrazovky, která umožní dvěma lidem vidět a pracovat se stejným oknem. Řekněme, že někdo, kdo na svém počítači používá Fedoru, se chce připojit k našemu serveru Ubuntu.

Napsal by následující:

ssh [email protected]

The

Poté, co se připojí, spustí relaci obrazovky s názvem „ssh-geek“ pomocí volby -S (název relace). Také používá volby -d (odpojit) a -m (vynucené vytvoření) k vytvoření nové relace obrazovky, která je již odpojena.

Napíše následující:

screen -d -m -S ssh-geek

The

Pomocí volby -X (režim více obrazovek) napíše relaci:

screen -X ssh-geek

The

Na počítači Manjaro se jiná osoba připojí k počítači Ubuntu se stejnými přihlašovacími údaji účtu, jak je uvedeno níže:

ssh [email protected]

The

Jakmile se připojí, napíše příkaz screen a použije volbu -X (multiscreen mode), aby se připojila ke stejné relaci okna, např.

screen -X ssh-geek

The

Nyní, cokoli jedna osoba napíše, druhá uvidí. Když například jedna osoba vydá příkaz datum, oba jej uvidí tak, jak je napsán, a také jeho výstup.

The

Výstup z

Oba lidé nyní sdílejí relaci obrazovky, která běží na vzdáleném počítači Ubuntu.

U softwaru, který poprvé spatřil světlo světa v roce 1987, je obrazovka stále ještě pořádná úskalí produktivity. Seznámení s ním bude dobře strávený čas!