GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el alcance de las variables de shell exportadas en Unix?

  • Vale, para empezar, creo que te refieres a ps --pid y no ps ---pid .
  • No necesitas echo $$ y luego escriba el número en ps --pid number;es suficiente escribir ps --pid $$ . A menos que estés hablando de

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

    en cuyo caso estás haciendo lo correcto.

  • ¿Qué esperabas?

    --pid lista de pid

      Seleccione por ID de proceso. Idéntico a -p y p .


    -p lista de pid

      Seleccione por PID. Esto selecciona los procesos cuyos números de ID de proceso aparecen en pidlist . Idéntico a p y --pid .

    Entonces, cuando haces ps --pid PID_of_shell , obtienes la línea de ps Salida de solo para el proceso de shell . Puede encontrar ps -l | grep PID_of_shell más útil; mostrará cualquier línea que contenga PID_of_shell en cualquier lugar, incluso en la columna PPID. Es decir, mostrará los procesos secundarios del shell. Pero, por supuesto, grep 42 encontrará cosas como 7428 .

  • Su conjetura es correcta; Las variables de entorno se pasan de padre a hijo. Como se indicó anteriormente, su su shell es un elemento secundario de su shell de inicio de sesión (u otro shell principal). Tenga en cuenta, sin embargo, que un proceso puede cambiar su entorno;sudo es algo notorio por hacer esto, y su lo hace también (por ejemplo, cambia $USER , $LOGNAME y $HOME a menos que especifique --preserve-environment , y aún más si especifica --login ). Además, un proceso puede pasar a sus hijos un entorno diferente al que está utilizando; el shell hace eso cuando dices algo como PAGER=cat man man_page_topic . Referencias:1, 2.
  • Entonces, no, si configura (exporta) una variable de entorno en el shell en una terminal y luego inicia otra terminal a través del administrador de ventanas, no verá la variable de entorno, porque no es un hijo (o descendiente) del caparazón que lo puso. Pero, si inicia una nueva ventana de terminal desde el shell (por ejemplo, por xterm& ), entonces esa ventana de terminal heredará el entorno del shell.

Linux
  1. ¿Qué sucede exactamente cuando ejecuto un archivo en el Shell?

  2. ¿Cuáles son los parámetros/variables especiales de Shell (bash)?

  3. Sume una columna de números en el shell de Unix

  4. ¿Cuál es la diferencia entre nohup y ampersand?

  5. ¿Cuál es el equivalente Unix/Linux de E/S registrada?

¿Qué es el Shell en Linux?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre Shell de inicio de sesión y sin inicio de sesión?

¿Qué es un archivo .sh?

¿Qué significa la sintaxis |&en lenguaje shell?

¿Cuál es la diferencia entre &> y >&en bash?