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