Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
atelier:chantier:les-commandes-du-shell [02/08/2021 17:28] cyrille [Introduction : Les différents type de commandes Linux] |
atelier:chantier:les-commandes-du-shell [02/08/2021 17:39] cyrille [Introduction : Les différents types de commandes Linux] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Les commandes du shell ====== | + | ====== La nature des commandes du shell ====== |
* Objet : Connaître la nature des commandes du shell | * Objet : Connaître la nature des commandes du shell | ||
Ligne 5: | Ligne 5: | ||
* Commentaires : Mieux appréhender le shell bash et ses constituants | * Commentaires : Mieux appréhender le shell bash et ses constituants | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier à-tester à-placer}} - | + | * Suivi : {{tag>en-chantier à-tester à-placer}} |
* Création par [[user>cyrille]] 02/08/2021 | * Création par [[user>cyrille]] 02/08/2021 | ||
- | * Commentaires sur le forum : [[:url-invalide | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=30409 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
- | ===== Introduction : Les différents type de commandes Linux===== | + | ===== Introduction : Les différents types de commandes Linux===== |
Le shell, en plus d'être un langage de programmation, est aussi un interpréteur de commandes accessible depuis la console (aussi appelé terminal). | Le shell, en plus d'être un langage de programmation, est aussi un interpréteur de commandes accessible depuis la console (aussi appelé terminal). | ||
- | On peut y rencontrer plusieurs types de commandes. | + | On peut y rencontrer des commandes de natures différentes. Pour connaître leur nature ou leur type, on utilisera la commande **type** |
+ | |||
+ | __Usage__ | ||
+ | |||
+ | <code user>type commande | ||
+ | |||
+ | type -t commande | ||
+ | |||
+ | type -a commande</code> | ||
Généralement, on en distingue 5. | Généralement, on en distingue 5. | ||
Ligne 24: | Ligne 32: | ||
Ces commandes primitives ne génèrent pas de nouveaux processus, contrairement aux autres commandes. | Ces commandes primitives ne génèrent pas de nouveaux processus, contrairement aux autres commandes. | ||
- | Pour avoir de l'aide quant à ces commandes, il faut passer par help et non par man. | + | Pour avoir de l'aide quant à ces commandes, il faut passer par **help** et non par **man**. |
On trouve les commandes : set, cut, cd, true, false, test, exec, echo, pwd... | On trouve les commandes : set, cut, cd, true, false, test, exec, echo, pwd... | ||
Par exemple : | Par exemple : | ||
- | $ type -a cd echo pwd true | + | <code user>type -a cd echo pwd true |
cd est une primitive du shell | cd est une primitive du shell | ||
echo est une primitive du shell | echo est une primitive du shell | ||
Ligne 40: | Ligne 48: | ||
true est /usr/bin/true | true est /usr/bin/true | ||
true est /bin/true | true est /bin/true | ||
+ | </code> | ||
==== 2. Les commandes externes (fournies par des fichiers) ==== | ==== 2. Les commandes externes (fournies par des fichiers) ==== | ||
Les commandes externes sont des programmes compilés ou des scripts installés sur le système. | Les commandes externes sont des programmes compilés ou des scripts installés sur le système. | ||
- | Contrairement aux commandes primitves, elles généreront un nouveau processus. | ||
- | Pour accèder à l'aide de ces commandes, il faut passer par la command eman. | + | Contrairement aux commandes primitives, elles généreront un nouveau processus. |
+ | |||
+ | Pour accéder à l'aide de ces commandes, il faut passer par la commande **man** ou passer le paramètre **--help** à la commande. | ||
Par exemple : | Par exemple : | ||
- | $ type -a mv cp rm | + | <code user>type -a mv cp rm |
mv est /usr/bin/mv | mv est /usr/bin/mv | ||
mv est /bin/mv | mv est /bin/mv | ||
Ligne 55: | Ligne 64: | ||
cp est /bin/cp | cp est /bin/cp | ||
rm est /usr/bin/rm | rm est /usr/bin/rm | ||
- | rm est /bin/rm | + | rm est /bin/rm</code> |
Ligne 64: | Ligne 73: | ||
Exemple d'alias : | Exemple d'alias : | ||
- | alias monipv6='curl '\''https://api64.ipify.org?format=json'\''' | + | <code user>alias monipv6='curl '\''https://api64.ipify.org?format=json'\'''</code> |
Les alias sont permanents s'ils ont été définis soit dans le fichier .bashrc soit dans le fichier .bash_aliases (si .bashrc contient une entrée vers ce fichier). | Les alias sont permanents s'ils ont été définis soit dans le fichier .bashrc soit dans le fichier .bash_aliases (si .bashrc contient une entrée vers ce fichier). | ||
Par exemple | Par exemple | ||
- | $ type -a ls | + | <code user>type -a ls |
ls est un alias vers « ls --color=auto » | ls est un alias vers « ls --color=auto » | ||
ls est /usr/bin/ls | ls est /usr/bin/ls | ||
ls est /bin/ls | ls est /bin/ls | ||
$ type -a monipv6 | $ type -a monipv6 | ||
- | monipv6 est un alias vers « curl 'https://api64.ipify.org?format=json' » | + | monipv6 est un alias vers « curl 'https://api64.ipify.org?format=json' »</code> |
Ligne 81: | Ligne 90: | ||
Une fonction est une sous-routine du shell qui permet d'éviter répétitions, de diminuer les risques de bogues et d'augmenter la lisibilité du script pour un humain. | Une fonction est une sous-routine du shell qui permet d'éviter répétitions, de diminuer les risques de bogues et d'augmenter la lisibilité du script pour un humain. | ||
- | + | <code user> | |
- | + | type -a mp3CoverTag | |
- | $ type -a mp3CoverTag | + | |
mp3CoverTag est une fonction | mp3CoverTag est une fonction | ||
mp3CoverTag () | mp3CoverTag () | ||
Ligne 91: | Ligne 99: | ||
eyeD3 --add-image "cover.jpg:FRONT_COVER" "$file"; | eyeD3 --add-image "cover.jpg:FRONT_COVER" "$file"; | ||
done | done | ||
- | } | + | }</code> |
==== 5. Les mots clefs ==== | ==== 5. Les mots clefs ==== | ||
- | C'est le dernier type que l'on peut rencontrer. Il s'agit de mots clefs ou keywords, aussi connu sous le terme de mots réservés lesquels ne peuvent être utilisé pour définir des variables ou des fonctions. | + | C'est le dernier type que l'on peut rencontrer. Il s'agit de mots clefs ou keywords, aussi connu sous le terme de mots réservés lesquels ne peuvent être utilisé pour définir des variables ou des fonctions. Ils permettront l’écriture de programmes bash ainsi que la structuration de commandes complexes. |
- | $ type -t if else then | + | <code user> |
- | keyword | + | type -t if else then |
keyword | keyword | ||
keyword | keyword | ||
+ | keyword</code> | ||
===== Conclusion ===== | ===== Conclusion ===== | ||
- | Voici un aperçu rapide de la nature des commandes que l'on peut trouver dans un système Linux. A côté de ces commandes, on peut également trouver des méta caractères, ou globs ou pattern mais ceux ci ne seront pas abordés ici. | + | Voici un aperçu rapide de la nature des commandes que l'on peut trouver dans un système Linux. A côté de ces commandes, on peut également trouver des méta caractères, ou globs ou patterns mais ceux ci ne seront pas abordés ici. |