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 | ||
atelier:chantier:les-commandes-du-shell [02/08/2021 17:40] cyrille [Introduction : Les différents types de commandes Linux] |
atelier:chantier:les-commandes-du-shell [02/01/2022 12:53] (Version actuelle) cyrille [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>à-placer}} |
* Création par [[user>cyrille]] 02/08/2021 | * Création par [[user>cyrille]] 02/08/2021 | ||
+ | * Relecture et complément par [[user>vv222]], [[user>enicar]] 02/08/2021 | ||
* 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 !)) | * 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 !)) | ||
Ligne 19: | Ligne 20: | ||
__Usage__ | __Usage__ | ||
- | <code user>type commande | + | <code user> |
+ | type commande | ||
type -t commande | type -t commande | ||
- | type -a commande</code> | + | type -a commande |
+ | </code> | ||
Généralement, on en distingue 5. | Généralement, on en distingue 5. | ||
Ligne 30: | Ligne 33: | ||
Ce sont des commandes internes (construites dans le shell (ainsi nommées "shell builtins")), aussi appelées primitives du shell. | Ce sont des commandes internes (construites dans le shell (ainsi nommées "shell builtins")), aussi appelées primitives du shell. | ||
- | 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**. | + | //**Ces commandes primitives ne génèrent pas de nouveaux processus, contrairement aux commandes externes.**// |
- | On trouve les commandes : set, cut, cd, true, false, test, exec, echo, pwd... | + | Pour avoir de l'aide quant à ces commandes, il faut passer par **help** (**help cd**). |
+ | |||
+ | On trouve les commandes : set, cd, help, true, false, test, exec, echo, pwd... | ||
Par exemple : | Par exemple : | ||
- | <code user>type -a cd echo pwd true | + | <code user> |
+ | type -a cd echo pwd true | ||
+ | </code> | ||
+ | <code> | ||
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 55: | Ligne 62: | ||
Contrairement aux commandes primitives, elles généreront un nouveau processus. | 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. | + | Pour accéder à l'aide de ces commandes, il faut passer par la commande **man** ou passer le paramètre **<nowiki>--</nowiki>help** à la commande. |
Par exemple : | Par exemple : | ||
- | <code user>type -a mv cp rm | + | <code user> |
+ | type -a mv cp rm | ||
+ | </code> | ||
+ | <code> | ||
mv est /usr/bin/mv | mv est /usr/bin/mv | ||
mv est /bin/mv | mv est /bin/mv | ||
Ligne 64: | Ligne 74: | ||
cp est /bin/cp | cp est /bin/cp | ||
rm est /usr/bin/rm | rm est /usr/bin/rm | ||
- | rm est /bin/rm</code> | + | rm est /bin/rm |
+ | </code> | ||
Ligne 70: | Ligne 81: | ||
==== 3. Les alias ==== | ==== 3. Les alias ==== | ||
Les alias sont des raccourcis de commandes ou de groupes de commandes fastidieuses à saisir en raison de leur longueur ou de leurs options. | Les alias sont des raccourcis de commandes ou de groupes de commandes fastidieuses à saisir en raison de leur longueur ou de leurs options. | ||
- | En utilisant un alias, ces commandes sont plus simples à retenir puisque limitées à un mot unique | + | En utilisant un alias, ces commandes sont plus simples à retenir puisque limitées à un mot unique. |
Exemple d'alias : | Exemple d'alias : | ||
- | <code user>alias monipv6='curl '\''https://api64.ipify.org?format=json'\'''</code> | + | <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 | ||
- | <code user>type -a ls | + | <code user> |
+ | type -a ls | ||
+ | </code> | ||
+ | <code> | ||
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 | + | </code> |
- | monipv6 est un alias vers « curl 'https://api64.ipify.org?format=json' »</code> | + | <code user> |
+ | type -a monipv6 | ||
+ | </code> | ||
+ | <code> | ||
+ | monipv6 est un alias vers « curl "https://api64.ipify.org?format=json" » | ||
+ | </code> | ||
Ligne 92: | Ligne 113: | ||
<code user> | <code user> | ||
type -a mp3CoverTag | type -a mp3CoverTag | ||
+ | </code> | ||
+ | <code> | ||
mp3CoverTag est une fonction | mp3CoverTag est une fonction | ||
mp3CoverTag () | mp3CoverTag () | ||
Ligne 99: | Ligne 122: | ||
eyeD3 --add-image "cover.jpg:FRONT_COVER" "$file"; | eyeD3 --add-image "cover.jpg:FRONT_COVER" "$file"; | ||
done | done | ||
- | }</code> | + | } |
+ | </code> | ||
Ligne 106: | Ligne 130: | ||
<code user> | <code user> | ||
- | type -t if else then | + | type -a if else then |
- | keyword | + | </code> |
- | keyword | + | <code> |
- | keyword</code> | + | if est un mot-clé du shell |
+ | else est un mot-clé du shell | ||
+ | then est un mot-clé du shell | ||
+ | </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 patterns 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. |