Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/04/2017, à 18:18

samfat

[Resolu] type de shell

bonjour
Prière quelqu'un  peut m'expliquer si possible  la différence entre Shell de connexion , Shell  interactif  et Shell non interactif  et me donne un exemple d'utilisation de chaque Shell  pour mieux comprendre ?
merci d'avance .
cordialement

Dernière modification par samfat (Le 05/04/2017, à 20:33)

Hors ligne

#2 Le 04/04/2017, à 19:18

bruno

Re : [Resolu] type de shell

Bonjour,

Un shell de connexion ou « login shell » est le premier processus qui s'exécute en tant qu'utilisateur « toto » lorsque l'utilisateur « toto » ouvre une session interactive (console, ssh, etc.). La session interactive est ouverte après saisie du nom d'utilisateur et du mot de passe.
Lorsqu’un shell interactif est ouvert les fichiers /etc/profile ~/.profile, /etc/bash.bashrc, ~/.bashrc (bash étant le shell de l'utilisateur) sont interprétés. Il définissent un certains nombres de variables d'environnement, notamment $PATH qui permet de savoir où sont les exécutables.

Lorsque "toto" ouvre un terminal alors qu'il est déjà connecté en tant qu'utilisateur "toto" (via une session graphique par exemple), il s'agit d'un shell interactif simple (non login shell). En principe les fichiers définissant les variables d'environnement sont également interprétés.

Lorsqu'un script est appelé par un autre script (ou n'importe quel service ou programme) et non par un utilisateur connecté, il s'agit d'un shell non-interactif et non connecté (non login shell). C'est le cas d'une tâche cron, ou d'un script de démarrage par exemple. Dans ce cas les fichiers définissant les vriables d'environnement ne sont pas lus. Ainsi, une tâche cron ne connaît pas le PATH si on ne lui précise pas dans le crontab.

Hors ligne

#3 Le 04/04/2017, à 19:20

Watael

Re : [Resolu] type de shell

salut,

d'abord, c'est (ou ça peut être) le même shell.
ce qui diffère, c'est les conditions d'appel du shell dont découle les actions effectuées, et les configurations prises en compte.

cf. man bash, voir la section APPEL.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 04/04/2017, à 21:49

samfat

Re : [Resolu] type de shell

rebonjour
Merci beaucoup bruno pour l'explication avec le remarque du Watael c'est devenu plus clair
dans le man j'ai pas compris

 Un interpréteur de commandes est dit de connexion (login shell)  si  le
       premier  caractère  de  son  argument  numéro zéro est un - ou s'il est
       appelé avec l'option --login.

quelqu'un a une idée SVP

Dernière modification par samfat (Le 04/04/2017, à 22:07)

Hors ligne

#5 Le 04/04/2017, à 21:54

Syrion

Re : [Resolu] type de shell

bruno a écrit :

En principe les fichiers définissant les variables d'environnement sont également interprétés.

Normalement, le ~/.profile est lu uniquement au login shell, alors que la ~/.bashrc est lu pour chaque shell interactif démarré. Le fichier /etc/profile et toujours lu avant ~/.profile, le fichier /etc/bashrc est toujours lu avant ~/.bashrc ⇒ ces derniers définissent l'environnement par défaut valable pour tous les utilisateurs.

La séquence est différente en cvas de connexion via ssh pour des raisons de sécurité → RTFM car je ne m'en souvient plus ^^.


Ubuntu 22.04.4 amd64 sur Dell XPS 7590 15"
Ubuntu Server 20.04.4 Eeepc 1215P
Ubuntu 22.04.1 sur Ryzen 5 5600X, 32Go DDR4-3600, NVidia RTX 3060Ti

Hors ligne

#6 Le 05/04/2017, à 08:43

bruno

Re : [Resolu] type de shell

samfat a écrit :

dans le man j'ai pas compris

 Un interpréteur de commandes est dit de connexion (login shell)  si  le
       premier  caractère  de  son  argument  numéro zéro est un - ou s'il est
       appelé avec l'option --login.

quelqu'un a une idée SVP

C'est une convention un login shell est appelé avec le caractère - au moment de l'ouverture de session : -bash plutôt que bash.
Pour le voir ;

echo $0

ce qui donnera -bash dans une console (login shell) et bash dans un terminal d'une session graphique (non login shell)

Hors ligne

#7 Le 05/04/2017, à 09:05

Hizoka

Re : [Resolu] type de shell

merci bruno pour toutes ces informations smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#8 Le 05/04/2017, à 13:07

samfat

Re : [Resolu] type de shell

Bonjour
Merci  pour tous qui ont participé à cette discussion surtout bruno

Hors ligne

#9 Le 05/04/2017, à 18:00

Hizoka

Re : [Resolu] type de shell

si c'est bon, ajoute [Résolu] dans ton titre de topic


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne