diff --git a/UnixShell_cours2018/Unix.txt b/UnixShell_cours2018/Unix.txt index 0fd2109..47bcc43 100644 --- a/UnixShell_cours2018/Unix.txt +++ b/UnixShell_cours2018/Unix.txt @@ -12,20 +12,20 @@ 1969 / AT&T Bell Laboratories (Ken Thompson, Dennis Ritchie) / PDP7 -1972 / 10 UNIX install�s +1972 / 10 UNIX installés -1973 / r�-�crit en C / portabilit� +1973 / ré-écrit en C / portabilité 1979 / Bourne shell 1983 / AT&T UNIX System V 1984 / TCP/IP sur 4.2BSD --> Internet - / 100 000 UNIX install�s + / 100 000 UNIX installés -1987 / 750 000 UNIX install�s +1987 / 750 000 UNIX installés -1991 / Linux en d�veloppement (par Linus Torvalds) +1991 / Linux en développement (par Linus Torvalds) 1999 / Linux 2.2 @@ -37,17 +37,17 @@ http://www.unix-systems.org/what_is_unix/history_timeline.html -Diff�rents UNIX: +Différents UNIX: -HP-UX, Solaris (Sun), (DEC), AIX (IBM), Xenix (Microsoft, abandonn�), +HP-UX, Solaris (Sun), (DEC), AIX (IBM), Xenix (Microsoft, abandonné), IRIX (SGI), BSD (Berkeley), FreeBSD, Linux, MacOS X (Apple), QNX, ... Cas de Linux: -Le noyau est le m�me 2.2, 2.4 ou 2.6 (dernier num�ro pair: version -stable, impair: version de d�veloppement), mais les distributions -changent (facilit�s d'installation, programmes fournis, facilit�s de +Le noyau est le même 2.2, 2.4 ou 2.6 (dernier numéro pair: version +stable, impair: version de développement), mais les distributions +changent (facilités d'installation, programmes fournis, facilités de configuration, ...): RedHat, Mandrake, SuSE, UnitedLinux (SCO, SuSE, TurboLinux, Conectiva), Slackware, Debian, ... Gratuit et sources fournies. @@ -55,37 +55,37 @@ http://www.linux-france.org/ http://www.linux.org/ http://lea-linux.org/intro/ (Linux Entre Amis) -http://www.delafond.org/survielinux/ (Guide de survie du d�butant sous +http://www.delafond.org/survielinux/ (Guide de survie du débutant sous Linux) -Caract�ristiques --------------------------------- +Caractéristiques --------------------------------- -UNIX est un syst�me d'exploitation: -- portable (de nombreuses architectures support�es) -- r�seau (on peut se connecter � une machine distante et y ex�cuter +UNIX est un système d'exploitation: +- portable (de nombreuses architectures supportées) +- réseau (on peut se connecter à une machine distante et y exécuter des programmes, pour peu qu'on puisse s'y loguer). -- multi-t�ches (plusieurs programmes peuvent tourner en m�me temps, ce -qui n'�tait pas le cas de Windows 3 - pas r�ellement, ni celui de de +- multi-tâches (plusieurs programmes peuvent tourner en même temps, ce +qui n'était pas le cas de Windows 3 - pas réellement, ni celui de de MacOS < 10) -- multi-utilisateurs (plusieurs utilisateurs peuvent utiliser la m�me -machine en m�me temps). +- multi-utilisateurs (plusieurs utilisateurs peuvent utiliser la même +machine en même temps). -Ces caract�ristiques sont de plus en plus pr�sentes dans les syst�mes -d'exploitation modernes (alors que �a fait plus de 30 ans qu'UNIX les -poss�de). +Ces caractéristiques sont de plus en plus présentes dans les systèmes +d'exploitation modernes (alors que ça fait plus de 30 ans qu'UNIX les +possède). ex: Windows NT-2000-XP, MacOS X, Linux, Amiga, ... X Window System ---------------------------------- -X Window (appel� aussi "X" ou "x11") est la couche graphique des -syst�mes bas�s sur Unix. Elle est la m�me sur nombre de syst�mes -d'exploitation diff�rents, et tient compte du r�seau. +X Window (appelé aussi "X" ou "x11") est la couche graphique des +systèmes basés sur Unix. Elle est la même sur nombre de systèmes +d'exploitation différents, et tient compte du réseau. X Window a une architecture client/serveur: une application graphique -est consid�r�e comme un client d'un serveur X (c'est-�-dire le -programme qui affiche les donn�es sur l'�cran du poste de travail). +est considérée comme un client d'un serveur X (c'est-à-dire le +programme qui affiche les données sur l'écran du poste de travail). Exemple de serveurs X: - XWin @@ -100,8 +100,8 @@ La plupart des commandes Unix se manipulent en mode texte. Certaines des applications aussi. D'autres ne fonctionne qu'en mode graphique (sous X). -Certaines fonctionnent dans les 2 modes (�a d�pend de ce qui est -disponible): emacs est de celles-l�. +Certaines fonctionnent dans les 2 modes (ça dépend de ce qui est +disponible): emacs est de celles-là. Emacs -------------------------------------------- @@ -110,13 +110,13 @@ Window Managers ---------------------------------- Le "look-and-feel" de X est configurable: on peut utiliser plusieurs -"Window managers" (contrairement � Windows, o� l'on n'a pas le choix -de l'interface graphique, m�me si on peut configurer un peu les +"Window managers" (contrairement à Windows, où l'on n'a pas le choix +de l'interface graphique, même si on peut configurer un peu les couleurs, les comportements -- avec TweakUI). http://www.xwinman.org/ -� garder en r�serve. +À garder en réserve. Commandes ---------------------------------------- @@ -127,8 +127,8 @@ Shell -------------------------------------------- -Nous ne verrons ici que le shell sh (aussi appel� Bourne Shell), avec -lequel ksh est compatible (ksh est le shell par d�faut � l'INIST). +Nous ne verrons ici que le shell sh (aussi appelé Bourne Shell), avec +lequel ksh est compatible (ksh est le shell par défaut à l'INIST). -- variables d'environnement --- @@ -137,7 +137,7 @@ PS1 SHELL --- ex�cution d'un script -- +-- exécution d'un script -- sh #!/bin/sh @@ -150,7 +150,7 @@ ${variable} export variable --- les param�tres -- +-- les paramètres -- $0 $n @@ -158,12 +158,12 @@ $* shift --- variables sp�ciales -- +-- variables spéciales -- $$ $? --- caract�res sp�ciaux -- +-- caractères spéciaux -- \ "..." @@ -198,57 +198,57 @@ expr e1 : regexp -http://www.shellunix.com/ (en fran�ais) +http://www.shellunix.com/ (en français) Make --------------------------------------------- -make < GNU make (GNU make est celui qu'on utilise � l'INIST) +make < GNU make (GNU make est celui qu'on utilise à l'INIST) make est un programme qui permet de gagner du temps. Il arrive qu'on construise de gros shells qui, traitent un corpus, en -extraient des informations, et/ou en font une synth�se. +extraient des informations, et/ou en font une synthèse. -Or, d�s que le corpus change, ou que les param�tre de traitement -changent (par exemple, une table de r�f�rence), quand on n'a pas make, +Or, dès que le corpus change, ou que les paramètre de traitement +changent (par exemple, une table de référence), quand on n'a pas make, on relance le shell. Dans ce cas on relance un traitement qui n'aurait -pas forc�ment besoin d'�tre ex�cut� *depuis le d�but*. +pas forcément besoin d'être exécuté *depuis le début*. -Pour pallier � ce probl�me, on peut aussi d�couper ce gros shell en -plusieurs petits, mais il subsiste un �cueil: il faut s'assurer qu'on -a bien ex�cut� tous les shells n�cessaire � la prise en compte des -derni�res modifications. +Pour pallier à ce problème, on peut aussi découper ce gros shell en +plusieurs petits, mais il subsiste un écueil: il faut s'assurer qu'on +a bien exécuté tous les shells nécessaire à la prise en compte des +dernières modifications. -Make est l� pour r�pondre � tous ces besoins: gr�ce aux dates de -modification des fichiers, et � une liste de d�pendences entre -fichiers de d�part et fichiers d'arriv�e, il simplifie la reg�n�ration -de fichiers (sans qu'on aie � tenir une liste des fichiers modifi�s, -et donc des shells � ex�cuter). +Make est là pour répondre à tous ces besoins: grâce aux dates de +modification des fichiers, et à une liste de dépendences entre +fichiers de départ et fichiers d'arrivée, il simplifie la regénération +de fichiers (sans qu'on aie à tenir une liste des fichiers modifiés, +et donc des shells à exécuter). -De plus, make est un programme g�n�rique, qui peut �tre appliqu� � +De plus, make est un programme générique, qui peut être appliqué à bien d'autres programmes que de simples shells. On s'en sert par -exemple pour compiler de gros projets (pour avoir un programme � jour, -il faut qu'il soit recompiler d�s qu'un des fichiers dont il d�pend -est modifi�). +exemple pour compiler de gros projets (pour avoir un programme à jour, +il faut qu'il soit recompiler dès qu'un des fichiers dont il dépend +est modifié). -- -Par d�faut, make utilise le fichier makefile pr�sent dans le -r�pertoire courant. Ce fichier doit contenir les r�gles de d�pendances -entre fichiers � g�n�rer et fichiers de base (un fichier peut -appartenir aux deux cat�gories, mais dans des r�gles diff�rentes), et -les commandes � ex�cuter pour obtenir les fichiers � g�n�rer. +Par défaut, make utilise le fichier makefile présent dans le +répertoire courant. Ce fichier doit contenir les règles de dépendances +entre fichiers à générer et fichiers de base (un fichier peut +appartenir aux deux catégories, mais dans des règles différentes), et +les commandes à exécuter pour obtenir les fichiers à générer. -une r�gle est de la forme: +une règle est de la forme: cible: base commande -O� la commande doit �tre pr�c�d�e d'une tabulation! Il peut y avoir +Où la commande doit être précédée d'une tabulation! Il peut y avoir plusieurs lignes de commandes, et plusieurs fichiers de base. -Pour cr�er le fichier cible (qui est une r�gle du fichier makefile), +Pour créer le fichier cible (qui est une règle du fichier makefile), il suffit de taper: make cible. http://www.eng.hawaii.edu/Tutor/Make/FrenchMake/make.htm @@ -259,101 +259,101 @@ Sed ---------------------------------------------- -Sed (pour Stream EDitor) est un �diteur non interactif de texte. Il -permet d'appliquer une certain nombre de commandes � un fichier puis -d'en afficher le r�sultat (sans modifier le fichier de d�part) sur la +Sed (pour Stream EDitor) est un éditeur non interactif de texte. Il +permet d'appliquer une certain nombre de commandes à un fichier puis +d'en afficher le résultat (sans modifier le fichier de départ) sur la sortie standard. Substitution ------- La commande suivante lit et affiche ses lignes sur la sortie -standard en rempla�ant la cha�ne Dilib par la cha�ne DILIB. +standard en remplaçant la chaîne Dilib par la chaîne DILIB. sed 's/Dilib/DILIB/' fichier -Il est conseill� d'entourer les commandes par des apostrophes simples, -pour �viter que le shell n'interpr�te les caract�res sp�ciaux ( +Il est conseillé d'entourer les commandes par des apostrophes simples, +pour éviter que le shell n'interprète les caractères spéciaux ( .*[]^$\ ). -ATTENTION: cette commande ne remplace que la premi�re occurrence de -"Dilib" sur chaque ligne du fichier. S'il y en a deux, la deuxi�me ne -sera pas remplac�e, � moins d'utiliser l'option g en fin de commande: +ATTENTION: cette commande ne remplace que la première occurrence de +"Dilib" sur chaque ligne du fichier. S'il y en a deux, la deuxième ne +sera pas remplacée, à moins d'utiliser l'option g en fin de commande: sed 's/Dilib/DILIB/g' fichier -Si on veut faire deux remplacements sur la m�me ligne de commandes, on +Si on veut faire deux remplacements sur la même ligne de commandes, on peut utiliser: sed -e 's/Dilib/DILIB/g' -e 's/Jacques Ducloy/Monsieur Dilib/g' fichier -ATTENTION: le -e est obligatoire pour distinguer la deuxi�me commande +ATTENTION: le -e est obligatoire pour distinguer la deuxième commande d'un nom de fichier. -REMARQUE: les commandes sont effectu�es sur chaque ligne dans leur +REMARQUE: les commandes sont effectuées sur chaque ligne dans leur ordre d'apparition, ce qui veut dire que "Jacques Ducloy" sera -transform� en "Monsieur Dilib" *apr�s* la substitution de "Dilib" par +transformé en "Monsieur Dilib" *après* la substitution de "Dilib" par "DILIB", il restera donc des "Dilib" sur la sortie standard. -Expression r�guli�res: +Expression régulières: -On peut utiliser des expressions r�guli�res dans les cha�nes � -remplacer (donc, il faut banaliser les caract�res sp�ciaux dans cette -cha�ne). +On peut utiliser des expressions régulières dans les chaînes à +remplacer (donc, il faut banaliser les caractères spéciaux dans cette +chaîne). Exemple: sed -e 's/Jacques D[uU][cC][lL][oO][yY]/Monsieur Dilib/g' fichier -REMARQUE: le caract�re * englobe autant de caract�res qu'il peut, ce +REMARQUE: le caractère * englobe autant de caractères qu'il peut, ce qui veut dire que -sed 's/r�.*duction/r�duction/g' fichier +sed 's/ré.*duction/réduction/g' fichier transformera le fichier -do r� mi fa sol la si duction ah bon duction la suite +do ré mi fa sol la si duction ah bon duction la suite en -do r�duction la suite +do réduction la suite et non pas en -do r�duction ah bon duction la suite +do réduction ah bon duction la suite -R�cup�ration ------------------------------------- +Récupération ------------------------------------- -Les op�rateurs \( et \) sauvent leur contenu et permettent leur -r�cup�ration par l'utilisation de \1, \2, etc. +Les opérateurs \( et \) sauvent leur contenu et permettent leur +récupération par l'utilisation de \1, \2, etc. sed -e 's/^\([A-Z][A-Za-z]*\), \([A-Z][A-Za-z]*\)/\2 \1/' fichier -Remplacera les Nom, Pr�nom en d�but de chaque ligne du fichier (quand -il en trouve) par Pr�nom Nom. +Remplacera les Nom, Prénom en début de chaque ligne du fichier (quand +il en trouve) par Prénom Nom. Commandes dans un fichier ------------------------ Si vous avez beaucoup de commandes, vous pouvez les rassembler dans un -fichier comme celui-l�: +fichier comme celui-là: # Fichier "exemple.sed" -# Il ne peut y avoir de commentaires que dans un bloc au d�but du +# Il ne peut y avoir de commentaires que dans un bloc au début du # fichier. -s/�/É/g -s/�/À/g -s/�/Ç/g +s/É/É/g +s/À/À/g +s/Ç/Ç/g Pour appeler ce fichier, il faut utiliser l'option "-f": sed -f exemple.sed fichier -Une autre solution consiste � en faire un script ex�cutable (� la -mani�re d'un script shell): +Une autre solution consiste à en faire un script exécutable (à la +manière d'un script shell): #!/usr/bin/sed -f # Table de transcodage de ISO-8859-1 vers HTML -s/�/É/g -s/�/À/g -s/�/Ç/g +s/É/É/g +s/À/À/g +s/Ç/Ç/g http://www.shellunix.com/sed.html La commande sed diff --git a/UnixShell_cours2018/makefile b/UnixShell_cours2018/makefile index e76ced8..460bc74 100644 --- a/UnixShell_cours2018/makefile +++ b/UnixShell_cours2018/makefile @@ -1,47 +1,47 @@ # -*- makefile -*- # $Id: makefile,v 1.3 2003/07/02 12:53:32 parmentf Exp $ -# Corrig� du TP sur make. +# Corrigé du TP sur make. -# la r�gle "all" d�pend du fichier compte.txt et des -# r�gles bonjour, clean et bye. -# le "@" devant "echo" rend la commande "silencieuse", elle n'appara�t +# la règle "all" dépend du fichier compte.txt et des +# règles bonjour, clean et bye. +# le "@" devant "echo" rend la commande "silencieuse", elle n'apparaît # pas sur la sortie standard. -all: bonjour compte.txt clean bye - @echo --- Make all: ex�cut� --- +all: bonjour compte.txt clean bye + @echo --- Make all: exécuté --- # en tapant "make clean", on supprime les fichiers finissant par ~ ou # .o clean: rm -f *~ *.o - @echo ---- Make clean: ex�cut� --- + @echo ---- Make clean: exécuté --- # en tapant "make bonjour", on obtient le message suivant bonjour: - @echo "Bonjour, comment �a va?" - @echo ---- Make bonjour: ex�cut� --- + @echo "Bonjour, comment ça va?" + @echo ---- Make bonjour: exécuté --- # idem avec "make bye" bye: - @echo "� bient�t!" - @echo ---- Make bye: ex�cut� --- + @echo "À bientôt!" + @echo ---- Make bye: exécuté --- -# le fichier modif.txt d�pend du contenu du fichier original.txt -modif.txt: original.txt +# le fichier modif.txt dépend du contenu du fichier original.txt +modif.txt: original.txt sed -e 's/ILIB/DILIB/g' < original.txt > modif.txt - @echo ---- Make modif.txt: ex�cut� --- + @echo ---- Make modif.txt: exécuté --- -# le fichier modif2.txt d�pend des contenus des fichiers original.txt -# et table.sed (si l'un des deux est modifi�, la commande sed sera -# ex�cut�e). -modif2.txt: original.txt table.sed +# le fichier modif2.txt dépend des contenus des fichiers original.txt +# et table.sed (si l'un des deux est modifié, la commande sed sera +# exécutée). +modif2.txt: original.txt table.sed sed -f table.sed < original.txt > modif2.txt - @echo ---- Make modif2.txt: ex�cut� --- + @echo ---- Make modif2.txt: exécuté --- -# le fichier compte.txt d�pend du fichier modif2.txt (donc de sa -# r�gle, qui d�pend de original.txt et de table.sed). Donc si on +# le fichier compte.txt dépend du fichier modif2.txt (donc de sa +# règle, qui dépend de original.txt et de table.sed). Donc si on # modifie table.sed et qu'on tape "make compte.txt", ou toute autre -# r�gle qui d�pend directement ou indirectement de table.sed, -# cette r�gle sera ex�cut�e. -compte.txt: modif2.txt +# règle qui dépend directement ou indirectement de table.sed, +# cette règle sera exécutée. +compte.txt: modif2.txt wc -l < modif2.txt > compte.txt - @echo ---- Make compte.txt: ex�cut� --- + @echo ---- Make compte.txt: exécuté --- diff --git a/UnixShell_cours2018/original.txt b/UnixShell_cours2018/original.txt index 3f3b1e2..33fb909 100644 --- a/UnixShell_cours2018/original.txt +++ b/UnixShell_cours2018/original.txt @@ -2,5 +2,5 @@ ILIB ---- -O� l'on devrait parler d'ILIB! -ILIB a �t� �labor� � l'INIST (CNRS). +Où l'on devrait parler d'ILIB! +ILIB a été élaboré à l'INIST (CNRS). diff --git a/UnixShell_cours2018/testDiff1.txt b/UnixShell_cours2018/testDiff1.txt index b761404..8847fe9 100644 --- a/UnixShell_cours2018/testDiff1.txt +++ b/UnixShell_cours2018/testDiff1.txt @@ -5,5 +5,5 @@ Supprimez la ligne qui suit : LIGNE A SUPPRIMER -------------------- -Modifiez comme vous le d�sirez la ligne suivante : +Modifiez comme vous le désirez la ligne suivante : Modifiez-moi !!!