200 likes | 338 Views
Historique. 1970. Développement dans un laboratoire de recherche Bell (Kernighan, Ritchie, Thompson) parallèlement au langage C Diffusion gratuite aux universités avec les sources, intégration de UUCP Maturité d’Unix (AT & T System V, BSD, Xenix, SunOS, SGI, Cray, HP ..)
E N D
Historique 1970 • Développement dans un laboratoire de recherche Bell (Kernighan, Ritchie, Thompson) parallèlement au langage C • Diffusion gratuite aux universités avec les sources, intégration de UUCP • Maturité d’Unix (AT & T System V, BSD, Xenix, SunOS, SGI, Cray, HP ..) • Début de la normalisation : IEE, POSIX, OSF … intégration de TCP/IP et de X windows du MIT • Linux 1976 1980 1990 TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Caractéristiquesgénérales • Multi tâches (temps partagé) • Multi utilisateurs • Organisation arborescente des fichiers • Création dynamique de processus (fork) • Communication entre processus (pipe) • Langage de commandes (shell) • Accès généralisé aux périphériques TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Description du système Unix Shell Outils Matériel Interface Graphique Noyau SGBD … TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Le Shell Les différentes familles de Shell : Bourne Shell (sh), C Shell (csh), Korn Shell (ksh) … Les caractéristiques communes : • Définition de variables • Redirection des entrées et des sorties • Communication par des « pipe» • Lancement de programmes en arrière plan • Programmation (shell scripts) TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Connexion au système Connexion à la machine : login : nicolas password : ????? Déconnexion exit Changement de mot de passe passwd Eviter les mots simples et les prénoms. Faire un mélange Majuscules, minuscules, chiffres & caractères spéciaux (e.g. LaKc2cD!) Les utilisateurs sont rassemblés en groupes TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Syntaxe générale Commande d’aide man Commande option paramètres ls -l/etc Enchaînement des commandes ; Traitement en arrière plan & Redirections < > Connexion de deux processus | TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Commandes de repertoires Notion de chemin relatif et absolu Positionnement et déplacement dans l’arborescence pwd(print working directory)cd(change directory) Création et destruction de répertoires mkdir (make directory) rmdir (remove directory) Contenu d’un répertoire ls (liste) / dev var etc home moi doc TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Commandes de fichiers Contenu d’un fichiercat, more Renommer un fichier mv Copie d’un fichiercp Détruire un fichier rm Lien sur un fichierln Compression & décompression d’un fichier compress uncompress gzip gunzip bzip2 bunzip2 Type d’un fichierfileFin du contenu d’un fichiertail TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Droits sur les fichiers & répertoires Les droits sont de trois types : lecture ( r ) écriture ( w ) exécution ( x ) Ils sont appliqués à trois catégories d’utilisateurs Propriétaire du fichierGroupeles Autres rwxrwxrwx Modification des droits d’un fichier/répertoire chmod Modification du propriétaire d’un fichier /répertoirechown Modification du groupe d’un fichier /répertoirechgrp TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Autres commandes Heure et datedate Calendriercal Qui est connectéwho Traitement du contenu d’un fichier Tri d’un fichiersort Recherche dans un fichiergrep Comptage du contenu d’un fichierwc Recherche d’un fichierfind TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Editeur de textes vi Très puissant et toujours disponible quelque soit le terminal, mais totalement déroutant vi fonctionne en deux modes ESC commandes édition Quelques commandes de base (attention aux majuscules/minuscules) Annulation uInsertion i Remplacement d’ un caractère r Effacement d’ un caractère x Effacement d’ une ligne dd Enregistrer :w Quitter :q Quitter & enregistrer :wq Déplacement Gauche h Droite l Haut k Bas j TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Les scripts shell Un shell script est un fichier qui contient une suite de commandes shell reliées par des instructions de structuration C’est l’outil fondamental de Unix qui permet de lier l’exécution de « briques » de programmes • Un shell script doit être un fichier exécutable (chmod +x) • La première ligne contient #[chemin vers le shell] (e.g. #!/bin/sh) • Le # en début de ligne indique un commentaire • On peut lui passer des paramètres TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Les variables du shell Un nom de variable est une chaîne de caractères sans espaces en général en Majuscules: COUCOU TRUC ESSAI Affectation du contenu en sh COUCOU=Bonjour (Attention pas d’espace) Accès au contenu d’une variable $[nomde la variable] : echo $COUCOU Rôle particulier des quotes pour le shell ‘ ‘ Pas d’évaluationdu contenu entre les quotesTRUC=‘$COUCOU’ « « Evaluation du contenu entre les quotesTRUC=« $COUCOU » ` ` Double évaluation du contenu entre les quotes $COUCOU=date;TRUC=`$DATE` Quelques variables standard Unix PATHchemins d’accès aux programmes HOMErépertoire de connexion USERnom d’utilisateur MANPATHchemins d’accès aux manuels TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Les scripts shell Variables spécifiques des shell scripts Paramètres $# nombre de paramètres $* liste des paramètres $0 nom du script $1 $2 … $9 contenu des paramètres Autres $$ numéro du processus $? Valeur de retour du dernier processus #!/bin/sh echo « Je suis le programme $0 » echo « avec $# paramètres » TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Les scripts shell : structuration Test et branchement ifcondition then commande else commande fi On teste la valeur de retour d’une commande Unix, il en existe une particulière qui s’appelle « test » (vérification d’existence de fichier, comparaison …). Elle peut également s’écrire [ ] #!/bin/sh if test -f monfichier.txt then echo « le fichier existe » fi #!/bin/sh if [ -f monfichier.txt ] then echo « le fichier existe » fi TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Les scripts shell : structuration Tests et branchements multiples case variable in pattern1) commande ;; pattern1) commande ;; pattern2) commande ;; esac #!/bin/sh case $1 in 1) echo « un »;; 2) echo « deux »;; 3) echo « trois »;; esac TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Les scripts shell : structuration Boucles for variable in liste do commande done #!/bin/sh for $i in 1 2 3 echo $i done while condition do commande done #!/bin/sh i=0 while [ $i -ne "1" ] do read i done TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Les scripts shell Calculs Tout comme pour les tests, on utilise une fonction spécifique d’évaluation : expr (attention à l’utiliser avec les `` ) Opérateurs d’expression numériques + addition - soustraction \* multiplication / division #!/bin/sh i=0 while [ $i -ne 100 ] do i=`expr $i + 1` echo $i done TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Commandes réseau Connexion à distancetelnet machine [port] Transfert de fichiersftp machine Commandes sécuriséesssh machine Test de la présence d’une machinesur le réseauping machine TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002
Références URL http://www.bell-labs.com/history/unix/ http://www.ling.helsinki.fi/users/reriksso/unix/shell.html http://www.shelldorado.com/ http://linuxcommand.org/writing_shell_scripts.html http://www.linuxfocus.org/Francais/September2001/article216.shtml … D. Ritchie B. Kenighan Publications J.M. Rifflet La programmation sous Unix (Mc Graw Hill) … K.Thompson TRANSFER Bujumbura – préformation Unix Nicolas Larrousse Février 2002