GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra Login e Non-Login Shell

Una shell è un livello importante dell'architettura Linux. La shell è un'interfaccia che prende l'input dagli utenti e invia le istruzioni al kernel, prende anche l'output dal kernel e invia il risultato alla shell di output.

In questo tutorial, utilizziamo la shell Bash per gli esempi. Fondamentalmente una shell è di due tipi, Login Shell e Shell senza accesso . Ogni shell esegue una serie di script predefiniti per configurare gli ambienti della shell.

Shell di accesso

Una shell di accesso viene creata dopo un accesso riuscito dell'utente. Ad esempio, quando si accede a un sistema Linux tramite terminale, SSH o si passa a utente con il comando "su -".

Quando una shell di accesso si avvia, esegue una serie di script predefiniti per configurare l'ambiente della shell. Per identificare la shell di accesso, esegui il comando seguente sul terminale.

echo $0

Se ottieni il risultato come "-bash" o "-su" significa che sei sulla shell di accesso. Assicurati che abbia il trattino (-) come prefisso.

Una shell di accesso esegue i seguenti script:

  • La shell di accesso esegue /etc/profile
  • /etc/profile esegue tutti gli script in /etc/profile.d/
  • Quindi esegue gli utenti ~/.bash_profile
  • ~/.bash_profile esegue gli utenti ~/.bashrc
  • ~/.bashrc esegue /etc/bashrc

Shell senza accesso

Non Login Shell è la shell, che viene avviata dalla shell di login. Ad esempio, una shell avviata da un'altra shell o avviata da un programma ecc.

Una shell senza login esegue il seguente script per impostare l'ambiente della shell.

  • La shell senza login esegue prima ~/.bashrc
  • Quindi ~/.bashrc esegue /etc/bashrc
  • /etc/bashrc chiama gli script in /etc/profile.d

Controlla login e shell non login

Per trovare la shell corrente è una shell di accesso o una shell non di accesso, esegui semplicemente il comando seguente. Guarda i risultati e trova le differenze tra loro.

echo $0

L'output della shell di accesso sarà -bash o -su .

L'output della shell non di accesso sarà bash o su


Linux
  1. Differenza tra shell di accesso e shell non di accesso?

  2. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  3. La differenza di utilizzo tra variabili Shell e variabili d'ambiente?

  4. Qual è la differenza tra Git Switch e Checkout?

  5. Qual è la differenza tra nohup e e commerciale

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra $(CC) e $CC?

Qual è la differenza tra unlink e rm?