GNU/Linux >> Belajar Linux >  >> Linux

Apa ruang lingkup yang diekspor dalam variabel shell Unix?

  • Oke, sebagai permulaan, saya pikir maksud Anda ps --pid dan bukan ps ---pid .
  • Anda tidak perlu echo $$ lalu ketikkan angkanya di ps --pid number; cukup baik untuk mengetik ps --pid $$ . Kecuali jika Anda berbicara tentang

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

    dalam hal ini Anda melakukan hal yang benar.

  • Apa yang Anda harapkan?

    --pid daftar pid

      Pilih menurut ID proses. Identik dengan -p dan p .


    -p daftar pid

      Pilih berdasarkan PID. Ini memilih proses yang nomor ID prosesnya muncul di pidlist . Identik dengan p dan --pid .

    Jadi, ketika Anda melakukan ps --pid PID_of_shell , Anda mendapatkan baris ps keluaran hanya untuk proses shell . Anda mungkin menemukan ps -l | grep PID_of_shell lebih berguna; ini akan menampilkan baris apa pun yang berisi PID_of_shell di mana saja, termasuk di kolom PPID. Yaitu, itu akan menunjukkan proses anak dari shell. Tapi, tentu saja, grep 42 akan menemukan hal-hal seperti 7428 .

  • Tebakan Anda benar; variabel lingkungan diteruskan dari orang tua ke anak. Seperti yang ditunjukkan di atas, su Anda Shell adalah anak dari Shell login Anda (atau Shell induk lainnya). Namun, perhatikan bahwa suatu proses dapat mengubah lingkungannya;sudo agak terkenal melakukan hal ini, dan su apakah itu juga (mis., itu mengubah $USER , $LOGNAME , dan $HOME kecuali jika Anda menentukan --preserve-environment , dan bahkan lebih jika Anda menentukan --login ). Juga, suatu proses dapat memberikan anak-anaknya lingkungan yang berbeda dari yang digunakannya; shell melakukannya ketika Anda mengatakan sesuatu seperti PAGER=cat man man_page_topic . Referensi:1, 2.
  • Jadi, tidak, jika Anda menyetel (mengekspor) variabel lingkungan di shell di satu terminal, lalu memulai terminal lain melalui pengelola jendela, variabel lingkungan tidak akan terlihat, karena ini bukan turunan (atau keturunan) dari shell yang mengaturnya. Namun, jika Anda memulai jendela terminal baru dari shell (misalnya, dengan xterm& ),maka jendela terminal tersebut akan mewarisi lingkungan shell.

Linux
  1. Deteksi Sistem Init Menggunakan Shell?

  2. Perbedaan Penggunaan Antara Variabel Shell Dan Variabel Lingkungan?

  3. Manakah Parameter/variabel Khusus Shell (bash)?

  1. Apa Arti Ampersand Di Akhir Baris Skrip Shell?

  2. Apa saja Jenis Shell yang Berbeda di Linux?

  3. UNIX / Linux :Apa itu Shell? Apa Shells yang berbeda?

  1. Linux vs. Unix:Apa bedanya?

  2. Apa yang Terjadi Saat Saya Mengeksekusi File Di Shell?

  3. Menambahkan karakter baris baru ke variabel shell unix