Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

La nature des commandes du shell

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).

On peut y rencontrer des commandes de natures différentes. Pour connaître leur nature ou leur type, on utilisera la commande type

Usage

type commande
 
type -t commande
 
type -a commande

Généralement, on en distingue 5.

1. Les primitives

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 commandes externes.

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 :

type -a cd  echo pwd true
cd est une primitive du shell
echo est une primitive du shell
echo est /usr/bin/echo
echo est /bin/echo
pwd est une primitive du shell
pwd est /usr/bin/pwd
pwd est /bin/pwd
true est une primitive du shell
true est /usr/bin/true
true est /bin/true

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.

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 :

type -a mv cp rm
mv est /usr/bin/mv
mv est /bin/mv
cp est /usr/bin/cp
cp est /bin/cp
rm est /usr/bin/rm
rm est /bin/rm

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. En utilisant un alias, ces commandes sont plus simples à retenir puisque limitées à un mot unique.

Exemple d'alias :

alias monipv6='curl "https://api64.ipify.org?format=json"'

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

type -a ls
ls est un alias vers « ls --color=auto »
ls est /usr/bin/ls
ls est /bin/ls
type -a monipv6
monipv6 est un alias vers « curl "https://api64.ipify.org?format=json" »

4. Les fonctions du shell

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.

type -a mp3CoverTag
mp3CoverTag est une fonction
mp3CoverTag () 
{ 
    for file in *.mp3;
    do
        eyeD3 --add-image "cover.jpg:FRONT_COVER" "$file";
    done
}

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. Ils permettront l’écriture de programmes bash ainsi que la structuration de commandes complexes.

type -a if else then
if est un mot-clé du shell
else est un mot-clé du shell
then est un mot-clé du shell

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.

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
atelier/chantier/les-commandes-du-shell.txt · Dernière modification: 02/08/2021 14:20 par cyrille

Pied de page des forums

Propulsé par FluxBB