Programmation shell avancée (If, While et For)

#IF La builtin if permet de tester la reussite d’une commande. Apres le if vous devez mettre un then, puis un fi a la fin de votre bloc. else permet d’utiliser un bloc alternatif au bloc then.

Mais un exemple est beaucoup plus clair :

#!/bin/sh
if cat noplay.txt
   then
      echo Le cat du fichier noplay.txt a reussi
elif cat test.txt
   then
      echo Le cat du fichier noplay.txt n a pas reussi mais le cat de test.txt a reussi
   else
      echo Le cat du fichier noplay.txt n a pas reussi
fi

Pour faire des comparaisons entre des variables vous devez utiliser la commande [ ou test ([ est un alias vers test).

if [ $test ]
then
   La variable test n'est pas vide
fi

if [$test = 2]
then
   La variable test est egale a deux
fi

Faite un man [ pour connaitre les possibilites de la commande [.

#WHILE while boucle tant qu’une condition est vraie.

while commande
do
commande à executer à chaque tour de boucle
done

#FOR Permet d’appliquer un traitement à une liste.

Par exemple pour afficher la liste des fichiers avec l’extension .jpg:

for file in *.jpg
do
  echo $file
done

Les fonctions en script shell

Pour creer une fonction il suffit de mettre le nom de la fonction suivi de () puis le code de la fonction.

mafonction()
*
   code de la fonction
*

L’appel à la fonction dans le code se fera en tapant:

mafonction argument1 argument2

#Les arguments La gestion des arguments se fait comme pour les arguments passe au script shell : on retrouve les parametres de notre fonction dans les variables $1, 2

#Retour d’une fonction Pour renvoyer une valeur depuis une fonction utilisez la commande return suivie de son code de retour.

Les fonctions ne peuvent retourner qu’un int ; si vous desirez recuperer une chaine, placez la dans une variable, en effet en shell toutes les variables sont globales vous pourrez donc la lire n’importe où dans votre code.

Pipes et redirections

Les pipes et les redirections sont des «commandes» très utiles à connaître lorsque l’on utilise un système UNIX. En effet ces «commandes» permettent par exemple de rediriger ce qu’affiche un programme à l’ecran vers un autre programme.

Il existe 4 redirections et un pipe dans les shells Unix.

#Rappel sur les sortie et entree standard

  • L’entrée standard est le clavier, ce que tape l’utilisateur.
  • La sortie standard est l’ecran.
  • La sortie d’erreur est l’ecran aussi mais est independante de la sortie standard.

#Les pipes Le pipe | permet de rediriger la sortie d’une commande vers une autre.

Par exemple si vous tapez:

ls /home | grep "test"

grep effectuera une recherche dans la sortie de ls (rappel: grep recherche ce qui lui est donnée en paramètre) et vous affichera toutes les lignes où il y a test.

#La redirection > La redirection > permet de rediriger la sortie standard d’une commande vers un fichier.

Par exemple:

ls > test

Va rediriger l’affichage de ls dans le fichier test.

#La redirection » Cette redirection marche exactement comme > sauf qu’elle ne vide pas le fichier avant d’écrire, mais elle écrit à la fin.

#La redirection < Cette redirection permet de lire un fichier et de rediriger son contenu sur l’entree standard du programme.

Par exemple:

grep "tmp" < test

Cette commande va faire une recherche de tmp dans le fichier test.

Si on avait utilisée les pipe on aurait pu écrire:

cat test | grep "tmp"

#La redirection « Cette redirection va stocker tous ce qui arrive sur l’entrée standard jusqu’à ce que la condition donnée en paramètre soit remplie.

cat << test

Si vous tapez cette commande vous verrez que votre shell ne fait rien, vous pouvez taper tout le texte que vous voulez et il n’affiche rien… Mais si vous tapez test il va brusquement afficher tout ce que vous avez tapée.

Cable réseau

A une époque, on utilisait du câble coaxial appelée BNC mais ce système avait un très gros défaut: les ordinateurs formaient une chaîne, si un maillon de la chaîne lâchait le réseau tombait. Mais aujourd’hui le câble le plus utilisée est le câble UTP avec des connecteurs RJ-45 (les alternatives sont rares et chères).

Il faut savoir que lorsqu’une entreprise fait son câblage elle le fait pour 10 à 15 ans donc le RJ-45 a encore de beaux jours devant lui.

#Le câble

Il s’agit d’un câble cuivre (comme celui du téléphone) composé de 4 paires torsadées (afin de limiter les interférences).

Pour le protocole Ethernet, on a normalisé la longueur maximale du câble à 90 mètres.

#Les différents câbles On peut trouver couramment 3 types de câbles.

  • Le UTP: Utilisé dans 90 % du monde c’est le câble le moins cher, il est compatible avec les connecteurs RJ 45 standard.

  • Le FTP: Bien sûr en France (65 % du marché) on ne fait jamais rien comme tout le monde. Ce câble est similaire à l’UTP sauf qu’il est entouré d’un écran (ressemblant à de l’aluminium) afin de limiter les perturbations électromagnétiques (appareil électrique, néon, moteur). Cela pose un problème puisqu’il faut décharger le câble, c’est-à-dire le relier à la terre. Pour rester compatible avec les prises RJ-45 standard on a décidé de métalliser la prise. Ce câble est souvent appelé blindé à tort.L’expérience à prouvé que l’UTP marchait parfaitement et que le FTP avait peu d’interet.

  • Le S/STP: Vous avez peu de chances de croiser ce câble car il ne sert que dans les milieux avec de fortes perturbations. On a ajouté au câble FTP un écran sur chaque paire.

Certains câbles possèdent un croisillon, c’est une pièce en plastique qui permet de bien séparer les paires afin d’augmenter la fréquence du câble. On trouve aussi un fil à dégainer, c’est un petit fil de nylon sur lequel vous pouvez tirer afin de dénuder le câble.

#Les catégorie de câbles Ces classes de câblages sont définis par l’ISO (International Standards Organization):

Classe Fréquence Protocoles  
supportés Catégorie des composants    
A 100 KHz Téléphonie, Numéris S0  
B 1 MHz Numéris S2  
C 16 MHz 10 base T  
D 100 MHz 100, 1000 base T 5
E 250 MHz 1000 base TX 6
F 600 MHz   7

En conclusion pour faire de l’ethernet 100 MBits, prenez du cable catégorie 5 voir 6 (la différence de prix est minime). Les connecteurs RJ 45 étant limités à 250 MHz, oubliez la classe F.

#Faire son câble Il est très intéressant d’un point de vue financier de faire son câble (enfin uniquement si vous devez en faire beaucoup).

En fonctions de l’usage que l’on va avoir il y a deux manière d’organiser le câble:

  • Croisé: Ce câble est destinée à relier deux PC ensemble
  • Droit: Ce câble est destinée à relier des PC à travers un hub ou switch.

Pour apprendre à cabler je vous conseille la lecture de cet article qui est très bien fait.

Dia

Dia est un programme Open-Source disponible sous windows et linux. Dia est un editeur de diagramme, c’est à dire qu’il vous permettra par exemple de faire les plans d’un reseau, un schemas electrique…

Voici un exemple de schéma réaliser avec Dia:

<45 center>

En conclusion un programme à essayer absolument.

Configurer son IP sous Windows

Il est souvent utile de pouvoir s’attribuer une IP fixe sur le réseau pour diverse raison (poste ayant la connections internet, hébergeant les partie…).

#S’attribuer une IP fixe sous Windows XP

  • Faites Démarrer/paramètre/Panneau de configuration/.
  • Cliquez sur Connexions réseau.
  • Ensuite allez dans les propriétés de votre connexion au réseau.

Cette fenêtre devrez s’afficher: <42|center>

Sélectionnez Protocole Internet TCP/IP et clique sur Propriétés. Vous verrez ensuite ceci:

<41 center>

#S’attribuer une IP fixe sous Windows 98/ME

  • Faites Démarrer/paramètre/Panneau de configuration/.
  • Cliquez sur Réseau.
  • Ensuite allez dans les propriétés de votre connexion au réseau.

Cette fenêtre devrez s’afficher: <43|center>

Sélectionnez TCP/IP (domestique) et clique sur Propriétés. Vous verrez ensuite ceci:

<44 center>
  • Cliquez sur Spécifier une adresse IP
  • Dans le champ Adresse IP mettez l’adresse IP que vous désirez utiliser
  • Dans le champ Masque de sous réseau laissez la valeur par défaut
  • Dans l’onglet Passerelle mettez l’adresse IP de l’ordinateur où se trouve la connections Internet (laissez vide si vous n’en avez pas besoin)
  • Puis dans l’onglet Configuration DNS remplissez les champs DNS [<1>] par exemple pour Wanadoo les DNS sont 80.10.246.1 et 80.10.246.132 [[<2>]].