Вы находитесь на странице: 1из 7

Cours Perl

Les objectifs de ce cours sont : Se familiariser avec l'environnement UNIX/LINUX Apprendre a se servir de quelques fonctionnalits disponibles dans cet environnement pour la manipulation des textes L'valuation du cours sera constitue par Examen crit Devoir sur table Sance 1 : Environnement UNIX/LINUX: prsentation, avantages et inconvnients, utilisation, principales commandes.

Les chemins d'accs aux fichiers Quelques commandes utiles : ls, pwd, cd, cat, grep, wc Exercice avec ces commandes

Support de cours : Introduction Linux


Pourquoi une initiation LINUX ?
LINUX est trs puissant pour manipuler et traiter des gros volumes textuels et en linguistique le cas est frquent. Les commandes de base utilises sous un shell (un interprteur de commande comme DOS sous Windows) sont fortement corrles Perl et il est trs utile de les manipuler Connatre un systme dexploitation autre que Windows ne peut pas faire du mal, bien au contraire. Pourquoi utiliser LINUX Linux est gratuit. Vous pouvez tlcharger une distribution de Linux sur Internet (mme sans l'installer sur votre disque dur, live-cd : ubuntu-live, knoppix) Linux est trs stable Linux est un systme sr (pas besoin d'antivirus). Vous ne craignez pas tous les virus de Windows La particularit d'Unix par rapport Windows est qu'il est muni d'interprtes de commandes (ou shells) fonctionnant en mode texte. Qu'est-ce que Linux Linux est un systme d'exploitation (comme MacOS ou Windows). Le rle d'un systme d'exploitation est de contrler les composants de votre ordinateur le processeur, la mmoire, le disque, le clavier, le moniteur, etc. Le systme d'exploitation relie tous ces composants d'une part et les applications d'autre part. Quand vous voulez que l'ordinateur fasse quelque chose pour vous dmarrer une application, copier un fichier, ou afficher le contenu d'un rpertoire, c'est le systme d'exploitation qui accomplit ces tches. Un peu d'histoire: UNIX a t cr en dbut des annes 70, par AT&T. Le but tait de construire un systme d'exploitation multi-tche et multi-utilisateurs. Le succs de l'UNIX d'A T&T comme systme d'exploitation pour les stations de travail a incit les constructeurs de machines (SUN, IBM, HP, SGI,...) dvelopper leur propre UNIX (SunOS/Solaris, AIX, HP/UX, IRIX,..) au dbut des annes 80. Par ailleurs, vers la fin des annes 70, l'universit de Berkley a dvelopp son UNIX : BSD au dpart pour palier aux limites de systme VAX. En dbut des annes 80, la multitude des systmes UNIX a pouss les universitaires et les industriels rflchir un standard, le standard POSIX. Les diffrents systmes UNIX ont mri durant les annes 80, et sont depuis considrs comme les plus efficaces et sont par consquent largement utiliss dans l'industrie et les universits. Au dbut des annes 90, un tudiant finlandais Linus Torvalds a commenc dvelopper avec l'aide d'un groupe de hackers un UNIX suivant le modle GNU (distribu avec la licence GPL) en se basant sur le systme Minix, et respectant le standard POSIX. Linux tourne dsormais sur plusieurs architectures : ix86 (PC), 68000 (Atari, Amiga, Macintosh) et PowerPC (PowerMac, IBM), SPARC (Sun), ARM (SGI), Alpha (DEC) ... et dans les annes 90 plusieurs distributions sont apparues : Debian,Slackware,RedHat, Suse,Mandrake,Gentoo,Ubuntu, ... et les interfaces graphiques (Gnome, KDE) ont beaucoup volu permettant mme des utilisateurs novices d'utiliser le systme.

Commandes de base pour l'interprteur des commandes (le shell)


1. Chemins d'accs
On considre l'arborescence Unix suivante, o seul alex.jpg est un fichier. Tous les autres noms dsignent des rpertoires. A l'ouverture du shell vous tes positionnes dans votre home directory (en l'occurrence /home/avolansk). home/ avolansk/ cours/ langagesIL Perl Unix documents/ images/ alex.jpg

Figure 1 Le chemin absolu l'un des fichiers ou rpertoire de cet arbre, est la suite des noms rencontrs depuis la racine / jusqu' cet lment, spars par des /. * /home/avolansk est un chemin d'accs absolu au home directory de Alexandra Volanschi, * /home/avolansk/images/alex.jpg est un chemin d'accs absolu alex.jpg La suite /home/avolansk/images/alex.jpg peut aussi s'interprter comme une suite de dplacements : * / : aller la racine * home/ : descendre dans home * avolansk/ : descendre dans avolansk * images/ : descendre dans images * logo.jpg : accder logo.jpg Un chemin relatif dcrit la suite des dplacements effectuer partir du rpertoire courant jusqu' un lment donn. Dans une telle suite, un double-point .. dsigne le rpertoire immdiatement au dessus du prcdent, et le point . dsigne le rpertoire courant : * si le rpertoire courant est avolansk, images/alex.jpg est un chemin d'accs relatif alex.jpg. * si le rpertoire courant est documents : o .. est un chemin d'accs relatif /home/avolansk, o ../images accde au rpertoire /home/avolansk/images. o ../images/alex.jpg accde au fichier alex.jpg. Remarque En pratique, on identifie souvent un fichier ou un rpertoire avec son chemin d'accs (absolu ou relatif). Ainsi, dans la description des commandes ci-dessous, un argument de la forme rpertoire (resp. fichier) pourra tre remplac par n'importe quel chemin d'accs un

rpertoire (resp. un fichier). Par exemple, cd.. permet de remonter dans le rpertoire immdiatement au-dessus du rpertoire courant, cd../../usr/local permet de remonter de deux rpertoires, puis de descendre successivement dans usr et dans local, etc...

2. Commandes de base pour le shell 2.1 Fichiers et rpertoires


NOTE : tout moment, pour plus de prcisions sur une commande et son fonctionnement, utiliser la commande $man commande.

1/pwd A tout moment, pour savoir dans quel rpertoire on se trouve, on peut utiliser la
commande pwd.

2/cd 'change directory' pour changer de rpertoire et aller dans le rpertoire spcifi
exemple : cd.. permet de remonter d'un niveau sans arguments, et quelque soit le rpertoire courant, cd vous permet de revenir au sommet de votre rpertoire personnel. (exemple : si vous vous trouvez dans le rpertoire images, la commande vous permet de revenir dans /home/avolansk

3/ ls 'list' permet l'affichage du contenu d'un rpertoire :


ls rpertoire : afficher le contenu de rpertoire. lslrpertoire : afficher toutes les informations disponibles sur le contenu du rpertoire spcifi. Utilises sans arguments, ls et lsl s'appliquent au rpertoire courant.

4/ mkdir 'make directory' rpertoire = crer rpertoire. 5/ rmdir 'remove directory' rpertoire (remove directory) : dtruire rpertoire. Cette
commande ne fonctionne que si le rpertoire spcifi est vide.

6/ cp 'copy' copie de fichiers/rpertoires cp fichier_1 fichier_2


si fichier_2 n'existe pas, crer une copie de fichier_1 appele fichier_2. - sinon, remplacer le contenu de fichier_2 par celui de fichier_1. cp fichier rpertoire : crer dans rpertoire une copie de fichier de mme nom. cpr rpertoire1 rpertoire2 (r pour rcursif) : copie rcursive des contenus du rpertoire1 dans le rpertoire2

7/ rm 'remove' destruction des fichiers/rpertoires


rm fichier (remove) : dtruire fichier. Noter que rmr rpertoire (r pour rcursif) dtruit le contenu de rpertoire et de tous ses sous-rpertoires.

8/ mv'move' : dplacement ou renommage


mv fichier_1 fichier_2 : si fichier_2 n'existe pas, changer le nom de fichier_1 en fichier_2, sinon remplacer son contenu par celui de fichier_1, et dtruire fichier_1.

mv fichier rpertoire : dplacer fichier dans rpertoire. mv rpertoire_1 rpertoire_2 : - si rpertoire_2 n'existe pas, changer le nom de rpertoire_1 en rpertoire_2. sinon, dplacer rpertoire_1 dans rpertoire_2. NOTE : Destructions ou dplacements multiples : le caractre wildcard * On peut dplacer ou dtruire plusieurs fichiers ou rpertoires simultanment, l'aide du caractre *. Par convention, ce caractre ne fait jamais partie d'un nom de fichier ou de rpertoire. Il est interprt par le Shell de la manire suivante: mot* dsigne tous les fichiers ou rpertoires commenant par mot (qui peut tre le mot vide). Le premier argument des commandes mv,cp (ou mme de ls, ainsi que de cat et more, voir ci-dessous) peut tre de cette forme. La commande s'applique alors tous les fichiers commenant par mot: si /home/avolansk/langagesIL/Unix contient les fichiers test_1.txt, test.txt,testtest, la commande rm/home/avolansk/langagesIL/Unix/test* effacera ces trois fichiers. rm* efface le contenu du rpertoire courant (faire attention a cette commande : a a provoque de grandes catastrophes dans l'histoire). cp*/test*/home/avolansk/documents copie dans /home/avolansk/documents tous les fichiers commenant par test contenus dans les sous-rpertoires immdiats du rpertoire courant.

2.2 Manipulations de base sur les fichiers texte


Affichage : cat,more,head,tail,echo

9/ cat 'concatenate''cat fichier : afficher l'cran le contenu de fichier. Noter


que l'on peut afficher la suite les contenus de plusieurs fichiers, par un appel de la forme cat fichier_1 ...fichier_n, ou mme cat nom*. 10/ moremore fichier : afficher l'cran le contenu de fichier, en s'arrtant chaque fois que l'affichage remplit une page cran. Pour continuer l'affichage, appuyer sur la barre d'espace.

11/ head head -n 20 fichier : affiche les 20 premires lignes de fichier 12/ tail tail-n 20 fichier : affiche les 20 dernires lignes de fichier 13/ echo
echo chane. Afficher chane (une suite de caractres quelconque) l'cran, suivi d'un retour-chariot (caractre invisible, provoquant le retour la ligne). echo chane > fichier: au lieu d'afficher chane l'cran, crer fichier, et stocker la sortie de echo chane (c'est--dire chane, suivi d'un retour-chariot) dans fichier. Noter que si fichier existe, son contenu est cras. Ainsi, la squence de commandes

echototo>test.txt cattest.txt echotutu>test.txt cattest.txt affichera l''ecran successivement toto suvi d'un retour-chariot (premier contenu de test.txt) puis tutu suvi d'un retour-chariot (second contenu).

Redirection : > et >>


Plus gnralement, l'oprateur > permet de rediriger la sortie de n'importe quelle commande vers un fichier, en crasant son contenu si celui-ci existe dj. Ainsi, cat fichier_1 fichier_2 affiche l'cran les contenus de fichier_1 et fichier_2. cat fichier_1 fichier_2 > fichier_3 stocke la suite dans fichier_3 les contenus de fichier_1 et fichier_2. La squence de commandes echototo>test_1.txt echotutu>test_2.txt cattest_1.txttest_2.txt>test_3.txt cattest_3.txt affichera: toto tutu L'oprateur >> redirige de la mme manire la sortie d'une commande vers un fichier, mais, dans le cas o celui-ci existe dj, en stockant celle-ci la fin du fichier. Ainsi, dans l'exemple prcdent, cattest_1.txttest_2.txt>test_3.txt est quivalent : cattest_1.txt>test_3.txt (stocker toto dans test_3.txt) cattest_2.txt>>test_3.txt (stocker tutu aprs toto).

3 Exercices
1. Rpertoires : pwd,ls,cd,mkdir,mv Afficher la position du rpertoire dans lequel vous vous trouvez. Afficher son contenu. Revenir, si vous n'y tes pas dj, votre rpertoire priv (utiliser la commande cd sans arguments). 1. Crer partir de votre rpertoire priv l'arborescence dans la Figure1. Commencer avec les sous-rpertoires Images, Documentset Cours. Descendre dans Cours: crer un sous-rpertoire langagesIL. sans changer de rpertoire, crer un sous-rpertoire de langagesILappel Perl. toujours sans changer de rpertoire, crer un nouveau sous-rperto de ire langagesILappel Unix.

2. Descendre, en une seule tape, dans Perl. Sans changer de rpertoire, crer un sousrpertoire d'Unix appel Exos. 3. Remonter, en une seule tape, dans Documents. afficher le contenu de ce rpertoire. en une seule tape, copier le rpertoire Exos dans Perl. sans changer de rpertoire, afficher le contenu de Perl sa nouvelle position. toujours sans changer de rpertoire, changer le nom de Unix en Linux, sans changer sa position. 4. Aller dans Linuxen une seule tape, puis afficher son contenu. 5. Dessinez sur un papier cette arborescence aprs ces tapes. Si vous tes perdus, vous pouvez bien sr tout moment
1. 2. 3. 4.

afficher la position du rpertoire courant, afficher son contenu, afficher le contenu de ses sous-rpertoires. effacer un rpertoire cr par erreur, l'aide de rmdir ( condition qu'il soit vide, sinon avec rm -r).

Оценить