aix book.pdf

Upload: zinedine-zizou

Post on 19-Oct-2015

153 views

Category:

Documents


0 download

TRANSCRIPT

  • UNIX : Gnralits Historique

    Chapitre 1 : UNIX : Gnralits Historique

    1.1 UNIX, un systme dexploitation

    Les missions dun systme dexploitation sont :

    mise disposition de ressources matrielles : espace disque, temps dexcution sur lemicroprocesseur central, espace mmoire, etc.

    partage quitable de ces ressources entre les utilisateurs pour atteindre le but de systmemulti-utilisateurs

    Formation permanente ARS 1

    UNIX : Gnralits Historique UNIX, un systme dexploitation

    Terminologie :

    Mono utilisateur Une seule personne utilise lordinateur

    Multi utilisateur Plusieurs personnes peuvent utiliser le systme en mmetemps. Le systme sassure quun utilisateur ninterfre pas surun autre.

    Mono tche Un seul processus tourne un instant.

    Multi tche Plusieurs processus donnent limpression de tourner en mmetemps.

    Multi tche premptif LOS dtermine quand un processus a eu assez de temps CPU.

    Multi tche non pr-emptif

    Le processus dtermine lui mme quand il a eu assez de tempsCPU.

    Formation permanente ARS 2

  • UNIX : Gnralits Historique UNIX, un systme dexploitation

    Exemples :

    MS DOS mono utilisateur, mono tche

    Windows 95/98 mono utilisateur, multi tche non premptif

    Windows NT, 2000, XP mono utilisateur, multi tche premptif

    OS/2 mono utilisateur, multi tche premptif

    UNIX multi utilisateur, multi tche premptif

    Formation permanente ARS 3

    UNIX : Gnralits Historique UNIX, un systme dexploitation

    Concepts novateurs dUNIX :

    UNIX est construit autour dune ide forte : la puissance dun systme provient plus des relationsentre les programmes que des programmes eux-mmes. Beaucoup de programmes UNIX font, defaon isol des traitements triviaux ; combins avec dautres, ils deviennent des outils gnraux etperformants.

    La solution dun problme sous UNIX ne passe pas forcment par lcriture dun programmespcifique mais souvent pas une utilisation combine et lgante des outils standard.

    Formation permanente ARS 4

  • UNIX : Gnralits Historique Panorama de quelques UNIX du march

    1.2 Panorama de quelques UNIX du march

    Marque Site web Version dUNIX Constructeur de hardware

    COMPAQ http ://www.digital.com Tru64 Unix 5.1a ouiHP http ://www.hp.com HP-UX 11.x ouiIBM http ://www.ibm.com AIX 5.x ouiSGI http ://www.sgi.com IRIX 6.x.y ouiSUN http ://www.sun.com Solaris 9 ouiCRAY http ://www.cray.com Unicos ?. ? oui

    SANTA CRUZ http ://www.sco.com SCO 5.5 ? nonNOVELL http ://www.novell.com Unixware 4.0 ? nonLINUX http ://www.kernel.org noyau 2.x.y nonFREEBSD http ://www.freebsd.org FreeBSD 4.6.2 nonNETBSD http ://www.netbsd.org NetBSD 1.6.x nonOPENBSD http ://www.openbsd.org OpenBSD 3.1 non

    Larbre gnalogique dUNIX est trs complexe. Se reporter lannexe pour un schma dtaill.

    Formation permanente ARS 5

    UNIX : Gnralits Historique Les diffrentes familles dUNIX

    1.3 Les diffrentes familles dUNIX

    Du point de vue de lutilisateur, les divers UNIX se ressemblent beaucoup.

    Du point de vue de ladministration, les divers UNIX ont chacun des spcificits (lescommandes lies au hardware varient, on trouve des extensions propres chaque constructeur). Enpratique, ladministrateur attend toujours.

    Plusieurs tentatives dunification :

    System V Interface Definition de AT&T (SVID, SVID2, SVID3 en 1989) IEEE POSIX (POSIX1003.1 en 1990) X/OPEN Portability Guide (XPG4 en 1993) du consortium X/OPEN (cr en 1984)Mais. . .

    Formation permanente ARS 6

  • UNIX : Gnralits Historique Les diffrentes familles dUNIX

    Il reste 2 grandes familles dUNIX issues dun schisme : la famille System V avec notamment la dernire version connue sous le nom de System V

    release 4 (alias SVR4) la famille BSD issue de luniversit de Berkeley (BSD Berkeley Software Distribution)

    Votre rle : connatre les principes et les mcanismes dUNIX afin de savoir sadapter nimportequel UNIX.

    Formation permanente ARS 7

    UNIX : Gnralits Historique Les diffrentes familles dUNIX

    Ken Thompson et Dennis M. Ritchie, les parents dUnix

    On notera les teletypes 33 !

    Formation permanente ARS 8

  • Dfinition du rle de ladministrateur

    Chapitre 2 : Dfinition du rle de ladministrateur

    Formation permanente ARS 9

    Dfinition du rle de ladministrateur Les principales missions de ladministrateur

    2.1 Les principales missions de ladministrateur

    grer les comptes utilisateurs (tche simple et automatisable) assister et duquer les utilisateurs (rponses leurs questions, documentation jour) grer les logiciels (installation, configuration, mise jour) grer le matriel (panne, remplacement, ajout) assurer la scurit du systme et des utilisateurs (sauvegardes fiables et rgulires, contrle

    daccs, utilisations abusives de ressources) vrification de ladquation du matriel avec son utilisation (identifier les goulets dtranglement) maintenance de premier niveau (diagnostiquer une panne, appel de la maintenance constructeur) gestion quotidienne (multiples tches, petites ou grosses)

    Formation permanente ARS 10

  • Dfinition du rle de ladministrateur Les principales missions de ladministrateur

    Autres facettes du mtier :

    diplomatie, police aspects lgaux (chiffrement, etc.) enqutes judiciaires (piratage informatique, articles pdophiles) relations commerciales politique dutilisation des machines

    Bien sr, la charge de travail dpend de la taille du site (cf annexe B).

    Ladministrateur est en premire ligne lorsquun problme surgit. Cest lui quon incriminenaturellement lorsque quelque chose ne marche pas.

    Formation permanente ARS 11

    Dfinition du rle de ladministrateur Quelques rgles de bon sens

    2.2 Quelques rgles de bon sens

    1. Votre pire ennemi, cest vous.rm /tmp *

    2. Si vous tes fatigu, ne faites rien.

    3. Pas de modification importante un vendredi aprs-midi.

    4. Soyez sr de pouvoir revenir en arrire.mv foo foo.0cp foo.0 foovi foo

    5. Documentez ce que vous faites.

    6. Faites comme si vous ne pouviez pas venir demain.

    7. Attention lexpansion des caractres gnriques.rm -rf .*

    Formation permanente ARS 12

  • Dfinition du rle de ladministrateur Quelques rgles de bon sens

    Administrateur systme bon sens technicit rigueur

    Formation permanente ARS 13

    Dfinition du rle de ladministrateur Connaissances de base dun administrateur

    2.3 Connaissances de base dun administrateur

    Administrateur dUnix : dabord un utilisateur expert dUnix

    environnement utilisateur aide en ligne systme de fichiers utilisation du shell utilisation dun diteur de texte commandes de base programmation shell

    Formation permanente ARS 14

  • Premiers contacts avec UNIX

    Chapitre 3 : Premiers contacts avec UNIX

    Avant de commencer : nayez pas peur dexprimenter. Le sytme ne vous fera pas de mal.

    En mode utilisateur, vous ne pouvez rien abmer en utilisant le systme. UNIX, par conception,possde des notions de scurit, afin dviter aux utilisateur normaux de le dconfigurer.

    En mode administrateur, bien sr, faites attention. On limitera tout travail en mode administrateurau minimum.

    Formation permanente ARS 15

    Premiers contacts avec UNIX Votre compte UNIX : login, mot de passe

    3.1 Votre compte UNIX : login, mot de passe

    Un utilisateur Unix est equivalent :

    un identificateur (sur 8 lettres en gnral), son nom au sens informatique ; appel login ; un mot de passe confidentiel ;

    Gare aux sanctions en cas damusement avec le compte dun autre utilisateur !

    Cf la charte informatique en annexe.

    Formation permanente ARS 16

  • Premiers contacts avec UNIX Principales rgles sur les mots de passe

    3.2 Principales rgles sur les mots de passe

    un mot de passe ne se prte pas ! un mot de passe ne soublie pas ! un mot de passe nest pas facile trouver ! :

    vitez quil ne se rapporte pas vous (nom, voiture, chien) vitez les mots dans des dictionnaires vitez les prnoms il doit comporter au moins 6 caractres, en gnral 8 les majuscules et les minuscules sont diffrencies utiliser des chiffres et des caractres spciaux : par exemple Kpiten[, &7oubon, etc.

    Cf http://www.cru.fr/securite/Cours/mot-de-passe-jplg.html

    Formation permanente ARS 17

    Premiers contacts avec UNIX Changer son mot de passe UNIX

    3.3 Changer son mot de passe UNIX

    La commande standard pour changer son mot de passe sur une machine UNIX est passwd.

    Sur les systmes UNIX qui utilisent un mcanisme de centralisation des mots de passe (appel NIS),la commande pour changer son mot de passe est passwd.

    Cest le cas de la formation permanente yppasswd

    Cf lannexe sur les mots de passe pour dautres renseignements.

    Formation permanente ARS 18

  • Premiers contacts avec UNIX Connexion sur un terminal texte UNIX

    3.4 Connexion sur un terminal texte UNIX

    Terminal texte (modle VT100)

    Formation permanente ARS 19

    Premiers contacts avec UNIX Connexion sur un terminal texte UNIX

    La demande du login et du mot de passe ressemble globalement :

    Login:Password:

    Login:Password:

    Formation permanente ARS 20

  • Premiers contacts avec UNIX Connexion sur un terminal texte UNIX

    Attention :

    Pour une connexion sur une console, il ne faut pas entrer son nom de login alors que la toucheCAPS LOCK est active. En effet, si le nom de login est tout en majuscules, lordinateur croira que leterminal ne connait pas les lettres minuscules et vous vous retrouverez dans une session o lon nedistinguera pas minuscules des majuscules.Remdes : se dconnecter (la meilleure mthode) ou taper la commande stty -lcase ou STTY -LCASE

    Attention bis :

    UNIX fait la diffrence entre les lettres minuscules et majuscules au niveau des noms decommande et des noms de fichiers.

    Formation permanente ARS 21

    Premiers contacts avec UNIX Connexion sur un terminal graphique UNIX

    3.5 Connexion sur un terminal graphique UNIX

    Station de travail UNIX (SUN Blade 100)

    Formation permanente ARS 22

  • Premiers contacts avec UNIX Connexion sur un terminal graphique UNIX

    La demande du login et du mot de passe ressemble globalement :

    login:Password:

    vangogh

    Login:

    Password:

    Formation permanente ARS 23

    Premiers contacts avec UNIX Connexion sur un terminal graphique UNIX

    Une fois connect via linterface graphique, on utilisera principalement un programme dmulation determinal de type texte qui fournit dans une fentre une connexion comme sur un terminal texte :

    Lmulateur de terminal sappelle xterm.

    Formation permanente ARS 24

  • Premiers contacts avec UNIX Linterface graphique UNIX

    3.6 Linterface graphique UNIX

    Unix dispose dun grand nombre dinterfaces graphiques compar des systmes comme Windowsou Macintosh :SunView, NeWS, OpenWindows, View, CDE, KDE, GNOME, Berlin, etc.

    Cf le site http://www.plig.org/xwinman/

    Formation permanente ARS 25

    Premiers contacts avec UNIX Linterface graphique UNIX

    Bureau de travail sous CDE :

    Formation permanente ARS 26

  • Premiers contacts avec UNIX Linterface graphique UNIX

    Bureau de travail sous KDE (http://www.kde.org) :

    Formation permanente ARS 27

    Premiers contacts avec UNIX Linterface graphique UNIX

    Bureau de travail sous GNOME (http://www.gnome.org) :

    Formation permanente ARS 28

  • Premiers contacts avec UNIX Les langages de commandes UNIX : les shells

    3.7 Les langages de commandes UNIX : les shells

    A lorigine, des teletypes puis des consoles texte.

    linteraction de base se fait au moyen dephrases taper sur un clavier (par oppositionaux interfaces graphiques la Windows ou deMacintosh).

    A gauche, une console texte DIGITAL VT100.

    A droite, un teletype DIGITAL (genre de machine crire).

    Formation permanente ARS 29

    Premiers contacts avec UNIX Les langages de commandes UNIX : les shells

    Le shell est un programme qui permet la saisie et linterprtation de ce qui est tap. Le shell est justeune interface avec le systme.

    MS-DOS comporte un shell aux possibilits restreintes par rapport aux shells Unix.

    Le shell est aussi un vrai langage de programmation, interprt (non compil) offrant les structuresde base de programmation de tout autre langage.

    Sous Unix, le shell est un programme au mme titre quun autre. Le shell de travail estinterchangeable par un autre shell ( la syntaxe prs comme de bien entendu).

    Formation permanente ARS 30

  • Premiers contacts avec UNIX Les langages de commandes UNIX : les shells

    Les shells les plus rpandus :

    Shell Program Description

    Bourne shell sh disponible sur toute plateforme Unix

    C shell csh shell dvelopp pour BSD

    Korn shell ksh Bourne shell amlior par AT&T

    Bourne again shell bash Shell distribu avec linux ; version am-liore de sh et csh

    Dans ce cours, on distinguera le shell de programmation (car on peut programmer grce uninterprteur de commandes sil est bien pens) du shell de travail lors dune session interactive. Les2 shells nont pas de raison dtre identiques (cf plus loin sur ce que cela implique).

    Formation permanente ARS 31

    Premiers contacts avec UNIX Les langages de commandes UNIX : les shells

    Tous les shells se prsentent sous la mme forme lcran lorsquils fonctionnent : une chane de caractres affiche que le shell attend que lutilisateur tape quelque chose au

    clavier ; cest le prompt. un curseur qui va se dplacer au fur et mesure de la saisie des commandes

    Pour ce cours, on utilisera le caractre % pour dsigner le prompt dun utilisateur normal.

    Formation permanente ARS 32

  • Premiers contacts avec UNIX Les langages de commandes UNIX : les shells

    La suite du support de cours comportera des exemples comme :

    % ls

    Il ne faudra jamais taper la chane de prompt lorsque vous testerez par vous mmes lescommandes indiques.

    Pour terminer une session shell, on tape la commande commune tous les shells :

    % exit

    Formation permanente ARS 33

    Premiers contacts avec UNIX Formes gnrales des commandes Unix

    3.8 Formes gnrales des commandes Unix

    Une commande Unix un ensemble de mots spars par des caractres blancs (caractre espace,tabulation)Le premier mot : le nom de la commande

    Le reste des mots : les paramtres de la commande

    Particularits de certains mots : des options qui changent le comportement de la commande

    En pratique on trouvera donc crit :

    commande [options] parametresLes 2 crochets [ et ] indiquent que les options ne sont pas obligatoires. Il ne faut pas taper cescrochets sur la ligne de commande.

    Formation permanente ARS 34

  • Premiers contacts avec UNIX Formes gnrales des commandes Unix

    Comment spcifie-t-on une option ?

    Une option est quelque chose de prvu par le programme cest le programmeur qui aura toujoursle dernier mot.

    Il reste une tendance gnrale : Une option est introduite par le signe - et est souvent constituedune seule lettre comme par exemple -a. (mais attention aux exceptions nombreuses)

    Souvent on pourra cumuler des options :

    ls -a -l ls -al

    Souvent (mais pas tout le temps), lordre des options na pas dimportance. (cf getopt(1) ougetopt(3))ls -a -l ls -al ls -la ls -l -a

    Formation permanente ARS 35

    Premiers contacts avec UNIX Documentation Unix en ligne : man

    3.9 Documentation Unix en ligne : man

    Il existe une documentation lectronique accessible pendant le fonctionnement du systme : cestlaide en ligne.

    La commande donnant laide est man. Elle donne accs aux pages de manuel des commandes Unixqui sont rparties selon des sections comme suit :

    section 1 commandes normales section 2 appels systmes section 3 fonctions de programmation C section 4 priphriques et pilotes de priphriques section 5 format de fichiers section 6 jeux section 7 divers section 8 commandes de gestion du systme

    Formation permanente ARS 36

  • Premiers contacts avec UNIX Documentation Unix en ligne : man

    Les numros de section apparaissent dans de nombreux exemples.

    Lorsque lon verra getopt(3), il faudra se reporter la commande getopt de la section 3 dumanuel.

    Syntaxe de la commande man :man [options] commandeavec en particulier comme option :man [numero de section] commandeman [-s numero de section] commande

    Inconvnient : il faut connaitre le nom de la commande (nom anglais trs souvent)Laide est plus l pour se rappeler les nombreuses options des commandes et leurs syntaxesparticulires.

    Formation permanente ARS 37

    Premiers contacts avec UNIX Documentation Unix en ligne : man

    Exemple : man fortune renvoie :

    On remarque : affichage page dcran par page dcran pour mieux lire la doc plusieurs rubriques (NAME, SYNOPSIS, DESCRIPTION, . . .)

    Formation permanente ARS 38

  • Premiers contacts avec UNIX Documentation Unix en ligne : man

    On navigue entre les pages dcran de la documentation par : la touche SPC pour avancer (ou f forward) la touche b pour reculer (b backward)

    Formation permanente ARS 39

    Premiers contacts avec UNIX Documentation Unix en ligne : man

    On quitte : quand on arrive la fin de la documentation prmaturment par la touche q (q quit)

    Formation permanente ARS 40

  • Premiers contacts avec UNIX Documentation Unix en ligne : man

    Quelques pages de manuel intressantes : la page de la commande man que lobtient par man man les pages dintroduction de chaque section que lon obtient par man 1 intro,man 2 intro, man 3 intro, etc.

    Formation permanente ARS 41

    Premiers contacts avec UNIX Documentation Unix en ligne : man

    Quand on ne connait pas le nom de la commande, on peut demander les noms des commandesdont le descriptif contient une certaine chane de caractres :man -k chaine

    Exemple :

    % man -k tunexvidtune(1) - video mode tuner for XFree86xvidtune(1) - video mode tuner for XFree86fortune(6) - print a random, hopefully interesting, adagetunefs(8) - tune up an existing file system

    Formation permanente ARS 42

  • Manipulations de fichiers Unix

    Chapitre 4 : Manipulations de fichiers Unix

    4.1 Arborescence de fichiers

    Sur Unix, les fichiers sont identifis par leur nom de fichier, qui peuvent contenir nimporte quelcaractre (sauf /) et peuvent faire jusqu 256 caractres de long, voire plus selon les Unix.Au concept de fichier est associ la notion de rpertoire (en anglais directory). Un rpertoire estsimplement une collection de fichiers organise de manire arborescente.

    Un fichier peut tre rfrenc par son chemin daccs, qui est constitu du nom de fichier, prcdpar le nom de rpertoire qui le contient sous la forme :

    chemin daccs = rpertoire / nom

    Formation permanente ARS 43

    Manipulations de fichiers Unix Arborescence de fichiers

    Arborescence

    Principe classique de larborescence :

    une racine : dsigne par "/" (en anglais slash) nuds : rpertoires feuilles : fichiers

    /

    ls

    dev usr tmpbin

    include

    sys

    stat.h

    Selon ce schma, 3 dsignations possibles dun fichier.

    Formation permanente ARS 44

  • Manipulations de fichiers Unix Arborescence de fichiers

    chemin daccs absolu :

    chemin daccs = rpertoire / nom

    Si le nom de rpertoire commence par /, il sagit dune rfrence absolue par rapport au rpertoireracine /, constitue dune liste des rpertoires parcourir depuis la racine pour accder au fichier.

    par exemple : /usr/include/sys/stat.h

    include

    /

    ls

    dev usr tmpbin

    sys

    stat.h

    on regardedepuis cepoint dereference

    Formation permanente ARS 45

    Manipulations de fichiers Unix Arborescence de fichiers

    chemin daccs relatif :

    chemin daccs = rpertoire / nom

    Si le nom de rpertoire ne commence pas par /, il sagit dune rfrence relative par rapport aurpertoire courant.

    Le rpertoire courant est not .

    Le rpertoire parent du rpertoire courant est not ..

    directory pre

    directory courant

    ..

    .

    Formation permanente ARS 46

  • Manipulations de fichiers Unix Arborescence de fichiers

    par exemple, depuis /usr/include/ : sys/stat.h

    /

    ls

    dev usr tmpbin

    include

    sys

    stat.h

    on regardedepuis cepoint dereference

    Formation permanente ARS 47

    Manipulations de fichiers Unix Arborescence de fichiers

    par exemple, depuis /usr/include/ : ../../bin/ls

    /

    ls

    dev usr tmpbin

    include

    sys

    stat.h

    on regardedepuis cepoint dereference

    Formation permanente ARS 48

  • Manipulations de fichiers Unix Arborescence de fichiers

    chemin daccs relatif par rapport un utilisateur :

    Sur le principe identique un chemin relatif sauf que le point de dpart est le rpertoire dunutilisateur que lon dsigne par le signe suivi du nom de lutilisateur :

    % ls ~besanconfichier1 fichier2 rep1

    fichier1 fichier2

    /

    ls

    dev tmpbin ...

    besancon

    rep1

    Formation permanente ARS 49

    Manipulations de fichiers Unix Liste des fichiers : ls

    4.2 Liste des fichiers : ls

    (en anglais list)Syntaxe : ls [options] fichiers

    Principales options (cumulables) : option -l : affichage au format long des informations relatives aux fichiers option -R : liste rcursive option -d : affichage des noms des rpertoires et non de leur contenu option -F : affichage des fichiers avec un suffixe dsignant le type du fichier option -a : affichage des fichiers dont les noms commencent par .

    Formation permanente ARS 50

  • Manipulations de fichiers Unix Liste des fichiers : ls

    Exemple 1

    a b c d e f

    y z t

    on regardedepuis cepoint dereference

    % lsa b c d e f

    Formation permanente ARS 51

    Manipulations de fichiers Unix Liste des fichiers : ls

    Exemple 2

    a b c d e f

    y z t

    on regardedepuis cepoint dereference

    % ls -ltotal 2drwxr-xr-x 2 besancon 512 Oct 1 16:42 a-rw-r--r-- 1 besancon 0 Oct 1 16:42 b-rw-r--r-- 1 besancon 0 Oct 1 16:42 c-rw-r--r-- 1 besancon 0 Oct 1 16:42 ddrwxr-xr-x 2 besancon 512 Oct 1 16:42 e-rw-r--r-- 1 besancon 0 Oct 1 16:42 f

    Formation permanente ARS 52

  • Manipulations de fichiers Unix Liste des fichiers : ls

    Exemple 3

    a b c d e f

    y z t

    on regardedepuis cepoint dereference

    % ls -Ra b c d e f

    a:

    y z

    e:

    t

    Formation permanente ARS 53

    Manipulations de fichiers Unix Liste des fichiers : ls

    Exemple 4

    a b c d e f

    y z t

    on regardedepuis cepoint dereference

    % ls -Rltotal 2drwxr-xr-x 2 besancon 512 Oct 1 16:43 a-rw-r--r-- 1 besancon 0 Oct 1 16:42 b-rw-r--r-- 1 besancon 0 Oct 1 16:42 c-rw-r--r-- 1 besancon 0 Oct 1 16:42 ddrwxr-xr-x 2 besancon 512 Oct 1 16:43 e-rw-r--r-- 1 besancon 0 Oct 1 16:42 f

    a:

    total 0-rw-r--r-- 1 besancon 0 Oct 1 16:43 y-rw-r--r-- 1 besancon 0 Oct 1 16:43 z

    e:

    total 0-rw-r--r-- 1 besancon 0 Oct 1 16:43 t

    Formation permanente ARS 54

  • Manipulations de fichiers Unix Liste des fichiers : ls

    Exemple 5

    a b c d e f

    y z t

    on regardedepuis cepoint dereference

    % ls -Fa/ b c d e/ f

    % ls -lFtotal 2drwxr-xr-x 2 besancon 512 Oct 1 16:43 a/-rw-r--r-- 1 besancon 0 Oct 1 16:42 b-rw-r--r-- 1 besancon 0 Oct 1 16:42 c-rw-r--r-- 1 besancon 0 Oct 1 16:42 ddrwxr-xr-x 2 besancon 512 Oct 1 16:43 e/-rw-r--r-- 1 besancon 0 Oct 1 16:42 f

    Formation permanente ARS 55

    Manipulations de fichiers Unix Liste des fichiers : ls

    Exemple 6

    a b c d e f

    y z t

    on regardedepuis cepoint dereference

    % ls ay z

    % ls -d aa

    % ls -l a-rw-r--r-- 1 besancon 0 Oct 1 16:43 y-rw-r--r-- 1 besancon 0 Oct 1 16:43 z

    % ls -ld adrwxr-xr-x 2 besancon 512 Oct 1 16:43 a

    Formation permanente ARS 56

  • Manipulations de fichiers Unix Liste des fichiers : ls

    Exemple 7

    % ls -aF ~besancon./ .lessrc .tvtwmrc../ .login@ .twmrc.Xauthority .logout@ .weblink.Xdefaults .lynxrc .workmandb.Xresources .mailcap@ .workmanrc

    Par dfaut, la commande ls naffiche pas les noms de fichiers commenant par . qui par conventionsont des fichiers de configuration dutilitaires.

    Formation permanente ARS 57

    Manipulations de fichiers Unix Affichage du contenu dun fichier texte : cat

    4.3 Affichage du contenu dun fichier texte : cat

    (en anglais concatenate)Syntaxe : cat [options] fichiers

    Par exemple :% cat /etc/motdSunOS Release 4.1.4 (EXCALIBUR [1.1]): Fri Aug 8 17:43:56 GMT 1997This system is for the use of authorized users only. Individuals usingthis computer system without authority, or in excess of their authority,are subject to having all of their activities on this system monitoredand recorded by system personnel.

    In the course of monitoring individuals improperly using this system, orin the course of system maintenance, the activities of authorized usersmay also be monitored.

    Anyone using this system expressly consents to such monitoring and isadvised that if such monitoring reveals possible evidence of criminalactivity, system personnel may provide the evidence of such monitoringto law enforcement officials.

    Formation permanente ARS 58

  • Manipulations de fichiers Unix Affichage du contenu dun fichier texte : more

    4.4 Affichage du contenu dun fichier texte : more

    (en anglais more)En cas de texte trs long, la commande cat nest pas pratique. On lui prfrera la commande morepour son affichage page dcran par page dcran.

    Syntaxe : more [options] fichiers

    Caractre q pour quitter Caractre espace pour avancer dune page dcran Caractre b pour revenir en arrire dune page (backward) Caractre f pour avancer dune page dcran (forward)

    La commande man affiche en fait les pages du manuel au moyen de la commande more.

    Formation permanente ARS 59

    Manipulations de fichiers Unix Destruction dun fichier : rm

    4.5 Destruction dun fichier : rm

    (en anglais remove)Syntaxe : rm [options] fichiers

    Quelques options : option "-i" : confirmation chaque suppression (garde fou) option "-r" : suppression rcursive option "-f" : suppression en force dun fichier mme si ses droits ne sy prtent pas

    rm -rf rpertoires permet de supprimer rcursivement toute une arborescence sansdemande de confirmation. Attention : dangereux.

    Formation permanente ARS 60

  • Manipulations de fichiers Unix Destruction dun fichier : rm

    a b c d e f

    y z t

    on regardedepuis cepoint dereference

    % ls -Fa/ b c d e/ f

    % rm f% ls -Fa/ b c d e/

    % rm arm: a is a directory

    % rmdir armdir: a: Directory not empty% ls ay z

    % rm -rf a% ls -Fb c d e/

    % rm -i brm: remove b? y% ls -Fc d e/

    Formation permanente ARS 61

    Manipulations de fichiers Unix Duplication dun fichier : cp

    4.6 Duplication dun fichier : cp

    (en anglais copy)Syntaxes :cp [options] fichier-dpart fichier-destinationcp [options] fichiers-dpart rpertoire-destination

    La destination peut tre un fichier ou un rpertoire. Dans le cas dune destination fichier, on renomme le fichier original. Dans le cas dune destination rpertoire, on dplace le fichier original en lui conservant son nom.

    Quelques options :

    "-i" : confirmation chaque crasement de fichier

    "-r" : copie rcursive

    Formation permanente ARS 62

  • Manipulations de fichiers Unix Duplication dun fichier : cp

    % ls -lFtotal 3drwxr-xr-x 2 besancon 512 Oct 1 16:43 a/-rw-r--r-- 1 besancon 0 Oct 1 16:42 b-rw-r--r-- 1 besancon 0 Oct 1 16:42 c-rw-r--r-- 1 besancon 0 Oct 1 16:42 ddrwxr-xr-x 2 besancon 512 Oct 1 16:43 e/-rw-r--r-- 1 besancon 342 Oct 1 17:25 f

    % cp f g% ls -lFtotal 4drwxr-xr-x 2 besancon 512 Oct 1 16:43 a/-rw-r--r-- 1 besancon 0 Oct 1 16:42 b-rw-r--r-- 1 besancon 0 Oct 1 16:42 c-rw-r--r-- 1 besancon 0 Oct 1 16:42 ddrwxr-xr-x 2 besancon 512 Oct 1 16:43 e/-rw-r--r-- 1 besancon 342 Oct 1 17:25 f-rw-r--r-- 1 besancon 342 Oct 1 17:25 g

    % cp /tmp/motd h% ls -l h-rw-r--r-- 1 besancon 752 Oct 1 17:26 h

    Formation permanente ARS 63

    Manipulations de fichiers Unix Dplacement et renommage dun fichier : mv

    4.7 Dplacement et renommage dun fichier : mv

    (en anglais move)Syntaxes :mv [options] fichier-dpart fichier-destinationmv [options] fichiers-dpart rpertoire-destinationmv [options] rpertoire-depart rpertoire-destination

    Quand source de dpart et destination sont du mme type (fichier - fichier ou rpertoire - rpertoire),on ralise un renommage. Sinon on dplace les objects.

    Quelques options :

    "-i" : confirmation chaque crasement de fichier

    Formation permanente ARS 64

  • Manipulations de fichiers Unix Dplacement et renommage dun fichier : mv

    % ls -lFtotal 3-rw-r--r-- 1 besancon 0 Oct 1 16:42 ddrwxr-xr-x 2 besancon 512 Oct 1 16:43 e/-rw-r--r-- 1 besancon 752 Oct 1 17:25 f

    % mv f toto% ls -lFtotal 3-rw-r--r-- 1 besancon 0 Oct 1 16:42 ddrwxr-xr-x 2 besancon 512 Oct 1 16:43 e/-rw-r--r-- 1 besancon 752 Oct 1 17:25 toto

    Formation permanente ARS 65

    Manipulations de fichiers Unix Dplacement et renommage dun fichier : mv

    Dans le cas dune destination rpertoire, on dplace le fichier original en lui conservant son nom.

    % mv toto /tmp% ls -l totototo not found% ls -l /tmp/toto-rw-r--r-- 1 besancon 752 Oct 1 17:25 /tmp/toto

    quelques options :

    "-i" : confirmation chaque crasement de fichier

    % mv -i b cremove c? y% ls -l b cb not found-rw-r--r-- 1 besancon 752 Oct 1 17:30 c

    Formation permanente ARS 66

  • Manipulations de fichiers Unix Cration de rpertoires : mkdir

    4.8 Cration de rpertoires : mkdir

    (en anglais make directory)Syntaxe : mkdir [options] rpertoires% mkdir z% ls -ldF ztotal 1drwxr-xr-x 2 besancon 512 Oct 1 17:40 z/

    Cration directe de sous rpertoires en cascade :% mkdir -p repertoire1/ss-repertoire2/ss-ss-repertoire3% ls -Rrepertoire1/

    repertoire1:ss-repertoire2/

    repertoire1/ss-repertoire2:ss-ss-repertoire3/

    repertoire1/ss-repertoire2/ss-ss-repertoire3:

    Formation permanente ARS 67

    Manipulations de fichiers Unix Suppression de rpertoires : rmdir

    4.9 Suppression de rpertoires : rmdir

    (en anglais remove directory)Syntaxe : rmdir rpertoires

    % cp /etc/motd z/toto% rmdir zrmdir: z: Directory not empty

    Pas doptions dignes dintrt.

    Formation permanente ARS 68

  • Manipulations de fichiers Unix Positionnement et position dans les rpertoires : cd, pwd

    4.10 Positionnement et position dans les rpertoires : cd, pwd

    Changement de rpertoire courant : cd rpertoire(en anglais change directory)Affichage du rpertoire courant : pwd(en anglais present working directory)% cd /etc% pwd/etc% cd /usr/include% pwd/usr/include% cd /inexistant/inexistant: bad directory

    Selon le shell, le message derreur dans le dernier cas peut changer :% cd /inexistantbash: /inexistant: No such file or directory

    Formation permanente ARS 69

    Manipulations de fichiers Unix Panorama dditeurs de fichier texte

    4.11 Panorama dditeurs de fichier texte

    Il existe beaucoup dditeurs de texte sous Unix mais seuls quelques uns sont suffisammentrobustes pour tre utiliss efficacement et avec confiance :

    Le seul diteur de texte standard sous Unix : vi(cf. http://www.math.fu-berlin.de/~guckes/vi/ pour de la doc)

    emacs. Trs puissant, complexe matriser, simple une fois quon sait sen servir. Cfhttp://www.emacs.org.

    xemacs. Variante plus graphique demacs. nedit. Simple et intuitif grce ses menus.

    Formation permanente ARS 70

  • Manipulations de fichiers Unix Editeur de fichier texte : vi

    4.12 Editeur de fichier texte : vi

    (en anglais visual interface)Cest lditeur de texte standard sur Unix. Il fonctionne sur tout type de terminal texte, sur tout Unix.

    Inconvnient : il demande de la pratique

    Il possde deux modes de fonctionnement : un mode de saisie de commandes appliquer au texte un mode de saisie du texte

    Formation permanente ARS 71

    Manipulations de fichiers Unix Editeur de fichier texte : vi

    Commande passant en mode dition

    Squence Action

    i Insrer la position courante du curseur

    a Insrer la position suivante du curseur

    I Insrer en dbut de ligne

    A Insrer en fin de ligne

    o Ouvrir une nouvelle ligne en dessous du curseur

    O Ouvrir une nouvelle ligne au dessus du curseur

    cw Changer un mot

    c$ Changer jusqu la fin de ligne

    Sortie du mode dition

    On passe du mode saisie de texte au mode commande par la touche ESC .

    Formation permanente ARS 72

  • Manipulations de fichiers Unix Editeur de fichier texte : vi

    Commandes principales

    Squence Action

    x Dtruire le caractre sous le curseur

    r Remplacer le caractre sous le curseur

    dd Effacer la ligne courante

    dw Effacer le mot sous le curseur

    . Rpter la dernire commande

    J Joindre la ligne suivante avec la ligne courante

    /toto Rechercher toto dans le texten Rpter la dernire recherche

    u Annulation de la dernire commande (undo)CTRL L Rafraichir lcran

    Formation permanente ARS 73

    Manipulations de fichiers Unix Editeur de fichier texte : vi

    Sauvegarde / Sortie de vi

    Squence Action

    :w Sauver le fichier dit

    :w toto Sauver dans le fichier toto

    :q Quitter vi

    :q! Quitter vi sans sauvegarder la moindre chose

    :wq Sauver puis quitter vi

    :r toto Insrer le contenu du fichier toto

    Formation permanente ARS 74

  • Manipulations de fichiers Unix Editeur de fichier texte : vi

    Commandes de copier/coller

    Squence Action

    yy Copier la ligne courante dans la mmoire copier/coller

    p Coller dans le texte le contenu de la mmoire prcdente

    nombre yy Copier nombre lignes dans la mmoire copier/coller

    Formation permanente ARS 75

    Manipulations de fichiers Unix Editeur de fichier texte : vi

    Commandes de substitution

    Squence Action

    :s/toto/titi/ Sur la ligne du curseur, remplacer lepremier mot toto par titi

    :s/toto/titi/g Sur la ligne du curseur, remplacer tousles mots toto par titi

    :1,$s/toto/titi/ De la ligne 1 la dernire ligne ($), rem-placer le premier mot toto par titi

    :1,$s/toto/titi/g De la ligne 1 la dernire ligne ($), rem-placer tous les mots toto par titi

    Formation permanente ARS 76

  • Manipulations de fichiers Unix Editeur de fichier texte : vi

    Autres exemples de squences de substitution :

    1. La squence :1,$s/toto/titi/g remplace de la premire ligne la dernire lignechaque mot /toto par titi.

    2. La squence :%s/toto/titi/g remplace de la premire ligne la dernire lignechaque mot /toto par titi. On peut employer % la place de 1,$.

    3. La squence :1,$s/toto//g remplace de la premire ligne la dernire ligne chaquemot toto par rien du tout, cest--dire que lon supprime de la premire ligne la dernire lignechaque mot toto

    4. La squence :1,$s/\/toto/titi/g remplace de la premire ligne la dernire lignechaque mot /toto par titi.

    5. La squence :1,$s;/toto;titi;g remplace de la premire ligne la dernire lignechaque mot /toto par titi. On peut employer dautres caractres de sparation que le /.

    Formation permanente ARS 77

    Manipulations de fichiers Unix Editeur de fichier texte : vi

    6. La squence :1,.s/toto/titi/g remplace de la premire ligne la ligne courante(dsigne par .) chaque mot toto par titi.

    7. La squence :.,$/toto/titi/g remplace de la ligne courante (dsigne par .) jusqula dernire ligne (dsigne par $) chaque mot toto par titi.

    8. La squence :.,.+3s/toto/titi/g remplace de la ligne courante (dsigne par .) 3 lignes plus bas (dsigne par .+3) chaque mot toto par titi.

    9. La squence :.-3,.s/toto/titi/g remplace de 3 lignes plus haut que la lignecourante (.-3) la ligne courante chaque mot toto par titi.

    Formation permanente ARS 78

  • Manipulations de fichiers Unix Editeur de fichier texte : vi

    Principales options

    Squence Action

    :set all Afficher toutes les options possibles

    :set nu Afficher les numros de ligne

    :set toto Positionner loption toto vrai

    :set no toto Positionner loption toto faux

    Formation permanente ARS 79

    Manipulations de fichiers Unix Droits daccs dun fichier

    4.13 Droits daccs dun fichier

    Les droits daccs un fichier se voient grce la commande ls -l :

    % ls -ltotal 16-rw-r--r-- 1 besancon 15524 Sep 15 15:17 droits.idraw

    Plus particulirement, les droits sont indiqus par les 10 premiers caractres de chaque ligneaffiche :

    r w x r rw wx x

    type dufichier

    user group others

    Formation permanente ARS 80

  • Manipulations de fichiers Unix Droits daccs dun fichier

    Il existe trois droits daccs associs chaque fichier :

    droits du propritaire (u user) droits des membres du groupe (g group) droits des autres utilisateurs (o others)

    Il existe trois types de permissions :

    droit en lecture (r read) droit en criture (w write ) droit en excution (x execute access)

    Formation permanente ARS 81

    Manipulations de fichiers Unix Changements des droits daccs dun fichier : chmod

    4.14 Changements des droits daccs dun fichier : chmod

    (en anglais change modes)Syntaxe : chmod [options] modes fichiers

    La prcision des modes dans la commande peut prendre deux formes :

    forme symbolique :"u" (user ), "g" (group), "o" (others) ou "a" (all)"+" ou "-" ou "="

    permissions (r, w ou x) forme numrique :

    Les permissions sont exprimes en base huit ou octale.Par exemple : rwx r-x r-x 755

    Formation permanente ARS 82

  • Manipulations de fichiers Unix Changements des droits daccs dun fichier : chmod

    Droits Valeur base 2 Valeur base 8

    --- 000 0

    --x 001 1

    -w- 010 2

    -wx 011 3

    r-- 100 4

    r-x 101 5

    rw- 110 6

    rwx 111 7

    Cest pourquoi on a par exemple :

    rwx r-x r-x 755rw- r-- r-- 644rw- --- --- 600

    Formation permanente ARS 83

    Manipulations de fichiers Unix Changements des droits daccs dun fichier : chmod

    % ls -l fichier-rw-r--r-- 1 besancon software 249 Sep 20 22:43 fichier

    % chmod g+w fichier% ls -l fichier-rw-rw-r-- 1 besancon software 249 Sep 20 22:43 fichier

    % chmod o=rw fichier% ls -l fichier-rw-rw-rw- 1 besancon software 249 Sep 20 22:43 fichier

    % chmod 640 fichier% ls -l fichier-rw-r----- 1 besancon software 249 Sep 20 22:43 fichier

    Formation permanente ARS 84

  • Manipulations de fichiers Unix Attribut spcial de fichier : bit setuid

    4.15 Attribut spcial de fichier : bit setuid

    Il existe un attribut spcial de fichier rserv la gestion du systme : le bit setuid (4000 en octal).Avec ce bit positionn, le programme est excut avec les droits de lutilisateur propritaire.

    % ls -lF a b-rwxr-xr-x 1 besancon software 249 Sep 20 22:43 a-rwxr-xr-x 1 besancon software 249 Sep 20 22:43 b% chmod u+s a% chmod 4711 b% ls -lF a b-rwsr-xr-x 1 besancon software 249 Sep 20 22:43 a-rws--x--x 1 besancon software 249 Sep 20 22:43 b

    Formation permanente ARS 85

    Manipulations de fichiers Unix Attribut spcial de fichier : bit setgid

    4.16 Attribut spcial de fichier : bit setgid

    Il existe un attribut spcial de fichier rserv la gestion du systme : le bit setgid (2000 en octal).Avec ce bit positionn, le programme est excut avec les droits du groupe propritaire

    % ls -lF a b-rwxr-xr-x 1 besancon software 249 Sep 20 22:43 a-rwxr-xr-x 1 besancon software 249 Sep 20 22:43 b% chmod g+s a% chmod 2711 b% ls -lF a b-rwsr-sr-x 1 besancon software 249 Sep 20 22:43 a-rwx--s--x 1 besancon software 249 Sep 20 22:43 b

    Formation permanente ARS 86

  • Manipulations de fichiers Unix Attribut spcial de rpertoire : sticky bit

    4.17 Attribut spcial de rpertoire : sticky bit

    Il existe un attribut spcial de rpertoire rserv la gestion du systme : le sticky bit (1000 enoctal).Avec ce bit positionn, on ne peut effacer dun rpertoire que ses propres fichiers et pas ceux desautres.

    Exemple dutilisation sur le rpertoire systme de stockage des fichiers temporaires

    % ls -ld /tmpdrwxrwxrwt 11 amavis amavis 2580 Aug 2 15:40 /tmp% cd /tmp% mkdir tmp2% ls -ld tmp2drwxr-xr-x 2 besancon adm 117 Aug 2 15:40 tmp2% chmod 1777 tmp2% ls -ld tmp2drwxrwxrwt 2 besancon adm 117 Aug 2 15:40 tmp2% chmod 777 tmp2% ls -ld tmp2drwxrwxrwx 2 besancon adm 117 Aug 2 15:40 tmp2

    Formation permanente ARS 87

    Manipulations de fichiers Unix Regular expressions (regexps)

    4.18 Regular expressions (regexps)

    Besoin pratique : faire des recherches dans des fichiers denregistrements de base de donnes,dinventaires, de comptabilit . . . Bref, des fichiers ayant souvent une structure forte.

    Pour cela, plusieurs programmes Unix utilisent des critres de reconnaissance de motifs de chainesde caractres.

    Un exemple de motif :

    les lignes commencant par la lettre a

    La regexp est la traduction en langage Unix du motif, ce qui permettra de le reconnaitre au sein duntexte dans un fichier.

    Ainsi le motif prcdent donne la regexp :

    a

    Formation permanente ARS 88

  • Manipulations de fichiers Unix Regular expressions (regexps)

    La regexp traduit le motif rechercher sous la forme dune suite de contraintes satisfaire toutes.

    Pour construire les contraintes, on dispose des critures :

    caractre dsigne la contrainte pour un caractre dtre ce caractre

    [caractres] dsigne la contrainte pour un caractre dtre parmi la liste indique[caractres] dsigne la contrainte pour un caractre de ne pas figurer dans la liste

    indique

    . dsigne la contrainte pour un caractre dtre quelconque

    dsigne la contrainte dtre en dbut de ligne

    $ dsigne la contrainte dtre en fin de ligne

    {m,n} indique que la contrainte mentionne juste avant doit tre satisfaiteentre m et n fois

    * indique que la contrainte mentionne juste avant doit tre satisfaiteautant de fois que possible en pratique (de 0 autant que lon veut)

    Formation permanente ARS 89

    Manipulations de fichiers Unix Regular expressions (regexps)

    Application des regexps :

    slectionner des lignes de fichiers texte qui satisfont la regexp cest lobjet de la commande Unix grep

    faire des remplacements du texte satisfaisant la regexp par un autre texte qui peut-tre dduit dutexte initial cest lobjet de la commande Unix sed

    Formation permanente ARS 90

  • Manipulations de fichiers Unix Regular expressions (regexps)

    Exemple 1

    Le motif satisfaire :

    la ligne contient le mot elephant

    Traduction en regexp :

    elephant

    En effet, cest une suite de 8 contraintes satisfaire toutes : contrainte 1 : un caractre doit valoir e contrainte 2 : un caractre doit valoir l contrainte 3 : un caractre doit valoir e contrainte 4 : un caractre doit valoir p contrainte 5 : un caractre doit valoir h contrainte 6 : un caractre doit valoir a contrainte 7 : un caractre doit valoir n contrainte 8 : un caractre doit valoir t

    Formation permanente ARS 91

    Manipulations de fichiers Unix Regular expressions (regexps)

    Exemple 2

    Le motif satisfaire :

    la ligne se termine par 2 caractres en minuscule suivis dun chiffre

    Traduction en regexp :

    [a-z][a-z][0-9]$ou

    [a-z]{2}[0-9]$

    En effet, cest une suite de 4 contraintes satisfaire toutes : contrainte 1 : un caractre doit valoir une lettre minuscule, soit [a-z] contrainte 2 : un caractre doit valoir une lettre minuscule, soit [a-z] contrainte 3 : un caractre doit valoir un chiffre soit [0-9] contrainte 4 : tre en fin de ligne soit $

    Formation permanente ARS 92

  • Manipulations de fichiers Unix Regular expressions (regexps)

    Exemple 3

    Le motif satisfaire :

    mot1:mot2:mot3: en dbut de ligne o mot1 commence par une lettre majuscule mot2 se termine par un chiffre mot3 est quelconque

    Processus de traduction :1. en dbut de ligne la regexp est de la forme ^

    2. mot1 commence par une lettre majuscule mot1 commence par une lettre majuscule et le reste des lettres est quelconque mot1 commence par une lettre majuscule et le reste des lettres est quelconque sans pour autant valoirle caractre : qui spare les mots la regexp est de la forme [A-Z][^:]*

    3. mot1 :mot2 la regexp est de la forme :

    Formation permanente ARS 93

    Manipulations de fichiers Unix Regular expressions (regexps)

    4. mot2 se termine par un chiffre mot2 commence par des caractres quelconques et se termine par un chiffre mot2 commence par des caractres quelconques sans pour autant valoir : qui spare les mots et setermine par un chiffre la regexp est de la forme [^:]*[0-9]

    5. mot2 :mot3 : la regexp est de la forme :

    6. mot3 est quelconque mot3 est compos de caractres quelconques mot3 est compos de caractres quelconques sans pour autant valoir le caractre : qui spare les mots la regexp est de la forme [^:]*

    7. mot3 : la regexp est de la forme :

    Rsultat final, assemblage des rsultats intermdiaires :

    ^[A-Z][^:]*:[^:]*[0-9]:[^:]*:

    Formation permanente ARS 94

  • Manipulations de fichiers Unix Regular expressions (regexps)

    Exemple 4

    Soit la regexp :

    ^[^abc]*Soit le fichier contenant les lignes suivantes :

    ascenceur

    berceauchameauelephant

    La regexp slectionne les lignes suivantes :

    ascenceur

    berceauchameauelephant

    Pourquoi ?

    Formation permanente ARS 95

    Manipulations de fichiers Unix Recherche de regexp dans un fichier : grep

    4.19 Recherche de regexp dans un fichier : grep

    Syntaxe : grep [options] regexp fichiers

    Quelques options intressantes :

    "-i" : pas de diffrenciation entre lettres minuscules et majuscules"-n" : affichage des numros de ligne

    "-l" : naffiche que les noms de fichiers

    "-v" : affichage des lignes ne contenant pas la chane prcise

    (grep g/re/p dans vi)

    Formation permanente ARS 96

  • Manipulations de fichiers Unix Recherche de regexp dans un fichier : grep

    Exemple 1

    Soit le fichier :

    Ecrivons toto en minuscules ici.Et ici ToTo en minuscules et majuscules.Mais l on ne met pas la regexp de lexemple.

    On voit :

    % grep toto fichierEcrivons toto en minuscules ici.

    Formation permanente ARS 97

    Manipulations de fichiers Unix Recherche de regexp dans un fichier : grep

    Exemple 2

    Soit le fichier :

    Ecrivons toto en minuscules ici.Et ici ToTo en minuscules et majuscules.Mais l on ne met pas la regexp de lexemple.

    On voit :

    % grep -in toto fichier1:Ecrivons toto en minuscules ici.2:Et ici ToTo en minuscules et majuscules.

    Formation permanente ARS 98

  • Manipulations de fichiers Unix Recherche de regexp dans un fichier : grep

    Exemple 3

    Soit le fichier :

    Ecrivons toto en minuscules ici.Et ici ToTo en minuscules et majuscules.Mais l on ne met pas la regexp de lexemple.

    On voit :

    % grep -inv toto fichier3:Mais l on ne met pas la chane de lexemple.

    Formation permanente ARS 99

    Manipulations de fichiers Unix Recherche de regexp dans un fichier : grep

    Exemple 4

    Soit le fichier :

    19101259;18111971;LUKOVIC ;DRAGICA10024113;09051982;LUMINET ;AMANDE10009175;09051980;LUND ;BRIANA NICOLE10004978;21041976;LUNDQUIST ;ANNA10023887;24081983;MEKDJIAN ;SARAH19404107;19121975;MEKOUAR ;DRISS19803654;13111975;MEKOUAR ;MOUNA10003714;22121965;MILON ;NICOLAS19603414;12101970;MILOSAVLJEVIC ;DRAGANA19504774;03031977;MILOUDI ;HANAN

    On cherche les prnoms qui commencent par DR :

    % grep ;DR[^;]*$ fichier19101259;18111971;LUKOVIC ;DRAGICA19404107;19121975;MEKOUAR ;DRISS19603414;12101970;MILOSAVLJEVIC ;DRAGANA

    Formation permanente ARS 100

  • Manipulations de fichiers Unix Recherche de regexp dans un fichier : grep

    En pratique, crire :

    la regexp comprise entre deux apostrophes (lexplication des apostrophes sera vue au niveau ducours sur la pratique du shell)

    sur lUnix de SUN, Solaris :egrep [options] regexp fichiers

    sur LINUX :grep -E [options] regexp fichiers

    Formation permanente ARS 101

    Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    4.20 Modification la vole de contenu de fichiers : sed

    (en anglais stream editor )Syntaxe : sed options fichiers

    La commande sed agit sur un flux.

    Quest quun flux ?

    Un flux est une quantit de texte envoy laffichage par une commande.

    Exemples typiques de flux : le rsultat dune commande ls le rsultat dun cat fichier

    NB : sed modifie un flux, pas un contenu de fichier : aprs lapplication de la commande, le fichierappliqu reste inchang.

    Formation permanente ARS 102

  • Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    Quelques options intressantes : option -e commande : commande excuter sur chaque ligne du flux option -f script : prcision dun fichier dans lequel prendre les commandes appliquer sur

    chaque ligne de texte

    Une commande prend la forme :

    [adresse1[,adresse2]]fonction[argument](avec les crochets [] dsignant laspect facultatif de lobjet)

    On construit une adresse de ligne grce : son numro de ligne le caractre $ pour dsigner la dernire ligne une regexp que lon crit entre /, soit /regexp/

    Formation permanente ARS 103

    Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    Les fonctions proposes dans sed : suppression de ligne : d affichage de ligne : p substitution au sein des lignes : s/regexp/remplacement/modifiers

    Formation permanente ARS 104

  • Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    Exemple 1

    Soit le fichier :

    % cat fichierCeci est la premiere ligne.Ceci est la deuxieme ligne.Ceci est la troisieme ligne.Ceci est la quatrieme ligne.Ceci est la cinquieme ligne.

    On veut supprimer les 2 premieres lignes du fichier lors de son affichage :

    % sed -e 1,2d fichierCeci est la troisieme ligne.Ceci est la quatrieme ligne.Ceci est la cinquieme ligne.

    Formation permanente ARS 105

    Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    Exemple 2

    Soit le fichier :

    % cat fichierCeci est la premiere ligne.Ceci est la deuxieme ligne.Ceci est la troisieme ligne.Ceci est la quatrieme ligne.Ceci est la cinquieme ligne.

    On ne veut garder que les 2 premieres lignes du fichier lors de son affichage :

    % sed -e 3,$d fichierCeci est la premiere ligne.Ceci est la deuxieme ligne.

    Formation permanente ARS 106

  • Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    Exemple 3

    Soit le fichier :

    % cat fichiermoteur;ferrari;30moteur;porsche;epuisecarrosserie;porsche;epuisemoteur;ford;40moteur;skoda;epuise

    On veut remplacer le mot epuise du fichier par 0 lors de son affichage :

    % sed -e s/epuise/0/ fichiermoteur;ferrari;30moteur;porsche;0carrosserie;porsche;0moteur;ford;40moteur;skoda;0

    Formation permanente ARS 107

    Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    Exemple 4

    Soit le fichier :

    % cat fichiermoteur;ferrari;30moteur;porsche;epuisecarrosserie;porsche;epuisemoteur;ford;40moteur;skoda;epuise

    On veut remplacer le mot epuise du fichier par 0 pour les lignes parlant de moteur lors de sonaffichage :

    % sed -e /moteur/s/epuise/0/ fichiermoteur;ferrari;30moteur;porsche;0carrosserie;porsche;epuisemoteur;ford;40moteur;skoda;0

    Formation permanente ARS 108

  • Manipulations de fichiers Unix Modification la vole de contenu de fichiers : sed

    Exemple 5

    Soit le fichier :

    % cat fichierLes courses de chevals se font a Vincennes.Les chevals ont 4 jambes. Les chevals sont des equides.

    On veut remplacer le mot chevals du fichier par chevaux lors de son affichage :

    % sed -e s/chevals/chevaux/ fichierLes courses de chevaux se font a Vincennes.Les chevaux ont 4 jambes. Les chevals sont des equides. Le remplacement na pas lieu sur tous les mots chevals au sein dune ligne !

    On veut remplacer le mot chevals du fichier par chevaux lors de son affichage :

    % sed -e s/chevals/chevaux/g fichierLes courses de chevaux se font a Vincennes.Les chevaux ont 4 jambes. Les chevaux sont des equides. Le remplacement a lieu sur tous les mots chevals au sein dune ligne.

    Formation permanente ARS 109

    Manipulations de fichiers Unix Tri dun fichier : sort

    4.21 Tri dun fichier : sort

    Syntaxe : sort [options] fichiers

    Quelques options : option -n : tri numrique option -r : tri par ordre dcroissant option -t : permet de spcifier le sparateur de mots option -k : spcifie la colonne sur laquelle trier Exemple 1

    % cat totoarbre12ascenceur

    2ordinateur

    % sort toto122arbreascenceur

    ordinateur

    Formation permanente ARS 110

  • Manipulations de fichiers Unix Tri dun fichier : sort

    Exemple 2

    % cat toto12233322

    % sort toto12222333

    % sort -n toto23122233

    % sort -rn toto33221232

    Exemple 3

    % cat totoor:100000argent:40000bois:5

    % sort totoargent:40000bois:5or:100000

    % sort -t: -k 2 totoor:100000argent:40000bois:5

    % sort -t: -k 2 -n totobois:5argent:40000or:100000

    Formation permanente ARS 111

    Manipulations de fichiers Unix Comptage de lignes dans un fichier : wc

    4.22 Comptage de lignes dans un fichier : wc

    (en anglais word count)Syntaxe : wc [option] fichiers

    Quelques options intressantes :

    "-c" : nombre de caractres uniquement

    "-w" : nombre de mots uniquement

    "-l" : nombre de lignes uniquement

    Par exemple :

    % wc fichier3 16 82 fichier

    % wc -l fichier3 fichier

    Formation permanente ARS 112

  • Manipulations de fichiers Unix Comparaison de 2 fichiers : diff

    4.23 Comparaison de 2 fichiers : diff(en anglais difference)Pour raliser la comparaison ligne ligne du fichier texte fichier2 par rapport au fichier textefichier1 :diff [-c] fichier1 fichier2

    % diff fichier1 fichier21c1< Deux fotes dortographe dans cette phrase.---

    > Deux fautes dorthographe dans cette phrase.

    % diff -c fichier1 fichier2*** fichier1 Sun Sep 9 19:06:13 2001--- fichier2 Sun Sep 9 19:06:24 2001***************

    *** 1 ****! Deux fotes dortographe dans cette phrase.--- 1 ----! Deux fautes dorthographe dans cette phrase.

    Formation permanente ARS 113

    Manipulations de fichiers Unix Extraction des premires lignes de fichiers : head

    4.24 Extraction des premires lignes de fichiers : head(en anglais head)Syntaxe : head [-N] fichiers

    Exemple 1

    % head -3 /etc/motdSunOS Release 4.1.4 (EXCALIBUR.LPS.ENS.FR [1.1]): Fri Aug 8 17:43:56 GMT 1997This system is for the use of authorized users only. Individuals usingthis computer system without authority, or in excess of their authority,

    Exemple 2

    % head -2 fichier1 fichier2==> fichier1 fichier2

  • Manipulations de fichiers Unix Extraction des dernires lignes de fichiers : tail

    4.25 Extraction des dernires lignes de fichiers : tail(en anglais tail)Syntaxes : tail [-N] fichiersou tail [+N] fichiers Exemple 1

    % tail -3 /etc/motdadvised that if such monitoring reveals possible evidence of criminalactivity, system personnel may provide the evidence of such monitoringto law enforcement officials.

    Exemple 2

    % tail -2 fichier1 fichier2==> fichier1 fichier2

  • Manipulations de fichiers Unix Extraction des dernires lignes de fichiers : tail

    Affichage des dernires lignes en temps rel :Syntaxe : tail -f fichier

    Formation permanente ARS 117

    Manipulations de fichiers Unix Extraction de colonnes : cut

    4.26 Extraction de colonnes : cut

    Syntaxe : cut [options] fichiers

    Plusieurs modes dutilisation : extraction sur chaque ligne de caractres pris isolment :cut -c 1,8,27 fichier

    extraction sur chaque ligne de caractres dune position 1 une position 2 :cut -c 25-42 fichier

    extraction sur chaque ligne (constitue de mots spars par un certain dlimiteur) de mots prisisolment :cut -d: -f 1,5 fichier

    extraction sur chaque ligne (constitue de mots spars par un certain dlimiteur) du mot au mot :

    cut -d: -f 4-7 fichier

    Formation permanente ARS 118

  • Manipulations de fichiers Unix Collage de colonnes : paste

    4.27 Collage de colonnes : paste

    Syntaxe : paste [options] fichiers

    Collage simple des colonnes de deux fichiers (TAB comme sparateur de colonnes aprs collage) :% cat fichier1AAA

    BBB

    % cat fichier2aaaa

    bbbbcccc

    % paste fichier1 fichier2AAA aaaa

    BBB bbbbcccc

    Formation permanente ARS 119

    Manipulations de fichiers Unix Collage de colonnes : paste

    Collages complexes : Exemple 1% cat fichier1AAA

    BBB

    % cat fichier2aaaa

    bbbbcccc

    % paste -s fichier1 fichier2AAA BBB

    aaaa bbbb cccc Exemple 2% cat fichierligne 1ligne 2ligne 3ligne 4% paste -s -d"\t\n" fichierligne 1 ligne 2ligne 3 ligne 4

    Formation permanente ARS 120

  • Manipulations de fichiers Unix Manipulation des noms de fichiers : basename

    4.28 Manipulation des noms de fichiers : basename

    Syntaxe : basename fichier [suffixe]

    1. Suppression des composantes du path jusquau dernier caractre / :% basename /users/adm/besancon/esigetel/cours.texcours.tex

    2. La prcision dun suffixe amne la suppression de ce suffixe galement :

    % basename /users/adm/besancon/esigetel/cours.tex .texcours

    Formation permanente ARS 121

    Manipulations de fichiers Unix Recherche de fichiers : find

    4.29 Recherche de fichiers : find

    Syntaxe : find rpertoires expressions

    On recherche partir des rpertoires indiqus les fichiers rpondant aux critres exprims par lesexpressions.

    Les expressions indiquent : des conditions des actions effectuer

    Formation permanente ARS 122

  • Manipulations de fichiers Unix Recherche de fichiers : find

    Quelques expressions : critre de nom : -name nom critre de droits daccs : -perm permissions critre de type (fichier, rpertoire) : -type type (d pour directory, f pour file, etc.) critre de taille : -size N critre de date rcente : -newer fichier critre de date : -atime N, -mtime N, -ctime N ou logique entre conditions : condition1 -o condition2 et logique entre conditions : condition1 -a condition2 (en fait le -a est facultatif) affichage du nom du fichier trouv : -print excution dune commande : -exec commande {} \;

    Formation permanente ARS 123

    Manipulations de fichiers Unix Recherche de fichiers : find

    Par exemple : Recherche des fichiers dextension .c :% find . -name \*.c -print

    Recherche des rpertoires :% find . -type d -print

    Recherche des fichiers de plus de 1000000 caractres :% find ~ -size +1000000c -print

    Recherche de tous les fichiers sappelant a.out ou sappelant avec une extension .o, nonutiliss depuis plus de 7 jours et on appliquera la commande deffacement aux fichiers trouvs :

    % find . \( -name a.out -o -name *.o \) -atime +7 -exec rm {} \;

    Formation permanente ARS 124

  • Manipulations de fichiers Unix Compression de fichiers : compress, uncompress, zcat

    4.30 Compression de fichiers : compress, uncompress, zcat

    Syntaxes de quelques commandes de compression ou dcompression :compress [options] fichieruncompress [options] fichier.Zzcat fichier.Z

    Le fichier compress sappelle aprs compression fichier.Z.

    Le fichier dcompress retrouve son nom fichier.

    Formation permanente ARS 125

    Manipulations de fichiers Unix Compression de fichiers : compress, uncompress, zcat

    Exemples

    % compress fichier1

    % compress -v fichier2fichier2: Compression: 14.70% -- replaced with fichier2.Z

    % ls -l fichier1.Z fichier2.Z-rw-r--r-- 1 besancon adm 97 Aug 3 13:01 fichier1.Z-rw-r--r-- 1 besancon adm 87 Aug 3 13:06 fichier2.Z

    % zcat fichier2.Zmoteur;ferrari;30moteur;porsche;epuisecarrosserie;porsche;epuisemoteur;ford;40moteur;skoda;epuise

    Formation permanente ARS 126

  • Manipulations de fichiers Unix Compression de fichiers : gzip, gunzip, gzcat

    4.31 Compression de fichiers : gzip, gunzip, gzcat

    Cette srie de commandes compressent mieux les fichiers que la famille autour de compress.

    Syntaxes de quelques commandes de compression ou dcompression :gzip [options] fichiergunzip [options] fichier.gzgzcat fichier.gz

    Le fichier compress sappelle aprs compression fichier.gz.

    Le fichier dcompress retrouve son nom fichier.

    Rpandu mais non standard. Cf ftp://ftp.lip6.fr/pub/gnu/gzip/

    Formation permanente ARS 127

    Manipulations de fichiers Unix Compression de fichiers : gzip, gunzip, gzcat

    Exemples

    % gzip fichier1

    % gzip -v fichier2fichier2: 35.2% -- replaced with fichier2.gz

    % ls -l fichier1.Z fichier2.Z-rw-r--r-- 1 besancon adm 84 Aug 3 13:01 fichier1.gz-rw-r--r-- 1 besancon adm 87 Aug 3 13:06 fichier2.gz

    % gzcat fichier2.Zmoteur;ferrari;30moteur;porsche;epuisecarrosserie;porsche;epuisemoteur;ford;40moteur;skoda;epuise

    Formation permanente ARS 128

  • Manipulations de fichiers Unix Compression de fichiers : bzip2, bunzip2, bzcat

    4.32 Compression de fichiers : bzip2, bunzip2, bzcat

    Cette srie de commandes compressent mieux les fichiers que la famille autour de compress.

    Syntaxes de quelques commandes de compression ou dcompression :bzip2 [options] fichierbunzip2 [options] fichier.bz2bzcat fichier.bz2

    Le fichier compress sappelle aprs compression fichier.bz2.

    Le fichier dcompress retrouve son nom fichier.

    Pas encore trs rpandu. Cf ftp://ftp.lip6.fr/pub/gnu/bzip2/ ?? ? ?

    Formation permanente ARS 129

    Manipulations de fichiers Unix Compression de fichiers : bzip2, bunzip2, bzcat

    Exemples

    % bzip2 fichier1

    % bzip2 -v fichier2fichier2: 1.052:1, 7.608 bits/byte, 4.90% saved, 102 in, 97 out.

    % ls -l fichier1.Z fichier2.Z-rw-r--r-- 1 besancon adm 102 Aug 3 13:01 fichier1.bz2-rw-r--r-- 1 besancon adm 97 Aug 3 13:06 fichier2.bz2

    % bzcat fichier2.bz2moteur;ferrari;30moteur;porsche;epuisecarrosserie;porsche;epuisemoteur;ford;40moteur;skoda;epuise

    Formation permanente ARS 130

  • Manipulations de fichiers Unix Archivage de fichiers/rpertoires : tar

    4.33 Archivage de fichiers/rpertoires : tar

    (en anglais tape archive)La commande tar permet darchiver dans un seul fichier une arborescence. Conjugue unecommande de compression, cela permet de mettre de ct une arborescence dont on na plusbesoin. Au passage, on gagne de la place.

    Selon laction que lon veut faire, la syntaxe est la suivante : Cration dune archive : tar cvf archive.tar fichiers Affichage du contenu dune archive : tar tvf archive.tar Extraction de larchive complte : tar xvf archive.tar Extraction dun fichier prcis de larchive : tar xvf archive.tar fichier

    Formation permanente ARS 131

    Manipulations de fichiers Unix Archivage de fichiers/rpertoires : tar

    Vous pouvez selon les systmes Unix compresser larchive au fur et mesure de sa construction :

    Utilisation de compress : Cration dune archive : tar cvZf archive.tar.Z fichiers Affichage du contenu dune archive : tar tvZf archive.tar.Z Extraction de larchive complte : tar xvZf archive.tar.Z Extraction dun fichier prcis de larchive : tar xvZf archive.tar.Z fichier

    Utilisation de gzip : Cration dune archive : tar cvzf archive.tar.gz fichiers Affichage du contenu dune archive : tar tvzf archive.tar.gz Extraction de larchive complte : tar xvzf archive.tar.gz Extraction dun fichier prcis de larchive : tar xvzf archive.tar.gz fichier

    Formation permanente ARS 132

  • Manipulations de fichiers Unix Liens sur fichiers : ln, ln -s

    4.34 Liens sur fichiers : ln, ln -s

    (en anglais link)A chaque fichier peuvent tre associs plusieurs noms.Chaque nom est un lien.

    Il y a un compteur de liens pour chaque fichier : incrment lors de la cration dun lien dcrment lors de la suppression dun lien le contenu dun fichier est dtruit lorsque le dernier lien est supprim

    Deux types de liens : lien hard, lien symbolique

    Formation permanente ARS 133

    Manipulations de fichiers Unix Liens sur fichiers : ln, ln -s

    lien hard : limit au sein dun mme disque dur, o est garantie lunicit dun inode (matricule defichier)La commande utiliser est : ln original synonymeSuppression par rm

    % ls -l fichier1-rw-r--r-- 1 besancon software 9919 Oct 17 18:25 fichier1

    % ln fichier1 fichier2

    % ls -l fichier1 fichier2-rw-r--r-- 2 besancon software 9919 Oct 17 18:25 fichier1-rw-r--r-- 2 besancon software 9919 Oct 17 18:25 fichier2

    % ls -li fichier1 fichier2689357 -rw-r--r-- 2 besancon software 9919 Oct 17 18:25 fichier1689357 -rw-r--r-- 2 besancon software 9919 Oct 17 18:25 fichier2

    % rm fichier1

    % ls -li fichier2689357 -rw-r--r-- 1 besancon software 9919 Oct 17 18:25 fichier2

    Formation permanente ARS 134

  • Manipulations de fichiers Unix Liens sur fichiers : ln, ln -s lien symbolique : non limit un disque parce quutilisant le nom dun fichier et non pas son

    matriculeEn fait, cest un fichier contenant le nom du fichier source.La commande utiliser est : ln -s original synonymeSuppression par rm

    % ls -l fichier1-rw-r--r-- 1 besancon software 9919 Oct 17 18:25 fichier1% ln -s fichier1 fichier2

    % ls -liF fichier1 fichier2689357 -rw-r--r-- 1 besancon software 9919 Oct 17 18:25 fichier1689358 lrwxr-xr-x 1 besancon software 8 Oct 17 18:26 fichier2@ -> fichier1

    % ls -lL fichier1 fichier2-rw-r--r-- 1 besancon software 9919 Oct 17 18:25 fichier1-rw-r--r-- 1 besancon software 9919 Oct 17 18:25 fichier2

    % rm fichier1% ls -liL fichier2689358 lrwxr-xr-x 1 besancon software 8 Oct 17 18:26 fichier2@ -> fichier1

    % cat fichier2cat: fichier2: No such file or directory

    Formation permanente ARS 135

    Manipulations de fichiers Unix Liens sur fichiers : ln, ln -s

    Les systmes Unix imposent les droits lrwxr-xr-x sur le lien (selon lUnix cela pourra tre laplace lrwxrwxrwx).Ils ne peuvent pas tre modifis.

    On ne peut que changer les droits dun fichier point par un lien symbolique :

    % ls -l fichier1 fichier2-rw-r--r-- 1 besancon software 9919 Oct 17 18:25 fichier1lrwxr-xr-x 1 besancon software 8 Oct 17 18:26 fichier2 -> fichier1

    % chmod 600 fichier2% ls -l fichier2lrwxr-xr-x 1 besancon software 8 Oct 17 18:26 fichier2 -> fichier1

    % ls -l fichier1-rw------- 1 besancon software 9919 Oct 17 18:25 fichier1

    % ls -lL fichier1 fichier2-rw------- 1 besancon software 9919 Oct 17 18:25 fichier1-rw------- 1 besancon software 9919 Oct 17 18:25 fichier2

    Formation permanente ARS 136

  • Manipulations de fichiers Unix Transfert de fichiers depuis et vers une disquette PC : mcopy

    4.35 Transfert de fichiers depuis et vers une disquette PC : mcopy

    Sur des machines quipes de lecteur de disquettes, on peut transfrer des fichiers depuis et versleur lecteur de disquette. Un logiciel appel mtools permet dutiliser les disquettes en offrant descommandes Unix avec la logique des commandes connues du DOS.

    La commande de base utiliser est mcopy. Transfert depuis Unix vers la disquette : mcopy fichier a: Transfert de la disquette vers Unix : mcopy a:fichier . Affichage du contenu de la disquette : mdir a:

    Se reporter lURL http://www.loria.fr/~giese/doc/mtools.html pour plusde dtails sur les commandes disponibles.

    Formation permanente ARS 137

    Manipulations de fichiers Unix Affichage hexadecimal, octal dun fichier : od

    4.36 Affichage hexadecimal, octal dun fichier : od

    (en anglais octal dump)Syntaxe : od [options] fichier

    Pour afficher en ascii un fichier :% od -c fichier0000000 e s s a i \nl0000006

    Pour afficher en octal un fichier :% od -t o1 fichier0000000 145 163 163 141 151 0120000006

    Pour afficher en hexadcimal un fichier :% od -t x1 fichier0000000 65 73 73 61 69 0a0000006

    Formation permanente ARS 138

  • Manipulations de fichiers Unix Nature dun fichier : file

    4.37 Nature dun fichier : file

    Syntaxe : file fichier

    Cette commande permet dintuiter quelle application est li le fichier. Elle sappuie pour rendre unavis sur la reconnaissance de motifs connus dans le contenu du fichier (pour voir les motifs, sereporter au fichier /etc/magic).

    Version amliore de la commande :ftp://ftp.astron.com/pub/file/file-3.37.tar.gz

    Formation permanente ARS 139

    Manipulations de fichiers Unix Nature dun fichier : file

    Quelques exemples non exhaustifs :

    % file inconnuinconnu: JPEG image data, JFIF standard 1.02, resolution (DPI), 72 x 72

    % file inconnuinconnu: ASCII text

    % file inconnuinconnu: TeX DVI file (TeX output 2002.08.10:1903)

    % file inconnuinconnu: PostScript document text conforming at level 2.0

    % file /usr/bin/ls/usr/bin/ls: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), \\dynamically linked (uses shared libs), stripped

    % file /usr/lib/libc.a/usr/lib/libc.a: current ar archive

    % file /usr/lib/libc.so.1/usr/lib/libc.so.1: ELF 32-bit MSB shared object, SPARC, version 1 (SYSV), \\not stripped

    Formation permanente ARS 140

  • Manipulations de fichiers Unix Codage des fins de ligne dun fichier texte

    4.38 Codage des fins de ligne dun fichier texte

    Un simple fichier texte ne se partage pas facilement entre les 3 OS que sont Unix, Windows etMacintosh car : une fin de ligne sous Unix est code par un ^J une fin de ligne sous Windows est code par un ^M^J une fin de ligne sous Macintosh est code par un ^M

    Passer un fichier texte ascii dun systme lautre ncessitera de convertir les fins de ligne.

    Sous Unix, on dispose de quelques utilitaires de conversion de caractres : commande tr commande recode commande iconv commande unix2dos et dos2unix

    Formation permanente ARS 141

    Manipulations de fichiers Unix Commande de traduction de caractres : tr

    4.39 Commande de traduction de caractres : tr

    (en anglais translate)Commande de base sur tous les Unix.

    Syntaxe : tr [options] jeu1 jeu2o jeu1 dsigne le jeu de caractres remplacer raison de un pour un par le jeu de caractresjeu2.

    Soit le fichier contenant les lignes suivantes :

    toto

    cheval

    Formation permanente ARS 142

  • Manipulations de fichiers Unix Commande de traduction de caractres : tr

    1. On veut convertir les lettres o en lettres e :

    % tr o e < fichiertete

    cheval

    2. On veut convertir les lettres minusucules en lettres majuscules :% tr [a-z] [A-Z] < fichierTOTOCHEVAL

    3. On veut convertir les lettres o en passage la ligne :

    % tr o \012 < fichiert

    t

    cheval

    Formation permanente ARS 143

    Manipulations de fichiers Unix Commande de traduction de caractres : tr

    4. On veut convertir un fichier Unix en fichier Macintosh :

    % tr \012 \015 < fichier

    5. On veut convertir un fichier PC en fichier Unix :

    % tr -d \015 < fichier

    6. On ne peut pas convertir avec tr un fichier Unix en un fichier PC car il faudrait pour cela ajouterle caractre ^M (soit \015) avant le caractre ^J (soit \012) ce que ne sait pas faire lacommande tr.

    Formation permanente ARS 144

  • Manipulations de fichiers Unix Commande de traduction de caractres : recode

    4.40 Commande de traduction de caractres : recode

    Commande non standard. Cf ftp://ftp.lip6.fr/pub/gnu/recode/

    La commande recode convertit des jeux entiers de caractres en dautres jeux de caractres. Sajustification vient que pleins dutilitaires ou de systmes codent les caractres diffremment.

    Par exemple un sera cod : sous la forme \e en LaTEX sous la forme en HTML sous la forme \351 en ascii ISO-8859-1 sous la forme \216 sur macintosh sous la forme \202 sur Windows sous la forme \303\251 en UTF8

    La commande recode connait beaucoup de jeux de codage (au contraire de la commande tr). Cfrecode --list

    Formation permanente ARS 145

    Manipulations de fichiers Unix Commande de traduction de caractres : recode

    Exemples :1. On veut convertir un fichier Unix en fichier Windows :

    % recode latin1..dos/CR-LF < fichier1 > fichier2% od -c fichier10000000 t o t o \r c h e v a l \r0000014% od -c fichier20000000 t o t o \r \n c h e v a l \r \n0000016

    2. On veut convertir un fichier Unix en fichier Macintosh :% recode latin1..macintosh < fichier1 > fichier2% od -c fichier10000000 t o t o \r c h e v a l \r0000014% od -c fichier20000000 t o t o \n c h e v a l \n0000014

    Et vice-versa. . .

    Formation permanente ARS 146

  • Manipulations de fichiers Unix Commande de traduction de caractres : iconv

    4.41 Commande de traduction de caractres : iconv

    Commande non standard. Cf ftp://ftp.lip6.fr/pub/gnu/libiconv/

    Formation permanente ARS 147

  • Autres commandes Unix pratiques

    Chapitre 5 : Autres commandes Unix pratiques

    5.1 Remplissage du disque : df

    La commande df vous indiquera le taux de remplissage des disques durs locaux de lordinateurainsi que des disques durs rseau qui stockent vos fichiers.

    Par exemple (exemple pris sur une machine du rseau de la formation permanente) :%dfFilesystem 1k-blocks Used Available Use% Mounted on/dev/hda1 1143208 693050 391091 64% /serveur:/net/serveur/home

    1015695 783819 170935 82% /.automount/serveur/net/serveur/homeserveur:/var/mail 246167 84838 136713 38% /.automount/serveur/var/mail

    Formation permanente ARS 148

    Autres commandes Unix pratiques Calcul de la place disque occupe : du

    5.2 Calcul de la place disque occupe : du

    Vous ne devez pas laisser votre compte se remplir de fichiers. Les disques durs nont pas unecapacit infinie et hors de question de stocker toute la documentation disponible sur Internet chezvous !

    La commande du -k $HOME vous donnera la taille disque que votre homedirectory occupe.La commande passe en revue tous les rpertoires et en affiche la taille.

    Le rsultat affich est exprim en kilo octets (1 ko = 1024 octets).

    % du372 ./csi107 ./cru1793

    Formation permanente ARS 149

  • Autres commandes Unix pratiques Impression : lpr, lpq, lprm

    5.3 Impression : lpr, lpq, lprm

    Une impression ncessite de connaitre le nom de limprimante et davoir un fichier au bon format imprimer.

    Pour imprimer, utiliser la commande lpr -Pimprimante fichier

    Pour consulter la queue dimpression, utiliser la commande lpq -Pimprimante

    Pour retirer un fichier de la queue dimpression, utiliser la commandelprm -Pimprimante numro-dans-la-queue-renvoy-par-lpq

    A la formation permanente, le nom de limprimane est hpars.

    Formation permanente ARS 150

    Autres commandes Unix pratiques Nom de machine : uname, hostname

    5.4 Nom de machine : uname, hostname

    Une machine Unix a un nom qui permet de la dsigner simplement dans des commandes deconnexion rseau.

    Pour connaitre le nom de votre machine, vous pouvez employer :

    la commande hostname% hostnamechoc.unix.fr

    la comannde uname -ncette commande renvoit aussi le nom de la version dUnix utilis : lancer uname -a% uname -nchoc.unix.fr% uname -aSunOS choc.unix.fr 4.1.4 7 sun4m unknown

    Formation permanente ARS 151

  • Autres commandes Unix pratiques Tests de connectivit : ping

    5.5 Tests de connectivit : ping

    Les machines distantes ne sont pas toujours disponibles : Elles peuvent tre en panne. Le rseau qui permet de les joindre peut tre en panne. etc.

    La commande permet de tester si une machine est joignable.Syntaxe : ping machine

    % ping vangoghsendto: Network is unreachable% ping elviselvis is alive

    Formation permanente ARS 152

    Autres commandes Unix pratiques Tests de connectivit : traceroute

    5.6 Tests de connectivit : traceroute

    La commande traceroute permet de tester si une machine est joignable. Elle renvoit lesintermdiaires rseau qui route notre acheminement vers la machine distante.

    Syntaxe : traceroute machine

    % traceroute ftp.lip6.frtraceroute to nephtys.lip6.fr (195.83.118.1), 30 hops max, 40 byte packets1 yacht (129.199.96.254) 0 ms 0 ms 0 ms2 renater (129.199.1.10) 2 ms 1 ms 1 ms3 195.221.127.61 (195.221.127.61) 3 ms 1 ms 1 ms4 195.221.126.1 (195.221.126.1) 2 ms 1 ms 1 ms5 195.221.126.78 (195.221.126.78) 2 ms 1 ms 1 ms6 jussieu.rap.prd.fr (195.221.126.33) 2 ms 2 ms 2 ms7 nephtys.lip6.fr (195.83.118.1) 2 ms 2 ms 2 ms

    Le nombre dintermdiaires nest pas proportionnel lloignement gographique de la machinedestination.

    Formation permanente ARS 153

  • Autres commandes Unix pratiques Tests de connectivit : traceroute

    En cas de soucis :

    % traceroute serveur.formation.jussieu.frtraceroute to serveur.formation.jussieu.fr (134.157.46.129), 30 hops max, 40 byte packets1 yacht (129.199.96.254) 0 ms 0 ms 0 ms2 renater (129.199.1.10) 2 ms 1 ms 1 ms3 195.221.127.61 (195.221.127.61) 2 ms 2 ms 1 ms4 195.221.126.1 (195.221.126.1) 2 ms 1 ms 1 ms5 195.221.126.78 (195.221.126.78) 2 ms 1 ms 2 ms6 jussieu.rap.prd.fr (195.221.126.33) 3 ms 2 ms 2 ms7 134.157.254.123 (134.157.254.123) 3 ms 2 ms 2 ms8 * * *^C

    Formation permanente ARS 154

    Autres commandes Unix pratiques Transfert de fichiers entre machines : ftp

    5.7 Transfert de fichiers entre machines : ftp

    (en anglais file transfer protocol)Syntaxe : ftp machine

    get

    put

    get

    put

    ftp machineB ftp machineA

    Formation permanente ARS 155

  • Autres commandes Unix pratiques Transfert de fichiers entre machines : ftp

    Sous commandes de ftp

    La commande ftp vous place dans une espce de shell dans lequel vous disposez descommandes suivantes (ce sont les plus importantes votre niveau) : commande binary : utiliser si le fichier transmettre contient des caractres non texte commande dir : pour lister les fichiers sur la machine distante commande cd directory : pour changer de rpertoire sur la machine distante commande lcd directory : pour changer de rpertoire sur la machine locale commande get fichier : pour rcuprer sur la machine distante un fichier commande put fichier : pour dposer sur la machine distante un fichier commande quit : pour se dconnecter

    Formation permanente ARS 156

    Autres commandes Unix pratiques Transfert de fichiers entre machines : ftp

    % ftp chocConnected to choc.unix.fr.220 choc.unix.fr FTP server (SunOS 4.1) ready.Name (choc:besancon):331 Password required for besancon.Password:230 User besancon logged in.ftp> dir200 PORT command successful.150 ASCII data connection for /bin/ls (192.168.0.1,3945) (0 bytes).total 307-rw-r--r-- 1 besancon software 69 Mar 20 1995 .Xdefaults...

    ftp> get fichier [nouveau nom]...

    ftp> put fichier [nouveau nom]200 PORT command successful.150 ASCII data connection for fichier (192.168.0.1,3947).226 ASCII Transfer complete.local: fichier remote: fichier802 bytes sent in 0.0042 seconds (1.9e+02 Kbytes/s)ftp> quit221 Goodbye.

    Formation permanente ARS 157

  • Autres commandes Unix pratiques Connexion shell sur des machines distantes : telnet, ssh

    5.8 Connexion shell sur des machines distantes : telnet, ssh

    Quelques commandes permettent douvrir une session shell sur une machine distante.

    Commande ssh machine.Cest une commande trs pratique car elle chiffre la communication avec la machine distantevitant ainsi les piratages du type mouchard rseau qui rcupre les mots de passe :% ssh dmibesancon@dmis password:Last login: Sat Sep 15 22:00:11 2001 from ppp-2Sun Microsystems Inc. SunOS 5.5 Generic November 1995No mail.dmi%

    Formation permanente ARS 158

    Autres commandes Unix pratiques Connexion shell sur des machines distantes : telnet, ssh

    Commande telnet machine.% telnet dmiTrying 129.199.96.11...Connected to dmi.ens.fr.Escape character is ^].

    SunOS 5.7

    login: besanconPassword:Last login: Sat Sep 15 21:54:15 from ppp-2Sun Microsystems Inc. SunOS 5.5 Generic November 1995dmi%

    A chaque fois que ce sera possible, prfrer une connexion shell distante en utilisant ssh.

    Formation permanente ARS 159

  • Autres commandes Unix pratiques Liste dutilisateurs connects : users, who, w

    5.9 Liste dutilisateurs connects : users, who, w

    Plusieurs commandes permettent davoir la liste des personnes connectes sur un systme Unix :

    commande users commande who commande w

    Les renseignements renvoys ne sont pas de la mme forme selon la commande utilise.

    Formation permanente ARS 160

    Autres commandes Unix pratiques Courrier lectronique, adresse, mutt, netscape

    5.10 Courrier lectronique, adresse, mutt, netscape

    Votre adresse de courrier lectronique est du [email protected] lire son courrier, vous disposez des utilitaires : mutt

    Affichage en mode texte de vos mails. Gre autant de son mieux les pices attaches. netscape

    Affichage graphique de vos mails. Plus consommateur de ressources. Attention, il fait explosercertains terminaux sous configurs. Ce genre de logiciels est la tendance du monde Windows...

    Formation permanente ARS 161

  • Autres commandes Unix pratiques Web, URL, lynx, netscape

    5.11 Web, URL, lynx, netscape

    Comment consulter une documentation sur Internet ?

    Les renseignements sont indiqus par un URL, Universal Resource Locator :

    Dnomination unique caractre universel qui permet de localiser une ressource, un document, surlInternet, et qui indique la mthode pour y accder, le nom du serveur et le chemin lintrieur duserveur.

    Typiquement :

    protocole://serveur/chemin

    Les types les plus rpandus :

    http://www.lemonde.fr/mailto:[email protected]://ftp.jussieu.fr/

    Formation permanente ARS 162

    Autres commandes Unix pratiques Web, URL, lynx, netscape

    Pour consulter un URL, on utiliser un browser Web. Les plus connus : Netscape (sur Unix, Macintosh et Windows) ; fonctionne en mode graphique Internet Explorer (sur Macintosh et Windows) ; fonctionne en mode graphique lynx (sur Unix) ; fonctionne en mode texte

    Il suffit alors dentrer lURL consulter et on se retrouve connect au serveur (si on peut le joindre)

    Formation permanente ARS 163

  • Autres commandes Unix pratiques Web, URL, lynx, netscape

    Formation permanente ARS 164

    Autres commandes Unix pratiques Web, URL, lynx, netscape

    Formation permanente ARS 165

  • Pratique du Bourne shell

    Chapitre 6 : Pratique du Bourne shell

    6.1 Principe dexcution dune commande

    1. attente dune entre de commande ;

    2. traitement des caractres spciaux de la commande ;

    3. recherche de lexcutable ; sil nest pas trouv, on affiche un message derreur et le shellreprend ltape 1 ;

    4. fork() + exec() de la commande lancer ;5. le shell fait un wait() de la commande ;6. une fois la commande termine, le shell reprend ltape 1.

    Formation permanente ARS 166

    Pratique du Bourne shell Caractres spciaux du shell : mtacaractres

    6.2 Caractres spciaux du shell : mtacaractres

    Caractres Signification

    tabulation, espace appels white characters ; dlimiteurs des mots ; un telcaractre au minimum

    retour charriot fin de la commande excuter

    & lance une commande en tche de fond

    " \ appels quote characters ; changent la faon dont leshell interprte les caractres spciaux

    < > > | caractres de redirection dentres/sorties* ? [ ] [^ ] caractres de substitution de noms de fichiers$ valeur dune variable; sparateur de commandes sur une seule ligne

    Formation permanente ARS 167

  • Pratique du Bourne shell Contrle des commandes lances : &, fg, bg, kill, C, Z

    6.3 Contrle des commandes lances : &, fg, bg, kill, C, Z

    Avant plan

    Lorsquune commande est en train de sexcuter, le shell ne rend pas la main et attend que lacommande se termine (correctement ou incorrectement).Pour interrompre prmaturment une commande : taper sur la touche Control et aussi sur latouche C du clavier. Cela tue la commande qui tournait.On notera lappui sur ces 2 touches par Ctrl C ou par ^C.

    Arrire plan

    Si lon veut une lancer une commande et rcuprer la main tout de suite, avant mme que lacommande ait fini de sexcuter, il faut lancer la commande par :% commande &Le signe & signifie de lancer en tche de fond, en background la commande. Sans ce signe, lacommande est lance en premier plan, en foreground.

    Formation permanente ARS 168

    Pratique du Bourne shell Contrle des commandes lances : &, fg, bg, kill, C, Z

    Passage en arrire plan

    Pour passer en background une commande lance en foreground :

    1. Figer la commande en coursTaper sur la touche Control et aussi sur la touche Z, soit Ctrl-Z ou ^Z :

    % commande...

    ^Z

    [1]+ Stopped commande

    2. Indiquer de lexcuter dornavant en backgroundTaper la commande bg :

    % bg[1]+ commande &

    Dune facon gnrale, un dbutant Unix doit proscrire lutilisation de Ctrl Z . Dans 9 cas sur10, cest Ctrl C quil doit employer. On vitera ainsi une saturation de la machine avec descommandes suspendues et en attente dtre tues ou relances.

    Formation permanente ARS 169

  • Pratique du Bourne shell Contrle des commandes lances : &, fg, bg, kill, C, Z

    Passage au premier plan

    Pour passer en foreground une commande lance en background :

    1. La commande est lanceOn a la main :

    % commande &...

    2. Indiquer de lexcuter dornavant en foregroundTaper la commande fg :

    % fg

    Formation permanente ARS 170

    Pratique du Bourne shell Contrle des commandes lances : &, fg, bg, kill, C, Z

    En rsum

    Programme arrete

    arriere plan arriere plan

    programme en cours

    avant plan

    programme en cours

    fg

    CtrlZ

    fg

    &

    bg

    CtrlCpour detruire

    Formation permanente ARS 171

  • Pratique du Bourne shell Contrle des commandes lances : &, fg, bg, kill, C, Z

    Liste des processus en arrire plan

    Pour connaitre la liste des commandes en background :

    % jobs[1]+ Running commande

    On peut avoir plusieurs commandes en background. Do une numrotation des commandes quisont affiches. Ce numro peut tre repris dans les commandes fg et bg ainsi que dans lacommande suivante, kill.

    Formation permanente ARS 172

    Pratique du Bourne shell Contrle des commandes lances : &, fg, bg, kill, C, Z

    Tuer un processus en arrire plan

    Pour tuer une commande en background :

    % jobs[1]+ Running commande% kill %1[1]+ Terminated commande

    Formation permanente ARS 173

  • Pratique du Bourne shell Contrle des processus : ps, kill, top

    6.4 Contrle des processus : ps, kill, top

    Les commandes fg, bg, jobs ne fonctionnent que sur les processus lancs par le shell courant.Les commandes vues prcdemment peuvent donc tre inutilisables sii vosu avez quitt votre shell.

    Commande ps

    La commande ps plus gnrale permet davoir des informations sur tous les processus de lamachine.

    2 syntaxes selon lUnix de la machine.

    Formation permanente ARS 174

    Pratique du Bourne shell Contrle des processus : ps, kill, top

    Syntaxe de la famille dUnix BSD les processus associs son terminal : ps tous ses processus : ps -x tous les processus de la machine : ps -ax tous les processus de la machine avec les noms de login associs : ps -aux

    Exemple (partiel) de ps -axu :

    % ps -auxUSE