Université de Nice-Sophia Antipolis Semestre 2 Licence Mathématiques-Informatique Semaine du 12 Février 2007

Documents pareils
TP1 - Prise en main de l environnement Unix.

Algorithmique et Programmation, IMA


C.M. 1 & 2 : Prise en main de Linux

Environnements informatiques

TP 1 Prise en main de l environnement Unix

Aide-Mémoire unix. 9 février 2009

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

TP1 : Initiation à l algorithmique (1 séance)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

(Langage de commandes) Les commandes sont données par l'utilisateur grâce au clavier, à partir d'une "invite" ou "prompt" (par exemple "c:\>" )

Année Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Licence Sciences et Technologies Examen janvier 2010

TP 4 de familiarisation avec Unix

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement


AIDE-MEMOIRE VI. Notations. Appel de l éditeur. Modes d édition. Aide-mémoire vi Page 1

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

La mémoire. Un ordinateur. L'octet. Le bit

Unix/Linux I. 1 ere année DUT. Université marne la vallée

COURS BARDON - EXCEL 2010

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

STAGE IREM 0- Premiers pas en Python

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Module : Informatique Générale 1. Les commandes MS-DOS

INF 321 : mémento de la syntaxe de Java

Débuter avec Excel. Excel

Algorithmique et programmation : les bases (VBA) Corrigé

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Shell Bash Niveau débutant

1. Structure d'un programme FORTRAN 95

Introduction au Système d Exploitation Unix/Linux

Outils pour la pratique

Présentation du langage et premières fonctions

L informatique en BCPST

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Les chaînes de caractères

TP 1. Prise en main du langage Python

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le

à l édition de textes

Plan du cours. Historique du langage Nouveautés de Java 7

Perl Orienté Objet BioPerl There is more than one way to do it

2 Comment fonctionne un ordinateur, dans les grandes lignes

1 Introduction au codage

Les Boitiers de Vote Electroniques (Clickers)

Python Les fondamentaux du langage

Table des matières Hakim Benameurlaine 1

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10


Étude de l application DNS (Domain Name System)

Introduction aux Systèmes et aux Réseaux

Chapitre 1 Qu est-ce qu une expression régulière?

Algorithme. Table des matières

Découverte de Python

Traitement de texte : Quelques rappels de quelques notions de base

Paramètres des services Les 3 environnements de saisie Paramètres des sous-services Saisie déportée avec ProfNOTE...

erma (Instructions d utilisateur )

Guide utilisateur i-milo >> Décisionnel

Recherche dans un tableau

ZOTERO Un outil gratuit de gestion de bibliographies

Apprendre à manipuler le clavier Médiathèque de Bussy Saint-Georges APPRENDRE A MANIPULER LE CLAVIER

Mise en place d un serveur trixbox sur un domaine Kwartz. Version 1.0 du 25 juin 2012 Lycée Polyvalent d Artois, Noeux les Mines Adrien Bonnel

Initiation à la Programmation en Logique avec SISCtus Prolog

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Excel 2007 Niveau 3 Page 1

Initiation à la programmation en Python

Premiers pas en Linux

Analyser des données à l aide de formules

Cours de Probabilités et de Statistique

1.1 L EXPLORATEUR WINDOWS

Conventions d écriture et outils de mise au point

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

Mon aide mémoire traitement de texte (Microsoft Word)

Sécurisation de Windows NT 4.0. et Windows 2000

Guide du module d administration de NETBANX

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Enseignement Informatique. Classe de Bac Pro SAPAT

GUIDE Excel (version débutante) Version 2013

EXCEL TUTORIEL 2012/2013

Brady Mobile Application

Tout savoir sur le clavier

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

GdsCompta. Logiciel de comptabilité générale

Database Manager Guide de l utilisateur DMAN-FR-01/01/12

Nous avons utilisé plusieurs Script :

Informatique Générale

Programmation C++ (débutant)/instructions for, while et do...while

La Clé informatique. Formation Excel XP Aide-mémoire

Programmation en Caml pour Débutants

Les clients GNU/Linux

Les Différents types de Requêtes dans Access

Cycle III Brevet Informatique & Internet Niveau 1. "Je pense être capable

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Bon ben voilà c est fait!

Langage Éric Guérin 5 octobre 2010

Transcription:

Université de Nice-Sophia Antipolis Semestre 2 Licence Mathématiques-Informatique Semaine du 12 Février 2007 Systèmes Informatiques Mémento pour la séance n 4 Remarque importante : Une grande partie de ce qui est présenté dans ce mémento est propre au shell ZSH, ou en tout cas n est pas disponible dans le shell le plus rudimentaire, /bin/sh. Le shell BASH, présent par défaut dans la plupart des distributions de GNU/Linux, est intermédiaire entre les deux, et ne contient donc pas tout ce qui est présenté ici. ZSH constitue du logiciel libre, facile à installer. Consultez par exemple le site http ://www.zsh.org/. 1 Conventions Jokers : * dénote une suite de caractères quelconques (ne pas confondre avec l opérateur * des expressions régulières) ;? dénote un caractère quelconque (même remarque) ; [ensemble] dénote un caractère pris dans un ensemble (comme dans les expressions régulières). Cas particuliers : «/» ne peut pas être décrit par un joker ; «.» en début de nom ou immédiatement après «/» ne peut pas être décrit par un joker. Variables d environnement : PATH est la liste des chemins d accès aux exécutables, séparés par le caractère «:» ; l ordre d énumération est significatif. HOME est le répertoire racine de l utilisateur. TERM est le type de terminal courant (VT100, Xterm, etc.).. DISPLAY est le nom du visuel (terminal graphique) courant. La commande vared permet de modifier la valeur d une variable d environnement. On corrige ou étend la valeur avec les commandes habituelles du shell, similaires à celles d Emacs. Pour obtenir la valeur d une variable d environnement, il faut utiliser l opérateur préfixe $. Fichiers standards : 0 : Entrée standard. 1 : Sortie standard. 2 : Sortie d erreur. Dans un shell interactif, l entrée standard provient du clavier, et les deux sorties sont affichées sur l écran. Redirection : < redirige l entrée standard. > redirige la sortie standard. >> concatène la sortie standard à la fin du fichier indiqué. << chaîne prend comme entrée standard les lignes qui suivent jusqu à la chaîne indiquée. 2> redirige la sortie d erreur. envoie la sortie standard de la commande précédente sur l entrée standard de la commande suivante.

2 Utilisation de xargs : Le shell limite la longueur des commandes et le nombre d arguments. Si une commande produit un très grand nombre d arguments pour une autre, on peut faire traiter ces arguments par xargs, qui gère leur passage à la commande voulue, en minimisant le nombre de processus et en maximisant le nombre d arguments. Exemples : reconstitution d un fichier fractionné par split : ls -1 x.* xargs cat > recup impression de tous les fichiers Postscript d un certain répertoire : find repertoire -type f -name "*.ps" xargs lpr 2 Utilisation du shell Correction de la ligne : Avant de soumettre une ligne au shell (par la touche RET, utilisée avec le curseur n importe où dans la ligne) on peut la modifier avec des commandes du type de celles d Emacs 1. Les commandes principales sont donc : C-b ou : reculer d un caractère. M-b : reculer au début du mot précédent. C-a : début de la ligne. C-e : fin de la ligne. C-f ou : avancer d un caractère. M-f : avancer au début du prochain mot. M-nombre M- : se placer sur la colonne du numéro indiqué. BS ou DEL : effacer le caractère précédent. C-w : effacer le mot précédent. M-c : mettre au mot courant une majuscule initiale et le reste en minuscules. M-w : copier la région. M-C-_ : dupliquer le mot précédent. M-l : mettre le mot courant en minuscules. M-d : effacer le mot courant. C-k : effacer le reste de la ligne. C-u : effacer toute la ligne. C-x C-b : aller à la parenthèse correspondant à la parenthèse courante. M- : citer la ligne courante entre apostrophes. M-" : citer la région courante. C-t : échanger les deux caractères courants. M-t : échanger les deux mots courants. M-u : mettre le mot courant en majuscules. C-y : insérer ici le dernier effacement. M-y : remplacer l insertion par le prochain effacement. C-d : effacer le caractère sous le curseur. Historique des commandes : Il est conservé dans un fichier désigné, par exemple /.sh_history. Des commandes similaires à celles d Emacs permettent de soumettre pour modification et envoi une commande conservée dans l historique : C-p ou : ligne précédente de l historique. C-n ou : ligne suivante de l historique. C-r : recherche incrémentale rétrograde d une ligne de l historique contenant la chaîne indiquée. C-s : recherche incrémentale vers la fin de l historique. M-p : recherche rétrograde d une ligne commençant par le premier mot de la ligne en cours. M-n : même chose vers la fin de l historique. M-. : insérer le dernier mot de la ligne précédente (en remontant dans l historique si on répète la commande). 1 Suivant le contexte utilisé, on peut avoir à remplacer la touche Méta par la touche ESC, qui se tape avant le caractère.

3 Achèvement automatique : Il permet de compléter le mot commencé, d une manière qui dépend de la place du mot : si c est le premier mot de la ligne, le shell essaie de compléter avec un nom de commande ; sinon, c est avec un nom de fichier. TAB : compléter le mot en cours (s il y a un seul choix), ou passer au prochain achèvement possible. M-SPC : compléter à partir de l historique des commandes. Correction des fautes de frappe : Si un mot est proche d un nom connu (nom de commande ou nom de fichier), le shell propose de le remplacer. Les réponses possibles sont : y : accepter la correction proposée. n : la refuser. a : renoncer à la ligne en cours. e : modifier la ligne en cours. Autres commandes : M-a : soumettre la ligne mais la proposer à nouveau pour correction et soumission. C-o : soumettre la ligne et proposer la ligne suivante de l historique. C-l : effacer tout l écran. M-h : appeler man pour la commande actuelle, puis la proposer à nouveau. M-? : appeller whence pour la commande actuelle, puis la proposer à nouveau. Les commandes C-g, C-@, C-SPC et C-x C-x ont la même signification qu en Emacs. 3 Le langage de Zsh Une ligne est une suite de mots et d opérateurs. Un mot est une suite de caractères délimités par des séparateurs (espace, tabulation ou fin de ligne) ou par un opérateur. Opérateurs : Opérateurs de redirection : > >> >& > < << <<-+ <& <> >!» >>! <<< >>& <&- >&-+ Un opérateur de redirection peut être précédé du numéro de descripteur de fichier concerné. Autres opérateurs : & ; ( ) && ;; (( )) & Autres mécanismes : RET ou LF soumet la ligne, mais si elle est incomplète le shell demande la suite (en changeant d invite). Les mécanismes de citation permettent de changer la signification des caractères. Les mécanismes de substitution permettent de remplacer des mots par autre chose. Un caractère # en début de mot commence un commentaire, qui va jusqu à la fin de ligne. Modèles généralisés : Zsh fournit beaucoup plus que les mécanismes de jokers pour la génération de noms de fichiers : <n1-n2> est conforme à tout nombre dans l intervalle de n1 à n2 ; l une ou l autre des bornes peut être omise, ou même les deux. ˆmodèle est conforme à tout sauf ce modèle. modèle1 modèle2 est conforme à un modèle ou l autre. modèle# est conforme à un nombre quelconque de fois le modèle ; si le dièse est doublé, il impose au moins une apparition du modèle. ** / est équivalent à (*/)#, ce qui permet d engendrer récursivement les noms de fichiers d un répertoire. modèle1 modèle2 est conforme au modèle 1 mais exclut le modèle 2.

4 Liste de spécificateurs : Elle suit un modèle, entre parenthèses, et limite la génération aux fichiers satisfaisant les propriétés indiquées. / : répertoires.. : fichiers ordinaires. @ : liens symboliques. * : fichiers ordinaires exécutables. rwx : fichiers avec cette permission pour le propriétaire. RWX : fichiers avec cette permission pour les autres. u(utilisateur) : fichiers appartenant à cet utilisateur. a[+ -]n : fichiers utilisés il y a n jours (depuis moins de n jours si -n, depuis plus de n jours si +n). L[+ -]n : fichiers de taille n (en octets ; même convention que ci-dessus pour + et - ; nk pour une taille en kilo-octets, nm pour une taille en méga-octets). La concaténation des spécificateurs demande qu ils soient satisfaits tous ensemble ; deux listes au choix sont séparées par une virgule ; le signe ˆ nie tous les spécificateurs qui le suivent. Commande simple : Interne au shell, ou appelle un programme. Formée d une suite de mots, sans opérateurs de concaténation ni mots-clés. Le premier mot est le nom de la commande, les autres sont les arguments. L ensemble peut être précédé d affectations à des variables d environnement, valables seulement pour cet appel. Par exemple : TERM=vt100 emacs -nw toto Si le nom de la commande contient le caractère /, c est le nom d un fichier, qui est exécuté par le noyau. Sinon, le shell cherche dans l ordre suivant : fonction du shell, fonction intrinsèque, opération prédéfinie, fichier exécutable. Les commandes simples sont concaténées par les opérateurs suivants : ; : marque l exécution séquentielle ; la fin de ligne d une commande complète est équivalente à cet opérateur. : marque l exécution en infoduc. : utilise le signal de sortie de la première commande, et n exécute la deuxième que si la première a un signal faux (non nul). && : n exécute la deuxième commande que si la première a un signal vrai (nul). & : lance la première commande en arrière-plan puis passe à la suivante. 4 Les commandes Opérateurs de redirection : < fichier : utilise le fichier comme entrée standard. <> fichier : utilise le fichier à la fois comme entrée et comme sortie standard. > fichier : utilise le fichier comme sortie standard, c est une erreur s il existe déjà. >! fichier : utilise le fichier comme sortie standard, même s il existe déjà. >> fichier : concatène la sortie standard à la fin du fichier, c est une erreur s il n existe pas. >>! fichier : comme ci-dessus, mais même si le fichier n existe pas. << mot : l entrée standard est l entrée du shell, jusqu à la rencontre d une ligne ne contenant que le mot, ou une fin de fichier. >&n : la sortie standard est renvoyée sur le fichier de numéro n. n>... : le fichier concerné est celui de numéro n. Commandes composées : c est l équivalent des énoncés composés des langages de programmation. Dans ce qui suit, liste est une suite de commandes séparées par des points-virgules. La valeur de sortie d une liste est celle de sa dernière commande. énoncé conditionnel :

5 if liste then liste [elif liste then liste]... [else liste] fi while liste do liste done until liste do liste done repeat mot do liste done Ici, mot est une expression arithmétique qui indique le nombre d exécutions de la liste. énoncé répétitif for nom [in mot...] do liste done Le nom prend pour valeurs successives chacun des mots, et la liste est exécutée pour chaque valeur. Si la liste de valeurs manque, on prend les paramètres de la commande qui a lancé l exécution du script. énoncé de sélection select nom [in mot...] do liste done Le shell affiche la liste des mots en les numérotant, puis lit une ligne qui doit contenir un nombre. Le mot correspondant est affecté au nom, puis la liste est exécutée. Autres notations : { liste } : regroupe les commandes. ( liste ) : exécute les commandes dans un sous-shell, par exemple : tar -cf -. (cd /ailleurs/ici/la ; tar -xf -) [[ expression ]] evalue l expression conditionnelle et fournit son résultat. Les prédicats possibles sont : -a fichier vrai si le fichier existe. -d fichier vrai si le fichier est un répertoire. -f fichier vrai si le fichier est un fichier ordinaire. -n chaîne vrai si la chaîne n est pas vide. -z chaîne vrai si la chaîne est vide. chaîne == modèle chaîne!= modèle chaîne1 < chaîne2 expression -eq expression2 (ou -ne, -lt, -gt, -le, ge). les opérateurs logiques sont! (négation), && (intersection) et (union). énoncé cas case mot in modèle [ modèle...] ) liste ; ;... esac La liste exécutée est la première pour laquelle le mot est conforme au modèle. 5 Paramètres et substitution Types de paramètres : dans ce qui suit, le signe $ est utilisé pour la lisibilité, mais il ne fait pas partie du nom du paramètre. paramètres positionnels : ceux qui sont donnés à l appel du script. $0 est le nom de la commande, les paramètres suivants sont $1, $2, etc. variables : jouent le rôle qu elles ont dans les langages de programmation, mais sans déclaration ni typage. Existent quand on leur affecte une valeur, ou comme copie de variables d environnement. Utilisables dans les scripts appelés seulement si elles sont exportées. export variable

6 variable=expression unset variable fait disparaître une variable existante. paramètres spéciaux : $@ : liste des paramètres positionnels (autant de mots que de paramètres). $* : concaténation des paramètres positionnels (un seul mot). $# : nombre de paramètres positionnels. $$ : numéro du processus en cours. Expansion : remplacement d un paramètre par sa valeur. $nom ou ${nom} fournit la valeur du paramètre. ${nom :-mot} : si le nom existe et n est pas vide, fournit sa valeur, sinon fournit le mot. ${nom :?mot} : comme la précédente, mais si le nom est vide ou non défini, c est une erreur qui termine le shell avec le mot comme message. ${nom :+mot} : comme :-, mais l inverse : si le nom existe et n est pas vide, fournit le mot, sinon ne fournit rien. ${nom :=mot} : si le nom n existe pas ou est vide, on lui affecte le mot ; ensuite, fournit la valeur du nom. ${#nom} : fournit la longueur de la valeur du nom. ${nom#modèle} : fournit la valeur du nom, tronquée de son plus petit préfixe conforme au modèle. ${nom##modèle} : même chose avec le plus long préfixe. ${nom%modèle} : même chose avec le plus court suffixe. ${nom%%modèle} : même chose avec le plus long suffixe. Citation : \ enlève sa signification au caractère qui suit. Les apostrophes simples délimitent un texte cité tel quel : tous les caractères perdent leur signification sauf l apostrophe. Les guillemets délimitent un texte cité presque tel quel : les quatre caractères $` \ gardent leur signification. Substitution : La substitution de commande exécute une liste de commandes et utilise ce qu elles écrivent sur la sortie standard comme texte à inclure à la place de la substitution. Deux notations : liste $(liste) Les expressions arithmétiques sont de la forme $[expression]. Les nombres peuvent être écrits en notation hexadécimale (0x10FF) ou basée (8#0770 ou 16#10FF). Les opérations sont celles du langage C.