Home

Initiation aux langages de commandes et `a la programmation sous

image

Contents

1. chemin absolu on part de la racine mot mot mot 10 Navigation dans les r pertoires pwd cd rep mkdir repertoire rmdir repertoire affiche le r pertoire de travail d placement dans le r pertoire rep cr e le r pertoire efface un r pertoire 11 cd usr bin cd home toto bin 13 Lister le contenu d un r pertoire ls options arguments affiche tous les fichiers affiche le r pertoire pas son contenu affichage long liens dates propri taire taille le r sultat de la commande 1s 1 contient pour chaque fichier une ligne du type date et heure 4 de derni re propri taire groupe modification rWXT X 1 toto user 250 Sep 20 08 23 fichier 2 5 taille en nom type Q nombre octets ordinaire de liens d r pertoire 14 droits d acc s d sign es par r droit de lecture w droit d criture x droit d ex cution pas de droit Exemple rw r r 1 licmi users 1234 Mar 6 11 24 toto txt gestion des droits d acc s chmod change les droits d un fichier ou d un r pertoire chgrp change le groupe d un fichier chown change le propri taire d un fichier 15 changer les droits d acc s d un fichier r F w fichier XL utilisateur propri taire du fichier utilisateurs du groupe les autres ajoute les droits qui suivent enl ve les droits qui su
2. manuel man shell 22 interpr tation d une ligne de commande elle se fait en plusieurs tapes effectu es dans un ordre pr cis a interp ter les s parateurs et s parer les champs b isoler les cha nes de caract res encadr es par des quotes 1 remplacer les variables par leur contenu 2 ex cuter les commandes encadr es par des anti quotes ou la s quence et les remplacer par leur r sultat c 3 valuer les expressions arithm tiques d isoler les cha nes de caract res encadr es par des doubles quotes e remplacer les caract res sp ciaux 1 7 etc par leur valeur f rep rer les s quences O et g positionner certains param tres en fonction des caract res sp ciaux amp amp amp h mettre en place les redirections i localiser les commandes l mentaires alias fonctions path 23 3 2 S parateurs s parateur dans une ligne espace not SPC dans le cours et tabulation not TAB cons quence deux cha nes accol es forme une seule cha ne concat nation liste des s parateurs stock es dans la variable IFS Cette liste est modifiable dans une macro commande cf 3 9 24 3 3 Caract re sp cial quote les cha nes encadr es cha ne ne sont pas interpr t es Autrement dit aucun caract re sp cial n a de signification m me un s parateur exemple
3. use ligne commen ant par 0 ou plusieurs blancs ou tabulations suivis de use suivi de 0 ou plusieurs caract res quelconques jusqu la fin de la ligne si on utilise la commande grep ainsi cf page suivante grep LL blank use prog f90 a ne marche pas car apr s interpr tation le 1 argument fourni grep est la cha ne car le blanc est un s parateur de champ avec des quotes a marche grep L L blank use prog f90 91 extensions d expressions r guli res soit c un caract re ventuellement donn par une e r c m n vaut c r p t entre m et n fois c m vaut c r p t au moins m fois c m vaut c r p t exactement m fois exemple za 2 4 zaaz OU zaaaz OU Zaaaaz to 2 tt ou to ou ot ou 00 a z 10 une ligne contenant uniquement 10 minuscules 92 6 2 Recherche de cha ne commande grep recherche d une cha ne de caract res dans un ou plusieurs fichiers si motif est une expression r guli re grep options motif liste fichiers si motif est une cha ne ordinaire egrep options motif liste fichiers sans option affiche les lignes du fichier contenant le motif Dans le cas d une liste de fichiers le nom des fichiers est aussi affich option utile i ignore la distinction minuscule majuscule 93 exemples rechercher les cr ations de matrices creuses sparse du program
4. cran 100 substitution avec tampon buffer la cha ne de remplacement contient tout ou partie de la cha ne remplacer exemple remplacer dans un texte tous les nombres n gatifs par leur valeur absolue i e enlever le signe tampon principal toute la cha ne remplacer est nomm e par amp dans la cha ne de remplacement exemple rajouter un en fin de ligne toutes les lignes contenant une affectation de variables MAPLE sauf s il y a d j un ou un sed e s amp toto mws 101 tampons secondaires pour utiliser une partie de la cha ne remplacer on l encadre dans la cha ne par des on la d signe par 1 dans la cha ne de remplacement si on encadre d autres parties de la m me fa on elles seront d sign s par 2 3 etc exemple 1 tous les entiers n gatifs sont remplac s par leur valeur absolue sed e s 0 9 0 9 1 g exemple 2 inverser les indices des l ments du type Ali J de la matrice A dans un fichier MAPLE sed e S 7AN IVC NET TAN a NCL dE od eA NI ZANT g 102 pour travailler sur des champs plut t que sur des suites de caract res c a d des cha nes s par es par des s parateurs il vaut mieux utiliser awk ATTENTION en g n ral on encadre chaque requ te de sed adresses et commande entre quotes pour viter le risque d interpr tation des caract res sp ci
5. unix pas de nouveau processus Exemple au lieu de test a contrario limiter les lectures de fichier ligne ligne autant de processus que de lignes en utilisant les commandes unix de traitement de texte comme sed ou awk Ces commandes traitent un fichier avec un seul processus 78 5 6 crire un script propre 5 6 1 portabilit script ind pendant de la machine si le script est crit dans le langage SHELL mettre en premi re ligne bin SHELL 5 6 2 lisibilit commentaires nom du programme but date de derni re modification exemple d utilisation compl te avec les options 79 5 6 3 d chets les fichiers temporaires ne doivent pas craser des fichiers existants et doivent tre d truits en fin de programme o les mettre dans tmp nom donner nom au choix termin par le num ro du processus du programme stock dans une variable exemple tmpi tmp fich temp 80 5 6 4 robustesse le programme ne doit pas s arr ter pour une raison inconnue test des options en g n ral un programme qui a plusieurs options possibles peut n en accepter qu une partie voir les commandes usuelles comme 1s pr sence nb d options correct ordre correct option connue validit un nombre ou un caract re valeur correcte un fichier existant Dans chaque cas renvoyer une message d erreur
6. 12345679 27 333333333 h var 5 2 echo var 2 h var expr 2 var echo var 4 34 3 7 Caract re sp cial double quote dans toute cha ne encadr e cha ne les caract res sp ciaux perdent leur signification diff rence avec le quote cette tape les expansions de variables et de commandes ont d j t effectu es autrement dit tous les caract res sp ciaux perdent leur signification sauf exemples 4 1s toto f toto o h ls toto toto f toto o 4 ls toto toto not found echo PWD 39 home user 36 3 8 Autres caract res sp ciaux expressions g n riques but simplifier la d signation de noms de fichiers expression ou motif g n rique pattern en anglais cha ne contenant un ou plusieurs caract res sp ciaux Je shell cherche dans le r pertoire courant les fichiers dont le nom correspond la description abr g e partie ou totalit d un nom h 1s totol toto2 o toto_base f tutu o h ls toto f totoi f toto2 f toto_base f echo o 37 toto2 0 tutu o 38 un caract re quelconque kh 1s totol toto2 0 toto_base f tutu o h ls toto f toto1l f toto2 f un caract re parmi ceux sp cifi s a ou 3 1 ou 2 ou 10 a ou b ou e a ou b ou f ou ouB ou F un caract re diff rent de 1 2 5 39 kh 1s totol f toto2 o toto_base f t
7. Initiation aux langages de commandes et la programmation sous Unix DESS M3I ann e 2004 2005 Luc Mieussens mieussens mip ups tlse fr laboratoire MIP Universit Paul Sabatier Toulouse 3 Table des mati res 1 Le syst me unix linux 2 Le syst me de fichiers 3 Le langage de commandes Shell 3 1 Introduction 3 2 S parateurs 3 3 Caract re sp cial quote 3 4 Les variables 3 5 substitution d une commande par son r sultat ca ract re sp cial contre quote ou 3 6 Expressions arithm tiques 3 7 Caract re sp cial double quote 3 8 Autres caract res sp ciaux expressions g n riques 3 9 S quences et 3 10 Caract res amp amp amp 3 11 Redirections 3 12 Localisation de la commande Contr le des processus Les scripts 5 1 Introduction 5 2 Structures de boucles et de test 5 3 Expressions conditionnelles 5 4 Sous programmes 5 5 Optimiser un script 5 5 1 co t de cr ation d un processus 5 5 2 co t de cr ation destruction d un fichier 9 9 3 optimisation 5 6 crire un script propre 5 6 1 portabilit 5 6 2 lisibilit 5 6 3 d chets 5 6 4 robustesse Outils de transformations de textes 6 1 Expressions r guli res 6 2 Recherche de cha ne commande grep 6 3 Modification de texte diteur sed 6 4 traitement de texte diteur awk 6 5 autres commandes utilisation de la commande make pour la compilatio
8. 241 la ligne 128 la derni re lignes ne contenant aucun chiffre lignes des blocs commen ant par une ligne contenant la cha ne begin et finissant par une ligne contenant la cha ne end toutes les lignes comprises entre la premi re contenant la cha ne prog et la derni re du fichier 97 commande de substitution s er a remplacer cha ne de remplacement g commande s parateur On peut utiliser n importe quel caract re mais il doit suivre imm diatemment la commande s optionnel toutes les occurences de l er sont remplac es la premi re sinon exemple sed e 7 Cc s Cc prog f le caract re de commentaire c fortran 77 du fichier prog f est remplac par le caract re de commentaire f90 98 commandes de suppression a les lignes dont les adresses sont fournies dans le 1 argument de sed sont supprim es Pratiquement les lignes non supprim es sont envoy es l cran exemple sed e begin figure end figure d rapport tex supprime tous les blocs d finissant une figure dans le fichier LaTeX rapport tex commande de duplication P fonctionne de la m me facon que la destruction 99 commande p avec option n seules les lignes s lectionn es sont envoy es sur stdout exemple sed n e blank integer p prog f90 toutes les d clarations d entiers du programme prog f90 sont affich es l
9. expression est valu e si elle est dans liste_valeurs_1 alors liste_commandes_1 est ex cut e et on sort du case sinon on passe la liste_valeurs_2 etc une liste de valeurs peut tre donn e par une ou plusieurs expressions g n riques s par es par des La liste correspond n importe quelle valeur 62 exemple nom du logiciel logiciel logiciel in matlab matlab xmaple xmaple echo logiciel non disponible le nom d un logiciel est lu au clavier read si ce nom est matlab alors matlab est lanc sinon si ce nom est maple ou xmaple alors xmaple est lanc sinon un message est crit l cran 63 structures de contr le break sortie de boucle exit ou exit n sortie de programme avec le code de retour de la derni re commande ou le code n return ou return n idem pour une fonction instruction vide ne fait rien code de retour toujours 0 fichier ex cute les commandes du fichier sans cr er de nouveau Processus 64 exemple while do continuer reponse reponse in o0 o0 uU iI echo OK break aN nN o0 nN echo stop exit gt gt 3 esac done echo suite du programme tant que la r ponse n est ni oui ni non la question est repos e si la r ponse est oui on passe la suite sortie du while si c est non on arr te sortie du programm
10. 70 combinaison d expressions conditionnelles par op rateurs bool ens amp amp et ou non association il faut alors utiliser l op rateur d valuation au lieu de exemple h 3 eq 3 amp amp toto titi 3 eq 3 amp amp echo vrai bash syntax error near unexpected token h 3 eq 3 amp amp toto titi 3 eq 3 amp amp echo vrai vrai 71 5 4 Sous programmes un script peut utiliser un autre script stock dans un autre fichier comme une commande standard une fonction d finie dans le script lui m me ou ailleurs les variables d clar es ou initialis es dans le programme sont locales ie invisibles par les processus engendr s ces variables peuvent tre rendues visibles par la commande export variables une fonction d clar e dans un script est inconnue des processus engendr s T2 fonction macro commande d finie par une s quence ou cf 3 9 laquelle on donne un nom et ventuellement des param tres Syntaxe nom_fonction macro_commande param tres comme les param ters du shell 1 2 etc utilisables dans le corps de la fonction exemple del rm 1 echo fichier 1 detruit T3 4 del toto fichier toto detruit 74 exemple de sous programme script sl script s2 bin ksh bin ksh if L z
11. clair et la syntaxe utiliser 81 Traitement des signaux comment demander confirmation l utilisateur apr s un CTRL C comment viter la non destruction d un fichier temporaraire apr s l interruption inattendue d un programme commande trap trap commande liste signaux si le processus re oit un des signaux de la liste_signaux la commande est ex cut e le sens initial du signal est alors ignor si la commande est la cha ne vide les signaux de la liste sont simplement ignor s si la commande ne contient pas l instruction exit le programme continue s ex cuter la ligne suivante 82 principaux signaux taper kill 1 pour la liste compl te 1 ou HUP signal envoy en fin de session d connexion utile pour viter qu un script tournant en t che de fond soit arr t la d connexion 2 ou INT interruption par control c 9 ou KILL interruption ultime ne peut tre d rout par trap 83 exemple bin ksh fonction d arret arret echo etes vous sur o n read rep if rep o then echo 0 arret exit 0 else echo continue fi attrape signaux trap arret INT 84 programme sleep 1000 messages d erreur les crire dans la stderr avec le nom du programme Exemple echo 0 message erreur gt amp 2 code retour exit nen fin de programme
12. echo SHELL bin sh h echo SHELL SHELL 25 3 4 Les variables nom de variable cha ne compos e de lettres a z A Z de chiffres 0 9 et de soulign _ valeur d une variable cha ne de caract res affectation var cha ne on dit que la variable var est positionn e la valeur cha ne initialisation substitution d une variable par sa valeur on parle alors d expansion de la variable var expansion conditionnelle si var est initialis e et non vide on la substitue par sa valeur sinon elle est remplac e par la cha ne mot autres expansions voir man sh tableaux de variables possible en bash pas en sh 26 exemple 1 affectation expansion toto recu h titi cing sur 5 h tutu toto echo toto toto 4 echo toto recu h echo tutu titi recu cinq sur 5 exemple 2 concat nation 4 toto bon h titi jour 27 tutu toto titi echo tutu bonjour exemple 3 concat nation robuste on isole la variable entre pr c d e de 4 toto bon h echo totojour h echo toto jour bonjour exemple 4 expansion conditionnelle utile pour tester la pr sence d un param tre dans un programme 4 var 28 4 echo var toto toto 4 var var toto echo var toto 4 var var titi echo var toto 29 variables pr positionn es la naissance d un processus shell des variables sont
13. force le code de retour la valeur n si on ne met rien le code est celui de la derni re commande ex cut e int r t on peut consid rer que l ex cution du programme est r ussie m me si la derni re commande a chou e convention code 0 pour un succ s 85 6 Outils de transformations de textes but traitement automatique de lignes de texte recherche remplacement comptage tri par des commandes UNIX interactive ou non utilisable dans des programmes shell tr s utile pour traiter automatiquement de gros volumes de donn es changement de format etc concept essentiel expressions r guli res 86 6 1 Expressions r guli res but fabriquer des motifs qui correspondent plusieurs cha nes de texte sur une seule ligne pour des recherches remplacements complexes analogie expressions g n riques du shell permettent de construire des motifs correspondant plusieurs noms de fichier utilisation de carac res sp ciaux diff rents de ceux du shell car les besoins sont diff rents rep rer le d but de la ligne etc exemple trouver toutes les lignes d un fichier fortran contenant l appel un module Ces lignes commencent par use pr c d d un ou plusieurs blancs ou tabulations Ceci n est pas possibles avec une expression g n rique du shell 87 caract res sp ciaux permanents caract re quelconque le carac
14. le paragraphe traitement des signaux dans 5 6 4 54 5 Les scripts 5 1 Introduction programme stock dans un fichier contenant des commandes crites en shell des fonctions des commandes unix des appels d autres scripts des commentaires caract re poss de des param tres nomm s 1 2 poss de des structures de contr le if for while est utilisable comme une commande shell le fichier doit avoir le droit d ex cution x peut utiliser une autre shell que le shell courant le shell ex cute chaque ligne comme une ligne de commande en commen ant donc par une phase d interpr tation 99 pour ex cuter un script prog le fichier prog doit avoir le droit d ex cution x si le r pertoire courant est dans le path on peut utiliser le script comme une commande unix en tapant sinon il faut pr ciser que le script se trouve dans le r pertoire courant en utilisant son chemin absolu ou plus simplement son sinon le syst me ne trouve pas le script dans le path et affiche chemin relatif un message d erreur on peut aussi utiliser la commande qui permet prog d ventuellement affecter les variables d environnement Par exemple en cas de modification du fichier bashrc on peut remettre jour l environnement en tapant bashrc 56 5 2 Structures de boucles et de test boucle pour for variable in liste do suite de co
15. lt 90 mod lt TAB gt COMPILE c lt destruction des fichiers objets et modules detruire lt TAB gt rm f o mod 119 options commandes affich es pas ex cut es pour la mise au point erreurs ignor es sinon arr t liste de r gles implicites ignor e tout s affiche utile pour comprendre le fonctionnement de make pour donner un autre fichier que celui par d faut makefile 120 noter le make de GNU am liore la fabrication de r gles implicites avec les r gles de motif pattern rules voir la doc de gnumake 2 il existe des logiciels qui fabriquent automatiquement des makefiles Ceci peut tre int ressant pour les gros codes en particulier en fortran 90 o l ordre de compilation des modules est primordial voir par exemple le script fmkmf sur http www met ed ac uk hcp fmkmf htm1 un nouveau logiciel cons est plus puissant que make voir sur le site de GNU En particulier avec cons la modification du corps d un module sans modification de son interface n entraine pas la recompilation des fichiers d pendants 121 R f rences 1 MANUELS GNU http www gnu org software bash manual bash html 2 MANUELS GNU http www gnu org software make manual make html 3 MANUELS GNU http www gnu org software sed manual sed html 4 J L Nebut UNIX pour l utilisateur Commandes et Langages de commandes ditions Te
16. rep rep TOTO then export rep rep PWD s2 fi touch rep titi s2 cr e le fichier titi sous le r pertoire courant si la variable rep est vide sl ex cute s2 dans le r pertoire TOTO donc cr ation du fichier TOTO titi quel est le r sultat si on enl ve la commande export 75 5 5 Optimiser un script 5 5 1 co t de cr ation d un processus mise jour d index et de tables co t fixe qui peut tre important par rapport au co t du traitement des donn es co t n gligeable si le processus g re beaucoup de donn es co t tr s important si peu de donn es e g dans une boucle solution utiliser des commandes qui travaillent sur un gros volume de donn es commandes unix de traitement de textes sed awk 76 5 5 2 co t de cr ation destruction d un fichier acc s disque tr s co teux mise jour d index et de tables co t important si le fichier contient peu de donn es solution si peu de donn es les stocker en m moire dans une variable 77 5 5 3 optimisation attention au path utiliser le nom absolu d une commande unix fr quemment utilis e car la recherche dans le path est longue le path ne doit pas tre trop long mettre le r pertoire contenant les commandes les plus utilis es en d but de path si une boucle est in vitable pr f rer les commandes internes du shell et les op rations sur les variables au lieu des commandes
17. ande cmd vers un autre fichier les redirections s effectuent avec des noms de fichiers ou des descripteurs associ s des fichiers Syntaxe cmd options arguments redirections en fin de ligne o les redirections s crivent ainsi en lecture lt O lt fich stdin redirig e sur le fichier fich 0 lt amp n stdin redirig e sur fichier de descripteur n A4 en criture gt 1 gt toto 2 gt titi stdout et stderr redirig es sur les fichiers titi et toto cr s ou cras s stdout redirig e sur toto pas besoin du descripteur 1 stderr redirig e sur le fichier de descripteur n cr ou cras remarquer le amp devant le descripteur de redirection en criture fichier de sortie utile dev null fichier vide tout ce qui y est envoy est perdu 45 exemples 4 18 totol toto2 o toto_base f tutu o ls 1 gt liste 4 cat liste totol toto2 o toto_base f tutu o h ls titi 2 gt erreurs 4 cat erreurs titi not found redirection en criture en mode ajout gt gt 1 gt gt fich stdout redirig e en criture sur le fichier fich cr ou compl t stdin redirig e sur fichier de descripteur n cr ou compl t 46 lecture en ligne pour une commande dont la stdin est le clavier commande options arguments lt lt fmot ligne 1 ligne 2 mot les lignes de la ligne 1 la derni re avant mot sont prises comme stdi
18. aux par le shell si on veut utiliser des contenus de variables du shell il vaut alors mieux utiliser des doubles quotes exemple echo PWD home user 4 sed e s fich1 PWD amp 103 le chemin absolu du fichier est fichi le chemin absolu du fichier est home user fichi 104 6 4 traitement de texte diteur awk utilisation basique awk selection action fichier selection permet de s lectionner des lignes du fichier par exemple er lignes contenant l er er1 er2 bloc compris entre la ligne contenant erl et la ligne contenant er2 action peut par exemple tre un affichage print cha ne les champs des lignes sont not s 1 2 etc et sont utilisables dans la selection et l action 105 exemple afficher le mois et le nom de chaque sous r pertoire du r pertoire courant ls 1 awk 7d print 6 9 awk peut tre utilis de facon beaucoup plus pouss e on peut sp cifier le caract re s parateur des champs il existe d autres variables que les num ros de champs les actions peuvent tre des affectations de variables des tests if des boucles for ou while des calculs plusieurs actions peuvent tre donn es dans un fichier appel programme awk les s lections peuvent utiliser des op rateurs bool ens et des variables pour seulement afficher certains champs sans selection de ligne la commande unix peut suffi
19. chnip 1990 5 J F Pujol Guide du korn shell sous unix http www ensimag imag fr cours Systeme documents shell Korn Shell pdf 122
20. d finies et positionn es variables d environnement exemples 0 nom du programme shell en cours 1 n les n param tres pass s au programme lors de son appel nombre de ces param tres liste de ces param tres num ro du processus courant r pertoire principal de l utilisateur r pertoire courant invite primaire prompt modifiable dans ce cours on suppose que PS1 30 3 5 substitution d une commande par son r sultat caract re sp cial contre quote ou 0 en sh en bash 1 la cha ne est consid r e comme une commande 2 elle est ex cut e 3 la s quence est remplac e par le r sultat de la commande 31 exemple Als toto titi f tutu c echo 1s toto titi f tutu c Avar 1s hecho var toto titi f tutu c hvar2 echo var hecho var2 var 32 3 6 Expressions arithm tiques expressions ne contenant que des op rations arithm tiques entre variables de type entier syntaxe var n 10 ou var n 10 2 le devant les variables n est pas n cessaire valuation d une expression arithm tique expression ou let expression substitution d une expression arithm tique par son r sultat expression affectation du r sultat une variable var expression ou var expression en sh le seul moyen est la commande expr d UNIX 33 exemple h var 4 h echo 2 var 8 h echo
21. e 65 IMPORTANT toutes ces structures peuvent aussi tre utilis es en mode ligne essayer de taper la pr c dente 66 5 3 Expressions conditionnelles expression qui apr s valuation renvoie vrai 0 ou faux 40 valuation par l op rateur test ou expression ou test expression renvoie la valeur 0 si l expression est vraie 0 si elle est fausse 67 comparaison d expressions arithm tiques expri expr2 avec les op rateurs suivants e ra oe e ea san gt exemples 2 eq 3 amp amp echo vrai echo faux 2 1 eq 3 amp amp echo vrai x 2 x 1 2 gt 5 amp amp echo vrai 68 comparaisons entre cha nes z cha ne n cha ne cha ne 1 cha ne 2 cha ne _1i cha ne 2 exemples vrai si cha ne de longueur nulle vrai si cha ne de longueur non nulle vrai si cha nes gales vrai si cha nes diff rentes var toto z var echo longueur non nulle toto var amp amp echo vrai n toto amp amp echo longueur non nulle L L z amp amp echo longueur nulle L n amp amp echo longueur non nulle attention la confusion entre cha ne de longueur nulle et espace utiliser des double quotes si n cessaire 69 tests sur fichiers a fich vrai si fich existe d fich vrai si fich est un r pertoire fich_1 nt fich2 vrai si fich_1 plus r cent que fich_2
22. entaires chaque commande est un fichier ex cutable pas de compilation langage interpr t chaque ligne est analys e puis imm diatement ex cut e 19 deux utilisation possibles mode interactif on crit une ligne on la valide entr e elle est ex cut e mode programme script plusieurs lignes sont stock es dans un fichier texte et trait es s quentiellement exemple ls l prog ligne analys e option 1 argument d entr e tous le fichiers dont le nom commence par prog ceci est fourni la commande 1s 20 langage algorithmique structures de contr le si tant que boucles pour utilisation de variables manipulation de fichiers et de r pertoires diff rents shell exemples sh Bourne shell shell originel pr sent sur tous les syst mes ksh Korn shell plus complet pas pr sent partout bash Bourne again shell shell utilis sous Linux contient l essentiel de sh et beaucoup des caract ristiques de ksh attention sur ondine le shell par d faut est csh incompatible avec les autres utiliser ksh ou bien sh en imposant _XPG 1 syntaxe d une ligne de commande commande argumenti argument2 argumentn 21 POUR OBTENIR DE L AIDE SUR UNE COMMANDE SHELL OU UNIX manuel man commande documentation texinfo info commande POUR OBTENIR DE L AIDE SUR LE SHELL
23. er de faire la premi re cible il ne va voir les autres cibles que si ce sont des d pendances de la premi re les cibles non n cessaires pour la premi re ne sont pas trait es par cons quent il faut toujours mettre le fichier final l ex cutable en premier dans le mode d emploi exemple dans l exemple pr c dent mettre la r gle de la cible prog la fin du fichier modifier le module md et lancer make on constate alors que la subroutine sub n est pas recompil e ce qui n est pas correct 114 les macro commandes une fois d finies au d but du mode d emploi elles sont utilisables par l expression nom macro permet d avoir un nom raccourci pour une commande complexe et r p t e peut servir param trer un mode d emploi en initialisant la macro commande dans l appel de make make nom macro definition cette initialisation annule celle crite dans le mode d emploi 115 exemple pour compiler le programme pr c dent en mode debug option g ou en diff rents modes optimis s options O1 O2 03 on cr e les macros vides en d but de mode d emploi DEBUG OPT on remplace les actions 90 par f90 DEBUG OPT pour compiler en mode debug on appelle make ainsi make DEBUG g pour compiler en mode optimis 3 on appelle make ainsi make OPT 03 pour co
24. ivent 16 exemple chmod u w file donne au propri taire le droit d criture chmod ug rx file donne au propri taire et au groupe les droits de lecture et d ex cution chmod o r x file donne aux autres le droit de lecture et enl ve le droit d ex cution maintenance de fichiers rm fichier efface le fichier cp fichi fich2 copie fichl dans fich2 mv fichi fich2 d place renomme fich1 en fich2 17 commandes diverses echo cat head tail more less basename dirname sort WC affiche une cha ne de caract res l cran affiche le contenu d un fichier sur l cran et permet de concat ner des fichiers affiche les 10 premi res resp derni res lignes d un fichier sur l cran affiche un fichier page par page extrait une partie du nom d un fichier trie les lignes d un fichier dans l ordre lexic compte le nombre de lignes d un fichier actualise les dates d un fichier cr si inexistant trouver un fichier dans l arborescence comparer le contenu de deux fichiers 18 3 Le langage de commandes Shell 3 1 Introduction logiciel qui s utilise comme un langage qui sert d interface entre unix et l utilisateur forme un ensemble de commandes qui s ajoutent aux commandes de base unix ces commandes travaillent en g n ral sur des fichiers permet d crire des programmes utilisant les commandes de base unix et les commandes suppl m
25. me matlab prog m grep sparse prog m affichage de la liste des fichiers du r pertoire personnel avec les droits suivants pour l utilisateur accessibles ou pas en lecture inaccessibles en criture et accessibles en ex cution 1s L grep 7 r x 94 6 3 Modification de texte diteur sed permet de traiter automatiquement une suite de caract res pour toutes les lignes d un fichier suppression copie remplacement Pas besoin de visualiser le fichier avec un diteur classique emacs etc syntaxe sed options e requetel e requete fichier une requ te est une commande remplacement destruction etc ventuellement pr c d e des adresses des lignes traiter si on ne donne pas de nom de fichier l entr e est lue au clavier par d faut le r sultat de cette commande est envoy l cran Il faut donc une redirection pour en faire un fichier 95 adresses des lignes traiter ligne n les lignes m n la ligne n la derni re lignes contenant l e r idem encadrement avec un autre signe que si l e r contient ce caract re ici er1 er2 lignes des blocs commen ant par une ligne contenant l erl et finissant par une ligne contenant l er2 si on ne donne pas d adresse toutes les lignes sont trait es 96 exemples 128 128 241 128 70 9 begin end prog ligne 128 les lignes 128
26. mmandes done la suite de commandes est ex cut e pour chaque valeur de la variable prise dans la liste la liste peut tre donn e sous forme d expression g n rique 57 exemple for prog in f do echo fichier prog echo head 1 prog done liste la premi re ligne de tous les fichiers fortran avec la commande head 58 boucle tant que while liste _commandes _li do liste _commandes _2 done 1 La liste commande 1 est ex cut e 2 si la derni re commande a r ussi code de retour 0 la liste _commandes_2 est ex cut e et on repasse 1 sinon on sort de la boucle 59 exemple echo fichier a detruire while read fichier rm fichier do echo autre fichier done echo fichier inexistant ou protege Tant que le fichier peut tre d truit existant et avec les droits en criture il est d truit et on demande un nouveau fichier 60 if liste _commandes_1i then 11ste_commandes_ 2 elif liste_commandes_3 then liste_commandes_4 else liste_commandes_5 fi si la derni re commande de liste_commandes_1 r ussie alors liste_commandes_2 est ex cut e sinon etc en g n ral liste_commandes_1 est l valuation d une expression conditionnelle cf 5 3 61 test case case expression in liste_valeurs_1 liste _commandes_1 liste_valeurs_2 liste _commandes_2 x liste_commandes_n l
27. mpiler en mode standard on appelle make ainsi make 116 macros pr d finies nom du fichier faire nom du fichier faire sans suffixe lt nom du fichier pr requis qui provoque l ex cution de l action caract re de continuation de ligne exemple toto o toto1 f90 toto2 f90 toto3 f90 toto4 f90 117 r gle implicite permet de ne pas pr ciser d action quand deux fichiers sont li s par une telle r gle exemple la r gle implicite pour fabriquer un fichier o partir d un fichier f est la compilation avec f77 Si on veut la modifier pour la remplacer par la compilation f90 on crit au d but du mode d emploi f 0 lt TAB gt 90 o lt et on rajoute ces deux suffixes dans la liste SUFFIXES au d but du mode d emploi SUFFIXES r gle sans fichier phony target nom lt TAB gt action si nom n est pas un fichier l action sera ex cut e avec make nom 118 exemple final mode d emploi pr c dent SUFFIXES SUFFIXES f90 o mod DEBUG OPT CDMPILE f90 DEBUG OPT edition de liens prog prog o sub o md o lt TAB gt COMPILE o prog prog o sub o md o lt TAB gt echo compilation termin e compilation prog o prog f90 md mod lt TAB gt COMPILE c prog f90 sub o sub f90 md mod lt TAB gt COMPILE c sub f90 regles implicites 90 0 lt TAB gt COMPILE c
28. n s par e 108 1 Le syst me unix linux unix syst me d exploitation d un ordinateur gestion des processus ex cution de programmes gestion des fichiers donn es gestion des p riph riques et de r seaux particularit s ordinateur mono processeur sous unix multi utilisateurs multi taches temps partag extension aux ordinateurs multi processeurs historique ann es 70 mise au point de la premi re version chez AT amp T Bell Labs puis U C Berkeley ann es 80 e DOS reprend des id es d unix e versions commerciales d unix e cr ation de la FSF et du projet GNU ann es 90 mise au point de linux 2 Le syst me de fichiers fichier ensemble de donn es stock es sous forme de caract res dans la m moire de l ordinateur caract ristiques type ordinaire r pertoire taille identit du propri taire UID GID droits d acc s en lecture criture ex cution dates de modifications organisation en arborescence n bin etc dev tm users sh date group passwd bin man lib null mim lim libm so userl user2 les chemins d acc s chemin relatif au r pertoire courant mot mot mot o un mot est le nom d un sous r pertoire ou un des caract res sp ciaux suivants le r pertoire courant le r pertoire p re le r pertoire home
29. n de la commande la place du clavier si le mot est pr c d de les blancs et les tabulations des d buts de ligne sont ignor s les lignes sont interpr t es sauf si le mot est encadr de quotes utile pour lancer une commande interactive en arri re plan A7 exemple 4 dc lt lt EOF gt 1 gt 2 gt gt P 3 redirection permanente exec redirection la redirection est valide pout le shell en cours et tous les shells engendr s exemple exec 2 gt liste erreurs pour le shell en cours toutes les erreurs sont affich es dans le fichier liste_erreurs 48 3 12 Localisation de la commande le shell d termine si la commande est une commande l mentaire un alias une fonction ou une commande dont le chemin d acc s est d finie dans le path alias alias cha nel cha ne2 d finit le synonyme chainel de la cha ne de caract re cha ne2 utile pour donner des noms cours des commandes complexes exemples alias 11 1s pour avoir la liste des alias taper alias suivi d entr e pour annuler l alias cha nel unalias chainel 49 fonction voir 5 4 le path la variable PATH contient une liste de r pertoires repl rep2 repn dans lesquels le shell va chercher le fichier ex cutable correspondant au nom d une commande la recherche est effectu e dans l ordre de la liste pour ses propres comma
30. ndes l utilisateur peut rajouter des r pertoires cette liste en incr mentant la variable PATH PATH PATH toto 50 4 Controle des processus liste des processus ps u utilisateur cette commande donne une liste d informations sur tous les processus encore vivants lanc s par le syst me et l utilisateur depuis la connexion notamment leur num ro d identification PID le PID est unique liste des processus lanc s par l utilisateur avec le shell courant jobs ne donne pas le PID mais seulement un num ro local le contr le d un processus est effectu par son PID un processus peut tre actif ou suspendu en avant plan foreground ou en arri re plan background 51 passage d un tat l autre suspendu bg actif arri re plan arri re plan actif avant plan pour tra ter un autre processus que le dernier lanc les commandes fg et bg doivent tre compl t es par le num ro local du processus donn par la commande jobs contr le plus complet des processus voir 5 6 92 exemple h netscape Tetri 1 Stopped netscape h jobs 1 Stopped netscape h bg 1 netscape amp h jobs 1 Running netscape amp h ps PID TTY CMD 1879 pts 3 bash 1983 pts 3 netscape commun 1987 pts 3 ps 53 comment viter de tuer un processus la d connexion commande nohup nohup commande voir aussi
31. ou c latex etc make utilise les dates des fichiers pour v rifier s ils sont jour ou pas en suivant les r gles de d pendances donn es dans le mode d emploi exemple il faut recompiler sub f90 et refaire l dition de liens si la date de sub f90 est post rieure celle de prog 110 criture d un mode d emploi en g n ral stock dans un fichier nomm makefile ligne de d pendances fichier a faire d pendancel d pendance lignes actions ex cuter sous la ligne de d pendance lt TAB gt action1 lt TAB gt action le Q pour viter l affichage de la ligne de commande ligne r gle implicite Ste lt TAB gt action d finition de macro commande nom macro d finition macro ligne de commentaires commentaires 111 exemple de mode d emploi mode d emploi compilation programme prog edition de lien prog md o sub o prog o lt TAB gt 90 o prog prog o sub o md o compilation prog o prog f90 md mod lt TAB gt 90 c prog f90 sub o sub f90 md mod lt TAB gt 90 c sub f90 md o md mod md f90 lt TAB gt 90 c md f90 112 la compilation du programme peut alors tre effectu e par make make ou make prog make sub o make md o si le fichier faire est jour make affiche fichier is up to date 113 ATTENTION par d faut make va essay
32. re 106 6 5 autres commandes paste fusionne deux ou plusieurs fichiers ligne ligne cut extraire des colonnes d un texte tr option chaine1 cha ne substitue les caract res de chainel a ceux de cha ne2 Si cha ne est vide les caract res de chainel sont d truits L entr e standard est le clavier la sortie standard est l cran Les cha nes ne sont pas des expressions r guli res mais des notations sp ciales sont accept es comme par exemple tr a z LA Z qui remplace les minuscules par des majuscules 107 7 utilisation de la commande make pour la compilation s par e logiciel qui suit un mode d emploi makefile pour fabriquer des fichiers d pendant les uns des autres utile pour la compilation s par e 108 exemple programme fortran90 compos d un programme principal prog et d une subroutine externe sub Programme et subroutine utilisent le module md prog i ex cutable prog o A A dition de liens compilation fichiers objets md o md mod prog f sub f mdf i la modification de sub f90 ne n cessite pas la recompilation de prog f90 et mod f90 seules la recompilation de sub f90 et l dition de liens sont n cessaires 109 principe le fichier mode d emploi indique les d pendances des fichiers et l action ex cuter pour construire chaque fichier compilation fortan
33. t re qui le pr c de est r p t 0 ou plusieurs fois a vaut a suivit de 0 ou plusieurs blancs le caract re sp cial qui suit devient normal vaut suivit de une ou plusieurs L un caract re parmi la liste donn e entre L abd9 a ou b ou d ou 9 a z a ou b ou Z a z1 a z ou 1 ab 12 al ou a2 ou bl ou b2 z ab z zaz ou zbz 0 9 0 9 tout nombre entier un caract re hors de la liste donn e apr s 88 caract res sp ciaux de position n en d but d expression indique qu elle est en d but de ligne dans un voir ce qui pr c de begin begin en d but de ligne begin cha ne begin begin tout caract re sauf b e g i n en fin d expression indique qu elle est en fin de ligne end end en fin de ligne ab a ou b en fin de ligne end end x une ligne enti re quelconque la ligne vide 89 notations des caract res TAB CTRL etc voir la documentation texinfo sur les expressions r guli res donn e pour la commande grep taper info grep exemple en bash caract re blanc ou TAB 90 dangers le principal est la phase d interpr tation par le shell d une commande utilisant une expression r guli re Quand c est possible le plus s r est d encadrer cette expression par des quotes exemple pr c dent afficher toutes les lignes d appel un module fortran l er est LL blank
34. utu o h ls totol _ f totol f r pertoire personnel home s parateur de r pertoire dans un chemin rend inactif le caract re sp cial qui suit 40 3 9 S quences et servent isoler une ou un groupe de commande appel alors macro commande s ex cute dans un environnement s par 4 s ex cute dans l environnement courant exemple h pwd h pwd tmp tmp cd usr pwd h cd usr pwd usr usr h pwd h pwd tmp usr 41 3 10 Caract res amp amp amp Ils d finissent la fin d une commande l mentaire cmdi cmd2 s quentiel cmd2 est lanc e la fin de cmd1 parall le cmd2 est lanc e avant la fin de cmd1 sert aussi lancer une commande en arri re plan pipe stdin de cmd2 est prise dans stdout de cmd1 cmd2 ex cut e si cmdl a r ussi cmd2 ex cut e si cmdl a chou Remarque commande amp permet de r cup rer la main avant la fin de la commande 42 exemples echo liste fichiers ls liste fichiers totoil f toto2 o toto_base f tutu o h netscape amp 1s 4 1821 totoil f toto2 0 toto_base f tutu o h 1s 5 4 1s titi le LS titi 1 wc 1 titi amp amp echo fichier existe not found titi echo fichier inexistant not found fichier inexistant 43 3 11 Redirections but rediriger stdin stdout ou stderr ou tout autre fichier d entr e sortie d une comm

Download Pdf Manuals

image

Related Search

Related Contents

Instruction - Axel Larsson Maskinaffär AB  

Copyright © All rights reserved.
Failed to retrieve file