SYSTÈMES D'EXPLOITATION « OPEN SOURCE »
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 »
Effectuer les opérations de base concernant l’exploitation des fonctions du système d’exploitation
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 »
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
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)
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
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
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
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
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
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 : [ ~ ] $ Accès root : [ ~ ] # Les terminaux
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.
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
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.
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)
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 $ 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
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 $ 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 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.
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. [ ~ ] $ 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 $
Les opérations de base La commande echo SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Affichage de variables d’environnement [ ~ ] $ 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 : [ ~ ] $ 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
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 : [ ~ ] $ echo \$HOME $HOME OU [ ~ ] $ 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
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 ) [ ~ ] $ pwd /home/user
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
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.
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
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
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
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
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 /etc/group Exemple :
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 :
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
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 :
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 = 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
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
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 Apr /usr/bin/passwd
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
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 chmod 1755 commande Prenons comme exemple le répertoire /tmp. $ ls -ld /tmp drwxrwxrwx 6 root system Aug 14 13:22 tmp $ chmod o+t /tmp ou $ chmod 1777 /tmp $ ls -ld /tmp drwxrwxrwt 6 root system Aug 14 13:22 tmp Les droits spéciaux
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
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 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
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 :
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.
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.
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.
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
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 …)
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
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.
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
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
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.
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.
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).
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
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.
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.
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
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
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 jan08 pts/2 00:00.00 /bin/bash root :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
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
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.
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.
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
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.
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.
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 :
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.
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
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
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
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.
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
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 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
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
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
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.
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
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 !!
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é).
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.
Les filtres Colonnes et champs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : $ cat liste Produit prix quantites souris disque ecran clavier 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
Les filtres Colonnes et champs SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex 1 : $ cat liste Produit prix quantites souris disque ecran clavier carte 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
Les filtres Compter les lignes SYSTÈMES D'EXPLOITATION « OPEN SOURCE » Ex : $ wc liste 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 !!
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: carnet-addresse
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 !!
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 !!
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 !!
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
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
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 print (2000 blocs de 512Ko) find / -type f -user etudiant -perm 755 -print
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 !!
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".
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.
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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