MO101 Introduction à UNIX Cours 2

Documents pareils
Le codage informatique

Algorithme. Table des matières

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

1 Introduction au codage

Codage d information. Codage d information : -Définition-

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Architecture des ordinateurs Introduction à l informatique

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.


Programmation C. Apprendre à développer des programmes simples dans le langage C

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Une version javascript sera disponible directement dans le cours prochainement.

Informatique Générale

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

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

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Rappels Entrées -Sorties

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Guide de l Administrateur

Jeux de caracte res et encodage (par Michel Michaud 2014)

Cours Informatique 1. Monsieur SADOUNI Salheddine

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Débuter avec Excel. Excel

Logiciel de Base. I. Représentation des nombres

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

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

Introduction à NetCDF

TP1 - Prise en main de l environnement Unix.

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Bases de programmation. Cours 5. Structurer les données

Conventions d écriture et outils de mise au point

Représentation d un entier en base b

Esterel The french touch star touch esterel advance

Xerox EX Print Server Powered by Fiery pour la Xerox Color J75 Press. Impression

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

L informatique en BCPST

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

2 Comment fonctionne un ordinateur, dans les grandes lignes

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

GUIDE D UTILISATION DU CENTRE DE DONNÉES DE L ISU

Outils permettant la diffusion de l information. Un point sur le droit numérique

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

UTILISER UN SITE COLLABORATIF

Représentation des Nombres

Tout savoir sur le clavier

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

COMPTABILITE SAGE LIGNE 30

1.1 L EXPLORATEUR WINDOWS

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Paramètres d accessibilité des systèmes d exploitation Windows et Mac

CHRONIQUE de la société royale LE VIEUX-LIÈGE

Module 16 : Les fonctions de recherche et de référence

Base de données relationnelle et requêtes SQL

Guide d utilisation. séries NW-A1000 / séries A Sony Corporation (1)

Chapitre 1 I:\ Soyez courageux!

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

Formats d images. 1 Introduction

WinReporter Guide de démarrage rapide. Version 4

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

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

Python - introduction à la programmation et calcul scientifique

Guide de l utilisateur Mikogo Version Windows

V- Manipulations de nombres en binaire

Rappels d architecture

ENVOI EN NOMBRE DE MESSAGES AUDIO

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Guide Numériser vers FTP

A. Présentation. LanScanner2006

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

Excel 2007 Niveau 3 Page 1

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

Disque Dur Internet «Découverte» Guide d utilisation du service

Sauvegarde sous MAC avec serveur Samba

Boot Camp Guide d installation et de configuration

TP 1 Prise en main de l environnement Unix

UE Programmation Impérative Licence 2ème Année

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

EXCEL TUTORIEL 2012/2013

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

CREG : versailles.fr/spip.php?article803

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

FileMaker Server 12. publication Web personnalisée avec XML

Rapports d activités et financiers par Internet. Manuel Utilisateur

Algorithmique et Programmation, IMA

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Boot Camp Guide d installation et de configuration

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Comment utiliser RoundCube?

1 Introduction - Qu est-ce que le logiciel R?

Le poids et la taille des fichiers


Vous allez le voir au cours de ce premier chapitre, 1. Découvrir l ipad

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

Calc 2 Avancé. OpenOffice.org. Guide de formation avec exercices et cas pratiques. Philippe Moreau

1 Description générale de VISFIELD

Transcription:

MO101 Introduction à UNIX Cours 2 François FERLAND, U2IS 2016 Bonjour, et bienvenue dans ce deuxième cours de MO101. Hier, nous avons abordé des concepts de base concernant l arborescence de fichiers, l éditeur de texte gedit, et quelques commandes de bases au terminal

Contenu Composition des fichiers Information sur les imprimantes à l ENSTA Construction de commandes Écriture et lecture de fichiers Redirection Aujourd hui, nous verrons: Un peu plus de détails sur la composition des fichiers; Un peu d information sur l impression à l ENSTA; La construction de commandes avancées; L écriture et lecture simples de fichiers, donc de la modification de contenu; Et le concept de redirection de sortie de commandes, un concept puissant sous UNIX.

Composition des fichiers Fichiers texte Lisible directement depuis le terminal Nécessite un encodage particulier Fichiers binaires Difficile à visualiser sans transformation (texte ou graphique) Premièrement, revenons à la classification de base des fichiers sous UNIX que j ai brièvement présentée hier: les fichiers texte et les fichiers binaires. Le grand avantage des fichiers texte est qu ils sont humainement lisibles, particulièrement depuis le terminal. En effet, le terminal est conçu pour afficher directement ce genre de contenu. Par contre, il y a plusieurs façon d encoder ce texte, particulièrement pour les accents et autres caractères qui dépassent l alphabet latin de base, ce que nous allons voir un peu plus tard. Les fichiers binaires, à l inverse, nécessite absolument une application additionnelle pour interpréter leur contenu. Par exemple, il est tout à fait possible de regarder le contenu binaire brut d un fichier image au terminal, mais cela ne nous donnera pas des images en couleur.

Fichier binaire Exemple d un document PDF Par exemple, voici un extrait tiré au hasard de la version PDF de la présentation d hier. Le terminal tente bien d interpréter les octets comme du texte, mais rien n est reconnaissable. En fait, on reconnaît certaines lettres dans le contenu, mais si l octet ne représente pas un caractère connu, il est affiché sous forme hexadécimale. L interprétation varie de terminal en terminal, on voici un exemple sous Mac OS X, mais le résultat demeure le même: quelque chose de très difficile à interpréter.

Encodage texte Permet d associer un caractère à une valeur numérique Plusieurs types: ASCII, ISO 8859-1, UTF-8, Voyons maintenant comment le terminal ou tout autre logiciel qui manipule du texte reconnaît un octet comme un caractère: l encodage de texte. Le but de l encodage est d associer une valeur numérique à un caractère connu. Il existe plusieurs normes qui ont évolué avec l informatique. L ASCII est une des plus anciennes, et aujourd hui on utilise beaucoup l UTF-8, qui se veut universel peu importe l alphabet utilisé.

ASCII Inventé en 1960, conçu pour la télé-impression Chaque caractère est enregistré sur 7 bits (0-127) Inclut des codes de contrôle pour terminaux N inclus que l alphabet latin, et sans accents Mais voyons tout d abord l ASCII, qui a été inventé dans les années 1960, soit un peu avant UNIX, et qui a été conçu pour le teletype, la première interface utilisateur UNIX. Sous cette norme, chaque caractère est encodé par 7 bits, soit une valeur de 0 à 127. Or, ils sont la plupart du temps stockés sur des octets, et le huitième bit et ignoré. En plus des lettres, nombres et ponctuation de base, la norme inclut des codes de contrôle pour les terminaux, par exemple pour signaler un changement de ligne. Finalement, la norme ne contient que l alphabet latin de base, et donc ni accent, ni autres symboles.

Notation octale Valeurs de 0 à 7 sur 3 bits Idéal pour mots de 3 bits Notation ASCII: 1 + 3 + 3 (7 bits) De 0 à 127 en décimal De 000 à 177 en octal (175, 176, 177, 200, 201 ) Pour noter les valeurs numériques en ASCII, on peut utiliser la notation octale, ou à base 8. Les chiffres utilisés ne vont que de 0 à 7, et représente donc une valeur sur 3 bits. C est donc idéal pour des systèmes qui font intervenir des mots de multiples de 3 bits, comme l ASCII, qui encode sur 1 + 3 + 3 pour un total de bits. Ainsi, les valeurs 0 à 127 s écrivent plutôt 0 à 1.7.7 Aussi, en ASCII, le chiffre le plus significatif ne sera jamais plus de 1, vu que 128 vaut 200 en octal, et nécessiterait un huitième bit.

Voici la table complète des symboles ASCII. Il est évidemment inutile de l apprendre par coeur. Or, on peut voir comment certaines séquences de caractères coincident avec des valeurs pratiques en octal. Par exemple, les codes de contrôle, au nombre de 32, vont de 000 à 040. Le caractère représentant le 0 commence à 060, et ainsi de suite. Même chose pour les lettres: le A majuscule est à 101, et le A minuscule à 141. Numériquement, cela veut dire que pour passer d une majuscule à une minuscule, il suffit d ajouter 040 en octal.

UTF-8 (Unicode) L ASCII est encodé sur 7 bits, mais stocké sur des octets (8 bits, 0-255) L UTF-8 se sert du bit additionnel pour différentier un caractère ASCII traditionnel et un caractère étendu 0-127: ASCII 128-255: Points de contrôle et caractères additionnels Un point de contrôle indique que le(s) prochain(s) octet(s) est un caractère étendu Plus d un million de caractères disponible, incluant plusieurs alphabets et émoticônes (emoji) Or, comment faisons-nous pour encoder tous les caractères non-latins de base? J ai dit plus tôt que l ASCII, malgré qu il soit défini sur 7 bits, est à peu près toujours stocké sur un octet de 8 bits, ce qui nous donne 128 valeurs numériques additionnelles, soit de 0 à 255. Traditionnellement, les autres systèmes d encodage comme l ISO 8859-1 encode des caractères additionnelles, comme les accents, dans ces 128 nouvelles valeurs. Or, ce n est pas suffisant pour des alphabets autre que le latin, et l emplacement des accents avait tendance à varier d un système d exploitation à l autre. C est pourquoi la norme Unicode, et sa variante la plus populaire l UTF-8, a été créée. Plutôt que de tenter de tout encoder dans 255 valeurs, l UTF-8 demeure identique à l ASCII pour les 127 premières valeurs, mais utilise les 128 autres comme point de contrôle. Ces points de contrôle indiquent que le ou les prochains octets, soit au moins les 8 bits suivants, appartiennent à une plage de caractères différents. Cela indique donc au Terminal de combiner plusieurs octets en un seul caractère, ce qui permet aujourd hui d afficher des millions de caractères différents, en plus d icônes comme les emojis.

Fichiers exécutables Trait appliqué par droits d accès (plus de détails au troisième cours) Autant applicable aux fichiers textes que binaires Texte: Script nécessitant un interpréteur (ex. bash) Binaire: Chargé en mémoire, sont des instructions machine Avant d aller plus loin, nous allons couvrir une catégorisation additionnelle des fichiers sous UNIX: Les fichiers exécutables. Sous UNIX, un fichier exécutable est tout simplement un programme ou une application. D ailleurs, pratiquement toutes les commandes montrées dans le cadre de ce cours ont un fichier exécutable associé. Un fichier exécutable est aussi n importe quel fichier qui a été marqué ainsi par ses droits d accès, que nous allons voir plus en détails au prochain cours. C est une dimension orthogonale à celle des fichiers binaires et texte, car un exécutable peut être les deux. Or, leur contenu est interprété bien différemment selon le cas: Un fichier texte nécessite un interpréteur, c est à dire un autre programme qui exécute ligne par ligne le contenu, comme si vous aviez tapé vous-mêmes le contenu à la ligne de commande. On en retrouve en bash, soit le même environnement que celui par défaut à la ligne de commande, mais aussi dans d autres languages, comme Python, qui est à l étude en IN101. Si c est un fichier binaire, il est chargé en mémoire, et son contenu est interprété directement par le processeur: ce sont des instructions machines, et ne sont généralement pas éditée à la main. On utilise plutôt un compilateur, qui transforme des fichiers textes en instructions machines, ce qui est couvert en IN102 avec le langage C.

Imprimantes Cinq imprimantes dédiées, réparties dans l'école, permettent aux étudiants de sortir leurs impressions avec leurs badges. Trois près des salles de cours (dont une couleur au premier étage) Une au Centre de Documentation Multimédia (CDM) Une en salle des élèves Maintenant, pour clore le contenu des fichiers, nous avons un petit supplément sur les services d impression à l ENSTA. Il y a 5 imprimantes dédiées aux étudiants un peu partout dans l école, et les travaux imprimés doivent être récupérés à l aide de votre badge. Il y en a trois près des salles de cours où nous seront après cette séance, une au Centre de Documentation Multimédia (appelé aussi CDM, ou bibliothèque), et une en salle des élèves accessible en tout temps. Je vous invite à consulter le SIE si vous avez des questions particulières à ce sujet.

Construction de commandes mkdir -p dossier/sous-dossier Maintenant, retournons à la ligne de commande, avec quelques notions de constructions de commandes. Vous avez déjà utilisé la ligne de commandes hier avec quelques instructions simples, mais nous verrons aujourd hui comment assembler des commandes plus complexes. Prenons par exemple celle-ci, qui permet de créer un dossier et un sous-dossier en même temps.

Construction de commandes mkdir -p dossier/sous-dossier Exécutable Arguments Tout d abord, les différents éléments d une commande sont divisés par des espaces, à moins d utiliser la barre oblique inverse ou les guillemets comme nous l avons vu hier. Le premier élément est toujours la partie exécutable, soit le programme que l on souhaite invoquer. Ensuite, tous les autres éléments sont appelés les arguments, et les retrouve ici au nombre de deux: -p et dossier/sous_dossier

Construction de commandes mkdir -p dossier/sous-dossier Exécutable Arguments Option(s) Le premier élément, -p, est plutôt considéré comme une option. Plutôt qu indiquer à mkdir sur quoi il doit opérer, une option indique plutôt comment il doit opérer. Par exemple, l option -p ici indique à mkdir que si le dossier "dossier" n existe pas, il doit le créer avec d en faire de même avec sous-dossier. Si l option -p n était pas là, et que le dossier dossier n existait pas, on aurait une erreur.

Sélection de fichiers Symbole *: Aucun ou plusieurs caractères Caractère?: Un et un seul caractère Hier, nous avons vu brièvement comment des commandes comme touch ou rm peuvent opérer sur plusieurs éléments en une seule commande. Or, il n est pas toujours nécessaire de spécifier chacun des éléments sur lesquels ont veut opérer. Des caractères spéciaux, comme l * et le?, nous permettent de faire ce qu on appelle la sélection de fichiers. Ainsi, le caractère * permet d être substitué par 0 ou plusieurs caractères, n importe lesquels, alors que le? peut remplacer un et un seul caractère.

Exemples ABC Test Test1 Test2 Test30 Ces notions seront beaucoup plus simples à comprendre avec un exemple. Prenons par exemple cette liste de fichiers, et disons que je voudrais supprimer un ou plusieurs de ces fichiers selon certains critères.

Exemples ABC Test Test1 Test2 rm * Test30 Dans le premier cas, je veux supprimer tous ces fichiers: je peux utiliser l étoile seule, qui indique essentiellement que tous les fichiers accessibles dans le dossier en cours seront affectés.

Exemples ABC Test Test1 Test2 rm A* Test30 Si on veut être plus précis, on peut combiner l étoile avec d autres caractères. Ici, j indique à rm que je souhaite supprimer tous les noms de fichiers commençant par la lettre "A". Dans notre cas, il n y a que ABC.

Exemples ABC Test Test1 Test2 rm Test* Test30 Si j utilise plutôt "Test*" c est tous les autres fichiers qui seront supprimés. Remarquez que nous ne somme pas limités à n utiliser qu une seule lettre avant l étoile.

Exemples ABC Test Test1 Test2 rm Test? Test30 Regardons maintenant comment utiliser le?. Ici, j indique vouloir supprimer tous les fichiers commençant par "Test" et suivi d un et un seul caractère. Ainsi, les fichiers Test et Test30 sont épargnés.

Exemples ABC Test Test1 Test2 rm?est?* Test30 Les caractères? ne sont obligés d être utilisés en fin d expression, et peuvent également être combinés. Ici, je souhaite que les caractères 2 à 4 des fichiers correspondent à "est", peu importe la première lettre, et qu ils soient suivis d au moins un caractère. Le fichier Test est donc épargné.

Exemples Test30 Test30? Test300 rm Test30? Pour bien illustrer que? nécessite vraiment la présence d un caractère, voici un exemple avec Test30. Puisqu il n y a pas de caractère après 0, le teste échoue et le fichier est épargné. Voici aussi pourquoi ces caractères sont à déconseiller dans vos noms de fichiers. Imaginez que le fichier "Test30" avait été appelé "Test30?", mais qu il y aurait aussi eu un "Test300". Si vous omettez la barre oblique avant le? dans l expression, vous supprimerez le fichier Test300 aussi.

Entrée et sortie standard Chaque programme, et donc commande, a une entrée et une sortie standard Par défaut, l entrée est le clavier, et la sortie l écran du terminal Autant la sortie que l entrée peuvent être redirigés vers un fichier ou un autre programme Abordons maintenant un concept important des exécutable sous UNIX: l entrée et la sortie standard. Chaque programme, et donc chaque commande a au moins une entrée et une sortie, même si il ne l utilise pas. Par défaut, lorsqu on lance un programme depuis le terminal, le clavier est branché à l entrée du programme, et l écran du terminal à sa sortie. Ainsi, on peut dire que le programme prend le contrôle du terminal. Or, il est aussi possible de rediriger ces entrées et ces sorties vers des fichiers, voir même d autres programmes.

Redirection de la sortie Un symbole: > Exemple de commande: echo "test" Répète les arguments à la sortie standard echo "test" > fichier_test Un fichier fichier_test est créé et contient le mot "test". ls > liste_fichiers Le fichier "liste_fichiers" contient le nom de tous les fichiers dans le dossier en cours Voyons tout d abord la redirection de la sortie vers un fichier. Le symbole à utiliser est le signe plus grand que, qui fait penser un peu à une flèche. Nous introduisons ici une nouvelle commande, "echo", qui ne fait que répéter les arguments en sortie standard. Par exemple, echo "test" ne fera qu afficher le mot "test" sur une ligne à l écran du terminal. Or, si je redirige la sortie de la commande echo vers un fichier, le mot "test" n apparaitra pas à l écran du terminal, mais un nouveau fichier sera créé, et il contiendra le mot "test" sur une seule ligne. C est une façon primitive, mais extrêmement utile, de mettre du contenu dans un fichier texte. Par exemple, si vous vouliez une liste de tous les fichiers d un dossier dans un fichier texte, vous n avez qu à rediriger la sortie de ls.

Le tuyau Un symbole: Redirige la sortie d une commande vers l entrée d une autre Exemple de commande: less fichier cat fichier less Maintenant, pour rediriger la sortie vers un autre programme, on utilise ce qu on appelle le "tuyau", ou "pipe", avec le symbole de la barre verticale. Voyons maintenant deux commandes: less, qui permet d afficher de long fichiers à l écran en défilant au clavier, et "cat", qui lit le contenu d un fichier et le balance directement à la sortie standard. La plupart des commandes nécessitant un fichier comme argument se dirige vers l entrée standard lorsqu on n en spécifie pas. Ainsi, "less fichier" va faire défiler le fichier à l écran, mais "less" seul attend qu on lui envoie des données à son entrée standard. En utilisant cat et en dirigeant sa sortie vers less, on obtient le même résultat. Pour terminer, voici quelques illustrations des commandes précédentes

echo "test" echo Ici, on affiche tout simplement le mot "test" dans le terminal

echo "test" > fichier echo fichier Ici, on écrit le mot test dans un fichier

less fichier fichier less Ici, on fait défiler le contenu du fichier

cat fichier less cat less fichier Ici c est la même chose, mais avec un intermédiaire pour montrer le tuyau

cat > fichier cat fichier Et finalement, une variation, ou tout ce qu on entre au clavier après le lancement de la commande "cat" sera inscrit dans un fichier. Pendant le TD2, nous verrons des exemples avec des commandes plus complexes de l utilité de cette technique, notamment avec l utilitaire "grep".