La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

SYSTÈMES D'EXPLOITATION « OPEN SOURCE ». SOMMAIRE Installer et désinstaller des systèmes d'exploitation  Introduction au monde Gnu/Linux  Présentation.

Présentations similaires


Présentation au sujet: "SYSTÈMES D'EXPLOITATION « OPEN SOURCE ». SOMMAIRE Installer et désinstaller des systèmes d'exploitation  Introduction au monde Gnu/Linux  Présentation."— Transcription de la présentation:

1 SYSTÈMES D'EXPLOITATION « OPEN SOURCE »

2 SOMMAIRE Installer et désinstaller des systèmes d'exploitation  Introduction au monde Gnu/Linux  Présentation générale du système Gnu/Linux  Installation d’une distribution Gnu/Linux Adapter les systèmes en fonction des besoins particuliers  Environnement graphique sous Gnu/Linux (KDE)  Environnement graphique sous Gnu/Linux (GNOME) Effectuer les opérations de base concernant l’exploitation des fonctions du système d’exploitation.  Commandes Gnu/Linux de base  Les systèmes de fichiers sous Gnu/Linux  Utilisation du shell Bash  L’Editeur de texte vii Réaliser des tâches d’administration du système d’exploitation  Gestion des utilisateurs et de la séurité sous Gnu/Linux  Planification des tâches sous Gnu/Linux Installer une imprimante  Configuration de l’imprimante sous Gnu/Linux Protéger des données  Sauvegarde des données sous Gnu/Linux Gérer des paquetages  Installation d’applications sous Gnu/Linux Documenter les interventions effectuées. SYSTÈMES D'EXPLOITATION « OPEN SOURCE »

3 Effectuer les opérations de base concernant l’exploitation des fonctions du système d’exploitation

4 SOMMAIRE 1.Login et déconnexion 2.Arrêt et redémarrage du système 3.Pages de manuel 4.Opérations de base sur les répertoires 5.Notions sur les chemins Unix 6.Opérations de base sur les fichiers 7.Autres commandes utiles a.Gestion des liens b.Recherche de fichiers c.Recherche d'un texte dans un fichier d.Remplacement de texte dans les fichiers e.Compression et décompression des fichiers f.Archivage de fichiers g.Passage en mode superviseur h.Changement des droits des fichiers, du propriétaire et du groupe 8.vi, l'éditeur de fichiers de base 9.Utilisation du shell Bash SYSTÈMES D'EXPLOITATION « OPEN SOURCE »

5 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Linux est multi-utilisateurs  nécessité d'avoir un nom particulier aux yeux du système ("login") ainsi qu'un mot de passe pour la sécurité  2 types d'utilisateurs :  l'utilisateur "root" : super utilisateur -> possède tous les droits sur la machine  les autres utilisateurs (possèdent des droits restreints)  Chaque utilisateur est caractérisé par :  un nom ("login") et un numéro d'utilisateur ("UID")  un groupe et un numéro de groupe ("GID")  un mot de passe ("passwd")  un type de shell (= interpréteur de commandes)  un répertoire utilisateur qui lui appartient ("home directory") (Rq : toutes ces informations sont stockées dans le fichier /etc/passwd)  Les Utilisateurs

6 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Autres commandes utiles Saisie du nom d'utilisateur saisie du mot de passe type de session X (KDE ou gnome)

7 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  le mot de passe est personnel :  ne pas le divulguer  éviter les mots de passe triviaux (e.g. votre nom…)  utiliser des lettres (majuscules et/ou minuscules) et des chiffres (éventuellement des caractères spéciaux)  doit faire 8 lettres au minimum  Mot de passe

8 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE » On arrive sous l'environnement X-Windows (KDE ou gnome = interface graphique rendant l'interaction avec le système plus conviviale) :  L'environnement X-Windows ouverture d'un shell bouton de menu icône barre de tâches bureau

9 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE » L'arrêt du système est une opération qui est du ressort de l'administrateur. On ne peut donc le réaliser que sous le compte root. Plusieurs commandes sont disponibles, les plus simples sont données ci-dessous : halt, qui permet d'arrêter le système. reboot, qui permet de le redémarrer. logout exit CTRL+d Ces commandes sont en fait des scripts permettant d'effectuer les opérations d'arrêt et de redémarrage du système rapidement. Si elles ne sont pas disponibles sur votre distribution, vous devrez sans doute utiliser la commande générique suivante : shutdown [-r] now où l'option -r permet de demander un redémarrage et non un arrêt simple.  Déconnexion

10 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Il est également possible que votre gestionnaire de bureau vous donne le moyen d'arrêter l'ordinateur par l'intermédiaire de l'interface graphique. La technique à utiliser dépend évidemment de l'environnement que vous aurez installé  click droit sur "le bureau"  dans la barre de menu "logout"  Déconnexion

11 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Linux fournit, pour l'utilisateur local, plusieurs terminaux virtuels. Cela signifie qu'il est possible de se connecter plusieurs fois dans le système dans des terminaux différents.  Pour passer d'un terminal virtuel à un autre, il suffit de taper les combinaisons de touches ALT+DROITE ou ALT+GAUCHE, où DROITE et GAUCHE sont respectivement les flèches du curseur droite et gauche.  Il est également possible d'accéder à un terminal donné à l'aide de la combinaison de touches ALT+Fn, où Fn est l'une des touches de fonction F1, F2, F3, etc.  La plupart des distributions utilisent au moins quatre terminaux virtuels, plus un terminal X.  Pour basculer d’un terminal X vers les terminaux en mode texte on utilise la combinaison de touches CTRL+ALT+Fn.  Pour revenir au mode graphique, il faut en général utiliser la combinaison Alt+F7.  Les terminaux

12 Les opérations de base Login et déconnexion SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Afin de pouvoir accéder au terminal, vous devez au préalable vous identifier grâce à un couple login/mot de passe. En fonction de cela, vous aurez accès à plus ou moins de programmes sur le système. Un symbole de l'invite de commande vous permet de déterminer le type de compte que vous utilisez.  Accès simple utilisateur : [ user@localhost ~ ] $  Accès root : [ root@localhost ~ ] #  Les terminaux

13 Les opérations de base Le shell SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Le rôle du Shell est d'assurer la correspondance entre ce que l'utilisateur tape et le système. Il en existe de nombreuses versions. Le plus connus d'entre eux, bash est celui que nous utiliserons pendant ce cours.  Chacun des shells existant dispose de ses propres avantages et points faible. L'intérêt d'avoir un shell plutôt qu'un autre dépend des fonctionnalités offertes par celui-ci, et donc de l'utilisation que l'on souhaite en avoir.  Les principaux shells ainsi que leurs caractéristiques :  Bash (Bourne Again Shell) offre l'édition de la ligne de commande et le rappel des commandes précédentes  Csh (C Shell) développé à Berkeley, compatible avec le shell Bourne. Pas d'édition de la ligne de commande ni d'historique des commandes  Ksh (Korn Shell) offre l'édition de la ligne de commande (touches compatibles Emacs)  Sh le shell original, pas d'édition de la ligne de commande.  Tcsh version améliorée du csh, avec un support de l'édition de la ligne de commande avec correction des commandes tapées  Zsh shell similaire au Korn shell, avec plus de dynamisme lors des affichages et gère la non redondance des commandes.

14 Les opérations de base Le shell SYSTÈMES D'EXPLOITATION « OPEN SOURCE » invite ("prompt") le shell est prêt à recevoir des commandes rentrées au clavier

15 Les opérations de base Commandes internes et externes SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Le shell distingue deux sortes de commandes :  les commandes internes  les commandes externes.  commandes internes Une commande interne est une commande dont le code est implanté au sein de l’interpréteur de commande. Cela signifie que, lorsqu’on change de shell courant ou de connexion, par exemple en passant de bash au C-shell, on ne dispose plus des mêmes commandes internes. Exemples de commandes internes : cd, echo, for, pwd  Commandes externes Une commande externe est une commande dont le code se trouve dans un fichier ordinaire. Le shell crée un processus pour exécuter une commande externe. Parmi l’ensemble des commandes externes que l’on peut trouver dans un système, nous utiliserons principalement les commandes unix (ex : ls, mkdir, vi, sleep) Remarque : pour connaître le statut d’une commande, on utilise la commande interne type.

16 Les opérations de base Syntaxe générale des commandes UNIX SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  syntaxe générale : commande [options] [arguments] exemple : ls –al  Les options (souvent très nombreuses) permettent de modifier le comportement de la commande; en général elles sont précédées du signe '-' (e.g. ls -l)  Certaines commandes utilisent des arguments (e.g. nom de fichier)  IMPORTANT :  Linux est sensible à la casse ( a != A): ls != LS ou de Ls  Unix utilise l'espace comme séparateur de commandes (e.g. utiliser man date et non mandate)

17 Les opérations de base Utilisation de l'aide SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Sur un système Unix / Linux, la plupart des logiciels sont installés avec un manuel accessible par la commande man.  La syntaxe est la suivante : man fonction_ou_commande  La commande : man man donne des informations sur l'utilisation du manuel en général.  La commande man peut également être utilisée pour rechercher un terme dans l'ensemble des pages de manuel, grâce à l'option -K user@localhost $ man -K "disk space" Celle-ci me retourne : /usr/share/man/man1p/df.1p.gz? [ynq] Correspondant à une occurrence de "disk space" dans la liste des manuels disponibles sur le système.  Afin de se déplacer dans les résultats, les commandes suivantes sont disponibles :  y : Afficher le manuel du résultat  n : L'occurrence continue d'être recherchée dans la liste des manuels  q : Retour au shell  Les pages de manuel ou man pages

18 Les opérations de base Utilisation de l'aide SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Nous venons de voir qu'il était possible de connaître la définition d'une commande par le manuel de celle-ci, mais il est aussi possible d'en avoir un résumé via l'option --help  Aide simplifiée user@localhost $ df --help Usage: df [OPTION]... [FILE]... Show information about the filesystem on which each FILE resides, or all filesystems by default. Mandatory arguments to long options are mandatory for short options too. -a, --all include filesystems having 0 blocks -B, --block-size=SIZE use SIZE-byte blocks -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G) -H, --si likewise, but use powers of 1000 not 1024 -i, --inodes list inode information instead of block usage -k like --block-size=1K Celle-ci permet donc de voir rapidement ou encore de vérifier l'existence d'une option.

19 Les opérations de base La commande echo SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Affichage de texte brut La commande echo affiche les paramètres qui lui sont passés, sans modification. [ user@localhost ~ ] $ echo Hello World Hello World Pour les options de cette commande, elles sont simples, consultez la page de manuel. Caractère Effet \n Saut de ligne (newline) \b Retour arrière (backslash) \t Tabulation \c Pas de retour à la ligne (carriage) \\ Affiche \ \$ Affiche $

20 Les opérations de base La commande echo SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Affichage de variables d’environnement [ user@localhost ~ ] $ echo $HOME /home/user La commande echo reçoit en fait le texte /home/user, parce que l’interpréteur de commandes bash a réalisé une opération nommée “interpolation de variables” avant de procéder à l’exécution de la commande spécifiée. Une variable est un nom préfixé par le symbole $ Une seconde syntaxe est utilisable : [ user@localhost ~ ] $ echo ${HOME}_SWEET_HOME /home/user_SWEET_HOME Les accolades permettent de spécifier les caractères qui doivent être considérés comme faisant partie du nom de la variable

21 Les opérations de base La commande echo SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Bloquer l’interpolation Et comment faire pour afficher le symbole $ ? Plusieurs méthodes : [ user@localhost ~ ] $ echo \$HOME $HOME OU [ user@localhost ~ ] $ echo ‘$HOME’ $HOME Dans le premier exemple, on utilise le caractère d’échappement pour interdire l’interprétation d’un seul caractère. Dans le second, on masque l’ensemble de la chaîne à l’aide des quotes simples, le texte est donc passé sans modification à la commande echo

22 Les opérations de base Opérations de base sur les répertoires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  ls [options] [fichier] où fichier est le nom d'un fichier ou d'un répertoire que l'on désire lister. Si ce paramètre est absent, ls affichera tous les fichiers du répertoire courant.  Les principales options sont -l, qui permet d'afficher des informations étendues (notamment les propriétaires, les groupes, les droits, la taille et éventuellement les liens), et -a, qui permet d'afficher tous les fichiers, y compris les fichiers cachés (ceux dont le nom commence par un point).  pwd Permet d'afficher le chemin complet du répertoire courant (actif ) [ user@localhost ~ ] $ pwd /home/user

23 Les opérations de base Opérations de base sur les répertoires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  cd [chemin] où chemin est un chemin de répertoire Unix valide. Ce chemin est constitué des noms des répertoires et sous-répertoires successifs, séparés par des barres obliques « / ». Si aucun chemin n'est spécifié, cette commande change le répertoire courant pour le répertoire personnel de l'utilisateur cd ~ : Vous place dans le répertoire racine de l'utilisateur (souvent /home/nom_utilisateur) cd.. : Répertoire parent cd / : Répertoire racine cd rep : Vous place dans le répertoire nommé si celui ci est un répertoire enfant du répertoire actuel cd rep1/rep2 : Vous place dans rep2 qui se trouve lui même dans rep1 Exemple : Vous êtes dans le répertoire /home/autre/essai pour passer rapidement dans le répertoire sound qui et lui même dans le répertoire /etc cd /etc/sound

24 Les opérations de base Opérations de base sur les répertoires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  La commande mkdir (make directory) permet de créer un ou plusieurs répertoires, ou une arborescence complète. mkdir chemin où chemin est le chemin spécifiant le répertoire à créer. Si le chemin ne contient que le nom du répertoire à créer, celui-ci est créé dans le répertoire courant et devient donc un sous-répertoire. $ mkdir documents $ mkdir documents/texte documents/calcul documents/images La commande mkdir accepte un paramètre « -p » permettant de créer une arborescence. Dans l'exemple précédent, si je veux créer documents/texte et que documents n'existe pas, alors : $ mkdir -p documents/texte va créer à la fois documents et texte.

25 Les opérations de base Opérations de base sur les répertoires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  La commande rmdir (remove directory) supprime un ou plusieurs répertoires. Elle ne supprime pas une arborescence. Si des fichiers sont encore présents dans le répertoire, la commande retourne une erreur. Le répertoire ne doit donc contenir ni fichiers ni répertoires. rmdir rep 1 [rep 2 ]... [rep n ] $ cd documents $ rmdir texte/perso

26 Les opérations de base Opérations de base sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  La commande cp (copy) copie un ou plusieurs fichiers vers un autre fichier ou vers un répertoire. cp fic1 fic2 cp fic1 [fic2... ficn] rep1 Dans le premier cas, fic1 est recopié en fic2. Si fic2 existe, il est écrasé sans avertissement (sauf droit particulier). Dans le second cas, fic1, fic2 et ainsi de suite sont recopiés dans le répertoire rep1. Les chemins peuvent êtres absolus ou relatifs.  touch : permet de créer un fichier s'il n'existe pas, et s'il existe de modifier sa date d'accès et sa date de modification,  mv source destination Permet le déplacement des fichiers. où source est le nom du fichier source et destination est le nom du répertoire destination. Notez que mv est une commande très puissante, puisqu'elle permet également de déplacer des répertoires et de renommer des fichiers et des répertoires. Pour renommer un fichier ou un répertoire, il suffit d'indiquer le nouveau nom de ce fichier ou de ce répertoire à la place de destination

27 Les opérations de base Opérations de base sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  rm chemin où chemin est le chemin complet permettant d'accéder au fichier à supprimer. Il est possible de spécifier plusieurs fichiers à la commande rm. Dans ce cas, ils seront tous supprimés. rm est également capable de supprimer tous les fichiers d'un répertoire, ainsi que ses sous-répertoires. Dans ce cas, elle détruit toute une branche de l'arborescence du système de fichiers. Pour cela, il suffit d'utiliser l'option -rf (pour « récursif ») avant le chemin du répertoire à supprimer. Attention ! : La commande rm ne demande aucune confirmation avant de supprimer les fichiers ! Il peut être judicieux de forcer la commande rm à demander confirmation avant la suppression des fichiers, à l'aide de son option -i $ cd $ rm -rf documents

28 Les opérations de base Opérations de base sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  less fichier Vous aurez sans doute à afficher le contenu d'un fichier. Pour cela, la commande la plus appropriée est certainement la commande less Cette commande affiche le contenu du fichier et vous permet de le faire défiler avec les flèches du curseur. Lorsque vous désirez terminer la visualisation, il suffit de taper la touche q La commande less permet également d'effectuer une recherche dans le fichier en cours d'édition. Pour cela, il suffit de taper une commande de recherche de less. Cette commande commence par une barre oblique, suivie du texte à chercher. Par exemple, pour rechercher la chaîne de caractères « local » dans un fichier en cours de visualisation avec less, il suffit de taper : /local Lorsque vous voudrez rechercher l'occurrence suivante du motif de recherche, vous pourrez appuyer sur la touche n (pour « Next » en anglais). Pour rechercher l'occurrence précédente, il suffit de taper la touche N (en majuscule, cette fois).  more fichier Cette commande effectue à peu près le même travail que less, mais elle n'affiche le texte que page par page. - Pour passer à la page suivante, il faut appuyer sur la barre d'espace - utiliser la touche b pour revenir à la page précédente - utiliser la touche q pour quitter

29 Les opérations de base Autres commandes sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Comptage de lignes d'un fichier : wc  Synthaxe : wc [options] fichiers  options :  -c : compte le nombre de caractères uniquement  -l : compte le nombre de lignes uniquement  -w : compte le nombre de mots uniquement $ wc /etc/group 43 43 579 /etc/group  Exemple :

30 Les opérations de base Autres commandes sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Comparaison de deux fichiers : diff  Synthaxe : diff [options] fichier1 fichier2  comparaison (fichiers texte) ligne à ligne de fichier2 par rapport à fichier1  options :  -c : compte le nombre de caractères uniquement  -u : compte le nombre de lignes uniquement $ cat fichier1 option1 = texte1 option2 = texte2 option3 = texte3 cat fichier2 option1 = texte1 option2 = modification option3 = texte3 $ diff fichier1 fichier2 2c2 < option2 = texte2 --- > option2 = modification Traduction 2c2 : la ligne 2 de fichier2 est changée par rapport à la ligne 2 de fichier1  Exemple :

31 Les opérations de base Autres commandes sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Premières lignes d'un fichier : head  Synthaxe : head [-nombre] fichiers  Extrait les « nombre » premières ligne d'un fichier  « nombre » vaut 10 par défaut  Dernières lignes d'un fichier : tail  Synthaxe :  tail [-nombre] fichiers : affiche les n dernières lignes  tail [+nombre] fichiers : affiche de la nième ligne à la dernière  « nombre » vaut 10 par défaut

32 Les opérations de base Autres commandes sur les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Nature d'un fichier : file  Synthaxe : file fichiers  Détermine le type d'un fichier ou à quelle application elle correspond $ file *  Exemple :

33 Les opérations de base Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  ln [-s] source lien Permet de créer un lien. où source est le nom du fichier ou du répertoire source auquel le lien doit se référer, et lien est le nom du lien. L'option -s permet de créer un lien symbolique. Par défaut, ce sont des liens physiques qui sont créés. Rappelons qu'il est impossible de créer des liens physiques sur des répertoires. $ touch fic1 $ ln fic1 fic2 $ ls fic1 fic2 $ ls -l -rw-r--r-- 2 oracle system 0 Jul 25 11:59 fic1 -rw-r--r-- 2 oracle system 0 Jul 25 11:59 fic2 $ ls -i 484 fic1 484 fic2 L'exemple montre que les hard links n'ont pas de type particulier et sont considérés comme des fichiers ordinaires. On constate que chacun a 2 liens. Logique puisque deux fichiers pointent sur le même inode. Enfin nous voyons bien en résultat du ls -i que fic1 et fic2 ont le même inode, à savoir 484.  Gestion des liens

34 Les opérations de base Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  find répertoire -name nom –print Permet de rechercher des fichiers selon un critère donné dans toute une arborescence de répertoires. où répertoire est le répertoire à partir duquel la recherche doit commencer et nom est le nom du fichier à rechercher. Ce nom peut contenir des caractères génériques du shell, mais dans ce cas doit être placé entre guillemets afin d'éviter que ce dernier ne les interprète. Options les plus fréquentes : -name : Recherche d'un fichier par son nom -iname : Même chose que name mais insensible à la casse -type : Recherche de fichier d'un certain type -atime : Recherche par date de dernier accès -mtime : Recherche par date de dernière modification -print : demande à find d'afficher le résultat -exec : Exécute la commande donnée aux fichier trouvés -ok : Même chose que exec mais demande une confirmation  Recherche de fichiers

35 Les opérations de base Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE » find /home/ -name monfichier -print Recherche le fichier monfichier dans toute la descendance de /home/ find. -name "*.c" -print Recherche tous les fichiers ayant une extension.c find. -mtime -5 -print Recherche les fichiers du répertoire courant qui ont été modifiés entre maintenant et il y a 5 jours find /home/ -mtime -1 /! -type d -print Recherche uniquement les fichiers (! -type d signifie n'était pas un répertoire) ayant été modifiés ces dernières 24h find. ! -user root -print Affiche tous les fichiers n'appartenant pas à l'utilisateur root find -name "*.png" -exec ls -l {} \; trouve les fichiers au format png dans le dossier en cours et affichage du résultat par la commande ls -l  Exemples d'utilisation de find

36 Les opérations de base Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  grep texte fichiers La recherche d'une chaîne de caractères dans un ou plusieurs fichiers peut se faire à l'aide de la commande grep. Cette commande prend en premier paramètre le texte à rechercher, puis la liste des fichiers dans lequel ce texte doit être trouvé Le texte peut être placé entre guillemets si nécessaire (en particulier, s'il contient des espaces ou des caractères interprétés par le shell, comme * et ?). grep accepte un grand nombre d'options, qui ne seront pas décrites ici. Consulter les pages de manuel pour plus d'information à ce sujet. -c : Retourne le nombre de lignes au lieu des lignes elles mêmes -n : Retourne les lignes préfixées par leur numéro -i : Insensible à la casse -r : Recherche récursivement dans tous les sous-répertoires Exemple : grep -n montexte monfichier Retourne toutes les lignes ainsi que leur numéro ou montexte apparait dans monfichier  Recherche d'un texte dans un fichier

37 Les opérations de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Lors de l'utilisation de commandes en rapport avec le système de fichier, il peut devenir intéressant de filtrer la sortie de noms de fichiers à l'aide de certains critères, par exemple avec la commande ls. Au lieu d'afficher toute la liste des fichiers, on peut filtrer l'affichage à l'aide de divers critères et caractères spéciaux. Caractère spécial Rôle * Remplace une chaîne de longueur variable, même vide ? Remplace un caractère unique quelconque [ ] Une série ou une plage de caractères [!...] Inversion de la recherche Ainsi, ls a* : tous les fichiers commençant par a ls a?? : tous les fichiers de trois caractères commençant par a ls a??* : tous les fichiers d'au moins trois caractères et commençant par a ls [aA]* : tous les fichiers commençant par a ou A ls [a-m]?*txt : tous les fichiers commençant par les lettres de a à m, possédant au moins un second caractère avant la terminaison txt. C'est le shell qui est chargé d'effectuer la substitution de ces caractères avant le passage des paramètres à une commande Autres commandes utiles  Critères de recherche sur noms de fichier

38 Les opérations de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Si vous êtes prudent, vous avez sans doute créé un compte utilisateur juste après avoir installé votre système de base, et vous ne travaillez plus que dans ce compte. Cette technique est prudente, cependant, elle pose un problème évident : vous ne pouvez pas y faire votre travail d'administrateur. C'est pour cela que la commande su a été créée. Cette commande permet de changer son identité dans le système : su [utilisateur] où utilisateur est l'utilisateur dont on veut prendre l'identité. Par défaut, si aucun utilisateur n'est spécifié, le changement d'identité se fait vers l'utilisateur root. Bien entendu, il va de soi que la commande su demande le mot de passe avant d'obtempérer...  Passage en mode superviseur Autres commandes utiles

39 Les opérations de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Linux fournit un grand nombre de programmes de compression de fichiers. Le meilleur est sans doute bzip2, et le plus compatible sans doute compress. Cependant, le plus utilisé et le plus courant, surtout pour la distribution des sources, reste incontestablement gzip. Nous allons décrire brièvement comment compresser et décompresser des fichiers avec gzip et bzip2 dans ce paragraphe.  La compression d'un fichier se fait de manière élémentaire : gzip fichier où fichier est le fichier à compresser. Après avoir effectué son travail, gzip renomme le fichier compressé en « fichier.gz ».  La compression d'un fichier avec bzip2 utilise exactement la même syntaxe, à ceci près qu'il faut remplacer gzip par bzip2. De plus, le nom du fichier compressé porte l'extension.bz2 au lieu de.gz. Le fichier obtenu est donc nommé « fichier.bz2 ».  La décompression d'un fichier se fait à l'aide de la commande suivante : gunzip fichier.gz ou bunzip2 fichier.bz2  Compression et décompression des fichiers Autres commandes utiles

40 Les opérations de base Autres commandes utiles SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  La commande tar permet d'archiver ou de désarchiver des répertoires et des fichiers de façon optimale. Ce programme permet simplement de regrouper tous les fichiers qu'il doit archiver dans un seul fichier structuré en blocs  La compression d'un fichier se fait de manière élémentaire : tar options archive [fichiers] où options sont les options qui indiquent l'opération à effectuer et comment elle doit être réalisée, archive est le nom de l'archive qui doit être créée ou le nom du fichier de périphérique du d'archivage, et fichiers est la liste des fichiers à archiver.  La décompression d'un fichier se fait à l'aide de la commande suivante :  cvf pour créer une archive ;  tvf pour lister le contenu d'une archive ;  xvf pour restaurer le contenu d'une archive.  Par exemple, pour archiver le contenu du répertoire courant dans le fichier archive.tar, vous utiliserez la ligne de commande suivante : tar cvf archive.tar * De plus, pour extraire le contenu de l'archive archive.tar, vous utiliserez la commande suivante : tar xvf archive.tar  Archivage de fichiers

41 Les opérations de base vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Vous serez obligé, lorsque vous effectuerez la configuration de votre système, d'éditer les fichiers de configuration (classiquement, ces fichiers sont placés dans le répertoire /etc/). Ces modifications peuvent être réalisées avec n'importe quel éditeur a priori, et il est même conseillé d'utiliser votre éditeur favori. Cependant, il faut savoir se servir de vi, parce que c'est le seul éditeur qui sera toujours installé, et qui fonctionnera en toutes circonstances. Le prix à payer pour cette fiabilité est un nombre restreint de fonctionnalités. Pour éditer un fichier avec vi, il suffit de passer le nom de ce fichier en ligne de commande : vi fichier vi est un éditeur qui fonctionne dans plusieurs modes différents : mode insertion : ce qui est tapé est interprété comme du texte à insérer mode commande : ce qui est tapé est interprété comme une commande mode ex : ce qui est tapé est interprété comme une commande ex

42 Les opérations de base vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Changement de mode :  au démarrage, vi est en mode commande  pour passer en mode insertion, taper une commande d ’insertion, par exemple « i » (sans taper RETURN)  pour retourner en mode commande, taper ESC  pour passer en mode ex depuis le mode commande, taper « : »  Déplacement du curseur :  h : un caractère vers la gauche  j : une ligne vers le bas  k : une ligne vers le haut  l : un caractère vers la droite  G : dernière ligne  nG : nième ligne  w : début du mot suivant  b : début du mot précédant

43 Les opérations de base vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  insertion de texte :  a : ajoute du texte après la position courante  A : permet de placer le curseur en fin de ligne et de passer en mode insertion  i : ajoute du texte avant la position courante  o : crée une nouvelle ligne après la ligne courante  O : crée une nouvelle avant la ligne courante  Effacement de texte :  x : efface le caractère courant  dw : efface entre la position du curseur et le début du mot suivant  dG : efface entre la position du curseur et la fin du fichier  dd : efface la ligne courante  La suppression d'un caractère se fait avec la touche Suppr ou la touche de retour arrière (dite touche Backspace).  Les commandes de vi peuvent être répétées un certain nombre de fois, en spécifiant ce nombre avant de les écrire. Ainsi, pour supprimer 3 lignes, il suffira de taper la commande suivante : 3dd

44 Les opérations de base vi, l'éditeur de fichiers de base SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Déplacer et copier du texte :  yy : mémorise la ligne courante  Y$ : mémorise ce qui va du curseur à la fin de la ligne  p : insère le contenu mémorisé après la position courante  P : insère le contenu mémorisé avant la position courante  u : permet d'annuler la dernière opération effectuée  U : permet de la ré-exécuter.  Sortie de vi :  :q : quitte sans sauvegarder (mode ex)  :q! : force la sortie sans sauvegarder  :w : sauvegarde l ’édition courante dans un fichier (mode ex)  :wq : sauvegarde et quitte  :wq! : force la sauvegarde et quitte

45 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  User (l’utilisateur)  le propriétaire du fichier (User)  il est désigné par la lettre u  Group (groupe)  le groupe dans lequel appartient le propriétaire (Group)  il est désigné par la lettre g  Others (autres)  regroupe tous les utilisateurs qui ne sont ni le propriétaire ni faisant partir du même groupe que le propriétaire  ils sont désignés par la lettre o  Classes d'utilisateurs

46 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Pour chaque classe d'utilisateurs, il y a 3 types d'accès à un fichier donné :  Read (r) : en lecture  Write (w): en écriture  eXecute (x) : en exécution  Au niveau répertoire, ces droits signifient :  Read (r) : droit de lister les fichiers présents dans ce répertoire  Write (w): droit de créer ou de détruire un fichier qui s'y trouve  eXecute (x) : droit de traverser ce répertoire  3 types d'accès et les 3 classes d'utilisateurs, il y a donc 9 droits d'accès différents  Par exemple : -rwxr-x--- signifie :  qu'il s'agit d'un fichier régulier ( le 1er caractère est un tiret -)  que le propriétaire a tous les droits (ReadWriteExecute)  que les membres du groupe ont les droits de Lire  que les autres n'ont aucun droit, ni de lecture, ni d'écriture, ni d'exécution  Types d'accès

47 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Affichage des caractéristiques : ls -l -rw-r--r-- 1 stagiaire ofppt 58K 16 Jul 09:19 tp1.tex -rw-r--r-- type group nb liens propriétaire groupe taille date nom user others

48 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE » chmod | nnn classe: u : user g : group o : others a : all op: = : affectation - : suppr. + : ajout perm: r : lecture w : écriture x : exécution  Changer les permissions  chaque perm = 1 valeur:  déf. des permissions (par addition) pour chaque classe r4 w2 x1 rien0

49 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE » exemples: chmod u=rwx,g=rx,o=r tp1.tex chmod a+x script.sh chmod 755 script.sh  Changer les permissions

50 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  La commande umask ne change pas les droits sur les fichiers et répertoires existants mais sur les fichier et répertoires à créer  Par défaut, tous les fichiers créés ont comme droit 666 et les dossiers 777. l'umask est un masque qui va réduire ces droits.  Lors de la création d'un fichier, le système va soustraire l'umask aux droits par défaut.  Par l'umask est à 0022 on a donc 666 - 022 = 644.  Ainsi, dans certains cas, il est plus intéressant de changer la valeur de umask que de faire des chmod à répétition ensuite  Umask

51 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Le changement de propriétaire d'un fichier ne peut être réalisé que par l'administrateur du système. Cette opération se fait à l'aide de la commande suivante : chown utilisateur fichier où utilisateur est le nom de l'utilisateur qui doit devenir propriétaire du fichier, et fichier est le fichier devant changer de propriétaire.  Le changement de groupe peut être réalisé par n'importe quel utilisateur, mais on ne peut donner un fichier qu'à l'un des groupes dont on est membre. Cette opération se fait à l'aide de la commande suivante : chgrp groupe fichier où groupe est le nom du groupe qui doit être affecté au fichier, et fichier est le fichier devant changer de groupe. Bien entendu, l'administrateur peut affecter un fichier à n'importe quel groupe d'utilisateur.  Changement de propriétaire et de groupe

52 Les opérations de base Les droits d'accès spéciaux (étendus ) SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Lorsque vous exécutez une commande, celle-ci se lance avec votre uid. Cette commande aura donc accès seulement aux fichiers où vous possédez des droits.  Certaines commandes posent le problème suivant : pour s’exécuter, elles doivent donner des permissions qu’un utilisateur ne devrait normalement pas avoir. L’exemple le plus évident est celui de la commande « passwd » qui permet de modifier le mot de passe. Cette commande modifie le fichier « /etc/passwd » (ou le fichier « /etc/shadow ») qui contient entre autres les mots de passe cryptés de tous les utilisateurs, alors que l’utilisateur normal n’a pas les permissions d’écriture sur ce fichier.  $ ls -l /etc/passwd -rw-r--r-- 1 root system 4010 Jun 6 12:26 /etc/passwd  Nous voyons que ce fichier appartient à root, et que seul root peut y écrire.  Un utilisateur simple ne peut lire que son contenu sans interagir.  La commande passwd ne devrait donc pas pourvoir modifier les fichiers  Voyons la commande passwd (/bin/passwd ou /usr/bin/passwd) : $ ls -l /usr/bin/passwd -rws--x--x 3 root bin 16384 Apr 12 1999 /usr/bin/passwd

53 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  SUID : Un fichier dont le SUID bit est positionné est un fichier exécutable avec les droits de son propriétaire. -rwsr-xr-x  SGID : Un fichier dont le SGID bit est positionné est un fichier exécutable avec les droits du groupe de son propriétaire. -rwxr-sr--  Sticky bit :  Pour un répertoire, permet d’interdire la suppression des fichiers qu’il contient à tout utilisateur autre que le propriétaire. Néanmoins, il est toujours possible pour un utilisateur possédant les droits d’écriture sur ce fichier de le modifier.  Pour un fichier, le bit collant (sticky bit) indique alors que ce fichier doit encore rester en mémoire vive après son exécution. -rwxr-xr-t  Les droits spéciaux

54 Les opérations de base Les droits d'accès SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  La commande chmod permet de placer les SUID-Bit et SGID-Bit. chmod u+s commande chmod g+s commande Les valeurs octales sont 4000 pour le SUID-Bit et 2000 pour le SGID-Bit. chmod 4755 commande chmod 2755 commande  La commande chmod permet de placer le Sticky bit. chmod o+t fichier En octal, on utilisera la valeur 1000. chmod 1755 commande  Prenons comme exemple le répertoire /tmp. $ ls -ld /tmp drwxrwxrwx 6 root system 16384 Aug 14 13:22 tmp $ chmod o+t /tmp ou $ chmod 1777 /tmp $ ls -ld /tmp drwxrwxrwt 6 root system 16384 Aug 14 13:22 tmp  Les droits spéciaux

55 Gestion des utilisateurs et des groupes Les utilisateurs et les groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Le compte d'un utilisateur est représenté par le login et un mot de passe associé.  Les utilisateurs sont identifiés par le système grâce à un UID (identifiant d'utilisateur) unique qui est une valeur numérique.  Les informations sur les comptes utilisateurs disponibles sur une machine Unix sont regroupées dans le fichier /etc/passwd.  Chaque ligne de ce fichier correspond à un compte.  Une ligne est composée de 7 champs séparés par des :. Les champs sont les suivants : login:mot-de-passe:UID:GID:info-utilisateur:répertoire-principal:shell  Login : c'est l'identifiant que doit entrer l'utilisateur pour s'authentifier.  Mot de passe : il est évident que le mot de passe soit crypter  UID : il s'agit de l'identifiant unique de l'utilisateur ( root possède l'UID 0 et les UID inférieurs à 100 sont réservés aux comptes système )  GID : l'identifiant du groupe principal de l'utilisateur  Info utilisateur : des informations sur l'utilisateur. chaque information est séparée par une virgule (le nom complet, numéro de poste...).  répertoire personnel : Il s'agit du répertoire dans lequel sont stockés les fichiers appartenant à l'utilisateur. En général de la forme /home/login.  shell : c'est l'interpréteur de commandes qui sera lancé après l'authentification.  Le fichier /etc/passwd

56 SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Le fichier /etc/passwd est accessible à tout le monde. en effet, certaines commandes ont besoin de connaître la liste des utilisateurs ou la correspondance login/UID. La présence du mot de passe dans /etc/passwd, même crypté, pose un problème de sécurité. La solution à ce problème est de stocker les mots de passe dans un fichier différent : /etc/shadow. Pour garantir la sécurité, seul l'administrateur peut le lire. Une ligne dans le fichier /etc/shadow est composé de neuf champs séparés par le caractère :.  Login : c'est l'identifiant que doit entrer l'utilisateur pour s'authentifier.  Mot de passe : Une * dans ce champ indique le compte ne peut être connecté (cas du compte bin par exemple). Un mot de passe commençant par !! indique que le compte est verrouillé.  Age : Le nombre de jour écoulé depuis le 1er janvier 1970 et la date de mise à jour du mot de passe.  Période de changement : Le nombre minimum de jours entre deux changement de mots de passe. Un 0 indique que l'utilisateur peut changer le mot de passe à n'importe quel moment.  Durée de validité : Le nombre maximum de jours pendant lesquels le mots de passe est valide. La valeur 99999 indique que le mot de passe est toujours valide.  Durée de validité restant : Nombre de jours avant l'expiration.  Durée d'invalidation : Nombre de jour après l'expiration provoquant la désactivation du compte. Un champ vide indique qu'il n'y a aucune désactivation  Date d'expiration : Exprimée en nombre de jour depuis la date de référence (1/1/70)  Le fichier /etc/shadow Gestion des utilisateurs et des groupes Les utilisateurs et les groupes

57 Gestion des utilisateurs et des groupes Les utilisateurs et les groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Les Groupes Le fichier /etc/group contient les informations relatives au groupes présents sur le système. Voici sa syntaxe : groupe:*:GID:utilisateurs  groupe : le nom du groupe  * : la présence de ce champ est lié aux anciennes versions d'Unix et n'est plus utilisé. Il peut rester vide ou contenir le caractère "*" ou "x".  GID : c'est l'identifiant unique du groupe sous la forme d'une valeur numérique.  utilisateur : il s'agit de la liste des utilisateurs appartenant au groupe. Ils sont séparés par des virgules :

58 Gestion des utilisateurs et des groupes Commandes de gestion des utilisateurs SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Ajouter un utilisateur La commande useradd permet de créer un utilisateur : useradd [options] login  Suppression d'un utilisateur La commande userdel permet de supprimer un utilisateur : userdel [options] login L'option -r efface le répertoire personnel de l'utilisateur.

59 Gestion des utilisateurs Commandes de gestion des utilisateurs SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Changer le mot de passe d'un utilisateur La commande passwd permet de changer le mot de passe d'un utilisateur. L'administrateur peut changer n'importe quel mot de passe. Un utilisateur normal ne peut changer que son propre mot de passe. passwd [options] [login] Si l'argument login n'est pas spécifié, le changement de mot de passe s'applique sur l'utilisateur courrant.  Afficher des informations sur un utilisateur Pour connaître l'identité de l'utilisateur courant (bien que cela soit affiché dans la majorité des prompts par défaut) on utilise la commande whoami. Elle affiche le login de l'utilisateur courant. Les commandes who, users et w permettent de connaître les utilisateurs actuellement connectés sur la machine.

60 Gestion des utilisateurs Commandes de gestion des groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Créer un groupe La commande groupadd permet de créer un nouveau groupe : groupadd option groupe  Suppression d'un groupe Pour supprimer un groupe, on utilise la commande groupdel : groupdel GID Note: on ne peut pas supprimer un groupe si c'est le groupe principal d'un utilisateur.

61 Gestion des utilisateurs Commandes de gestion des groupes SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Modifier les groupes secondaires d'un compte Pour modifier les groupes secondaires d'un utilisateur, on utilise la commande usermod qui est similaire à useradd et supporte les mêmes options : # usermod -G toto,users,fileshare,dev toto Ceci permet d'ajouter l'utilisateur "toto" dans les groupes "toto", "users", "fileshare" et "dev". On peut aussi ajouter et enlever des utilisateurs d'un groupe grâce à la commande gpasswd (Consulter les pages de manuels pour voir les option de cette commande)  Afficher des informations sur les groupes Pour connaître les groupes auxquels appartient un utilisateur, on utilise la commande groups. Sans argument, elle affiche les groupes de l'utilisateur courant. Pour connaître les groupes d'un utilisateur particulier, il suffit de passer son login en argument de la commande : # groups # groups toto

62 Les systèmes de fichiers sous Gnu/Linux Présentation SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Une unité de stockage (disque dur interne ou externe, clé USB, CDROM, DVDROM, disquette, …), pour être utilisée par un ordinateur doit être formatée. Cela signifie qu'on doit lui assigner un système de fichiers, indiquant les caractéristiques possibles des répertoires et fichiers tels que le nom, la hiérarchisation, la taille maximale, les droits d'accès et d'autres options.  Rappel sur la désignation des partitions  Le système voit les périphériques au travers d'une arborescence située dans le répertoire système /dev/* dont la dénomination dépend du type de périphérique et de l'ordre de branchement. (exemples pour les périphériques de stockages: /dev/hda /dev/hdb /dev/sda /dev/sdb …)  Les partitions sont désignées par leur numéro dans le disque. (exmples : /dev/hda1 /dev/hda2 …)

63 Les systèmes de fichiers sous Gnu/Linux Création des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Pour chaque système de fichiers, une commande spécifique est fournie afin de le créer. Toutefois, une commande générique de création de systèmes de fichiers permet d'uniformiser la manière de créer les systèmes de fichiers, rendant ainsi inutile la connaissance de ces commandes spécifiques.  Cette commande générique est la commande mkfs. Elle prend en paramètre le type de système de fichiers à créer, que l'on peut spécifier à l'aide de l'option -t  Ainsi, pour créer un système de fichiers JFS (système de fichiers journalisé créé par IBM) sur la première partition du premier disque SCSI, il suffit d'exécuter la commande suivante : mkfs -t jfs /dev/sda1

64 Les systèmes de fichiers sous Gnu/Linux Montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Comme il l'a été vu dans le chapitre expliquant les généralités sur Unix, les systèmes de fichiers ne sont donc pas accessibles directement. Ils doivent en effet subir une opération que l'on nomme le montage avant de pouvoir être utilisés.  Le montage est donc l'opération qui consiste à associer un répertoire au point d'entrée d'un système de fichiers. Une fois monté, les données d'un système de fichiers sont accessibles à partir de ce répertoire  L'opération permettant de monter un disque suit la syntaxe suivante : mount [-t type] fichier base  fichier est le fichier contenant le système de fichiers à monter (en général, il s'agit d'un fichier spécial de périphérique )  base est le point de montage, c'est-à-dire le répertoire à partir duquel le système de fichiers doit être accédé  L'option -t permet d'indiquer le type du système de fichiers  Exemple : mount /dev/hda3 /dev/stock  Rq : Le type de fichier peut être détecté automatiquement par mount par une analyse des premiers bits de la partition demandée, néanmoins dans certains cas il peut être nécessaire de lui imposer un format.

65 Les systèmes de fichiers sous Gnu/Linux Démontage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Il est nécessaire de signaler au système d'exploitation que l'on désire arrêter un système de fichiers avant de couper le courant, ou que l'on désire retirer un lecteur amovible avant de le faire, afin qu'il puisse effectuer les synchronisations nécessaires. Ne pas le faire risquerait de provoquer des pertes de données irrémédiables. Cette opération s'appelle simplement le démontage.  La commande permettant de démonter un système de fichiers est beaucoup plus simple que celle permettant de les monter, car aucune option n'est nécessaire. Il suffit en effet d'exécuter l'une des commandes suivantes : umount fichier ou : umount base  fichier représente le fichier contenant le système de fichiers à démonter  base est le répertoire dans lequel ce système de fichiers est monté.  Rq : qu'il est impossible de démonter un système de fichiers qui est en cours d'utilisation par quelqu'un

66 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Sous Linux, toutes les partitions utilisées par le système doivent être listées dans /etc/fstab.  Fstab est un fichier de configuration qui contient les informations sur les partitions et les périphériques de stockages du système. C’est via ce fichier que l’on peut informer le système sur où et comment les partitions et les périphériques de stockages doivent être montés. C’est un simple fichier texte que l’on peut éditer avec son éditeur de texte préféré.  voici un exemple de fichier fstab : /dev/sda2 / ext2 defaults 1 1 /dev/sdb1 /home ext2 defaults 1 2 /dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0 /dev/fd0 /media/floppy auto rw,noauto,user,sync 0 0 proc /proc proc defaults 0 0 /dev/sda1 swap swap pri=42 0 0

67 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Colonne 1 : Nom du périphérique Linux utilise un système particulier pour nommer les périphériques. Le premier disque dur dans son ensemble est nommé /dev/sda, le second /dev/sdb. La première partition du premier disque dur est nommée /dev/sda1, la seconde /dev/sda2 etc… Pour les lecteurs de disques, le nommage est aussi simple. /dev/cdom ou /dev/dvd pour un lecteur de cdrom/dvd, /dev/fd0 pour un lecteur de disquette.  Colonne 2 : Les points de montage Comme expliqué plus haut, c’est le dossier par lequel on pourra accéder à la partition.  / : c’est la racine du système d’exploitation. C’est ici qu’on trouvera /bin, /etc, /home, /mnt etc…  /home : si vous utilisez une partition différente pour votre /home vous devez le renseigner ici.  /media/cdrom : le point de montage du lecteur optique. Lorsque vous insérez un cdrom, vous pourrez y acceder en lecture dans ce dossier.  /media/floppy : idem pour une disquette.

68 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Colonne 3 : Système de fichier On indique ici le type de FS de la partition concernée. Beaucoup de systèmes de fichiers sont supportés dont ext2, ext3, swap, vfat (pout le fat32), ntfs (pour ntfs en lecture seul) ntfs-3g (pour du ntfs en lecture écriture si le paquet ntfs-3g est installé sur votre machine) et bien d’autres. Lorsque auto est renseigné ici, cela signifie qu’on laisse le système détecter lui même le système de fichier. Ceci est particulièrement utilisé pour les cdroms et les disquettes  Colonne 4 : Les options  auto et noauto : Le système de fichier est (n’est pas) monté automatiquement au démarrage de la machine.  user et nouser : user permet aux utilisateurs normaux de monter le périphérique. nouser leur enlève cette possibilité.  exec et noexec : permet d’exécuter (ne pas exécuter) des binaires sur la partition concernée.  ro : montage en lecture seule.  rw : montage en lecture écriture.  sync et async : Les entrées sorties se font en mode synchrone / asynchrone.  defaults : utilise les options par défaut, c’est à dire rw,exec,auto,nouser,async.

69 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiersé SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Colonne 5 et 6 : option dump et fsck  Dump est un outil de sauvegarde et fsck un outil de vérification du système de fichier.  La cinquième colonne définie donc l’option de dump. Dump utilise ce chiffre pour savoir s’il doit faire un backup des données (1) ou pas (0).  La sixième colonne pour fsck. Il utilise ce chiffre pour savoir, sur un disque donné, dans quel ordre il doit effectuer les vérifications. Pour le système de fichiers racine, la valeur devrait être 1. Pour les autres systèmes de fichiers, la valeur devrait être 2 (ou 0 s'il n'est pas nécessaire de vérifier le système de fichiers).

70 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Monter ses partitions Windows  Préparer le montage d'une partition fat Le système de fichiers de type FAT (FAT 16 ou FAT 32) est utilisé par Windows 95/98/ME et parfois par Windows 2000/XP. Le pilote Linux pour ce type de système de fichiers permet d'y avoir accès en lecture et en écriture. Supposons que votre partition Windows de type FAT soit /dev/hda1 (première partition primaire sur le disque dur ide maître de la première nappe). Nous allons la monter dans le répertoire /mnt/win1 qu'il faut créer au préalable : # mkdir /media/win1 Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante : /dev/hda1 /media/win1 vfat defaults,user 0 0

71 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Monter ses partitions Windows  Préparer le montage d'une partition NTFS Le système de fichiers de type ntfs est souvent utilisé par Windows 2000, XP et Vista. Pour pouvoir lire et écrire sur ces systèmes, il faut d'abord installer un pilote particulier, ntfs-3g. Supposons que votre partition Windows de type ntfs soit /dev/sda1 (premier lecteur logique sur le premier disque dur sata). Nous allons la monter dans le répertoire /media/win2 qu'il faut créer au préalable : # mkdir /media/win2 Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante : /dev/sda1 /media/win2 ntfs-3g defaults,user 0 0 Note Le noyau Linux comporte déjà un pilote pour le système de fichiers ntfs, mais celui-ci ne permet pas de créer de nouveaux fichiers. ntfs-3g, qui est un pilote qui permet un accès complet en lecture et en écriture.

72 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Monter les partitions Vous avez rajouté les entrées nécessaires dans le fichier /etc/fstab : vos partitions Windows seront donc dorénavant montées automatiquement dès le démarrage. Mais pour éviter de redémarrer, vous allez simplement demander au système de monter les partitions citées dans fstab et non déjà montées avec la commande suivante : # mount -a Si aucun message d'erreur n'apparaît, vous devez maintenant pouvoir voir le contenu de votre ou vos partition(s) Windows dans l'arborescence de votre système.

73 Les systèmes de fichiers sous Gnu/Linux Configuration du montage des systèmes de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Monter sa clé usb  Si vous avez une clé usb (ou n'importe quel périphérique compatible avec la norme de stockage de masse usb), commencez par créer le répertoire dans lequel vous monterez la clé : # mkdir /media/clef0  Identifiez le nom de périphérique correspondant à votre clef usb : affichez la liste des partitions disponibles avec la commande cat /proc/partitions, puis introduisez votre clef, et, après quelques secondes, affichez à nouveau le contenu de /proc/partitions, dans lequel votre clef à dû apparaître.  Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante : /dev/sda6 /media/clef0 vfat defaults,user 0 0  Vous pouvez alors monter votre clé usb : # mount /media/clef0 Attention N'oubliez pas de démonter votre clé usb avant de la débrancher, sous peine de corrompre les données qui y sont stockées : umount /media/clef0

74 Contrôle des processus Définition et environnement SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Un processus représente à la fois un programme en cours d'exécution et tout son environnement d'exécution (mémoire, état, identification, propriétaire, père...).  Durant sa vie (temps entre le lancement et la sortie) un processus peut passer par divers états ou process state :  Actif: le processus utilise le processeur et est donc en train de réaliser des actions pour lequel il a été conçu.  Exécutable : le processus est en exécution mais il est en attente de libération du processeur qui est utilisé par un processus actif. Pour l'utilisateur, ceci est invisible car l'opération est très rapide.  Endormi: comme son nom l'indique, le processus est endormi, il ne fait rien. Par exemple, un processus peut attendre un événement pour redevenir Actif, comme par exemple, que l'on appuie sur une touche lors de l'affichage d'un message.  Zombie: un processus zombi est un processus terminé mais le système ou le processus parent n'en a pas été informé  le système étant multi-tâches un certain nombre de processus tournent déjà sur la machine sans que nous le voyons. De même le shell que nous utilisons est lui- même un processus. Quand une commande est saisie, le shell créé un nouveau processus pour l'exécuter, ce processus devient un processus enfant du shell

75 Contrôle des processus Liste des processus SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  La commande ps (process status) permet d'avoir des informations sur les processus en cours. Lancée seule, elle n'affiche que les processus en cours lancés depuis l'utilisateur et la console actuels : $ ps PID TTY TIME CMD 2663 pts/2 00:00.00 bash 7082 pts/2 00:00.00 ps  Pour avoir plus d'informations, on peut utiliser l'option -f. $ ps -f UID PID PPID C STIME TTY TIME CMD root 2663 2656 0 jan08 pts/2 00:00.00 /bin/bash root 7198 2663 0 03:20 pts/2 00:00.00 ps -f  Colonne Définition UID User ID, nom de l'utilisateur PID Process ID, numéro du processus PPID Parent Process ID, numéro du processus père C Facteur de priorité, plus la valeur est grande plus la priorité est élevée STIME Heure de lancement du processus TTY Nom du terminal depuis lequel le processus a été lancé. TIME Durée de traitement du processus CMD Commande exécutée

76 Contrôle des processus Options de la commande ps SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Les options les plus utiles sont :  a : ( autres ) présente également les processus des autres utilisateurs  x : affiche les processus qui n’ont pas de terminal de contrôle (système)  u : présente le nom de l’utilisateur et l’heure de lancement  ps –aux : affiche tous les processus d’un système  La commande pstree permet d’afficher les processus sous forme d’arborescence  La commande top : outil semi-graphique présentant un grand nombre d’informations en temps réel sur les processus... Liste des processus Autres commande d’affichage des processus

77 Contrôle des processus Arrière plan / Avant plan SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Lorsque vous lancez un programme, le shell prend en compte l'exécution du processus, ainsi il faut attendre la fin de celui-ci avant d'avoir à nouveau le prompt. On dit que le processus est en "Avant Plan" dans cet état il peut recevoir directement des signaux par les combinaisons de touches Ctrl-?.  Il existe un autre mode dans lequel le processus est dit en "Arrière plan", contrairement au mode "Avant Plan" lors de l'exécution du programme, le shell affiche le prompt directement sans attendre la fin du processus.  Afin de mettre le processus dans ce mode il suffit de placer un "&" à la fin de la commande, il est ainsi vu comme un job possédant un numéro, attaché au terminal (tty) ou pseudo terminal (pts/?) dans lequel il a été lancé. Dans cet état aucun caractère de contrôle (Ctrl-?) n'est possible.

78 Contrôle des processus Arrêt d'un processus / signaux SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Lorsqu'un processus tourne en tâche de fond il ne peux pas être arrêté par une quelconque combinaison de touches. Pour cela il faut employer la commande kill. Contrairement à ce que son nom semble indiquer, le rôle de cette commande n'est pas forcément de détruire ou de terminer un processus mais d'envoyer des signaux aux processus.  Le signal est l'un des moyens de communication entre les processus. Lorsqu'on envoie un signal à un processus, ce dernier doit l'intercepter et réagir en fonction de celui-ci. Les signaux sont numérotés et nommés. kill -Num_signal PID [PID2...] où signal est une option qui permet de préciser le signal qui doit être envoyé, et PID est le numéro du processus qui doit le recevoir. Les numéros de signaux les plus importants sont décrits dans le tableau ci-dessous : Numéro de signalSignification 15Signal de terminaison de processus. 9Signal de destruction inconditionnelle de processus. 19Signal de suspension de processus. 18Signal de reprise d'exécution d'un processus suspendu.

79 Contrôle des processus Arrêt d'un processus / signaux SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Tout processus lancé en ligne de commande peut être arrêté immédiatement sous Linux. Pour cela, deux méthodes sont disponibles.  La première consiste à taper la combinaison de touches CTRL+C lorsque le processus est en cours d'exécution interactive (c'est-à-dire lorsqu'il n'a pas été lancé en arrière-plan). S'il a été lancé en arrière-plan, on peut soit le ramener en avant-plan (avec la commande fg, que l'on verra plus loin) avant d'utiliser CTRL+C,  soit lui envoyer le signal de terminaison à l'aide de la commande kill vue précédemment. Dans le cas d'une ligne de commande, le signal de terminaison est transmis au processus maître de la ligne de commande, et est ensuite propagé à l'ensemble des processus fils de ce processus. Cela signifie que tous les processus invoqués dans le cadre de cette commande sont également arrêtés

80 Contrôle des processus Gel d'un processus SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Il est possible de « geler » un processus en cours d'exécution, c'est-à-dire de le suspendre, sans pour autant l'arrêter définitivement. Cela peut être utilisé pour libérer un peu les capacités de calcul, lorsque ce processus consomme trop de ressources par exemple. Pour cela, deux méthodes sont possibles :  soit on utilise la combinaison de touches CTRL+Z, lorsque le processus est en avant-plan ;  soit on envoie le signal 19 au processus (signal « STOP ») à l'aide de la commande kill.

81 Contrôle des processus Relancement d'un processus SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Un processus suspendu peut être relancé soit en avant-plan, soit en arrière-plan.  Pour relancer un processus en avant-plan, il faut utiliser la commande fg, qui est l'abréviation de l'anglais « foreground », Cette commande s'utilise de la manière suivante : fg [PID] où PID est le PID du processus à relancer en avant-plan. Si ce paramètre n'est pas spécifié, le dernier processus stoppé sera relancé en arrière-plan  Pour lancer un processus en arrière-plan, il faut utiliser la commande bg, qui est l'abréviation de l'anglais « background ». Cette commande s'utilise de la même manière que la commande fg : bg [PID]  Le relancement d'un processus suspendu peut également se faire en lui envoyant le signal 18 à l'aide de la commande kill.

82 Contrôle des processus SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Prenons un exemple, vous devez avoir sur vôtre système une commande yes, qui ne fait rien d'autre que d'afficher des Y à l'écran : Testez la : # yes  Interrompez son exécution avec la combinaison des touches [ Ctrl ]+[ C ]  Maintenant nous redirigeons son affichage, dans le néant (vers null part ?). # yes > /dev/null Mais l'invite ne réapparaît pas ?...Alors : [ Ctrl ]+[ C ] pour stopper l'exécution.  Utilisons le processus en tâche de fond pour yes. # yes > /dev/null & Maintenant yes s'exécute en tâche de fond.  Pour vérifier cela : # ps ou # jobs Le chiffre [1] est le numéro de job suivi du numéro du pid (process id), ce numéro varie en fonction du nombre de processus déjà lancés.  Pour arrêter l'exécution de yes, il faut utiliser la commande kill avec le numéro de pid correspondant à l'application qui s'exécute en tâche de fond et que l'on veut stopper. # kill PID  Vérifiez : # jobs ou ps  Relancez yes. # yes > /dev/null  Et pour récupérer l'invite ?... Nous n'allons pas stopper l'exécution mais seulement la suspendre, avec [ Ctrl ]+[ Z ].  Pour continuer l'exécution de yes : # fg  Suspendons la de nouveau avec [ Ctrl ]+[ Z ].  Nous allons la relancer cette fois en tâche de fond : # bg  Voilà vous pouvez vérifier : # jobs ou # ps  Stopper l'exécution de yes avec [ Ctrl ]+[ C ] ou kill. Exemple :

83 Redirections Présentation SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Un processus Unix possède par défaut trois voies d’interaction avec l’extérieur appelées entrées / sorties standard identifiées par un entier positif ou nul appelé descripteur de fichier. Ces entrées / sorties standard sont :  une entrée standard (stdin), de descripteur 0  une sortie standard (stdout), de descripteur 1  une sortie standard (stderr) pour les messages d’erreurs, de descripteur 2.  Toute commande étant exécutée par un processus, nous dirons également qu’une commande possède trois entrées / sorties standard.  De manière générale, une commande de type filtre (ex : cat) prend ses données sur son entrée standard qui correspond par défaut au clavier, affiche ses résultats sur sa sortie standard, par défaut l’écran, et affiche les erreurs éventuelles sur sa sortie standard pour les messages d’erreurs, par défaut l’écran également.

84 Redirections Redirections élémentaires SYSTÈMES D'EXPLOITATION « OPEN SOURCE » On peut rediriger séparément chacune des trois entrées/sorties standard d’une commande. Cela signifie qu’une commande pourra :  lire les données à traiter à partir d’un fichier et non du clavier de l’utilisateur  écrire les résultats ou erreurs dans un fichier et non à l’écran.  Redirection de la sortie standard : > fichier ou 1> fichier On se sert du caractère « > » pour rediriger la sortie standard (celle qui va normalement sur écran).On indique ensuite le nom du fichier où seront placés les résultats de sortie. Ex : $ pwd /home/etudiant $ pwd > fich $ => aucun résultat affiché à l’écran ! $ cat fich => le résultat a été enregistré dans le fichier fich /home/etudiant

85 Redirections Redirections élémentaires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Redirection de la sortie standard : Pour concaténer (c’est à dire ajouter à la fin) la sortie standard d'une commande au contenu d'un fichier, une nouvelle forme de redirection doit être utilisée : >> fichier Ex : $ pwd /home/etudiant $ pwd > fich $ $ date >> fich $ cat fich /home/etudiant mer jan 14 17:22:27 UTC 2010

86 Redirections Redirections élémentaires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Redirection de la sortie standard pour les messages d'erreur : 2> fichier Par défaut les messages d'erreur s'affichent à l'écran (sortie standard par défaut). On peut sauvegarder dans un fichier les messages d'erreur, pour analyse ultérieure Ex : $ rmdir dossier2 rmdir: `dossier2': No such file or directory $ rmdir dossier2 2>error.log $ $ cat error.log rmdir: `dossier2': No such file or directory Comme pour la sortie standard, il est possible de concaténer la sortie standard pour les messages d’erreur d'une commande au contenu d'un fichier : 2>> fichier

87 Redirections Redirections élémentaires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Redirection de la sortie standard pour les messages d'erreur : 2> fichier Pour rediriger la sortie standard pour les messages d’erreur vers la sortie standard (c.a.d vers le fichier de descripteur 1), on utilisera la syntaxe : 2>&1 Cela est souvent utilisé lorsqu’on désire conserver dans un même fichier toutes les sorties. Ex : $ ls vi test >trace 2>&1 $ cat trace ls: vi: Aucun fichier ou répertoire de ce type test La sortie standard est redirigée vers le fichier trace puis la sortie standard pour les messages d’erreur est redirigée vers la sortie standard, c.-à-d. également vers le fichier trace.

88 Redirections Redirections élémentaires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Redirection de la sortie standard pour les messages d'erreur : 2> fichier Ex : $ ls vi test &> trace $ cat trace ls: vi: Aucun fichier ou répertoire de ce type test La syntaxe &> fichier est équivalente à la syntaxe > fichier 2>&1 Attention : Les redirections étant traitées de gauche à droite, l’ordre des redirections est important. Que fait la commande : ls vi test 2>&1 > trace

89 Redirections Redirections élémentaires SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Redirection de l'entrée standard : < fichier Un exemple avec la commande wc (word count) qui permet de compter le nombre de lignes, de mots et de caractères d'un fichier. $ wc < resultat.txt 4 29 203 Les commandes qui attendent des données ou des paramètres depuis le clavier peuvent aussi en recevoir depuis un fichier, à l'aide du caractère <. On peut aussi utiliser à la fois les deux types de redirection. Ex : $ wc compte.txt $ cat compte.txt 4 29 203

90 Redirections Les tubes (pipes) SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Le mécanisme de tube ( symbolisé par le caractère | ) permet d’enchaîner l’exécution de commandes successives en connectant la sortie standard d’une commande à l’entrée standard de la commande suivante : commande stdin stdout stderr commande stdin stdout stderr Ex 2 : ls -l /bin | more les informations affichées par ls -l sont envoyées vers l’entrée de la commande more qui les affiche écran par écran. Ex 1 : combien de fichiers dans le rep. courant ? sans pipe: ls > temp ; wc -l < temp ; rm temp avec un pipe: ls | wc -l

91 Redirections Pipelines SYSTÈMES D'EXPLOITATION « OPEN SOURCE » On appelle pipeline, une suite non vide de commandes connectées par des tubes : cmd1 |... | cmdn Chaque commande est exécutée par un processus distinct, la sortie standard de la commande cmdi-1 étant connectée à l’entrée standard de la commande cmdi. Ex 1 : ls -l /bin | more $ date | tee trace1 trace2 | wc -l 1 $ cat trace1 mer jan 14 17:22:27 UTC 2010 $ cat trace2 mer jan 14 17:22:27 UTC 2010 La commande unix tee écrit le contenu de son entrée standard sur sa sortie standard tout en gardant une copie dans le ou les fichiers dont on a passé le nom en argument. Dans l’exemple ci-dessus, tee écrit le résultat de date dans les fichiers trace1 et trace2 ainsi que sur sa sortie standard, résultat passé à la commande wc -l. Ex 2 ls -l /etc | grep csh | sort

92 Redirections Insertion de documents SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Il existe un opérateur de redirection, qui n'est utilisé en pratique que dans les scripts shell. Cet opérateur permet d'insérer directement un texte complet dans le flux d'entrée standard, sans avoir à placer ce document dans un fichier à part. Cette technique permet donc de stocker des données avec le code des scripts shell, et de n'avoir ainsi qu'un seul fichier contenant à la fois le script et ses données. Cet opérateur est l'opérateur '<<', il s'utilise selon la syntaxe suivante : <<EOF texte... EOF où texte est le contenu du texte à insérer, et EOF est un marqueur quelconque qui sera utilisé seul sur une ligne afin de signaler la fin du texte.

93 Redirections Insertion de documents SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Par exemple, il est possible de créer un fichier test.txt de la manière suivante : cat test.txt Ceci est un fichier texte saisi directement dans le shell. On peut écrire tout ce que l'on veut, et utiliser les fonctions d'éditions de ligne du shell si l'on veut. Pour terminer le fichier, il faut taper le mot "fin" tout seul, au début d'une ligne vide. fin

94 Redirections La commande tee SYSTÈMES D'EXPLOITATION « OPEN SOURCE » La commande tee est un petit programme permettant d'enregistrer les données qu'il reçoit dans son flux d'entrée standard dans un fichier et de les renvoyer simultanément vers son flux de sortie standard. Elle est couramment utilisée, en conjonction avec les tubes, pour dupliquer un flux de données. Sa syntaxe est la suivante : tee fichier où fichier est le nom du fichier dans lequel le flux d'entrée standard doit être enregistré Ex : Supposons par exemple que l'on désire rediriger tous les messages (d'erreur ou non) de la commande ls /proc/ dans un fichier result.txt, tout en continuant à les visualiser sur l'écran. Pour cela, on utilisera la commande suivante : ls -l /proc 2>&1 | tee result.txt Voir le man !!

95 Redirections La commande xargs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » La commande xargs permet d'appeler une autre commande, en passant en paramètre les données qu'elle reçoit dans le flux d'entrée standard. Sa syntaxe est la suivante : xargs commande où commande est la commande que xargs doit exécuter. xargs construira une ligne de commande complète pour cette commande, en utilisant comme paramètres les données issues du flux d'entrée standard. Une fois cette ligne de commande construite, xargs l'exécutera Par exemple, la commande suivante : ls -l peut être exécutée également de la manière suivante : xargs ls et en tapant la chaîne de caractères « -l » suivie du caractère de fin de fichier CTRL+D. Ex : find / -name "*.txt" | xargs grep -l "test" Cette commande est plus simple et plus efficace que la commande équivalente : find / -name "*.txt“ -exec grep -l "test" {} \; parce que grep n'est exécuté qu'une seule fois (alors que l'option -exec de la commande find l'exécute pour chaque fichier trouvé).

96 Les filtres Recherche de lignes SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : $ grep -i ^[o] fichier1  grep Il s'agit d'extraire des lignes d'un fichier selon divers critères, la syntaxe de la commande grep est : grep [Options] modèle [Fichier1...]  Le modèle se compose de critères de recherche  Les options les plus utiles sont :  -v effectue la recherche inverse : toutes les lignes ne correspondant pas aux critères sont affichées  -c ne retourne que le nombre de lignes trouvées sans les afficher  -i ne différencie pas les majuscules et les minuscules  -n indique le numéro de ligne pour chaque ligne trouvée  -l dans le cas de fichiers multiples, indique dans quel fichier la ligne a été trouvée.

97 Les filtres Colonnes et champs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : $ cat liste Produit prix quantites souris 30 15 disque 100 30 ecran 300 20 clavier 45 30  Colonnes La syntaxe est la suivante : cut -cColonnes [fic1...]  Le format de sélection de colonne est le suivant :  La numérotation des colonnes démarre à 1.  une colonne seule, (ex -c2 pour la colonne 2)  une plage (ex -c2-4 pour les colonnes 2, 3 et 4)  une liste de colonnes (ex -c1,3,6 pour les colonnes 1, 3 et 6)  les trois en même temps (ex -c1-3,5,6,12-) La commande cut permet de sélectionner des colonnes et des champs (découpage vertical) dans un fichier. $ cut -c1-5 liste Produ souri disqu ecran clavi $ cut -c1-3,10-12,15 liste Prorx quantites sou0 15 dis0 30 ecr0 20 cla530

98 Les filtres Colonnes et champs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex 1 : $ cat liste Produit prix quantites souris 30 15 disque 100 30 ecran 300 20 clavier 45 30 carte 45 30  Champs La syntaxe est la suivante : cut -dc -fChamps [fic1...] La commande cut permet aussi de sélectionner des champs. Ces champs doivent être par défaut délimités par une tabulation, mais l'option -d permet de sélectionner un autre caractère (espace, ;...). La sélection des champs est identique à celle des colonnes. Leur numérotation démarre à 1. $ cut -f1 liste Produit souris disque ecran clavier carte $ cut -f1,3 liste Produit quantites souris 15 disque 30 ecran 20 clavier 30 carte 30 Ex 2 : $ cut -d: -f1,3 /etc/group

99 Les filtres Compter les lignes SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : $ wc liste 12 48 234 liste Le fichier liste contient 12 lignes, 48 mots et 234 caractères. La commande wc (word count) permet de compter les lignes, mots et caractères. wc [-l] [-c] [-w] fic1  -l : compte le nombre de lignes  -c : compte le nombre d'octets  -w : compte le nombre de mots Voir le man !!

100 Les filtres Tri de lignes SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : Soit le fichier carnet-addresse suivant : ali:29:02:rabat said:13:04:casablanca nabil:75:01:fes rachid:92:03:kénitra La commande sort permet de trier des lignes. Par défaut le tri s'effectue sur tout le tableau et en ordre croissant. Le tri est possible sur un ou plusieurs champs. Le séparateur de champs par défaut est la tabulation ou au moins un espace. S'il y a plusieurs espaces, le premier est le séparateur, les autres des caractères du champ. La numérotation des champs démarre à 0. sort [options] [+pos1 [-pos2]...] [fic1...] +pos1 est le premier champ, -pos2 le dernier.  -n : Tri numérique, idéal pour le colonnes de chiffres  -f : Pas de différences entre majuscules et minuscules (conversion en minuscules puis tri)  -r : Reverse, tri en ordre décroissant.  -t : utiliser pour indiquer le caractère qui sépare les champs (par défaut c’est l’espace)  +N : trier à partir du N ième champs Sort -t: carnet-addresse Sort -t: +3 carnet-addresse Sort -t: -n +1 carnet-addresse Sort -t: +1 -2 carnet-addresse

101 Les filtres Remplacement de caractères SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex :  Pour remplacer le : par un #, du fichier carnet-addresse : tr ":" "#" < carnet-addresse cat carnet-addresse | tr ":" "#"  Pour remplacer les minuscules par des majuscules : tr [a-z] [A-Z] < carnet-addresse  Pour remplacer le o par le e et le i par le a. cat carnet-addresse | tr "oi" "ea" La commande tr permet de substituer des caractères à d'autres : tr [options] original destination L'original et la destination représentent un ou plusieurs caractères. Les options sont les suivantes : -c : Les caractères qui ne sont pas dans la chaîne d'origine sont convertis selon les caractères de la chaîne de destination -d : destruction des caractères appartenant à la chaîne d'origine -s : si la chaîne de destination contient une suite contiguë de caractères identiques, cette suite est réduite à un caractère unique Voir le man !!

102 Les filtres Extraction de lignes communes de deux fichiers : comm SYSTÈMES D'EXPLOITATION « OPEN SOURCE » La commande comm permet de sélectionner les lignes entre deux fichiers : comm [-123] fic1 fic2  1 : lignes de fic1 (  fic2)  2 : lignes de fic2 (  fic1)  3 : lignes communes Comparer deux fichiers : cmp La commande cmp indique si deux fichiers sont identiques. En tapant : cmp fichier1 fichier2 Si les deux sont identiques, la commande ne génère aucune sortie, s'ils sont différents la commande indique la position de la première différence (ligne et caractère), avec une sortie du genre : fichier1 fichier2 differ : char 34, Line2 Voir le man !!

103 Les filtres Edition des différences entre deux fichiers : diff SYSTÈMES D'EXPLOITATION « OPEN SOURCE » La commande diff permet de rechercher les différences entre deux fichiers. La syntaxe est la suivante : diff fichier1 fichier2 diff fait en sorte de vous donner des indications pour que le fichier1 soit identique au fichier2 Commande : uniq La commande uniq détruit les lignes consécutives dupliquées uniq [-options] fichier1  -u : affiche les lignes "uniques"  -d : affiche les lignes "dupliquées" Voir le man !!

104 Les commandes grep et find Les expressions régulières SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Les expressions régulières sont des suites de caractères permettant de faire des sélections. Elles fonctionnent avec certaines commandes comme grep. Les différentes expressions régulières sont :  ^ début de ligne . un caractère quelconque  $ fin de ligne  [...] plage de caractères permis  [^...] plage de caractères interdits Exemple :  ^a va identifier les lignes commençant par le caractère a.  a$ va identifier les lignes se terminant par le caractère a.  ^chaine$ identifie les lignes qui contiennent strictement la chaîne chaine.  ^$ identifie une ligne vide  [a–z] retrouve n’importe quelle lettre en minuscule  [A–Z] retrouve n’importe quelle lettre en majuscule  [0–9] retrouve n’importe quel chiffre  [aeiouAEIUO] retrouve n’importe quelle voyelle  [ˆaeiouAEIOU] retrouve n’importe quel caractère sauf une voyelle

105 Les commandes grep et find SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Commande : grep La commande grep permet de rechercher une chaîne de caractères dans un fichier. Les options sont les suivantes : grep [options] modèle fichier1  -v : affiche les lignes ne contenant pas la chaîne  -c : compte le nombre de lignes contenant la chaîne  -n : chaque ligne contenant la chaîne est numérotée  -x : ligne correspondant exactement à la chaîne  -l : affiche le nom des fichiers qui contiennent la chaîne Voir le man !! Exemple avec le fichier carnet-adresse : grep ^[a-d] carnet-addresse

106 Les commandes grep et find SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Commande : find La commande find de retrouver des fichiers à partir de certains critères. La syntaxe est la suivante : find Les critères de recherche sont les suivants :  -name recherche sur le nom du fichier,  -perm recherche sur les droits d'accès du fichier,  -links recherche sur le nombre de liens du fichier,  -user recherche sur le propriétaire du fichier,  -group recherche sur le groupe auquel appartient le fichier,  -type recherche sur le type (d=répertoire, c=caractère, f=fichier normal),  -size recherche sur la taille du fichier en nombre de blocs (1 bloc=512octets),  -atime recherche par date de dernier accès en lecture du fichier,  -mtime recherche par date de dernière modification du fichier,  -ctime recherche par date de création du fichier. Voir le man !! Exemple : find / -size 2000 -print (2000 blocs de 512Ko) find / -type f -user etudiant -perm 755 -print

107 Outils divers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Espace disque et mémoire  La commande df (disk free) permet d’afficher à l’écran la taille de l’espace disque occupée et la taille de l’espace disque libre. Ce n’est pas lisible, puisque la taille des données est affichée en octet. On utilise alors l’option -h  La commande du (disk usage) permet d’afficher la taille d’un répertoire et de tous les sous répertoires récursifs qu’il contient Évidemment comme pour la commande df, la taille occupée est en octet, on utilise donc l’option -h. Voir le man !!

108 Exercices Contenu de répertoires et de fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 1 1.Déterminer le répertoire par défaut dans la hiérarchie des répertoires? 2.Y a t-il des fichiers, des répertoires dans ce répertoire? 3.Entrer du texte dans un fichier nommé "Mon_fichier". 4.Lister le contenu de "Mon_fichier". 5.Lister le répertoire courant. 6.Lister les répertoires /bin et /dev. 7.Créer sous votre répertoire deux sous-répertoires : "Source" et "Data". 8.Se positionner sous "Source". 9.Listez le répertoire courant. 10.Revenir sous le répertoire de départ et détruire "Source". 11.Créer un deuxième fichier nommé "Mon_fichier_2". 12.Copier chaque fichier en nom_de_fichier.old. 13.Créer un répertoire "Old". 14.Déplacer les fichiers avec l'extension old vers le répertoire "Old".

109 Exercices Critères pour les noms de fichier SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 1 suite 1.Copiez les fichiers sans extension dans le repertoire "Data". 2.Sous votre répertoire de départ, créez un lien physique "Mon_lien" équivalent à "Mon_fichier_2". 3.Lister les deux fichiers "Mon_lien" et "Mon_fichier_2" en affichant leur numéro d'inode. Que remarquez vous? 4.Supprimer "Mon_lien". "Mon_fichier_2" a-t-il disparu? 5.Sous votre répertoire de départ, créez un lien symbolique "Mon_nouveau_lien" sur "Mon_fichier_2". 6.Lister les deux fichiers "Mon_nouveau_lien" et "Mon_fichier_2". Que remarquez vous? 7.Supprimer "Mon_fichier_2". "Mon_nouveau_lien" a-t-il disparu? 8.Quelle est la taille totale des fichiers contenus dans votre répertoire? 9.Effacer tous les fichiers crées.

110 Exercices Critères pour les noms de fichier SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 2 : Dans votre répertoire courant, créez en une commande les fichiers suivants: annee1 Annee2 annee4 annee45 annee41 annee510 Exercice 3 : Créer le répertoire Year dans votre répertoire courant, en une commande déplacez les fichiers précédemment créés dans le répertoire Year. Exercice 5 : Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le répertoire /tmp en une seule commande. Exercice 4 :  Lister tous les fichiers  se terminant par 5  commençant par annee4  commençant par annee4 et de 7 lettres maximum  commençant par annee avec aucun chiffre numérique  contenant la chaîne ana  commençant par a ou A

111 Exercices Grep SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 6 : Créer un répertoire essai-grep dans votre home directory. Dans ce répertoire créer les fichiers suivants: tomate poire pomme cerise Fraise fraise courgette POMME3 afraise Éditez les fichiers (sortie de la commande ls redirigée vers grep) avec les critères sur leur nom suivant: Exercice 7 : Créer un répertoire essai-grep dans votre home directory. Dans ce répertoire créer les fichiers suivants: tomate poire pomme cerise Fraise fraise courgette POMME3 afraise  Éditez les fichiers (sortie de la commande ls redirigée vers grep) avec les critères sur leur nom suivant:  Critère 1 : Le nom doit être Fraise ou fraise  Critère 2 : se est en fin de nom  Critère 3 : ai est présent dans le nom  Critère 4 : Nom contenant un chiffre numérique  Critère 5 : Nom contenant la chaîne mm ou MM

112 Exercices Grep SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 9 : Dans le fichier passwd qui est dans votre home directory éditez uniquement les champs contenant le login et la home directory. Exercice 8 : Copiez le fichier /etc/passwd dans votre home directory.  Éditez la ligne commençant par votre nom de login.  éditez les lignes commençant par des noms de login ne contenant pas de chiffre.  Éditez les lignes du fichier passwd commençant par des noms de login de 3 ou 4 caractères. Exercice 10 : Triez passwd sur le nom Exercice 11 : Extraire les nom de login et UID puis triez suivant les UID, le tout en une seule commande, vous redirigerez le tout vers un fichier Les filtres

113 Exercices Les filtres SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 15 : Dans le fichier passwd qui est dans votre home directory remplacer les ":" par des " " (espace). Exercice 16 :  Éditez les cinq dernières lignes du fichier.  Éditez les cinq premiers caractères du fichier. Exercice 17 : Afficher par ordre alphabétique les utilisateurs définis dans le fichier /etc/passwd.

114 Exercices SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 18 : Cherchez dans toute l'arborescence les fichiers dont :  le nom se termine par.c  le nom commençant par X ou x.  les noms ne contiennent pas de chiffre Et redirigez les erreurs vers le fichier poubelle /dev/null find Exercice 19 :  Rechercher tous les fichiers du répertoire /etc contenant la chaîne de caractères "root".  Rechercher la localisation du fichier "stdio.h" dans le système de fichier de votre installation.

115 Exercices find SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exercice 20 : Chercher dans /usr les fichiers dont la taille dépasse 1Mo (2000 blocs de 500Ko) et dont les droits sont fixés à 755 (-rwxr-xr-x). Exercice 21 : Combien il y a de fichiers dans toute l'arborescence vous appartenant et ayant les droits fixés à 666 (-rw-rw-rw-). Exercice 22 : Trouver tous les fichiers test dans l'arborescence et supprimez les après confirmation.

116 Remplacement de texte dans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Commande : sed  Le remplacement de texte dans un fichier peut être effectué de manière automatique, c'est-à-dire sans avoir à ouvrir le fichier dans un éditeur, grâce à la commande sed ( Stream Editor ).  sed peut travailler à la volée sur un flux de données textuelles, que ce flux provienne de l'entrée standard ou d'un fichier.  Par défaut, il écrit le résultat de son travail sur le flux de sortie standard.  Les opérations qu'il doit effectuer sur le flux de données peuvent être spécifiées de différentes manières, soit en fournissant un fichier script à l'aide de l'option -f, soit directement sur la ligne de commande, avec l'option –e  La syntaxe utilisée pour appeler sed est donc typiquement la suivante : sed -e "commandes" fichier > résultat ou : sed -f script fichier > résultat où fichier est le fichier sur lequel sed doit travailler, et résultat est le fichier devant recevoir le flux de données modifiées. Notez que cette commande utilise une redirection du flux de sortie standard dans un fichier.

117 Remplacement de texte dans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Commande : sed  Syntaxe générale : sed [-n] [-e commande] [-f fichier de commandes] [fichier]  Description des options :  -n : écrit seulement les lignes spécifiées (par l'option /p) sur la sortie standard  -e : Permet de spécifier les commandes à appliquer sur le fichier. Cette option est utile lorsque vous appliquez plusieurs commandes. Afin d'éviter que le shell interprète certains caractères, il faut mieux encadrer la commande avec des ' ou des ".  -f : Les commandes sont lues à partir d'un fichier.  Principe de fonctionnement : pour chaque ligne, on applique la commande (si cela est possible) puis on affiche sur la sortie standard la ligne modifiée ou non.

118 Remplacement de texte dans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Commande : sed sed peut effectuer un grand nombre de commandes différentes et est réellement un outil très puissant. Cependant, nous ne verrons ici que la commande qui permet d'effectuer un remplacement de texte. Cette commande utilise la syntaxe suivante : s/texte/remplacement/options où texte est le texte à rechercher, remplacement est le texte de remplacement, et options est un jeu d'options exprimant la manière dont le remplacement doit être fait. Les options sont spécifiées à l'aide de simple caractères, les plus utiles étant sans doute g, qui permet d'effectuer un remplacement global (au lieu de ne remplacer que la première occurrence du texte rencontrée dans chaque ligne), et I, qui permet d'effectuer une recherche sans tenir compte de la casse des caractères.

119 Remplacement de texte dans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Commande : sed Exemple1, la ligne de commande suivante : sed -e "s/bonjour/bonsoir/g" test.txt > modif.txt permet de remplacer toutes les occurrences de la chaîne de caractères « bonjour » par la chaîne de caractères « bonsoir » dans le texte du fichier test.txt, et d'enregistrer le résultat dans le fichier modif.txt. Exemple2, la ligne de commande suivante : sed -e "s/UNIX/Linux/g ; s/key/KEY/gp" fichier Exemple3, la ligne de commande suivante : sed "s/[Cc]omputer/COMPUTER/g " fichier Remplacement de toutes les occurrences de « computer » et « Computer » dans le fichier.

120 Remplacement de texte dans les fichiers SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Commande : sed EFFACER DES LIGNES La commande d permet d’effacer certaines lignes (au niveau de la sortie, le fichier d'origine n'est pas modifié). Exemples sed -e '1d' fichier permet de ne pas afficher la première ligne de fichier sed -e '1,10d' fichier permet de ne pas afficher les 10 premières lignes d'un fichier. sed -e '/^#/d' fichier permet de ne pas afficher les lignes de fichier commençant par le caractère # sed "/^From/!d" fichier Effacement de tout sauf les lignes commençant par From, et affichage des lignes commençant par From.

121 Les alias SYSTÈMES D'EXPLOITATION « OPEN SOURCE »  Le shell fournit donc un mécanisme pour donner un nom simplifié aux commandes complexes : le mécanisme des alias.  Les alias représentent en fait des chaînes de caractères complexes, et sont remplacés automatiquement par le shell lorsqu'il analyse les lignes de commandes  Pour créer un alias, vous devrez utiliser la syntaxe suivante : alias nom=chaîne où nom est le nom de l'alias, et chaîne est la chaîne de caractères représentée par cet alias  La suppression des alias se fait à l'aide de la commande unalias. Sa syntaxe est la suivante : unalias nom où nom est le nom de l'alias à supprimer  Vous pouvez visualiser la liste des alias existant simplement à l'aide de la commande alias, appelée sans paramètres

122 Les alias SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Exemple  alias kv="a=`uname -r`; echo La version du noyau est : "$a""  alias aff='echo bonjour' aff tout le monde

123 SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Effectuer les opérations de base concernant l’exploitation des fonctions du système d’exploitation MERCI DE VOTRE ATTENTION


Télécharger ppt "SYSTÈMES D'EXPLOITATION « OPEN SOURCE ». SOMMAIRE Installer et désinstaller des systèmes d'exploitation  Introduction au monde Gnu/Linux  Présentation."

Présentations similaires


Annonces Google