IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Au sujet du "shell"


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Points : 57
    Points
    57
    Par défaut Au sujet du "shell"
    Bonjour a vous,
    Voila je me demandais ce qui se passait avant l'exécution d'une commande dans le shell...

    Par exemple pour la commande ls ou cat fichier.txt que fait notre ami??

    Merci pour vos réponses

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 711
    Points
    30 711
    Par défaut
    Salut,

    En deux mots, un compilateur... Ca compile .

    Plus précisément, il faut savoir qu'un ordinateur, c'est une bête encore plus bête que mon chien, qui ne comprend que deux chose: le 1 et le 0 (le courent passe... ou non).

    L'astuce, c'est que si l'on devait n'utiliser que des 1 et des 0 pour programmer, on n'en sortirait pas (bien que ce fut le cas "à l'époque des dinosaures" )...

    On a donc créer des langages "proches du langage humain", tels que le C ou le C++, qui permettent à toute personne connaissant la "syntaxe" ( AKA la grammaire et l'orthographe) du langage de le comprendre "plus facilement" pour nous faciliter la vie.

    Le compilateur va servir de "traducteur" de manière à faire qu'un langage "facilement compréhensible" par l'homme puisse être compris par l'ordinateur

    Si tu veux plus de renseignements sur ce qu'il fait réellement, n'hésite pas à demander

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Points : 57
    Points
    57
    Par défaut
    Merci pour ta réponse koala01

    Mais ca ne réponds pas tout a fait a ma question
    En fait je voulais savoir ce que faisait le compilateur ou plutôt le shell

    lorsqu'on entrait une commande ls ou encore cat fichier.txt

    Désolé pour mon explication approximative

    merci encore

    edit: Du coup ca doit plus etre le bon forum

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 711
    Points
    30 711
    Par défaut
    Un "shell", ce n'est qu'un "interpréteur de commande"...

    L'idée est qu'il permet à l'utilisateur d'introduire ce qu'il veut, puis qu'il cherche les commandes correspondantes (en fait de petits programmes) qu'il appelle en leur fournissant les paramètres adéquats.

    Ce n'est rien, je le renomme, et je le change de section... la section linux sera plus adaptée pour te fournir une réponse correcte

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    De ce que je sais, un shell c'est juste un mode d'interaction "sympa" avec l'utilisateur. En particulier, il permet de taper ce qu'on va appeler des commandes. Il y a au moins 2 types de commandes : les commandes du shell et les commandes systèmes :
    - Les commandes shell sont des mots-clés qui ne sont reconnus (a priori) que par le shell. lorsque le shell rencontre un de ces mots-clés, il va faire une série de traitement qui lui est propre. C'est le cas de la commande cd qui n'est effectivement qu'une commande shell (fallait le savoir !).
    - Les commandes systèmes qui sont en fait des vrais programmes correspondant à un fichier du système indiqué comme exécutable. Pour exécuter une telle commande, le shell invoque une primitive système. Après, qu'est-ce qu'il se passe à l'appel de la primitive, j'en sais rien du tout.

    Less shells implémentent un mécanisme de substitution ($nom sera remplacé par une certaine valeur), ce qui permet d'utiliser des variables (d'environnement ou autre). Donc, quand tu tapes une commande shell complexe, la commande est lue telle quelle pour construire une sorte d'arbre et savoir ainsi l'ordre des commandes à passer. Les variables sont ensuite substituées par leur valeur et les commandes sont exécutées dans l'ordre.

    CECI EST MA PROPRE COMPREHENSION DU BAZARRE, ELABOREE SUITE A MON EXPERIENCE DES SYSTEMES UNIX ET DE LA PROGRAMMATION. En gros je ne prétend en aucun cas détenir la vraie vérité vraie

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Points : 57
    Points
    57
    Par défaut
    Merci pour ta reponse

    Mais que se passe t il, avant l'execution du code de la commande ls par exemple...??? lorsqu'elle est tapé dans un shell...

    il verifie la commande? lance la commande? affiche le resultat? il fait d'autres verifications?

    merci pour votre aide

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 711
    Points
    30 711
    Par défaut
    Sauf erreur:
    1. Il vérifie si il trouve la commande dans son jeu "personnel" de fonctions (cd etc)
    2. s'il ne l'a pas trouvé dans son jeu personnel de fonctions, il vérifie dans la variable PATH s'il trouve l'exécutable et le lance si c'est le cas (en provoquant l'affichage si l'exécutable le provoque)
    3. traite le résultat renvoyé par (la commande ou l'exécutable) pour savoir s'il y a eu réussite, échec ou avertissement


    Cela explique que tu peux écrire une commande du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mkdir monrep && cd monrep
    (&& indique "et si ca se passe bien")

    Mais on n'entrera pas dans monrep... s'il existait déjà (parce que mkdir sort sur erreur )

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ben voilà, tout est dit

  9. #9
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 711
    Points
    30 711
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Ben voilà, tout est dit
    Merci...

    Par contre, si je pouvais polluer un peu le sujet pour demander quelques explications sur le && &1 &2, que je n'ai jamais réellement compris (sur leur syntaxe du moins, car je sais que && c'est "ok" &1, c'est "error" et &2 c'est "warning")

  10. #10
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 143
    Points : 57
    Points
    57
    Par défaut
    Oki super je te remercie

    Je laisse la discussion ouverte pour ta question (dont je ne connais pas du tout la reponse lol)

    Merci encore, bonne soirée a vous

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo