GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi přihlašovacím a nepřihlašovacím prostředím

Shell je důležitou vrstvou architektury Linuxu. Shell je rozhraní, které přebírá vstup od uživatelů a posílá instrukce do jádra, také přebírá výstup z jádra a posílá výsledek zpět do výstupního shellu.

V tomto tutoriálu používáme pro příklady prostředí Bash. Shell je v zásadě dvou typů, Login Shell a Nepřihlašovací prostředí . Každý shell spouští nějakou sadu předdefinovaných skriptů pro konfiguraci prostředí shellu.

Přihlašovací prostředí

Po úspěšném přihlášení uživatele se vytvoří přihlašovací shell. Například když se přihlásíte k systému Linux přes terminál, SSH nebo přepnete na uživatele pomocí příkazu „su -“.

Když se spustí přihlašovací prostředí, spustí se sada předdefinovaných skriptů pro konfiguraci prostředí prostředí. Chcete-li identifikovat přihlašovací shell, spusťte níže uvedený příkaz na terminálu.

echo $0

Pokud dostanete výsledek jako „-bash“ nebo „-su“, znamená to, že jste na přihlašovacím shellu. Ujistěte se, že má předponu spojovník (-).

Přihlašovací prostředí spustí následující skripty:

  • Přihlašovací shell spustí /etc/profile
  • /etc/profile spustí všechny skripty v /etc/profile.d/
  • Potom spustí uživatele ~/.bash_profile
  • ~/.bash_profile spouští uživatele ~/.bashrc
  • ~/.bashrc spustí /etc/bashrc

Nepřihlašovací prostředí

Non Login Shell je shell, který je spuštěn přihlašovacím shellem. Například shell, který jste spustili z jiného shellu nebo spustili program atd.

Nepřihlašovací shell spustí následující skript pro nastavení prostředí shellu.

  • Nepřihlašovací shell nejprve spustí ~/.bashrc
  • Pak ~/.bashrc spustí /etc/bashrc
  • /etc/bashrc volá skripty v /etc/profile.d

Zkontrolujte přihlášení vs prostředí bez přihlášení

Chcete-li najít aktuální shell, zda je přihlašovací shell nebo nepřihlašovací shell, jednoduše spusťte níže uvedený příkaz. Podívejte se na výsledky a najděte mezi nimi rozdíl.

echo $0

Výstup přihlašovacího shellu bude -bash nebo -su .

Výstup shellu bez přihlášení bude bash nebo su


Linux
  1. Jaký je rozdíl mezi strtok_r a strtok_s v C?

  2. Jaký je rozdíl mezi &> a >&v bash?

  3. Jaký je rozdíl mezi adduser a useradd?

  1. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  2. Jaký je rozdíl mezi ls a l?

  3. Jaký je rozdíl mezi `su -` a `su --login`?

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

  2. Jaký je rozdíl mezi nohoup a ampersand

  3. Jaký je rozdíl mezi fsck a e2fsck?