GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozsah exportovaných proměnných shellu Unix?

  • Dobře, pro začátek myslím, že máte na mysli ps --pid a ne ps ---pid .
  • Nemusíte echo $$ a poté zadejte číslo do ps --pid number;stačí napsat ps --pid $$ . Pokud nemluvíte o

    # echo $$
    42
    # su joe
    % ps --pid 42
    

    v tom případě děláte správnou věc.

  • Co jste čekali?

    -pid pidlist

      Vyberte podle ID procesu. Totožné s -p a p .


    -p pidlist

      Vyberte podle PID. Tím se vyberou procesy, jejichž ID procesů se objeví v pidlistu . Totožné s p a --pid .

    Takže, když uděláte ps --pid PID_of_shell , dostáváte řádek ps výstup pouze pro proces shell . Můžete najít ps -l | grep PID_of_shell užitečnější; zobrazí každý řádek, který obsahuje PID_of_shell kdekoli, včetně sloupce PPID. To znamená, že ukáže podřízené procesy shellu. Ale samozřejmě grep 42 najde věci jako 7428 .

  • Váš odhad je správný. proměnné prostředí jsou předávány z rodiče na potomka. Jak je uvedeno výše, vaše su shell je potomkem vašeho přihlašovacího shellu (nebo jiného nadřazeného shellu). Pamatujte však, že proces může změnit své prostředí;sudo je poněkud notoricky známý tím, že to dělá, a su dělá to také (např. změní $USER , $LOGNAME a $HOME pokud nezadáte --preserve-environment a ještě více, pokud zadáte --login ). Proces také může předat svým potomkům jiné prostředí, než jaké používá; shell to udělá, když řeknete něco jako PAGER=cat man man_page_topic . Reference:1, 2.
  • Takže ne, pokud nastavíte (exportujete) proměnnou prostředí v jednom terminálu a poté spustíte jiný terminál prostřednictvím správce oken, proměnná prostředí neuvidí, protože to není potomek (nebo potomek) shellu, který to nastavil. Pokud ale spustíte nové okno terminálu z shellu (např. podle xterm& ), pak toto okno terminálu zdědí prostředí shellu.

Linux
  1. Co se přesně stane, když spustím soubor v prostředí Shell?

  2. Co znamená Ampersand na konci řádku skriptu Shell?

  3. Jaké jsou různé typy shellů v Linuxu?

  1. Linux vs. Unix:Jaký je rozdíl?

  2. UNIX / Linux:Co je to Shell? Jaké jsou různé Shelly?

  3. Sečtěte sloupec čísel v unixovém shellu

  1. Zjistit iniciační systém pomocí Shell?

  2. Rozdíl v použití mezi proměnnými shellu a proměnnými prostředí?

  3. Co je Unix/Linux ekvivalentem Registered I/O?