Premier pas avec Bash

Jalons du Projet CMD 1 CMD 2 Outils Script Final

C'EST QUOI LE SHELL ?

Il existe, de nos jours, plusieurs shells, chacun disposant de spécificités propres. Le Bourne Shell (sh) est le shell le plus connu et le plus courant sur les Unix. Le C-shell (csh) reprend la structure du langage C. le Korn Shell (ksh) est une évolution du Bourne Shell. Le Z-Shell (zsh) est lui-même une évolution du korn shell. Le shell de référence sous Linux se nomme Bourne Again Shell (bash).

PREMIER PAS AVEC BASH

Gestion de répertoire et de fichiers.

Pour bien comprendre la gestion de répertoire et de fichiers, nous avons préféré illustrer trivialement le disque comme un vaste terrain et les dossiers(ou répertoires) qu’il contient comme des parcelles. Nous avoir une liste claire de commandes, nous considérons que le terme gestion présuppose la création, la suppression, … , le déplacement d’un répertoire et d’un fichier.

Les principaux répertoires du disque 





Création répertoire

Dans ce disque (vaste terrain, comme illustré ci-dessus), pour créer un répertoire (en d’autre mot illustratif, se procurer un terrain), il va falloir placer les bornes (délimiter par une direction, en anglais Make Directory, d’où la commande mkdir que nous utilisons pour créer le répertoire.








Change direction

Pour se déplacer dans les répertoires, nous utilisons la commande cd (change directory).




Chemin absolu vs relatif

Un chemin absolu ou complet :

-          Démarre de la racine, donc commence par un « / ».

-          Décrit tous les répertoires à traverser pour accéder à l’endroit voulu.

-          Ne contient pas de « . » ni de  « .. ».

 

Un chemin relatif

-          Décrit un chemin relatif à une position donnée dans l’arborescence, généralement (mais pas toujours) depuis la position courante.

-          Décrit en principe le plus court chemin pour aller d’un point à un autre.

-          Peut contenir des points ou des doubles points.


Note : Un nom de chemin peut aussi être relatif à sa position courante dans le répertoire. Le système (le shell) mémorise la position actuelle d’un utilisateur dans le système de fichiers, le répertoire actif.

Nous pouvons donc accéder à un autre répertoire de l’arborescence depuis l’emplacement actuel sans taper le chemin complet uniquement en précisant le chemin le plus court relativement à notre position actuelle au sein de l’arborescence.

Il faut pour cela souvent utiliser deux entrées particulières de répertoires :

-          Le point « . » représente le répertoire courant, actif. Il est généralement implicite.

-          Les doubles points « .. » représentent le répertoire de niveau inférieur.




Le tilde

Le bash interprète le caractère tilde ~ comme un alias du répertoire personnel. Les chemins peuvent être relatifs au tilde, mais le tilde ne doit être précédé d’aucun caractère. Pour vous déplacer dans le répertoire tmp de votre dossier personnel d’où que vous soyez :


Si vous entrez ceci, vous obtenez une erreur :


Les affirmations :

-          /usr/local/bin est un chemin complet ou absolu.

-          Documents/Photos est un chemin relatif : le répertoire Documents est considéré comme existant dans le répertoire courant.

-          ./Documents/Photos est un chemin relatif parfaitement identique au précédent, sauf que le répertoire actif (courant) est explicitement indiqué par le point. « ./Documents » indique explicitement le répertoire Documents dans le répertoire actif.

-          /usr/local/../bin est un chemin relatif : les .. sont relatifs à /usr/local et descendent d’un niveau vers /usr. Le chemin final est donc /usr/bin.


Pour télécharger notre le document entier Cliquez ici

Dans quel répertoire je suis ?

Nous utiliserons la commande PWD : Print Working Directory, qui veut dire Imprimer le Répertoire Courant, en d’autres mots  pour savoir dans quel répertoire on se trouve.

Suppression répertoire

Pour supprimer un répertoire, nous utilisons la commande rmdir, acronyme de Remove Directory, qui veut dire littéralement, déplacer pour un endroit transparent aux utilisateurs. Le dossier supprimé peut être restauré grâce à de technique plus poussé et qui n’entre pas dans le cadre de notre exo.



Note : Il n’y a pas des paramètres –r (recusivité) pour supprimer une arborescence. D’où :


La commande « rmdir –r PROJET-MASTER1 » produit une erreur en sortie les raisons nous l’avons évoquées. Et la commande « rm -r PROJET-MASTER1 » utilisée à la place pour supprimer une arborescence, pour notre cas il s’agit du répertoire PROJET-MASTER1  avec ses sous répertoires rep1, rep2, rep3, rep4, repN.



Pour télécharger notre le document entier Cliquez ici

Les Outils indispensables


Dans notre projet nous avons utilisé Trameur, WordItOut et Wordle, pour l'analyse textométrique.

Pour résoudre certains problèmes d'encodages, nous avons utilisé minigrep :

----------------------------------------------------------------------------------

SYNTAXE : $CMD [options]   

OPTIONS :
-h imprime le mode d'emploi de ce programme

EXEMPLES:
perl mini-grep-multilingue.pl \"UTF-8\" RU_Convention_UTF8.txt motif.txt

----------------------------------------------------------------------------------


Pour résoudre le problème de segementation, le chinois, en l'occurence, il y a le module Word::Segmenter::Chinese::Lite

----------------------------------------------------------------------------------

use Word::Segmenter::Chinese::Lite qw(wscl_seg wscl_set_mode); #Word::Segmenter::Chinese::Lite - Split Chinese into words my @result = wscl_seg("中华人民共和国成立了oyeah"); foreach (@result) { print $_, "\n"; } # got: # 中华人民共和国 # 成立 # 了 # oyeah wscl_set_mode("obigram"); my @result = wscl_seg("中华人民共和国成立了"); foreach (@result) { print $_, "\n"; } # got: # 中华 # 华人 # 人民 # 民共 # 共和 # 和国 # 国成 # 成立 # 立了 # 了 wscl_set_mode("unigram"); my @result = wscl_seg("中华人民共和国"); foreach (@result) { print $_, "\n"; } # got: # 中 # 华 # 人 # 民 # 共 # 和 # 国 ----------------------------------------------------------------------------------

Pour télécharger notre le document entier Cliquez ici

Construction progressive de la chaîne de traitement

Premier script : créer un tableau de liens

Objectif : Lire un fichier contenant une liste d'URL et produire un fichier HTML contenant un tableau (à 1 colonne) regroupant ces URLs


















...









Notre projet en six fichiers :

Fichiers à télécharger
Liens
Script final
Cliquez ici
parametres Cliquez ici
motif-regexp Cliquez ici
URLs Pages en Chinois Cliquez ici
URLs Pages en Anglais Cliquez ici
URLs Pages en Français Cliquez ici


Pour télécharger notre le document entier Cliquez ici

Membres Dynamik-Team