it-swarm-eu.dev

Nastavení názvu relace obrazovky

Existuje způsob, jak dát unixové relaci konkrétní jméno? Například řekněme, že běžím stejný program vícekrát, každý s různými parametry a chci říct, který z nich je který.

62
well actually

Při spuštění můžete pojmenovat relaci pomocí -S name možnost. Z běžící obrazovky ji můžete změnit zadáním CTRL-a, :sessionname name. Běžné relace obrazovky můžete zobrazit pomocí screen -ls a připojte se k jednomu jménem pomocí screen -xS name.

V rámci jedné relace obrazovky můžete také pojmenovat každé okno. To provedete zadáním CTRL-a, A potom jméno, které chcete. Interaktivní seznam pojmenovaných oken můžete zobrazit zadáním CTRL-a, " a ze seznamu vyberte ten, na který chcete přepnout.

Pojmenování obrazovek a terminálů v obrazovkách je opravdu užitečné pro zapamatování si, co jsou a proč jste je na prvním místě založili.

73
Lars Yencken

Jsou zde dva koncepty a nejsem si jistý, který máte na mysli:

  • Můžete mít více oken. Každé okno spustí prostředí nebo jiný program. Všechna okna jsou hostována stejným procesem. C-a c Vytvoří okno, C-a n A C-a p Přepne do následujícího/předchozího okna atd.
  • Můžete mít více relací obrazovky. Každá relace je hostována svým vlastním procesem a je nezávislá na všech ostatních relacích. Úvodní obrazovka bez možnosti opětovného připojení (-r Nebo -R) Vytvoří novou relaci.

Windows mají tituly, které lze nastavit pomocí možnosti příkazového řádku -t, Vazby kláves C-a A, Příkazu title nebo escape sekvence \ek. Viz shellterova odpověď pro více informací.

Relace mohou mít jména. Obvykle jste jméno nastavili na příkazovém řádku pomocí volby -S; Pokud nezadáte jméno, vytvoří se na obrazovce. Pokud používáte více relací obrazovky, obvykle byste jim dali různé názvy relací. Můžete spustit seznam relací na obrazovce s screen -ls; první slovo na každém řádku relace je 12345.sessionname, kde 12345 je ID procesu obrazovky. Použijte screen -r sessionname Nebo screen -r 12345 A pokračujte v relaci uvedené pomocí jejího názvu nebo ID procesu.

Ah ... Screen, vezme mě to zpátky ;-)

Pro jedno okno

-t name
    sets the title (a.k.a.) for the default Shell or specified program. 
    See also the "shelltitle" .screenrc command.

U vícekanálových sezení začalo z vašeho .screenrc

screen -t top 2 Nice top
screen -t ....

Zde je odkaz na jednu on-line kopii man-page for screen.

Upravit: přidáno

Chcete-li změnit aktuální název obrazovky, vytvořte podobný skriptovací nástroj Shell

cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'

Neověřeno, nemám k dispozici obrazovku v systému, na kterém pracuji.

12
shellter

Při spuštění screen:

Ctrl+a (nebo cokoli je vaše úniková sekvence screen) A

4
ninjalj

Výše uvedené odpovědi vám již říkají, jak pojmenovat obrazovku, když ji spustíte. Také poukazují na to, že po spuštění nelze obrazovku přejmenovat. Název okna lze nastavit, ale název použitý pro připojení k obrazovce zůstává pid.pty.Host.

Abychom však dosáhli užitečného účinku, zjistil jsem, že používání aliasu funguje docela dobře. Pokud zapomenu pojmenovat obrazovku nebo se ocitnu v relaci s partou obrazovek nahoru, které se přirozeně staly obrazovkami pro konkrétní úkoly, jednoduše jsem nastavil alias pro příkaz, který se k nim připojí.

příklad:

alias goncompile='screen -r 2354'

Samotné vydání příkazu alias vám připomene, jaké obrazovky máte, a příkaz, který jste k nim připojili.

K jejich odstranění použijte unalias.

3
caoimhin