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
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
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
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
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
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
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
Sauf erreur:
- Il vérifie si il trouve la commande dans son jeu "personnel" de fonctions (cd etc)
- 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)
- 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
(&& indique "et si ca se passe bien")
Code : Sélectionner tout - Visualiser dans une fenêtre à part mkdir monrep && cd monrep
Mais on n'entrera pas dans monrep... s'il existait déjà (parce que mkdir sort sur erreur )
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager