GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la différence entre la connexion et le shell sans connexion

Un shell est une couche importante de l'architecture Linux. Shell est une interface qui reçoit les entrées des utilisateurs et envoie des instructions au noyau, prend également la sortie du noyau et renvoie le résultat au shell de sortie.

Dans ce didacticiel, nous utilisons le shell Bash pour les exemples. Fondamentalement, un shell est de deux types, Login Shell et Non Login Shell . Chaque shell exécute un ensemble de scripts prédéfinis pour configurer les environnements shell.

Interface de connexion

Un shell de connexion est créé après une connexion réussie de l'utilisateur. Par exemple, lorsque vous vous connectez à un système Linux via un terminal, SSH ou que vous passez à l'utilisateur avec la commande "su -".

Lorsqu'un shell de connexion démarre, il exécute un ensemble de scripts prédéfinis pour configurer l'environnement du shell. Pour identifier le shell de connexion, exécutez la commande ci-dessous sur le terminal.

echo $0

Si vous obtenez le résultat comme "-bash" ou "-su" signifie, vous êtes sur le shell de connexion. Assurez-vous qu'il a un trait d'union (-) comme préfixe.

Un shell de connexion exécute les scripts suivants :

  • Le shell de connexion exécute /etc/profile
  • /etc/profile exécute tous les scripts dans /etc/profile.d/
  • Ensuite, exécute les utilisateurs ~/.bash_profile
  • ~/.bash_profile exécute les utilisateurs ~/.bashrc
  • ~/.bashrc exécute /etc/bashrc

Shell sans connexion

Non Login Shell est le shell qui est lancé par le shell de connexion. Par exemple, un shell que vous avez démarré à partir d'un autre shell ou lancé par un programme, etc.

Un shell sans connexion exécute le script suivant pour définir l'environnement du shell.

  • Le shell sans connexion exécute d'abord ~/.bashrc
  • Puis ~/.bashrc exécute /etc/bashrc
  • /etc/bashrc appelle les scripts dans /etc/profile.d

Vérifiez la connexion par rapport au shell sans connexion

Pour trouver le shell actuel, il s'agit d'un shell de connexion ou d'un shell non connecté, exécutez simplement la commande ci-dessous. Voir les résultats et trouver les différences entre eux.

echo $0

La sortie du shell de connexion sera -bash ou -su .

La sortie du shell sans connexion sera bash ou su


Linux
  1. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  2. Quelle est la différence entre strtok_r et strtok_s en C ?

  3. Quelle est la différence entre nohup et esperluette

  4. Quelle est la différence entre ls et l ?

  5. Quelle est la différence entre `su -` et `su --login` ?

Quelle est la différence entre InnoDB et MyISAM ?

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

Quelle est la différence entre $(CC) et $CC ?