95
Introduction à Linux Genève

Formation Linux - Initiation

Embed Size (px)

DESCRIPTION

Initiation à Linux et Unix

Citation preview

Page 1: Formation Linux - Initiation

Introduction à Linux

Genève

Page 2: Formation Linux - Initiation

Introduction à Linux

Plan du cours

1er jour

Présentation généraleArborescence de Linux

Définition des utilisateurs et des groupesConnexion au système et premières commandes

Autorisation d'accès des fichiers et des répertoiresShell bash

Page 3: Formation Linux - Initiation

Introduction à Linux

Plan du cours

2ème jour

Shell bashRedirections d'entrée / sortie

Editeur de texteL'aide en ligne

Le service d'impressionExpression régulière

Page 4: Formation Linux - Initiation

Introduction à Linux

Plan du cours

3ème jour

Manipulation des fichiers et des répertoiresPrincipales commandes Linux

Notions de réseauX Window System

Page 5: Formation Linux - Initiation

Tout a commencé en 1991 avec un étudiant Finlandais Linus Torvalds

 DOS sur son PC, c'est trop simple il étudie Minix mais c'est trop limité 

micro­noyau  contre  noyau monolithiquemini­guerre Torvalds/Tanenbaum

 il décide d'écrire un système d'exploitation de type Unix sur PC

Les origines

ProLibre                                                        Présentation Générale

Page 6: Formation Linux - Initiation

Le Noyau Linux

S'insère dans le projet GNUNoyau Unix sur PC

Publié sous la licence Publique GNU (GPL)

 Applications 

 Programmes GNU

 Noyau ­ Moteur

ProLibre                                                        Présentation Générale

 Matériel

  Shell

Page 7: Formation Linux - Initiation

Caractéristiques Principales

● Système ouvert● Multi­tâches● Multi­utilisateurs● Multi­processeurs● Multi­plateformes ● Versions 32 bits et 64 bits● Norme POSIX

Caractéristiques Principales

ProLibre                                                        Présentation Générale

Page 8: Formation Linux - Initiation
Page 9: Formation Linux - Initiation

Les utilisateurs

ProLibre                                                       Utilisateurs & groupes

●  Nom de connexion●  Mot de passe●  UID­ identifiant utilisateur ●  GID­ identifiant de groupe primaire●  Répertoire principal (home directory)●  Programme de connexion●  Super­Utilisateur:  root

Page 10: Formation Linux - Initiation

Groupes

● Groupe primaire ou de connexion● Groupes secondaires

ProLibre                                                       Utilisateurs & groupes

Page 11: Formation Linux - Initiation

Connexion

● Login● Prompt● Shell 

ProLibre                         Connexion au système et premières  commandes

     Shell   Système

Page 12: Formation Linux - Initiation

Commandes

Commande    =    Nom   +      [argument(s)]

Exemples:# cat   /etc/passwd# cat   /etc/passwd   |   cut   ­f1,5  ­d:   |   sort

Enchainement inconditionnel# date ; whoami

Enchainement conditionnel# date   &&  whoami# date   ||   whoami

ProLibre                         Connexion au système et premières  commandes

Page 13: Formation Linux - Initiation

Compte utilisateur

Nom de l'utilisateur:  logname, whoamiInfos complètes sur l'utilisateur: idInterface terminal : ttyInfos sur le système d'exploitation : unameListe des utilisateurs sur la machine: whoModification de son mot de passe: passwdPage de manuel:  man

ProLibre                         Connexion au système et premières  commandes

Page 14: Formation Linux - Initiation

Exercices

(1) Affichez le calendrier de l'année 1997(2) Affichez la date avec le format jj­mm­aa (Exemple 07­07­97)(3) Que fait la commande « touch »?(4) Affichez les noms de login des utilisateurs connectés(5) Essayez chacune des commandes: date, who, whoami, id, cal, uname

ProLibre                         Connexion au système et premières  commandes

Page 15: Formation Linux - Initiation

Le système de fichier

/    

      mnt   etc    usr    var    home    tmp    sbin     lib    dev    proc      

doc src bin lib     local                    robert   

                bin lib 

                             mail project tmp       mail  linux  gull

               diving.html 

ProLibre                                                        Le système de fichier

  /home/robert/project/diving.html  

 root

  Usr

Home

Swap

Page 16: Formation Linux - Initiation

Propriétés

 Sensible à la casse:  Document =/= document  Noms longs Fichiers dans des répertoires Structure arborescente, cycles possibles  Répertoires spéciaux:      /   .    ..  Chemin d'accès absolu ou relatif  Fichiers invisibles  Fichiers spéciaux  Liens (hard et soft) Gestion de disques : système de fichiers 

ProLibre                                                        Le système de fichier

Page 17: Formation Linux - Initiation

Manipulation de fichiers et de répertoires

Création d'un répertoire

mkdir <nom du répertoire>

mkdir ­p rep1/rep2/rep3

mkdir tient compte du mask:  umask 077

Suppresion d'un répertoire

rmdir <nom du répertoire>

supprime le répertoire uniquement s'il est vide

ProLibre                                  Manipulation de fichiers et de répertoires

Page 18: Formation Linux - Initiation

Manipulation de fichiers et de répertoires

Copie de fichiers et de répertoirescp   <fichier source>     <fichier destination>cp   <fichier source>     <répertoire destination>cp   <liste de fichiers>    <répertoire destination>options:

­i interactif­p conserve les attributs­r récursif

Déplacement de fichiers et  de répertoiresmv   <fichier source>      <fichier destination>mv   <fichier source>      <répertoire destination>mv   <liste de fichiers>   <répertoire destination>options:

­i interactif­f forceProLibre                                  Manipulation de fichiers et de répertoires

Page 19: Formation Linux - Initiation

Manipulation de fichiers et de répertoires

Suppression de fichiers et  de répertoiresrm <fichier(s)>options:

­i interactif­f force­r  récursif

Visualisation de fichiers ou de répertoiresls   [option]   [fichiers/répertoires]options:

­l affiche les informations ­a liste tous les fichiers­r ordre inverse­t tri par date­d liste le nom du répertoire­i liste les inodesProLibre                                  Manipulation de fichiers et de répertoires

Page 20: Formation Linux - Initiation

Manipulation de fichiers et de répertoires

Nature des fichiersfile   <fichier>

Création de fichiers ou modificationtouch [option] <fichier>

options:­a modification de la date de dernier accès­c ne crée pas le fichier s'il n'existe pas­m change la date de modification par la date courante­t change la date au lieu de la date couranteformat de la date : MMDDhhmm[YY]

exemple:touch   ­t 04010000    ~/test.txt

 ProLibre                                  Manipulation de fichiers et de répertoires

Page 21: Formation Linux - Initiation

Manipulation de fichiers et de répertoiresRecherche de fichiers ou de répertoire

find <répertoire de recherche> <options> <actions>options:

­type nature de l'objet (f=fichier, d=directory,l=lien)­name nom de l'objet­size taille de l'objet­perm permission de l'objet­atime date de création­ctime date de modification des attributs­mtimedate de dernière modification

actions­print affiche le résultat de la commande­exec effectue une commande Unix sur les fichiers­ok = exec mais demande confirmation 

ProLibre                                  Manipulation de fichiers et de répertoires

Page 22: Formation Linux - Initiation

Exercices

(1) Dans votre répertoire de connexion, créez le répertoire « exercices » et dans ce dernier les sous répertoires « serie_1 » et « serie_2 »

(2) Affichez l'arborescence créée précédemment.(3) Copiez le ficher /etc/passwd dans votre répertoire en le nommant fic_pass(4) Renommez le fichier fic_pass en password(5) Déplacer le fichier password dans le répertoire serie_1(6) Copiez les fichiers /etc/passwd et /etc/group dans le répertoire serie_2

en étant dans le répertoire /etc  et  ensuite dans le répertoire serie_2(7) Sélectionnez le répertoire serie_1 comme répertoire de travail et listez depuis 

ce dernier les fichiers de serie_2(8) Créer le fichier « document » avec la commande touch.(9) Affichez ses caractéristiques avec la commande ls et file (10) Positionnez vous dans le répertoire de connexion et affichez tous les attributs 

des fichiers ainsi que ceux commençant par un « . »(11) Supprimez le répertoire exercices avec une seule commande et sans demande 

de confirmation

ProLibre                         Connexion au système et premières  commandes

Page 23: Formation Linux - Initiation

Le shell

Bourne­shell (1976)  contre       C­shell (BSD)

Korn­shell tcsh

bash 

ProLibre                                                                    Le shell bash

Page 24: Formation Linux - Initiation

Edition d'une commandeMode d'édition:  emacs ou vipar défaut: emacs

Commandes de base de emacs:Crtl a début de la ligneCtrl e fin de la ligneCtrl d supprime le caractère sous le curseurCtrl k supprime les caractères jusqu'à la fin de la ligneCtrl r recherche vers le début du fichier

Ctrl s recherche vers la fin du fichierCtrl y copie le buffer Ctrl space marque le début d'un bufferCtrl w marque la fin d'un buffer et le supprimeEsc w marque la fin d'un buffer et le copieEsc x commande ligneCtrl x Ctrl s sauve le fichierCtrl x Ctrl w sauve le fichier sous un autre nomCtrl g annule la commande en cours

ProLibre                                                                    Le shell bash

Page 25: Formation Linux - Initiation

Méta­caractères/Jokers

?   remplace n'importe quel caractère*   remplace entre 0 et n caractères quelconques[liste]   remplace un caractère qui figure dans la liste[^liste]   remplace n'importe quel caractère sauf ceux de la liste{chaîne}   remplace un mot qui figure dans la chaîne

exemples: ls   ­l     *.{new,bak,ha?k}ls   ­l     *.[0­9]ls   ­l     *.[^p­w][a­z][a­z]

ProLibre                                                                    Le shell bash

Page 26: Formation Linux - Initiation

Caractères spéciaux' empêche l'évaluation des méta­caractères" empêche l'expansion  des méta­caractères sauf   \  ` et $` évalue et fournit le résultat de la commande   ­  $(cmd)\ empêche l'interprétation du caractère spécial$ préfixe une variable

exemples:

ls ­l    `which netscape`ls ­l    $HOMEecho   nom de la connexion:   $USERecho   nom de la connexion:   `whoami`echo   nom de la connexion:   $(whoami)echo  'nom de la connexion:   $USER ' 

ProLibre                                                                    Le shell bash

Page 27: Formation Linux - Initiation

Redirection d'entrée/sortieFlux d'une commande

ProLibre                                                   Redirection d'entrée/sortie

Commande SortieEntrée

Erreur

Canal 0 Canal 1

Canal 2

Page 28: Formation Linux - Initiation

Gestion des flux de données

ProLibre                                                   Redirection d'entrée/sortie

Commande SortieEntrée

Erreur

Commande SortieEntrée

Erreur

Page 29: Formation Linux - Initiation

Redirection d'une commandeRedirection de sortie:

ls   ­l   1>   fichier        ou      ls   ­l   >   fichier

ls   ­l   2>   /tmp/test

Ajout à la fin d'un fichier (concatener):

ls   ­l    1>>   fichier 

Redirection de l'entrée

wc   <   /tmp/test   >   /tmp/test1

ProLibre                                                   Redirection d'entrée/sortie

Page 30: Formation Linux - Initiation

Exercices(1) Déplacez vous dans le répertoire /usr/bin et affichez la liste des fichiers dont le 

nom comporte exactement 4 cacractères(2) Affichez la liste des fichiers dont le nom commence par une lettre comprise 

entre a et e(3) Affichez la liste des fichiers dont le nom possède la lettre t en deuxième 

caractère(4) Utilisez la commande echo pour afficher le message suivant sur le terminal:

il fait beau aujourd'hui(5) Créez un fichier de nom info.txt contenant la date et l'heure(6) Visualisez le fichier(7) Envoyez la commande ls dans le fichier info.txt. Que constatez vous ?(8) Refaites l'exercice 5 et ajoutez au contenu le résultat de la commande ls.

ProLibre                                                                  Le shell bash

Page 31: Formation Linux - Initiation

Groupes et utilisateurs

A qui appartient le fichier que l'on crée?

directory  (admin,admin)

tux (tux,pingoo)  crée le fichier toto.txt

BSD:  toto.txt   user:tux group:admin

Linux: toto.txt  user:tuxgroup:pingoo 

ProLibre                             Utilisateur propriétaire et groupe propriétaire

Redirections d'entrée / sortie

Page 32: Formation Linux - Initiation

Droits d'accès des fichiers

Droits:

lecture (r)écriture (w)execution (x)

utilisateur (u)groupe (g)autre (o)

ProLibre                       Autorisation d'accès des fichiers et des répertoires

[rwx]

[rwx]

 [rwx]

Page 33: Formation Linux - Initiation

Modifications des droits d'accès

La commande:chmod <droits> <fichier(s)>

quiu(ser)g(roup)o(ther)

Comment=  force les droits+  ajoute les droits­  retire les droits

quoir(ead)w(rite)x(execute)

ProLibre                       Autorisation d'accès des fichiers et des répertoiresProLibre                       Autorisation d'accès des fichiers et des répertoires

Page 34: Formation Linux - Initiation

Modifications des droits d'accès

Commandes:

Change le owner du fichierchown <user> <fichier(s)>ex: chown billou  /tmp/windowsex: chown billou.gates /tmp/winnt

Change le groupe du fichierchgrp <group> <fichier(s)>ex: chgrp gates /tmp/win2000

Change le mask de création des fichiersumask <droits>ex: umask 037

ProLibre                       Autorisation d'accès des fichiers et des répertoiresProLibre                       Autorisation d'accès des fichiers et des répertoires

Page 35: Formation Linux - Initiation

Droits d'accès étendusSUID (s)

execute une commande sous l'id du propriétaire

SGID (s)execute une commande sous le groupe du propriétairele répertoire créé appartiendra au groupe du répertoire 

principal

Sticky Bit (t)présence en mémoiredroit de n'effacer des fichiers que si on en est propriétaire 

(/tmp)

ProLibre                       Autorisation d'accès des fichiers et des répertoires

Page 36: Formation Linux - Initiation

Exercices(1)  Créez un répertoire privé et protégez le contre tout accès des autres 

utilisateurs(2) Rendez le répertoire prive accessible en lecture aux utilisateurs membres du 

groupe de ce répertoire(3) Quelle valeur du umask utiliser pour que lors d'une création les droits soient:

drwxr­x­­­   pour un répertoire­rw­r­­­­­ pour un fichier

(4) Pierre peut­il changer le groupe du fichier qui se trouve dans son répertoire?(5) Quelles informations fournissent les commandes suivantes

whoamiid

(6) Vérifiez si sur votre système, vous pouvez écrire sur la console opérateur « /dev/console »

ProLibre                       Autorisation d'accès des fichiers et des répertoires

Page 37: Formation Linux - Initiation

ExercicesAjouter des utilisateurs

le password sera identique:  courslinux 

toto1  avec    webmintoto2   avec    drakconftoto3   avec    adduser

ProLibre                       Autorisation d'accès des fichiers et des répertoires

Page 38: Formation Linux - Initiation

Le Shell ++Redirection d'une commande

Réunion de canaux

n>&mgrep   'linux'   /usr/doc/*  >  /tmp/result   2>&1

 

Redirection des erreurs

      grep   'linux'   /usr/doc/*  >  /tmp/result   2> /dev/null

ProLibre                                                   Redirection d'entrée/sortie

Page 39: Formation Linux - Initiation

Commandes alias unalias history c­shell

!!  réexecution de la dernière commande!n  réexecution de la commande numéro n!­n réexecution de la nième dernière commande!chaîne réexecution de la dernière commande commençant 

par la chaîne!?chaîne réexecution de la dernière commande contenant 

la chaîne

ProLibre                                                                  Le shell bash

Page 40: Formation Linux - Initiation

Initialisation de l'environnementCela est dépendant du shell utilisé.

Pour le bashshell connexion

 /etc/profile

.bash_profile 

   .bash_login

   .profile

shell de commande.bashrc

ProLibre                                                                  Le shell bash

global

utilisateur

Page 41: Formation Linux - Initiation

Personnalisation du promptPar défault le prompt fini par le caractère $ (# pour root).Le prompt par défaut:  '\s\v\$'

 \d Affichage de la date \h  Nom de la machine \n   Saut de ligne \s   Nom du shell \t   Heure \u   Nom de l'utilisateur \w  Répertoire courant \#  Numéro de commande depuis la connexion \!   Numéro de commande (historique)

exemple: $  PS1= "[\#]­\u(\h)\w: "

ProLibre                                                                  Le shell bash

Page 42: Formation Linux - Initiation

Variables d'environnementLes variables d'environnement donnent des informations sur la 

session en cours (set)

 PATH USER HOME HOST PWD SHELL PS1 DISPLAY TERM LANG

ProLibre                                                                  Le shell bash

Page 43: Formation Linux - Initiation

Commandes internes

 Echo  set ( set ­o / set ) pwd cd  pushd / popd

ProLibre                                                                  Le shell bash

Page 44: Formation Linux - Initiation

Exercices

ProLibre                                                                  Le shell bash

(1) Exécutez la commande cp sans argument et en éliminant les messages d'erreurs

(2) Créez un alias taille qui affiche la taille d'une arborescence. Testez l'alias sur le répertoire /etc

(3) Quelle est la valeur de la variable d'environnement TERM 

Page 45: Formation Linux - Initiation

Le service d'impression les commandes de lancement d'impression (job)● les files d'attentes● les répertoires de files d'attente● les processus serveur● commandes d'administration

ProLibre                                                      Le service d'impression

Page 46: Formation Linux - Initiation

Les commandes lpr commande d'impression lpq affiche la liste des demandes d'impression lprm supprime la requête  lpc informations / status des imprimantes

exemples:

# lpr ­Psp /etc/motd# lpq ­Psp# lprm ­Psp 96

ProLibre                                                      Le service d'impression

Page 47: Formation Linux - Initiation

Installer une imprimanteInstaller le service d'impression standard sous Linux:   CUPS

Gérer depuis le WEB ce service:  http://localhost:631

Configuration via  CUPS

ProLibre                                                      Le service d'impression

Page 48: Formation Linux - Initiation

Traitement du contenu des fichiers cat affiche sur le canal de sortie, des octets lus sur le canal 

d'entrée ­ concaténation de fichiers

 head affiche les premières lignes d'un fichier

 tail affiche les dernières lignes d'un fichier

 more affiche des octets lus sur l'entrée standard

 wc affiche le nombre de lignes, de mots, de caractères

 split division d'un fichier en plusieurs fichiers

 sort tri des lignes d'un fichier

 grep recherche d'occurence

 

ProLibre                                           Principales commandes de Linux

Page 49: Formation Linux - Initiation

Traitement du contenu des fichiers 

 cut  extraction de colonnes ou de champs

 diff comparaison de fichiers

 comm comparaison ligne à ligne de 2 fichiers triés

 uniq rend unique les ligne trié d'un fichier

 tr traitement des caractères d'un fichier

 sed substitution de caractères

 pr mise en page

ProLibre                                           Principales commandes de Linux

Page 50: Formation Linux - Initiation

Exercices(1) Affichez la liste des utilisateurs triés par ordre des noms(2) Affichez les attributs du plus gros fichier de votre répertoire(3) Recherchez dans votre répertoire tous les fichiers modifiés dans la journée(4) Affichez uniquement les noms des utilisateurs connectés sur votre système

ProLibre                                                                        L'éditeur vi

Page 51: Formation Linux - Initiation

Gestion du temps

 date affiche la date

 cal affiche le calendrier pour le mois en cours

 time temps d'exécution d'une commande

 at diffère l'exécution d'une commande

 crontab exécution cyclique d'une commande

ProLibre                                           Principales commandes de Linux

Page 52: Formation Linux - Initiation

Compression des fichiers

●  gzip,   gunzip,    zcat,   zless,    zgrep

exemple: cat   file1   file2   |    gzip   >    foo.gzgzip ­cr IMG > IMG.gz

●  Bzip2,    bunzip2,    bzcat

ProLibre                                           Principales commandes de Linux

Page 53: Formation Linux - Initiation

Archivage

 La commande standard est : tar

Exemples:archive le répertoire /home/robert

tar   czvf      robert.tar.gz       /home/robert

extrait le contenu de l'archivetar   xzvf      robert.tar.gztar   xyvf      robert.tar.bz2

liste le contenu de l'archivetar    tzvf     robert.tar.gz

ProLibre                                           Principales commandes de Linux

Page 54: Formation Linux - Initiation

Archivage

 Installer un logiciel depuis les sources

A lire: ● REAME  ou  readme.txt● INSTALL

Installation standard:● ./configure ­­help● Make● make install   (en tant que root)

ProLibre                                           Principales commandes de Linux

Page 55: Formation Linux - Initiation

Archivage

 Installation d'un logiciel depuis les sources

cherchez sur Internet les sources d'un programme nomé minicomcompilez et installez le programme!

 

ProLibre                                           Principales commandes de Linux

Page 56: Formation Linux - Initiation

Gestion des processus

États des processus

en cours d'exécution 

         suspendu

     stoppé

    zombie

ProLibre                                           Principales commandes de Linux

Page 57: Formation Linux - Initiation

Gestion du temps

 ps liste les processus en cours 

 Ctrl z stoppe l'execution du processus en cours

 kill envoie un signal à un processus(TERM,  HUP, KILL, INT )

 jobs liste les processus en arrière plan

 bg l'execution du processus est placé en background

 fg relance l'exécution d'un processus stoppé

 stty configuration du terminal

ProLibre                                           Principales commandes de Linux

Page 58: Formation Linux - Initiation

L'éditeur vi ­ Présentation l'éditeur par défaut des systèmes Unix  installé sur tous les systèmes (single user) très utilisé pour l'administration  puissant, configurable et rapide mais aussi rustique et complexe

trois modes de fonctionnement:● mode saisie● mode de commande● mode de commande ligne● switch entre mode par la touche Esc

ProLibre                                                                   L'éditeur   vi

Page 59: Formation Linux - Initiation

Principales commandesi insertion devant le curseura insertion après la position courante du curseurI insertion en début de ligne couranteo création d'une ligne après la ligne courante (saisie)O création d'une ligne avant la ligne courante (saisie) 0 début de la ligne$ fin de la ligneCtrl F remonter d'un écranCtrl B descendre d'un écranx supprime le caractère sous le curseurX supprime le caractère devant le curseurrc remplace le caractère sous le curseur par « c »dd supprime la ligne couranteD supprime le reste de la ligne courante

ProLibre                                                                   L'éditeur   vi

Page 60: Formation Linux - Initiation

Principales commandes● cw remplacement du mot actif● c$ remplacement jusquà la fin de la ligne● /xy recherche de la chaîne « xy » vers la fin du fichier● ?xy recherche de la chaîne « xy » vers le début du 

fichier● :q quitte l'éditeur (:q!) ● :x enregistre et quitte● :w  file enregistre dans un fichier « file »● :f affiche le nom du fichier et le numéro de la ligne

ProLibre                                                                   L'éditeur   vi

Page 61: Formation Linux - Initiation

Alternatives à vi ● L'éditeur pico ou nano aussi rapide, mode pseudo graphique. Mais n'est pas toujours installé en standard (p.e. sur une debian) et dans le cas d'un boot en single user pico n'est pas disponible (usr/bin/pico).

● L'éditeur emacs, xemacsultra puissant (écrit en Lisp par R. Stallman), configurable à souhait, ne fait pas le café! plus lourd que les autres (on peut lire le mail, les news, web, calendrier, cvs, jeux, etc..). N'est pas disponible dans le cas d'un boot en single­user.Très utilisé dans la programmation. 

● L'universel dans le monde Unix: cat et ed 

ProLibre                                                          Les alternatives à vi

Page 62: Formation Linux - Initiation

Exercices

ProLibre                                                   gestion des processus

(1) Exécutez la commande ps et donnez la signification de chacune des colonnes(2) Créez un script  bonjour  dans un fichier en utilisant l'éditeur vi 

while truedo

echo bonjoursleep 30

done(3) Lancer ce script en arrière plan. Affichez son PID (4) Tuez ce processus(5) Créez un fichier contenant la liste des utilisateurs connectés et ajoutez ensuite avec 

l'éditeur vi la phrase« liste des utilisateurs connectés »

(6) Ajoutez une série d'étoile à la fin du fichier(7) Sauvegardez le fichier sous le nom essai2.txt

Page 63: Formation Linux - Initiation

Les expressions régulières

ProLibre                                                   Les expressions régulières

Page 64: Formation Linux - Initiation

Les expressions régulièresExpression régulière = reconnaissance d'expression

Caractères spéciaux:  Méta­caractères Facteurs d'occurence

Les méta­caractères:

. Caractère quelconque sauf fin de ligne. $ Fin de ligne. ^  Début de ligne, sauf dans [], négation[] Un des caractères contenus dans les crochets.

­ Intervalle de caractères dans [] 

ProLibre                                                   Les expressions régulières

Page 65: Formation Linux - Initiation

Les expressions régulièresLes facteurs d'occurences:

? Expression régulière précédente optionnelle * Répétition 0, 1 ou plusieurs fois + Répétition 1 ou plusieurs fois {n} Répétition de exactement n fois{n,} Répétition de au moins n fois{n,m} Répétition de au moins n mais au plus m fois| Alternative \c  Suppression de la spécificité du caractère 'c' ()  Groupement d'expressions

ProLibre                                                   Les expressions régulières

Page 66: Formation Linux - Initiation

Exemples 

ab(cd)*ef abcdef,    abcdcdef,    abcdefg, abef ab[c|d]ef abcef,      abdef ab[^a­z]ef  ab1ef,      abCef ^From: .*.com$  From: [email protected] 

grep  ­i '^ro*bash$'    /etc/passwd

grep     '05\/Feb[^:]*:23.*scripts.*\+dir'     /var/log/apache/access.log

62.195.62.11 ­ ­ [05/Feb/2002:23:30:50 +0100] "GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 312 "­" "­"62.195.62.11 ­ ­ [05/Feb/2002:23:30:50 +0100] "GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 312 "­" "­"62.195.62.11 ­ ­ [05/Feb/2002:23:30:50 +0100] "GET /scripts/..%%35%63../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 400 296 "­" "­"62.195.62.11 ­ ­ [05/Feb/2002:23:30:51 +0100] "GET /scripts/..%%35c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 400 296 "­" "­"

ProLibre                                                   Les expressions régulières

Page 67: Formation Linux - Initiation

Les expressions régulières

ProLibre                                                   Les expressions régulières

Page 68: Formation Linux - Initiation

Manipulation de fichiers et de répertoires

Recherche de fichiers ou de répertoire

find <répertoire de recherche> <options> <actions>options:

­type nature de l'objet (f=fichier, d=directory,l=lien)­name nom de l'objet­size taille de l'objet­perm permission de l'objet­atime date de création­ctime date de modification des attributs­mtimedate de dernière modification

actions­print affiche le résultat de la commande­exec effectue une commande Unix sur les fichiers­ok = exec mais demande confirmation 

ProLibre                                  Manipulation de fichiers et de répertoires

Page 69: Formation Linux - Initiation

Manipulation de fichiers et de répertoires

Exemple de commande find

Pour afficher tous les fichiers se terminant par   ''.c'' :  find   .   ­name   "*.c"   ­print

Pour afficher tous les répertoires dont le nom se termine par ''s'' : find   .   ­type d   ­name   ''*s''   ­print

Pour éxecuter la commande ls ­l pour chaque fichier trouvé :  find  .   ­type f   ­exec   ls   ­l   {}    \;

     et pour demander confirmation avant chaque action : find   .   ­type f   ­ok    rm {}   \;

Pour associer plusieurs critères avec ­a pour et, ­o pour ou, ! pour négation.find   .   !   ­user root   ­print

ProLibre                                  Manipulation de fichiers et de répertoires

Page 70: Formation Linux - Initiation

Manipulation de fichiers et de répertoires

Exemple de commande find

Affiche tous les fichiers se terminant par  ''.tex'' ou ''.dvi''  find   .    \( ­name   '*.tex'   ­o   ­name   '*.dvi'   \)    ­print

Copier tous les fichiers finissant par  .htm(l) vers le même nom auquel on ajoute .bak:   find   .   ­name   "*.htm*"   ­exec   cp   {}   {}.bak   \; 

Comment effacer tous les fichier *.tmp dans un répertoire et ses sous­répertoires ?   find   .   ­name   "*.tmp"   ­exec   rm   ­f {}   \; 

Comment effacer un fichier avec un nom impossible à supprimer ?   find   .   ­inum   12903   ­exec   rm   ­f {}    \; 

ProLibre                                  Manipulation de fichiers et de répertoires

Page 71: Formation Linux - Initiation

Exercices

ProLibre                                                   Les expressions régulières

(1) Affichez la liste des utilisateurs défini par l'UID 0(2) Affichez les attributs de tous vos sous répertoires(3) Recherchez tous les fichiers qui ont plus d'un lien dans /usr/bin(4) Supprimez tous vos fichiers de taille nulle avec une double demande de 

confirmation 

Page 72: Formation Linux - Initiation

Self­HelpLe "self­help" ou "s'aider soi­même" dans le communauté Linux 

peut se résumer par deux pratiques: RTFM et l'entraide.

Comment réagir face à un problème avec Linux? Ça ne marche pas, donc:

● je lance une poursuite contre Linux S.A. ● je demande à quelqu'un de m'aider. ● je regarde les documentations d'abord pour voir si je peux régler le 

problème. ● je vais résoudre ce problème ou mourir dans l'effort. ● j'engage un consultant.                 Morale: toutes ces réponses sont correctes selon les 

circonstances, sauf la première. (Duh.)

ProLibre                                                                 L'aide en ligne

Page 73: Formation Linux - Initiation

Pages de manuelsConseil: Si vous avez de la place sur votre système, n'hésitez pas à 

installer toute la documentation!

Les pages "man"

estimation du nombre de pages man dans une Mandrake :           # locate   /man/   |   wc   ­l

Les pages man sont:

● disponibles en français (et d'autres langues), mais les versions anglaises sont les plus à jour. 

● résumées, manquent souvent d'exemples, mais sont universelles. 

ProLibre                                                                 L'aide en ligne

Page 74: Formation Linux - Initiation

Pages de manuelsLes pages de manuels sont divisées en sections. 

1   Executable programs or shell commands2   System calls (functions provided by the kernel)3   Library calls (functions within system libraries)4   Special files (usually found in /dev)5   File formats and conventions eg /etc/passwd6   Games7   Macro packages and conventions eg man(7)8   System administration commands (usually only for root)9   Kernel routines [Non standard]n   new [obsolete]l    local [obsolete]p   public [obsolete]o   old [obsolete]

ProLibre                                                                 L'aide en ligne

Page 75: Formation Linux - Initiation

La commande helphelp, l'aide en­ligne du shell bash(1)

exemple:                # help   echo

Les commandes Unix ont souvent l'argument ­­help et ­­version

exemple# sed   ­­help

ProLibre                                                                 L'aide en ligne

Page 76: Formation Linux - Initiation

Les HOWTOs● descriptions des tâches typiques, gérés par le Linux 

Documentation Project (LDP) .● écrits en SGML (DTD LinuxDoc ou DocBook) et formatés en 

texte, HTML, LaTeX.● on peut retrouver plus facilement les versions textes par grep(1).● disponibles en plusieurs langues. ● voir aussi les sous­répertoires mini/ et unmaintained/ .● voir /usr/doc/howto  ou   /usr/share/doc/ ou

http://www.linuxdoc.org/HOWTO/HOWTO­INDEX­3.html .● probablement les documentations les plus utiles pour savoir 

comment faire quelque chose de pratique.

ProLibre                                                                 L'aide en ligne

Page 77: Formation Linux - Initiation

Les FAQs

FAQ == Frequently Asked Questions             pas d'organisation centrale, mais le LDP en produit beaucoup souvent utile, résume l'ensemble des problèmes des utilisateurs.centralise les questions et les réponses synthétisées.http://www.linux­gull.ch/liens.html

ProLibre                                                                 L'aide en ligne

Page 78: Formation Linux - Initiation

/usr/doc et /usr/share/doc Contient tous les READMEs et autres documentations de tous les 

packages d'un système Linux standard.             contient d'autres documentations:                # ls   /usr/share/doc               Changes     faq         mico        rfc         support                   LDP         howto       packages 

LDP/  ­ les Guides du Linux Documentation Project packages/ ­ documentations de chaque logiciels, sauf les pages man rfc/  ­ les Requests For Comments (standards de l'Internet) 

regarder dans /usr/share/doc pour les tutoriels et les documentations supplémentaires des packages (READMEs, etc.)

ProLibre                                                                 L'aide en ligne

Page 79: Formation Linux - Initiation

Documentation sur InternetLe Linux Documentation Project (LDP ­ www.linuxdoc.org) est le regroupement de Guides, HOWTOs, FAQs, pages man, Linux 

Gazette, traductions.

 miroirs en Suisse:                    http://sunsite.cnlab­switch.ch/LDP/                    http://zaphod.ethz.ch/linux/LDP/  les Guides:                    Installation and Getting Started Guide                    The Linux Kernel                    The Linux Kernel Hackers' Guide                    The Linux Network Administrators' Guide                    The Linux Programmer's Guide                    The Linux System Administrators' Guide                    The Linux Users' Guide 

ProLibre                                                                 L'aide en ligne

Page 80: Formation Linux - Initiation

USENETLe débit d'articles dans USENET est trop grand pour lire beaucoup de 

newsgroups, donc il vaut mieux "subscriber" à quelques­uns seulement, et chercher dans les autres avec un moteur de recherche (p.ex. groups.google.com ).

Il y a beaucoup de newsgroups qui s'occupent de Linux. Les différents types:

● Les généraux● Les modérés● Les spécifiques à une distribution ­ un hardware ­ un outil ­ une langue● Les annonces● Les commerciaux●

ProLibre                                                                 L'aide en ligne

Page 81: Formation Linux - Initiation

Les moteurs de recherche

Google, pages indexées par mot­clef et ordonnées par nombre de liens vers ces pages. http://www.google.com/linux

Freshmeat, les nouveautés de software, recherche par mot­clef http://www.freshmeat.net

Tuxfinder, packages spécifiques (.tar.gz, .rpm, .deb, etc.)  http://www.tuxfinder.com

 les sites des distributions, Debian, SuSE, Redhat, Slackware, etc., bons pour trouver des packages spécifiques et les mises à jour de chaque distribution 

Voir aussi la liste du GULL à http://www.linux­gull.ch/liens.html.

ProLibre                                                                 L'aide en ligne

Page 82: Formation Linux - Initiation

Les LUGsLes LUGs sont une bonne source d'appui ­  liens ­ news ­ mailing­lists ­ manifestations.

Les utilisateurs de Linux francophones sont soutenu par L'Association Francophone des Utilisateurs de Linux et des Logiciels Libres (AFUL)  http://www.aful.org

En Suisse:

LUGS  ­ Suisse allemand ­  http://www.lugs.chGroupe romand des Utilisateurs de Linux et de Logiciels libres (GULL) à http://www.linux­gull.chmailing list du GULL:linux­leman  ­   linux­leman­admin ­  linux­leman­annonces

ProLibre                                                                 L'aide en ligne

Page 83: Formation Linux - Initiation

Comment poser une question?Quelques rêgles:

● récolter toutes les informations nécessaires (version du kernel, distribution et version, version exacte du programme posant problème, nom de la carte, détails sur le chip de la carte (nom, etc), et éventuellement le contenu édité de /proc/pci si c'est une carte PCI) 

● consulter les bases de données de support et les archives 

● consulter une des FAQs Linux

● si après toutes ces étapes, vous n'avez pas trouvé de réponse valable, postez votre question, en ajoutant p.ex. une liste des démarches effectuées ou des points de la documentation qui sont peu clairs pour vous. 

ProLibre                                                                 L'aide en ligne

Page 84: Formation Linux - Initiation

Trouver une commande Marche à suivre:

(1)  man  ­k   gif(2)  locate   2gif(3)  man   convert(4)  convert   ­­help(5)  grep ou zgrep dans les répertoires de documentations(6)  chercher sur internet http://www.google.com/linux

ProLibre                                                                  L'aide en ligne

Page 85: Formation Linux - Initiation

Exemples (1)Les fonts de Netscape sont illisibles. Comment les changer?

1. Regardez dans les FAQs et HOWTOs. 2. # cd /usr/doc/howto/en ou /usr/share/doc/HOWTO/HTML/{en,fr}3. # ls 4. Hmm...Font­HOWTO.gz peut­être intéressante...              # zgrep ­1 Netscape Font­HOWTO.gz5. Ca a l'air d'être intéressant, donc je lis en détail et j'apprends non seulement comment régler Netscape, mais comment on peut aussi utiliser les fonts True­Type sous Linux(!).  6. Je fais le changement dans mon ~/.Xdefaults et je fais une petite note du changement dans mon fichier ~/notes (au cas où...). 

 Morale: Peut­être que vous avez la réponse à votre question qui est déjà stockée sur votre disque dur. Regardez avec votre fidèle ami grep(1) et RTFM.

ProLibre                                                                 L'aide en ligne

Page 86: Formation Linux - Initiation

Exemples (2)Comment lire un fichier .DVF?

caméscope numérique Panasonic NV­EX3EG avec un soft qui stocke ces images dans un format .DVF (Digital Video Frame?). Comment les lire sous Linux?

1. Lire les documentations du software. Aucun indice de ce que DVF veut dire. Possible que ce soit propriétaire. :­( 2. Peut­être qu'il y a un utilitaire DVF , un pilote DVF, ou des images DVF déjà sur mon système GNU/Linux? 

# locate dvf ­ locate DVF rien 3. Essayer les pages man: $ man ­k dvf ­ rien 4. Chercher sous /usr/doc: 

# locate /usr/doc | xargs zgrep ­i dvf  ­ rien d'intéressant 5. Chercher sur www.google.com/linux "dvf" ­ rien d'intéressant 

ProLibre                                                                 L'aide en ligne

Page 87: Formation Linux - Initiation

 

 6.Chercher sur groups.google.com pour "Linux" ET "dvf". ­ rien 

 7.Chercher sur Freshmeat.net pour "dvf" ­  rien 

 8.Peut­être les gens qui font de la vidéo numérique savent ce que c'est .DVF? Chercher sur Freshmeat.net pour IEEE1394. Trouvé le projet "IEEE 1394  for Linux" à http://linux1394.sourceforge.net 

 9.Chercher dans les archives du projet LINUX1394 pour "dvf" ­ rien 

 10.Vu une référence dans les archives. Il y a un site www.DVCentral.org. Chercher dans leurs archives ­ rien 

 11.Souscrire à DV­L (http://www.DVCentral.org/thelist.html et poster un message ­ rien 

 12.Attendre une réponse et continuer à chercher des gens qui font de la DV sous Linux. 

Morale: Des fois, la réponse n'est pas immédiate.ProLibre                                                                 L'aide en ligne

Exemples (2)

Page 88: Formation Linux - Initiation

 

1. Trouver l'information qui vous permettra de piloter une cafetière avec un ordinateur sous Linux? 

ProLibre                                                                 L'aide en ligne

Exercices

Page 89: Formation Linux - Initiation

"The X Window System"

Un systèmes de fenêtrage =  découper un écran physique en plusieurs zones logiques, appelées fenêtres. 

L'architecture générale du système de type Client­Serveur. 

ProLibre                                                                            X11

Page 90: Formation Linux - Initiation

"The X Window System"

● Le client X, est une application qui a besoin d'afficher des informations sur un écran. 

● Le serveur X est un programme, exécuté sur une machine ("machine hôte") connectée habituellement à un écran, un clavier et une souris.

Il offre des services d'affichage aux clients qui en ont besoin.

Le serveur X n'offre que des services de très bas niveau. D'autres systèmes tels que MS­Windows permettent de créer d'un seul appel un bouton ou un menu. Le serveur X, lui, ne sait qu'ouvrir et fermer des fenêtres, sans décoration. 

On ajoute alors un Window Manager qui sera chargé de l'environnement graphique:

gnome, kde, windowmaker, xfce etc...

ProLibre                                                                            X11

Page 91: Formation Linux - Initiation

"The X Window System"

On peut afficher une application sur un autre serveur en utilisant l'option display. Par exemple : 

xclock   ­display   murmure:0    &

On peut aussi définir la variable d'environnement: DISPLAY. Par exemple: 

export    DISPLAY=murmure:0Error:Can't open display: murmure:0

sur la machine murmure, il faut autoriser l'accès à la machine localexhost     +souffle

On peut tuer le serveur X par la combinaison de toucheCtrl­Alt­Backspace

 ProLibre                                                                            X11

Page 92: Formation Linux - Initiation

Exercices

● Afficher le programme  xeyes sur l'ordinateur voisin.

ProLibre                                                                            X11

Page 93: Formation Linux - Initiation

Quelques notions de réseau (1)Adresse IP:

exemple:  192.168.1.2Netmask: 

exemple: 255.255.255.0DNS ­ Domain name server

exemple: 192.168.1.1Gateway:

exemple: 192.168.1.1DHCP: les informations réseau sont assignés dynamiquement par un serveur ­ (provider Internet lors d'une connexion par modem)Informations sur le hostname 

hostname ­i  hostname ­dgetent hosts/sbin/ifconfig ­a/sbin/route ­n

ProLibre                                                              beaba du réseau

Page 94: Formation Linux - Initiation

Quelques notions de réseau (2)

 Quelques fichiers importants/etc/hosts/etc/resolv.conf/etc/network/*  ou  /etc/sysconfig/*/etc/init.d/*

Quelques programmes importantsdrakconflinuxconfyast2webmin

 Connexion à distancersh, telnet, sshftp, ncftp, scp

ProLibre                                                              beaba du réseau

Page 95: Formation Linux - Initiation

http:/ /www.prol ibre.com