Vyhledávání na webu

20 Příklady příkazů obrazovky pro správu terminálů Linux


Stručně: V této příručce probereme některé užitečné příklady příkazu screen. Na konci této příručky budou uživatelé schopni pracovat s více shellovými relacemi pomocí jediného okna linuxového terminálu.

Jako uživatelé Linuxu často potřebujeme pracovat na dlouhotrvajících úlohách, jako je – stahování nebo kopírování velkých souborů, provádění časově náročných databázových dotazů a podobně. Někdy jsou tyto důležité úkoly náhle ukončeny kvůli vypršení časového limitu relace.

Ke zmírnění takových scénářů můžeme použít příkaz screen, což je celoobrazovkový softwarový program, který lze použít k multiplexování fyzické konzole mezi několika procesy (typicky interaktivními shelly). Nabízí uživateli otevřít několik samostatných instancí terminálu v rámci jednoho správce oken terminálu.

Aplikace screen je velmi užitečná, pokud pracujete s více programy z rozhraní příkazového řádku a pro oddělení programů od shellu terminálu. Umožňuje vám také sdílet vaše relace s ostatními uživateli a odpojit/připojit terminálové relace.

V této příručce probereme, jak nainstalovat, nakonfigurovat a používat příkaz obrazovky v systému Linux. V této příručce na praktických příkladech porozumíme použití a výhodám příkazu obrazovky.

Pojďme tedy začít.

Nainstalujte Screen Command v Linuxu

Na mém Ubuntu Server Edition je ve výchozím nastavení nainstalován příkaz screen. Linux Mint však ve výchozím nastavení nemá nainstalovanou obrazovku, takže ji musím před použitím nejprve nainstalovat pomocí příkazu apt-get .

Při instalaci obrazovky postupujte podle instalačního postupu distribuce.

sudo apt-get install screen      [On Debian, Ubuntu and Mint]
sudo yum install screen          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/screen   [On Gentoo Linux]
sudo apk add screen              [On Alpine Linux]
sudo pacman -S screen            [On Arch Linux]
sudo zypper install screen       [On OpenSUSE]    

Nyní ověřte, zda byl příkaz úspěšně nainstalován:

screen --version

Screen version 4.8.00 (GNU) 05-Feb-20

screen je ve skutečnosti velmi dobrý program terminálového multiplexeru v Linuxu, který je skryt ve stovkách příkazů Linuxu.

Začněme vidět použití příkazu screen v Linuxu pomocí následujících příkladů.

Syntaxe příkazu obrazovky

Syntaxe příkazu screen je následující

screen [OPTIONS] [ CMD [ ARGS ] ]

Ve výše uvedené syntaxi vidíme, že všechny parametry jsou volby a jsou reprezentovány hranatými závorkami ([]).

1. První úvodní obrazovka

Do příkazového řádku zadejte screen. Poté se na obrazovce zobrazí rozhraní přesně jako příkazový řádek.

screen

2. Zobrazit parametr obrazovky

Když vstoupíte na obrazovku, můžete veškerou svou práci dělat tak, jak jste v normálním prostředí příkazového řádku. Ale protože obrazovka je aplikace, tak má příkazy nebo parametry.

Zadejte „Ctrl-A“ a „?“ bez uvozovek. Poté na obrazovce uvidíte všechny příkazy nebo parametry.

Chcete-li se dostat z obrazovky nápovědy, můžete stisknout tlačítko „mezerník “ nebo „Enter“. (Upozorňujeme, že všechny zkratky, které používají „Ctrl-A “, jsou provedeny bez uvozovek).

3. Jak zobrazit seznam všech otevřených oken

V předchozím příkladu jsme spustili novou relaci shellu pomocí příkazu screen. Nyní pomocí kombinace kláves ctrl-a + " zobrazíme seznam všech otevřených oken aktuální relace obrazovky:

Ve výše uvedeném výstupu vidíme číslo a název okna. První sloupec představuje číslo okna a začíná od nuly.

Další sloupec představuje název okna a jeho výchozí formát je @:.

4. Jak ukončit relaci okna obrazovky

Aktivní relaci okna můžeme ukončit pomocí kombinace kláves ctrl-a + k. Je důležité si uvědomit, že tato akce přeruší provádění příkazu z aktuálního virtuálního okna.

Ve výše uvedeném výstupu vidíme, že příkaz screen čeká na potvrzení uživatele. V levém dolním rohu se zobrazí varovná zpráva.

Stejně jako ostatní příkazy Linuxu můžeme použít 'y' pro pokračování nebo 'n' pro přerušení operace.

5. Jak zahájit relaci obrazovky s názvem

Příkaz screen nám umožňuje vytvořit relaci s uživatelem definovaným názvem, což se hodí, když je k dispozici více relací.

Použijme tedy možnost -S příkazu k vytvoření pojmenované relace:

screen -S demo-screen

Ve výše uvedeném příkazu je ukázková obrazovka názvem relace.

6. Odpojte terminálovou relaci s obrazovkou

Jednou z výhod obrazovky je, že ji lze odpojit. Poté jej můžete obnovit, aniž byste ztratili cokoli, co jste na obrazovce udělali. Zde je ukázkový scénář:

Nacházíte se uprostřed SSH na vašem serveru. Řekněme, že stahujete 400 MB opravu pro váš systém pomocí příkazu wget.

Proces stahování bude podle odhadů trvat 2 hodiny. Pokud odpojíte relaci SSH nebo se spojení nešťastnou náhodou ztratí, proces stahování se zastaví. Musíte začít znovu od začátku. Abychom tomu zabránili, můžeme použít zástěnu a odpojit ji.

Podívejte se na tento příkaz. Nejprve musíte vstoupit na obrazovku.

screen

Poté můžete provést proces stahování. Například na mém Linux Mint upgraduji svůj balíček dpkg pomocí příkazu apt.

sudo apt install dpkg
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be upgraded:
  dpkg
1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded.
Need to get 2,583 kB of archives.
After this operation, 127 kB of additional disk space will be used.
Get:1 http://debian.linuxmint.com/latest/ 
testing/main dpkg i386 1.16.10 [2,583 kB]
47% [1 dpkg 1,625 kB/2,583 kB 47%]     14,7 kB/s

Během stahování můžete stisknout „Ctrl-A“ a „d“. Po stisknutí těchto tlačítek nic neuvidíte. Výstup bude takový:

[detached from 5561.pts-0.mint]
pungki@mint ~ $

7. Znovu připojte terminálovou relaci s obrazovkou

Po odpojení obrazovky řekněme, že odpojujete relaci SSH a vracíte se domů. U vás doma začnete znovu SSH na svůj server a chcete vidět průběh procesu stahování. Chcete-li to provést, musíte obnovit obrazovku. Můžete spustit tento příkaz:

pungki@mint ~ $ screen -r

A uvidíte, že proces, který jste opustili, stále běží.

Pokud máte více než 1 relaci obrazovky, musíte zadat ID relace obrazovky. Pomocí -ls obrazovky zjistíte, kolik obrazovek je k dispozici.

pungki@mint ~ $ screen -ls
pungki@mint ~ $ screen -ls
There are screens on:
        7849.pts-0.mint (10/06/2021 01:50:45 PM)        (Detached)
        5561.pts-0.mint (10/06/2021 11:12:05 AM)        (Detached)
2 Sockets in /var/run/screen/S-pungki

Pokud chcete obnovit obrazovku 7849.pts-0.mint, zadejte tento příkaz.

pungki@mint ~ $ screen -r 7849

8. Používání Windows terminálu s více obrazovkami

Když ke své práci potřebujete více než 1 obrazovku, je to možné? Ano to je. Můžete spustit více oken obrazovky současně. Existují 2 (dva) způsoby, jak to udělat.

Nejprve můžete odpojit první obrazovku a spustit další obrazovku na skutečném terminálu. Za druhé, uděláte vnořenou obrazovku, jak je znázorněno.

Chcete-li vytvořit nová okna, použijte kombinaci kláves ctrl-a + c dvakrát a vytvořte dvě nová okna. Dále pomocí kombinace kláves ctrl-a + " vypíšeme všechna aktivní okna:

Ve výše uvedeném výstupu vidíme, že nyní existují tři okna.

9. Jak přejmenovat okno obrazovky

V předchozím příkladu jsme vytvořili dvě nová okna. Jejich výchozí názvy však o nich neposkytují žádné podrobnosti. V takových případech jim můžeme přiřadit nějaké smysluplné názvy.

K přejmenování aktuální relace okna můžeme použít kombinaci kláves ctrl-a + A. Tato kombinace kláves vyzve uživatele k nastavení názvu okna:

10. Přepínání mezi Windows terminálu obrazovky

V předchozím příkladu jsme vytvořili více oken. Nyní se podívejme, jak mezi nimi přepínat.

Nejprve si vypišme všechna aktivní okna pomocí kombinace kláves ctrl-a + ". Poté pomocí kláves se šipkou nahoru nebo dolů vyberte příslušné okno. Nakonec stisknutím klávesy enter přepněte na vybrané okno okno.

V tomto příkladu jsme vybrali okno s názvem – db-query.

11. Jak přejít na další okno obrazovky

K přechodu do dalších oken můžeme použít kombinaci kláves ctrl-a + n. Pochopme to na příkladu.

Nejprve se přepněte do prvního okna a ověřte jej pomocí kombinace kláves ctrl-a + ":

Nyní stiskněte dvakrát kombinaci kláves ctrl-a + n, abyste přešli do třetího okna a pomocí kombinace kláves ctrl-a + " totéž ověřili.

Ve výše uvedeném výstupu vidíme, že jsme ve třetím okně.

12. Jak přejít do předchozího okna

Obdobným způsobem se můžeme pomocí kombinace ctrl-a + p přepnout do předchozího okna.

Momentálně jsme na třetím okně. Použijme tedy dvakrát kombinaci kláves ctrl-a + p a ověřte, že jsme opět v prvním okně:

Ve výše uvedeném výstupu vidíme, že jsme se nyní vrátili do prvního okna.

13. Jak přepínat mezi aktuálním a předchozím oknem

Někdy prostě chceme přepínat mezi dvěma okny. V takových případech můžeme použít kombinaci kláves ctrl-a + ctrl-a.

Abyste tomu porozuměli, nejprve se přepněte do prvního okna:

Dále přejděte do posledního okna:

Nakonec pomocí kombinace kláves ctrl-a + ctrl-a přejděte znovu na první okno.

14. Jak přejít na konkrétní okno obrazovky

V předchozích příkladech jsme viděli různé způsoby přepínání mezi okny. Někdy však chceme skočit do určitého okna. V takových scénářích můžeme použít čísla oken.

Nejprve pomocí kombinace kláves ctrl-a + " vyhledejte číslo okna:

Ve výše uvedeném výstupu představuje první sloupec číslo okna. Je důležité si uvědomit, že příkaz screen začíná číslovat od nuly.

Nyní pomocí kombinace kláves ctrl-a + 2 přeskočíme do třetího okna a ověříme, že jsme ve správném okně:

15. Jak horizontálně rozdělit okno obrazovky

Stejně jako běžné terminály můžeme také rozdělit okno obrazovky. K horizontálnímu rozdělení okna můžeme použít kombinaci kláves ctrl-a + S.

Nyní můžeme použít kombinaci kláves ctrl-a + tab k přeskakování mezi oblastmi.

Nakonec můžeme použít kombinaci kláves ctrl-a + X k odstranění aktuální oblasti. Je důležité si uvědomit, že zde musíme použít velké písmeno X.

16. Jak vertikálně rozdělit okno obrazovky

Podobně můžeme použít kombinaci kláves ctrl-a + | k vertikálnímu rozdělení aktuálního okna:

Kromě toho můžeme také použít kombinaci kláves ctrl-a + tab mezi oblastmi a kombinaci kláves ctrl-a + X k uzavření aktuální oblasti.

17. Povolte přihlašování obrazovky v systému Linux

Někdy je důležité zaznamenat, co jste dělali, když jste v konzole. Řekněme, že jste administrátor Linuxu, který spravuje mnoho serverů se systémem Linux.

S tímto protokolováním obrazovky si nemusíte zapisovat každý jednotlivý příkaz, který jste provedli. Chcete-li aktivovat funkci záznamu obrazovky, stačí stisknout „Ctrl-A“ a „H“. (Buďte prosím opatrní, používáme velká písmena 'H'. Použití nevelkých písmen 'h' vytvoří pouze snímek obrazovky v jiném souboru s názvem tištěná kopie) .

V levém dolním rohu obrazovky se zobrazí upozornění, že se vám líbí: Vytváření souboru protokolu „screenlog.0“. Ve svém domovském adresáři najdete soubor screenlog.0.

Tato funkce připojí vše, co děláte, když jste v okně obrazovky. Chcete-li zavřít obrazovku a zaznamenat běžící aktivitu, stiskněte znovu „Ctrl-A“ a „H“.

Dalším způsobem, jak aktivovat funkci protokolování, můžete přidat parametr „-L“ při prvním spuštění obrazovky. Příkaz bude takový.

pungki@mint ~ $ screen -L

18. Zamkněte obrazovku terminálu Linux

Na obrazovce je také zkratka pro uzamknutí obrazovky. Obrazovku můžete uzamknout stisknutím klávesových zkratek „Ctrl-A“ a „x“. To je užitečné, pokud chcete rychle uzamknout obrazovku. Zde je ukázkový výstup zamykací obrazovky po stisknutí zástupce.

Screen used by Pungki Arianto  on mint.
Password:

K odemknutí můžete použít své heslo pro Linux.

19. Přidejte heslo k relaci obrazovky

Z bezpečnostních důvodů možná budete chtít zadat heslo k relaci obrazovky. Vždy, když budete chtít znovu připojit obrazovku, budete požádáni o heslo. Toto heslo se liší od mechanismu Uzamknout obrazovku výše.

Chcete-li, aby byla vaše obrazovka chráněna heslem, můžete upravit soubor „$HOME/.screenrc“. Pokud soubor neexistuje, můžete jej vytvořit ručně. Syntaxe bude taková.

password crypt_password

Chcete-li vytvořit „crypt_password“ výše, můžete v systému Linux použít příkaz „mkpasswd“. Zde je příkaz s heslem „pungki123“.

pungki@mint ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

mkpasswd vygeneruje hash heslo, jak je uvedeno výše. Jakmile získáte hash heslo, můžete ho zkopírovat do svého souboru „.screenrc“ a uložit. Takže soubor „.screenrc“ bude vypadat takto.

password l2BIBzvIeQNOs

Až příště spustíte obrazovku a odpojíte ji, při pokusu o znovu připojení budete požádáni o heslo, jak je znázorněno níže:

pungki@mint ~ $ screen -r 5741
Screen password:

Zadejte své heslo, které je „pungki123“ a obrazovka se znovu připojí.

Poté, co implementujete toto heslo obrazovky a stisknete „Ctrl-A“ a „x“, bude výstup vypadat takto.

Screen used by Pungki Arianto on mint.
Password:
Screen password:

Po zadání hesla budete požádáni dvakrát. První heslo je vaše heslo pro Linux a druhé heslo je heslo, které zadáte do souboru .screenrc.

20. Opuštění relace terminálu obrazovky

Existují 2 (dva) způsoby, jak opustit obrazovku. Nejprve používáme „Ctrl-A“ a „d“ k oddělení obrazovky. Za druhé, můžeme použít příkaz exit k ukončení obrazovky. Můžete také použít "Ctrl-A" a "K" k zastavení obrazovky.

Cheat pro příkazy na obrazovce

screen -S <session_name>

Spusťte novou relaci s názvem relace.

screen -ls

Seznam běžících relací/obrazovek.

screen -x

Připojit k běžící relaci.

screen -r <session_name>

Připojit k běžící relaci s názvem.

screen -d <session_name>

Odpojit běžící relaci.

Ctrl-a c

Vytvořit nové okno.

Ctrl-a Ctrl-a

Změnit na naposledy navštívené aktivní okno.

Ctrl-a <number>

Změnit na okno podle čísla.

Ctrl-a ' <number or title>

Změnit na okno podle čísla nebo jména.

Ctrl-a n or Ctrl-a <space>

Přejděte na další okno v seznamu.

Ctrl-a p or Ctrl-a <backspace>

Změna na předchozí okno v seznamu.

Ctrl-a "

Viz seznam oken.

Ctrl-a w

Zobrazit lištu okna.

Ctrl-a k

Zabít aktuální okno.

Ctrl-a \

Zabijte všechna okna.

Ctrl-a A

Přejmenovat aktuální okno.

Ctrl-a S

Rozdělit displej vodorovně.

Ctrl-a | or Ctrl-a V

Vertikálně rozdělený displej.

Ctrl-a tab

Přejít na další oblast zobrazení.

Ctrl-a X

Odebrat aktuální oblast.

Ctrl-a Q

Odebrat všechny oblasti kromě aktuální.

Ctrl-a H

Povolit protokolování v relaci obrazovky.

Ctrl-a x

Uzamčení displeje (ochrana heslem).

To je část každodenního používání příkazů screen. Uvnitř příkazu obrazovky je stále mnoho funkcí. Další podrobnosti naleznete na manuálové stránce obrazovky.

Znáte nějaký další nejlepší příklad příkazu screen v Linuxu? Dejte nám vědět své názory v komentářích níže.