GNU/Linux >> Znalost Linux >  >> Linux

Příklady příkazů obrazovky pro správu více terminálových relací

V této příručce uvidíme, co je GNU Screen a základní použití příkazu Screen s příklady v operačních systémech Linux a Unix.

Co je obrazovka GNU?

Obrazovka GNU je terminálový multiplexer (správce oken). Jak název napovídá, Screen multiplexuje fyzický terminál mezi více interaktivními shelly, takže v každé relaci terminálu můžeme provádět různé úkoly.

Všechny relace obrazovky spouštějí své programy zcela nezávisle. Program nebo proces běžící v relaci obrazovky tedy zůstane spuštěn, i když je relace náhodně uzavřena nebo odpojena.

Například při upgradu Ubuntu serveru přes SSH, příkaz Screen bude pokračovat v procesu upgradu pro případ, že bude vaše relace SSH z nějakého důvodu ukončena.

GNU Screen nám umožňuje snadno vytvářet vícenásobné obrazovky, přepínat mezi různými relacemi, kopírovat text mezi relacemi, kdykoli připojit nebo odpojit relaci a tak dále.

GNU Screen je jedním z důležitých nástrojů příkazového řádku, který by se měli všichni správci Linuxu naučit a používat, kdekoli je to nutné.

Podívejme se, jak spravovat více relací terminálu pomocí příkazu Screen s příklady v Linuxu.

Instalace obrazovky GNU v Linuxu

GNU Screen je k dispozici ve výchozích úložištích většiny operačních systémů Linux.

Chcete-li nainstalovat GNU Screen na Arch Linux, EndeavourOS, Manjaro Linux, spusťte:

$ sudo pacman -S screen

V systémech Debian, Ubuntu, Linux Mint:

$ sudo apt-get install screen

Na Fedoře, RHEL, CentOS. AlmaLinux, Rocky Linux:

$ sudo dnf install screen

Nebo,

$ sudo yum install screen

Na CentOS 8 není Screen k dispozici v oficiálních repozitářích. Musíte tedy povolit [EPEL] úložiště a poté nainstalovat obrazovku.

$ sudo dnf install epel-release
$ sudo dnf install screen

Na SUSE/openSUSE:

$ sudo zypper install screen

Pokračujme a podívejme se na některé příklady příkazů na obrazovce.

Příklady příkazů na obrazovce

Výchozí zkratka předpony pro všechny příkazy na obrazovce je Ctrl+a . Tuto zkratku musíte často používat při používání obrazovky. Takže si zapamatujte tuto klávesovou zkratku.

Vytvořit novou relaci obrazovky

Vytvořme novou relaci obrazovky a připojte se k ní. Chcete-li to provést, zadejte do terminálu následující příkaz:

screen

Nyní spusťte jakýkoli program nebo proces uvnitř této relace. Spuštěný proces nebo program bude pokračovat, i když budete odpojeni od této relace.

Odpojit od relací obrazovky

Chcete-li se odpojit od relace obrazovky, stiskněte Ctrl+a a d . Nemusíte stisknout obě kombinace kláves současně. Nejprve stiskněte Ctrl+a a poté stiskněte d . Po odpojení od relace uvidíte výstup podobný níže.

[detached from 29149.pts-0.sk]

Zde, 29149 je ID obrazovky a pts-0.sk je název relace obrazovky. Relace obrazovky můžete připojit, odpojit a ukončit pomocí ID obrazovky nebo názvu příslušné relace.

Vytvořit pojmenovanou relaci

Můžete také vytvořit relaci obrazovky s libovolným vlastním jménem podle vašeho výběru, jiným než výchozí uživatelské jméno, jak je uvedeno níže.

screen -S ostechnix

Výše uvedený příkaz vytvoří novou relaci obrazovky s názvem "xxxxx.ostechnix" a okamžitě se k němu připojte. Chcete-li se odpojit od aktuální relace, stiskněte Ctrl+a následuje d .

Pojmenování relací obrazovky může být užitečné, když chcete zjistit, které procesy běží na kterých relacích. Například, když se sada LAMP uvnitř relace skládá, můžete ji jednoduše pojmenovat jako níže.

screen -S lampstack

Vytvářejte oddělené relace

Někdy možná budete chtít vytvořit relaci, ale nechcete ji automaticky připojovat. V takových případech spusťte následující příkaz k vytvoření oddělené relace s názvem "senthil" :

screen -S senthil -d -m

Nebo krátce:

screen -dmS senthil

Výše uvedený příkaz vytvoří relaci nazvanou „senthil“, ale nepřipojí se k ní.

Seznam relací obrazovky

Chcete-li zobrazit všechny spuštěné relace (připojené nebo odpojené), spusťte:

screen -ls

Ukázkový výstup:

There are screens on:
    29700.senthil   (Detached)
    29415.ostechnix (Detached)
    29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.

Jak můžete vidět, mám tři běžící relace a všechny jsou oddělené.

Pokud nebyly spuštěny žádné relace obrazovky, získáte výstup jako níže.

No Sockets found in /run/screen/S-sk.

Připojit k relacím obrazovky

Pokud se chcete k relaci kdykoli připojit, například 29415.ostechnix , jednoduše spusťte:

screen -r 29415.ostechnix

Nebo,

screen -r ostechnix

Nebo použijte ID obrazovky:

screen -r 29415

Chcete-li ověřit, zda jsme připojeni k výše uvedené relaci, jednoduše uveďte seznam otevřených relací a zkontrolujte.

screen -ls

Ukázkový výstup:

There are screens on:
        29700.senthil   (Detached)
        29415.ostechnix (Attached)
        29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.

Jak vidíte na výše uvedeném výstupu, jsme aktuálně připojeni k 29415.ostechnix zasedání. Chcete-li opustit aktuální relaci, stiskněte ctrl+a, d.

Vytvářejte vnořené relace

Když spustíme příkaz "screen", vytvoří pro nás jednu relaci. Můžeme však vytvořit vnořené relace (relace uvnitř relace).

Nejprve vytvořte novou relaci nebo připojte k otevřené relaci. Chystám se vytvořit novou relaci s názvem „vnořená“.

screen -S nested

Nyní stiskněte Ctrl+a a c uvnitř relace k vytvoření další relace. Toto opakujte, abyste vytvořili libovolný počet vnořených relací obrazovky. Každé sezení bude přiděleno číslo. Číslo bude začínat od 0 .

Na další relaci se můžete přesunout stisknutím Ctrl+n a přejděte na předchozí stisknutím Ctrl+p .

Zde je seznam důležitých klávesových zkratek pro správu vnořených relací.

  • Ctrl+a ” -  Vypsat všechny relace
  • Ctrl+a 0 - Přepněte na číslo relace 0
  • Ctrl+a n - Přepnout na další relaci
  • Ctrl+a p - Přepnout na předchozí relaci
  • Ctrl+a S - Rozdělit aktuální oblast vodorovně na dvě oblasti
  • Ctrl+a l - Rozdělit aktuální oblast vertikálně na dvě oblasti
  • Ctrl+a Q - Zavřete všechny relace kromě aktuální
  • Ctrl+a X - Zavřete aktuální relaci
  • Ctrl+a \ - Zabijte všechny relace a ukončete obrazovku
  • Ctrl+a ? - Zobrazit klávesové zkratky. Chcete-li to ukončit, stiskněte ENTER.

Uzamknout relace

Obrazovka má možnost uzamknout relaci obrazovky. Chcete-li tak učinit, stiskněte Ctrl+a a x . Pro uzamčení obrazovky zadejte své heslo pro Linux.

Screen used by sk <sk> on ubuntuserver.
Password:

Protokolování relací

Možná budete chtít zaznamenat vše, když jste v relaci obrazovky. Chcete-li tak učinit, stiskněte Ctrl+a a H .

Případně můžete povolit protokolování při zahájení nové relace pomocí -L parametr.

screen -L

Od této chvíle budou všechny aktivity, které jste v rámci relace provedli, zaznamenávány a ukládány do souboru s názvem screenlog.x ve vašem $HOME adresáři. Zde, x je číslo.

Obsah souboru protokolu můžete zobrazit pomocí cat příkaz nebo jakékoli aplikace pro prohlížení textu.

Doporučené čtení:

  • Jak zaznamenávat vše, co děláte v terminálu

Relace automatického spuštění obrazovky

Automatické spouštění relací obrazovky výrazně pomůže při spuštění dlouho běžícího procesu přes SSH. Pokud z jakéhokoli důvodu ztratíte připojení k síti, proces bude pokračovat v relaci obrazovky ve vzdáleném systému a můžete se k ní znovu připojit, až bude síť opět online. Chcete-li vědět, jak automaticky spustit obrazovku při spuštění systému, přejděte na následující odkaz.

  • Jak automaticky spustit relaci obrazovky v systému Linux při přihlášení

Zkontrolujte, zda jste relace obrazovky nebo ne

Jak jste si mohli všimnout, normální relace a relace obrazovky budou vypadat úplně stejně. Neuvidíte žádnou zřejmou indikaci, zda jste uvnitř relace obrazovky nebo normální relace. Chcete-li zjistit, zda jste v relaci obrazovky nebo ne, postupujte podle kroků uvedených v níže uvedeném odkazu.

  • Jak zkontrolovat, zda jste v relaci obrazovky nebo ne v systému Linux

Kill Screen sessions

Pokud již relace není vyžadována, jednoduše ji zabijte. Chcete-li zabít oddělenou relaci s názvem "senthil":

screen -r senthil -X quit

Nebo,

screen -X -S senthil quit

Nebo,

screen -X -S 29415 quit

Pokud nejsou žádné otevřené relace, uvidíte následující výstup:

$ screen -ls
No Sockets found in /run/screens/S-sk.

Další podrobnosti naleznete na manuálových stránkách.

$ man screen

Existuje také podobný nástroj příkazového řádku s názvem "Tmux" který dělá stejnou práci jako GNU Screen. Chcete-li se o tom dozvědět více, podívejte se do následujícího průvodce.

  • Příklady příkazů Tmux pro správu více relací terminálu

Linux
  1. Sdílení relací terminálu Linux pomocí Tmux a obrazovky

  2. Mac Terminal diskutil příklady příkazů

  3. Jak mohu automaticky spustit více obrazovkových relací?

  1. Pomocí příkazu obrazovky můžete spravovat terminálové relace v Ubuntu 20.04

  2. 7 Příklady příkazů Linux df

  3. 8 Příklady příkazů Linux TR

  1. Jak používat obrazovku GNU ke správě terminálových relací v Linuxu

  2. 10 příkladů příkazů Cat pro správu souborů v systému Linux / UNIX

  3. 20 Příklady příkazů Zypper pro správu balíčků v systému SUSE Linux