Řešení 1:
(Ukradeno z „Jak zjistím, zda jsem na obrazovce?“ na StackOverflow a autorem je uživatel jho. P.S. Na webech StackExchange nemůžete hlasovat pro duplikát.)
Zkontrolujte $STY
. Pokud je null, jste na "skutečném" terminálu. Pokud něco obsahuje, je to název obrazovky, na které se nacházíte.
Pokud nejste na obrazovce:
[email protected] ~ $ echo $STY
[email protected] ~ $
Pokud jste na obrazovce:
[email protected] ~ $ echo $STY
2026.pts-0.ip-10-0-1-71
Pokud místo obrazovky používáte tmux, zaškrtněte také $TMUX
. Chcete-li toto přidat do výzvy, přidejte do ~/.bashrc
následující :
if [ -n "$STY" ]; then export PS1="(screen) $PS1"; fi
if [ -n "$TMUX" ]; then export PS1="(tmux) $PS1"; fi
Řešení 2:
Hledejte $STY
který poskytuje podrobnosti, které screen
používá ke komunikaci sama se sebou; $WINDOW
bude pak aktuální screen
číslo okna.
Řešení 3:
Jednoduchá kontrola, kterou obvykle používám, je stisknout Ctrl -a :
-
Pokud kurzor přeskočí na začátek řádku , nejsem uvnitř relaci obrazovky.
-
Pokud se nic nestane , vím, že jsem uvnitř relaci obrazovky a že jsem právě použil klávesu pro ovládání obrazovky. Poté jsem zmáčkl a (skok na začátek řádku), w (zobrazit okna aktuální obrazovky) nebo provést nějaký jiný „neškodný“ příkaz obrazovky, abyste se dostali zpět do příkazového řádku.
(Samozřejmě to funguje pouze v případě, že právě spouštíte bash nebo nějaký jiný software, který "skočí na začátek řádku" nebo udělá něco ekvivalentně neškodného, když stisknete Ctrl-a.)
Řešení 4:
No, většina času (bez něčích pokusů podělat věci) vaše TERM
bude nastaven na screen
(nebo alespoň zmiňte screen
někde).
Snadným řešením problému je spuštění obrazovky všude. Neodcházejte bez toho z domova, říkám.
Řešení 5:
Nechám si to ve svém .bashrc
:
PS1='[\[email protected]\h \W'
if [ "$WINDOW" ]; then PS1="$PS1 ($WINDOW)"; fi
PS1="$PS1]$"
Není to spolehlivé, ale kdykoli vytvořím novou obrazovku, vloží do výzvy číslo okna. Pokud nepoužívám screen
, není tam žádné číslo.