Le Groupe de Travail Linux

26 avril 1999 : Programmation en Shell
David LUBICZ

Le Shell permet de
1 - lancer des commandes ;
2 - utiliser le job control (contrôle des tâches) ;
3 - utiliser l'historique ;
4 - rediger des commandes vers d'autres commandes.

Exemple de Shell : sh, puis Bourne-Shell, qui est devenu bash ; csh, développé par BSD, qui est devenu tcsh.

1 - Pipes et redirections.

La redirection se fait au moyen de la commande |  . Exemples :
1 - ls -l | more affiche la liste des fichiers en petits paquets (taper 'espace' pour voir le suivant) ;
2 - ps | more affiche la liste des processus en cours en petits paquets (taper 'espace' pour voir le suivant).

Lorsque le système lance un fichier exécutable, cela peut donner lieu à l'ouverture de fichiers, qui sont alors repérés par un numéro (leur descripteur). Il y a trois fichiers ouverts systématiquement :
1 - 0 désigne le fichier standard d'entrée ;
2 - 1 désigne le fichier standard de sortie ;
3 - 2 désigne le fichier standard d'erreur.

La commande ls -l > monfich.txt met la liste des fichiers dans le fichier monfich.txt.
La commande ls -l >> monfich.txt fait de même, à ceci près que la liste est ajoutée à la fin du fichier  monfich.txt.
La commande kill -1 1234 > kill.txt > killer.txt détruit le processus 1234. S'il n'existe pas, une erreur est envoyée dans le fichier killer.txt .

2 - Comment écrire un script?

La première ligne doit indiquer comment doivent être interprétées les commandes. Exemple :
1 - #!/bin/sh provoque l'interprétation des commandes par le shell sh ;
2 - #!/bin/gs provoque l'interprétation des commandes par le gs ;
2 - #!/bin/perl provoque l'interprétation des commandes par le langage perl.

Ensuite on tape la liste des commandes.

Une fois le script écrit, et sauvegardé dans un fichier (par exemple test.sh). Il faut taper

chmod 755 test.sh

pour rendre le fichier exécutable au niveau du répertoire courant.

Si vous avez des critiques, vous pouvez me les faire parvenir.
Si vous rencontrez des fautes de frappes, vous pouvez aussi me les signaler

Vous pouvez retourner au sommaire.