GNU/Linux >> Znalost Linux >  >> Linux

Jak zkontrolovat, zda jste v relaci obrazovky nebo ne v Linuxu

Tento stručný průvodce vysvětluje, jak zkontrolovat, zda jste na Obrazovce session nebo ne v Linuxu. Jak jste si mohli všimnout, když spustíte Tmux relace, samozřejmě uvidíte podrobnosti o relaci, jako je aktuální název SHELL, název hostitele a aktuální datum a čas, ve stavovém řádku dole, jak je znázorněno na obrázku níže.

Podrobnosti relace Tmux

Ale neuvidíte takové detaily, když jste uvnitř relací obrazovky. Takto vypadá relace obrazovky na mém systému Ubuntu:

Relace obrazovky

Dokážete rozeznat rozdíl? Relace obrazovky a normální relace budou vypadat přesně stejně. Spusťte příkaz "screen -ls" pro seznam spuštěných relací obrazovky.

$ screen -ls

Ukázkový výstup:

Seznam relací obrazovky

Vidět? Jsem v relaci obrazovky, ale vypadá to jako normální relace. Ve stavovém řádku dole není žádná indikace. Jak poznáte, zda pracujete v rámci relace obrazovky nebo ne? To teď zjistíme.

Zkontrolujte, zda jste v relaci obrazovky nebo ne v Linuxu

Existuje několik způsobů, jak ověřit, zda jsme v relaci obrazovky. Zde jsem uvedl tři metody.

Metoda 1 – Použití příkazu "echo"

Chcete-li zkontrolovat, zda jste v relaci obrazovky nebo ne, jednoduše spusťte následující příkaz:

$ echo $STY

Pokud jste v relaci obrazovky, uvidíte výstup jako níže.

18704.pts-0.ostechnix

Zde je další způsob, jak zkontrolovat, zda jste v relaci obrazovky:

$ echo $TERM

Uvidíte výraz "obrazovka" ve výstupu.

Ukázkový výstup:

screen.xterm-256color

Zkontrolujte, zda jste v relaci obrazovky v systému Linux

Pokud nebyly spuštěny žádné relace obrazovky, u prvního příkazu nic neuvidíte. A u druhého příkazu nebude ve výstupu výraz "obrazovka". Stačí ukončit nebo odpojit relaci obrazovky a znovu spustit výše uvedené příkazy. Uvidíte výstup jako níže.

Zkontrolujte relace obrazovky

Vidět? Nejsme uvnitř relace obrazovky.

Výše uvedené dva příkazy budou fungovat pouze tehdy, pokud jste ve spuštěné relaci obrazovky na vašem místním systému. Nebude to fungovat, pokud spustíte relaci obrazovky v místním systému a poté přistoupíte k jinému systému v síti přes SSH.

V takovém případě můžete použít druhou metodu uvedenou níže.

Metoda 2 – Použití předpony obrazovky

Chcete-li zkontrolovat, zda jsme v relaci obrazovky nebo ne, jednoduše stiskněte Ctrl+a a poté Ctrl+t klíče. Pokud jste v relaci obrazovky, zobrazí se čas a název hostitele.

Podívejte se na následující demo.

Pomocí Screen prefix key

zkontrolujte, zda jste v relaci obrazovky

Jak jste ve výše uvedeném výstupu,

  • Nejprve jsem spustil relaci obrazovky a stisknutím kláves Ctrl+a a Ctrl+t zkontroloval, zda jsem v relaci obrazovky.
  • Poté jsem se odpojil od relace obrazovky stisknutím Ctrl+a a d .
  • A nakonec jsem se znovu připojil k relaci obrazovky a stisknutím kláves Ctrl+a a Ctrl+t znovu zkontroloval, zda jsem v relaci obrazovky.

Tato metoda bude fungovat, i když máte SSH převedeno někam jinam.

Metoda 3 – Použití příkazu Caption

Pokud nechcete pokaždé mačkat klávesy, můžete do ~/.screenrc přidat následující kód soubor. Pokud tento soubor není k dispozici, jednoduše jej vytvořte.

$ nano ~/.screenrc

Přidejte kód:

caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"

Uložte a zavřete soubor.

Od této chvíle, kdykoli spustíte relaci obrazovky, uvidíte ve spodní části okna terminálu malý oznamovací pruh (s uvedením názvu hostitele, času a data, zatížení systému atd.), jak je znázorněno níže.

Screen session on ubuntuserver (system load: 0.00 0.00 0.00)        Sat 22.02.2020 12:37

Zobrazte podrobnosti o relaci obrazovky ve spodní části okna Terminálu Pomocí příkazu Caption

Tato oznamovací lišta zmizí po ukončení relace obrazovky.

Metoda 4 – Nastavení jiné výzvy Bash pro relace obrazovky

Toto je další způsob, jak zajistit, aby byly relace obrazovky snadno rozpoznatelné přidáním několika řádků kódu do ~/.bashrc soubor. Ve skutečnosti se tato metoda nedoporučuje . Pokud jiný shell jako zsh zdědí váš aktuální shell, může to způsobit mnoho zbytečných problémů. Toto je pouze pro vzdělávací účely. Používejte jej na vlastní nebezpečí!

Nejprve zálohujte svůj aktuální ~/.bashrc soubor:

$ cp ~/.bashrc ~/.bashrc.bak

Stačí nastavit jiný název výzvy Bash pro normální a obrazovkové relace, jak si přejete, jak je uvedeno níže. Například jsem přidal následující řádky do svého ~/.bashrc soubor.

if [ -z $STY ]
then
        PS1="This is normal session:~$ "
else
        PS1="This is Screen session:~$ "
fi

Odhlaste se a znovu se přihlaste. Při přepínání mezi normálními a obrazovkovými relacemi se název výzvy terminálu změní podle vašeho nastavení.

Nastavit jinou výzvu Bash pro relace obrazovky

Opět není dobrým zvykem měnit název výzvy Bash. Místo toho použijte kteroukoli z předchozích metod ke kontrole, zda jste v relaci obrazovky nebo ne.

Související čtení:

  • Jak přizpůsobit Bash Prompt v Linuxu

Doufám, že to pomůže.


Linux
  1. Jak zkontrolovat verzi Redhat

  2. Jak zkontrolovat časové pásmo v Linuxu

  3. Jak zastavit proces obrazovky v linuxu?

  1. Jak v linuxu zkontrolujete, zda je disk fragmentovaný?

  2. v linuxové konzoli, jak NEzabalit výstup

  3. Jak poznám, že běžím na linuxové obrazovce nebo ne?

  1. Jak zjistit, kterou distribuci Linuxu používáte?

  2. Jak zkontrolovat historii přihlášení k systému Linux

  3. Jak zjistit, který Shell používáte v Linuxu