La Documentation
La page Agora passe en revu les différentes commandes ainsi que leurs options qui nous ont permis d'arriver au résultat final.
-
Un système de fichiers :
Le "système de fichiers" est toujours un des aspects les plus importants d'un système d'exploitation pour la simple et bonne raison que si, en informatique, on manipule des informations,
il faut bien pouvoir les stocker quelque part. C'est donc le rôle dévolu au système de fichiers que de gérer la manière dont les informations sont organisées sur le disque dur et les autres périphériques de stockage.
Il faut préciser que le système de fichiers de Linux est caractérisé par le fait qu'il possède une racine unique que l'on désigne par le caractère slash(/). A partir de cette racine, on trouve certain nombre de dossiers ou répertoires dont le nom et la fonctionnalité sont plus ou moins normalisés.
-
Un répertoire :
Un "répertoire" est une liste de descriptions de fichiers. Du point de vue du système de fichiers, il est traité comme un fichier dont le contenu est la liste des fichiers référencés.
Un répertoire a donc les mêmes types de propriétés qu'un fichier comme le nom, la taille, la date, les droits d'accès et les divers autres attributs.
-
Une arborescence :
Chaque fichier ou répertoire est référencé par un autre répertoire, ce qui forme une hiérarchie cohérente, appelée aussi "arborescence", dont le point d'entrée est le répertoire racine.
-
Cygwin :
"Cygwin" est une collection de logiciels libres à l'origine développés par Cygnus Solutions permettant à différentes versions de Windows de Microsoft d'émuler un système Unix. Cygwin tente de créer un environnement Unix sous Windows, rendant possible l'exécution de ces logiciels après une simple compilation.
-
Le shell :
Le "shell" est un interpréteur de commandes. Plus qu'une simple couche isolante entre le noyau du système d'exploitation et l'utilisateur, il est aussi un langage de programmation puissant. Un programme shell, appelé un script, est un outil facile à utiliser pour construire des applications en « regroupant » des appels système, outils, utilitaires et binaires compilés.
Virtuellement, le répertoire entier des commandes UNIX, des utilitaires et des outils est disponible à partir d'un script shell.
-
#!/bin/sh :
Le "sha-bang (#!)" en en-tête d'un fichier indique à votre système que ce fichier est un ensemble de commandes pour l'interpréteur indiqué.
Tout de suite après le sha-bang se trouve un chemin. C'est le chemin vers le programme qui interprète les commandes de ce script. /bin/sh appelle par défaut l'interpréteur Bash.
-
Echo :
La commande interne "echo" envoie (vers stdout) une expression ou une variable.
Habituellement, chaque commande "echo" envoie un retour à la ligne, mais l'option -n désactive ce comportement.
Sachez que echo `commande` supprime tous les retours chariot que la sortie de commande génère.
-
Ls :
"Ls" est la commande élémentaire de « listage » du contenu d'un répertoire. Par exemple, en utilisant -R, l'option de récursivité, "ls" affiche une structure de répertoire sous la forme d'une arborescence.
-
Let :
La commande "let" réalise des opérations arithmétiques sur des variables.
-
Une variable :
Le nom d'une variable est un point de repère pour sa valeur, la donnée qu'elle contient. L'action de référencer sa valeur est appelée substitution de variable.
- $ : Il faut distinguer soigneusement le nom d'une variable de sa valeur. Si variable1 est le nom d'une variable, alors $variable1 est une référence à sa valeur, la donnée qu'elle contient.
Entourer une valeur référencée de guillemets (" ") n'interfère pas avec la substitution de variable. On appelle cette action les guillemets partiels et quelque fois la protection faible. Utiliser une apostrophe (' ') provoque une utilisation littérale du nom de la variable et aucune substitution n'est effectuée. C'est ce qu'on appelle les guillemets complets ou la « protection forte ».
-
Cat :
La commande "cat" est un acronyme de concatenate (NdT : concaténer en français), affiche le contenu d'un fichier sur stdout. Lorsqu'il est combiné avec une redirection (> ou >>), il est couramment utilisé pour concaténer des fichiers.
-
For :
For arg in [liste] -> C'est la construction de boucle de base.
-
Wget :
L'utilitaire "wget" recupère de façon non-interactive ou télécharge des fichiers à partir d'un site Web ou d'un site ftp. Il fonctionne bien dans un script.
- L'option -p ou --page-requisite fait que wget récupère tous les fichiers requis pour afficher la page spécifiée.
- L'option -r suit récursivement et récupère tous les liens du site spécifié.
En ce qui nous concerne, deux options nous intéresse:
- L'option -i lit les URL depuis fichier. Dans ce cas, aucune URL n'est requise sur la ligne de commande. S'il y a des URL sur la ligne de commande et dans un fichier d'entrée, celles de la ligne de commande sont téléchargées en premier. fichier n'est pas nécessairement un document HTML, une simple liste d'URL convient également.
- Avec l'option -O, les documents ne seront pas écrits dans les fichiers appropriés, mais tous concaténés les uns aux autres et écrits dans fichier. Si fichier existe déjà, il sera remplacé. Si fichier vaut -, les documents seront écrits sur la sortie standard. Cette option positionne automatiquement le nombre de tentatives à 1.
-
Lynx :
"Lynx" est un client World Wide Web (WWW) complet pour les utilisateurs utilisant des périphériques adressables via le curseur, à affichage orienté caractère. Il affichera des documents HTML contenant des liens vers des fichiers résidant dans le système local, aussi bien que des fichiers résidant sur des systèmes distants exécutant des serveurs Gopher, HTTP, FTP, WAIS et NNTP.
Le navigateur web "lynx" peut être utilisé dans un script (avec l'option -dump) pour récupérer un fichier d'un site web ou ftp de façon non interactive.
-
Egrep :
egrep affiche à l'écran toutes les lignes de fichier qui contiennent une chaîne désignée par patron. Cette commande accepte les expressions régulières avec les ajouts suivants :
- Une ER suivie de + désigne une ou plus occurrence de l'ER.
- Une ER régulière suivie de ? désigne 0 ou 1 occurrence de l'ER.
- La barre verticale | et nouvelle-ligne jouent le rôle de ou entre deux ERs.
- Les parenthèses peuvent être utilisées pour grouper.
- Il faut faire attention aux caractères qui ont un sens particulier pour les shells, en particulier : $, *, [, ^, |, (, ). Il vaut mieux entourer toute l'ER par des apostrophes '...' pour éviter toute interprétation par le shell.
- L'ordre de précédence des opérateurs est le suivant : [], * ? +, la concaténation puis le ou.
Grâce à toutes ces commandes citées ci-dessus, nous avons pu générer le script ci-dessous:
Pour excécuter le script, nous utilisons cygwin et en quelques minutes, nous obtenons le résultat désiré.