Professional Documents
Culture Documents
Cette srie d'articles parlera de tous les aspects que l'on pourra rencontrer lorsque l'on fait de la programmation systme sous Linux en langage C. On y verra aussi l'utilisation des principales commandes ainsi qu'un petit cours sur le langage C. Ce cours est autant pour ceux qui ne connaissent pas Linux que pour ceux qui le connaissent et ont besoin d'un pense-bte. Le systme d'exploitation utilis sera Ubuntu 10.10 ce qui sous-entend l'utilisation de l'environnement de bureau GNOME. Commentez cet article : Ce premier article consistera juste prsenter le systme d'exploitation Linux. Je tiens dire que je ne ferai nullement ici l'apologie d'un quelconque systme d'exploitation, Linux y compris. Tous les systmes d'exploitation ont leurs qualits et leurs dfauts il faut seulement savoir lequel utiliser en fonction de ce que l'on souhaite faire.
I - Qu'est-ce que Linux ?............................................................................................................................................. 4 I-A - L'histoire de Linux.......................................................................................................................................... 4 I-B - Vue d'ensemble de Linux.............................................................................................................................. 5 I-C - Quelques caractristiques de Linux.............................................................................................................. 5 I-C-1 - Linux est fiable...................................................................................................................................... 5 I-C-2 - Linux fonctionne partout........................................................................................................................6 I-C-3 - Linux est gratuit.....................................................................................................................................6 I-C-4 - Le support de Linux.............................................................................................................................. 6 I-C-5 - Linux n'a pas de registre...................................................................................................................... 7 I-C-6 - Redmarrage du systme.....................................................................................................................7 I-C-7 - L'interface graphique............................................................................................................................. 7 I-C-8 - La dfragmentation............................................................................................................................... 8 I-D - Comment se connecter..................................................................................................................................8 I-D-1 - Mode graphique.................................................................................................................................... 8 I-D-2 - Mode console........................................................................................................................................ 9 I-E - A quoi ressemblent les commandes Linux ?.................................................................................................9 I-F - Exemples de commandes..............................................................................................................................9 I-F-1 - La commande passwd...........................................................................................................................9 I-F-2 - La commande echo............................................................................................................................. 10 I-F-3 - La commande date..............................................................................................................................10 I-F-4 - La commande who.............................................................................................................................. 10 I-F-5 - La commande tty................................................................................................................................. 10 I-F-6 - La commande stty............................................................................................................................... 10 I-F-7 - Les commandes incorrectes................................................................................................................11 I-G - Comment se dconnecter........................................................................................................................... 11 I-G-1 - Mode graphique.................................................................................................................................. 11 I-G-2 - Mode console......................................................................................................................................12 II - Le systme de fichiers.........................................................................................................................................12 II-A - Qu'est-ce donc ?......................................................................................................................................... 12 II-B - Les fichiers et le rpertoire de travail......................................................................................................... 12 II-C - Les diffrentes sortes de fichiers existants................................................................................................ 14 II-C-1 - Ordinaires........................................................................................................................................... 14 II-C-2 - Spciaux............................................................................................................................................. 14 II-C-3 - Rpertoires......................................................................................................................................... 14 II-D - Les disques logiques.................................................................................................................................. 15 II-E - La protection des fichiers............................................................................................................................15 II-F - Comment manipuler des fichiers ?............................................................................................................. 15 II-F-1 - Connatre le rpertoire de travail : pwd..............................................................................................15 II-F-2 - Changer de rpertoire de travail : cd................................................................................................. 16 II-F-3 - Lister le contenu d'un rpertoire : ls...................................................................................................16 II-F-4 - Afficher le contenu d'un fichier ordinaire : cat.................................................................................... 16 II-F-5 - Copier un fichier : cp.......................................................................................................................... 17 II-F-6 - Crer un lien sur un fichier : ln.......................................................................................................... 17 II-F-7 - Couper ou renommer un fichier : mv................................................................................................. 18 II-F-8 - Supprimer un fichier : rm.................................................................................................................... 18 II-F-9 - Crer un rpertoire : mkdir................................................................................................................. 18 II-F-10 - Supprimer un rpertoire : rmdir........................................................................................................ 18 II-F-11 - Changer les droits, le groupe et le propritaire d'un fichier et d'un rpertoire : chmod, chown, chgrp................................................................................................................................................................18 III - La gestion des processus sous LINUX.............................................................................................................. 19 III-A - Qu'est-ce qu'un processus ?......................................................................................................................19 III-B - Lister les processus actif : ps.................................................................................................................... 20 III-C - Interrompre un processus..........................................................................................................................21 III-D - La redirection des fichiers standards.........................................................................................................21 III-E - Processus parallles et communication.....................................................................................................22 III-F - Lancer un processus en arrire-plan......................................................................................................... 22 III-G - Lancer un processus en mode dtach....................................................................................................23 III-H - Interruption de processus, le retour...........................................................................................................24
-2Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
IV - Remerciements................................................................................................................................................... 24
-3Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Il est d'ailleurs trs important de noter les efforts importants faits pour normaliser le systme, que ce soit par la publication de cette norme System V ou par les grands constructeurs europens regroups dans le "Unix-OpenGroup" qui a publi un document de normalisation assez proche de celui des Laboratoires Bell. Par ailleurs, un certain nombre de travaux sont raliss un peu partout dans le monde (Berkeley, Ultrix de Digital ou Spix de Bull) pour fournir des versions du systme possdant la fois les fonctionnalits de la version System V et celles de la version de Berkeley en intgrant en particulier la premire le mcanisme de socket de la seconde. Par ailleurs, il faut signaler les efforts raliss en France dans le cadre du GIPSI (groupement d'intrt public regroupant Bull, le CENT et l'INRIA) pour dvelopper une version multiprocesseur du systme. Maintenant que nous connaissons en gros l'histoire du systme Unix, il devient important de parler du projet GNU. C'est en 1983 que Richard Stallman a commenc le projet GNU dans le but de pouvoir crer des systmes d'exploitation UNIX-oide libres. Dans le cadre de ce travail il crit aussi la GNU General Public License (GPL). Petite anecdote intressante sur GNU, depuis le dbut des annes 1990 il existe un noyau GNU nomm Hurd qui n'a malheureusement pas russi attirer suffisamment d'attention de la part des dveloppeurs. Cette fabuleuse histoire se poursuivra par un autre projet de systme d'exploitation libre dans les annes 1980 qui est la Berkeley Software Distribution (BSD). Cela a t dvelopp par Berkeley partir de la 6e dition d'Unix d'ATT. Vient ensuite en 1987 le systme d'exploitation toujours Unix-oide, Minix, cr par Andrew S. Tanenbaum pour un usage scolaire. Le principal dfaut de ce systme d'exploitation tait qu'une partie du code ne pouvait tre modifi et redistribu. En outre Minix 16bits n'est pas trs bien adapt aux machines 32bits qui sont trs populaires pour les ordinateurs personnels l'poque. C'est principalement cause des petits dfauts de Minix que Linus Torvalds a dcid de commencer son projet qui deviendra l'un des noyaux les plus utiliss au monde de nos jours. Petite anecdote amusante d'ailleurs Linux a t compil avec GCC (GNU C Compiler) sur Minix. Il faut savoir qu'au dpart Linux n'tait qu'un simple mulateur de terminal qu'il utilisait pour accder au serveur Unix de son universit : il voulait utiliser, indpendamment d'un quelconque systme d'exploitation, des fonctions de son ordinateur que Minix ne prenait pas en compte. La toute premire version de Linux (0.01) tait sous la licence personnelle de Linus Torvalds, plus tard pour la version 0.99 elle fut mise sous GPL, pour devenir le noyau que l'on connat actuellement.
-4Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
-5Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Il faut aussi savoir que les virus sont vraiment trs rares sous Linux contrairement Windows. Mais attention il existe malgr tout beaucoup de menaces sous Linux. Ceci est due au fait que les excutables tel que vous les connaissez sous Windows n'existent pas sous Linux.
-6Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
suivant l'entreprise laquelle vous achetez votre distribution, il se peut qu'il faille savoir parler anglais pour discuter avec la personne charge du support ou bien pour lire les aides qu'elle fournit. Eh oui, si vous ne l'avez pas encore compris, si vous voulez travailler dans l'informatique il est impratif de savoir parler anglais.
I-C-8 - La dfragmentation
Toutes les versions de Windows souffrent du mme problme, la fragmentation du disque. Ceci rduit considrablement les performances. Linux, lui, ne fragmente pas les donnes sur le disque et est ainsi plus apte tre un serveur de fichiers que Windows. En fait, il est incorrect de dire qu'il n'en existe pas, mais il conviendra d'insister sur le fait qu'elles sont le plus souvent totalement inutiles. Il est vrai que les systmes de fichiers Linux font un usage optimis de l'espace, mais il n'est malheureusement pas en mesure de savoir aujourd'hui quelle sera l'organisation optimale de votre disque aprs une ou deux annes d'usage intensif. Pour rsumer, si vos disques durs ont une dure de vie suprieure environ deux ans, que vous travaillez rgulirement dessus, que vous manipulez quotidiennement de gros fichiers (vidos, morceaux de musique, etc.), que vous vous livrez au P2P ou encore qu'il vous arrive d'exhumer de vieux (et gros !) fichiers pour retravailler dessus, vous ressentirez vite, comme tout le monde, le besoin de dfragmenter votre disque Linux ! Pour mieux comprendre ce systme de fragmentation, je vous renvoie aux articles sur les diffrents systmes de fichiers existant sous Wikipdia qui sont vraiment trs bien faits. Ceci juste pour vous dire que l'on oublie vraiment trs souvent que Linux ne fragmente PRESQUE pas les donnes contenues sur le disque dur.
-8Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Entrez votre login et une fois que vous avez appuy sur ENTRE, entrez votre mot de passe (si vous ne voyez pas de caractre s'afficher l'cran c'est tout fait normal ne vous inquitez pas) et appuyez encore sur ENTRE.
-9Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Le systme demande tout d'abord l'ancien mot de passe de l'utilisateur, puis demande deux fois le nouveau mot de passe choisi. Il n'y a naturellement pas d'cho des mots de passe frapps par l'utilisateur pour des raisons videntes de scurit.
Avant il existait une commande date par type de date (anglo-saxon, franais...) mais maintenant cette commande s'adapte la langue et la rgion que l'on a choisies lors de l'installation de Linux.
Je vous laisse cette commande avec les paramtres indiqus essayer chez vous pour que vous puissiez voir quoi elle ressemble.
- 10 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Avec l'option -a :
Ici la commande donne n'est pas une commande reconnue par l'interprteur. D'un autre ct, le nom d'une commande peut tre correct et les paramtres ne pas l'tre :
Dans cet exemple, on obtient les formes correctes permettant d'utiliser la commande que l'on avait donne sous une forme incorrecte.
Dans ce dernier exemple, le systme ne reconnat pas la commande, car pour lui elle n'existe pas, mais elle peut tre installe pour tre ensuite utilise et il nous indique le nom du (ou des) paquet contenant la commande que l'on a essay d'entrer. Petite information extrmement utile pour la suite de votre apprentissage. Il existe un nombre vraiment trs important de commandes et je ne vais pas toutes les dtailler ici. Pour avoir vraiment tous les dtails sur une commande, il vous faut utiliser la commande man dans votre terminal. Qui s'utilise de cette manire man "nomCommande".
- 11 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Bien entendu il faut que vous remplaciez {username} par votre login. Il faut savoir aussi que cette commande marche pour dconnecter n'importe quel utilisateur connect sur la machine.
Ce bloc d'informations ne contient aucun nom pour le fichier. La dsignation d'un fichier se fait par l'intermdiaire de rpertoires (directories) : un rpertoire est un fichier dont le contenu est une suite de couples forms d'un numro (un index par lequel le systme identifie le fichier) et d'un nom par lequel le fichier est identifi dans le rpertoire. Ainsi un fichier peut tre rfrenc par l'intermdiaire d'un rpertoire et d'un nom dans ce rpertoire. Il est possible de rfrencer un mme fichier sous des noms diffrents dans des rpertoires diffrents. Le nombre des rfrences un fichier est comptabilis dans le compteur des rfrences du i-noeud de ce fichier, un fichier n'tant effectivement dtruit (c'est--dire l'espace ncessaire pour stocker son contenu et le i-noeud correspondant effectivement rcupr par le systme) que lorsque le compteur de rfrences du i-noeud du fichier devient nul. Aussi, la dsignation d'un fichier ncessite-t-elle celle d'un rpertoire et d'un nom dans celui-ci, le rpertoire tant lui-mme dsign par un nom dans un autre rpertoire, etc. Ce procd de dsignation est initialis par l'existence d'un fichier sans nom dont la localisation est connue du systme : il s'agit de la racine absolue du systme de fichiers (index 2 dans le disque systme). Il faut savoir que sous Linux seuls les index de 1 10 sont rservs, on peut citer par exemple :
rpertoire bin durpertoire usr contient lui aussi un certain nombre de fichiers ordinaires associs des commandes du systme. Le sous-rpertoire home contient en particulier le couple (snake, 262148) correspondant un rpertoire. Enfin le rpertoire snake contient la fois des fichiers ordinaires et le couple (cpp, 262160) correspondant un rpertoire contenant lui-mme des rfrences des fichiers ordinaires, par exemple (main.cpp, 271215). Cette hirarchie peut tre reprsente par la structure suivante :
bin 524295 ---------- 524391 /
/ / home snake cpp main.cpp / 2----------262145----------262148-----------262160-----------271215 \ \bin 131150 \ / \ /ls \ / rm 131075----------131191 \ \ \echo \ \ 131120
/ /usr
Le systme de fichiers a donc une structure d'arborescence (graphe sans circuit qui de plus doit tre connexe si le systme est consistant !). La racine de cette arborescence est la racine du systme de fichiers et les feuilles en sont des fichiers non-rpertoires ou des rpertoires vides. Pour tout fichier, il existe (si le systme est consistant), au moins un chemin de la racine vers ce fichier, et la liste des noms tiquetant les artes de ce chemin identifie sans aucune ambigut ce fichier; il s'agit d'un nom ou rfrence absolue qui s'crit symboliquement /nom1/nom2/.../nomp, o nom1, nom2..., nomp sont les noms rencontrs dans l'ordre de la racine vers le noeud correspondant de l'arborescence. La racine a pour rfrence absolue /. Sur l'exemple, le fichier numro 271215 a comme rfrence absolue (il peut en avoir d'autres)/home/snake/cpp/ main.cpp. Afin de faciliter les reprages, tout instant un utilisateur dispose d'un rpertoire privilgi appel rpertoire de travail par rapport auquel il lui est possible de raliser des reprages relatifs. Ce rpertoire de travail est utilis par le systme dans ce cas pour prfixer les repres : par convention, une rfrence relative est une rfrence ne commenant pas par le caractre /. Ainsi, sur l'exemple prcdent et si le rpertoire de travail est /home/snake, le mme fichier peut tre dsign par cpp/main.cpp. Les reprages sont encore facilits par le fait que tout rpertoire contient les deux rfrences particulires . et .. qui dsignent respectivement le rpertoire lui-mme et son pre (le rpertoire unique dans lequel il est rfrenc). Ainsi le compteur des rfrences de tout rpertoire est au moins gal deux, puisque le rpertoire est rfrenc par le nom que lui a donn son propritaire dans le rpertoire pre et par le nom . dans lui-mme. On peut mme dire plus : le i-noeud de tout rpertoire pre de n sous-rpertoires a un compteur de rfrences gal n + 2. Sur l'exemple, le rpertoire de travail tant maintenant /home/snake, le mme fichier pourra tre rfrenc par ../ snake/cpp/main.cpp.
- 13 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Enfin, chaque utilisateur possde un rpertoire particulier que nous appellerons son rpertoire priv qui devient automatiquement son rpertoire de travail ds l'ouverture de la session. Il est instructif ce propos de consulter le fichier /etc/passwd qui contient entre autres choses la liste des identifications des utilisateurs, leurs mots de passe cods et la rfrence absolue de ce rpertoire particulier.
II-C-1 - Ordinaires
Ce sont les fichiers qui contiennent des programmes (binaires ou sources), des donnes de programmes utilisateur ou systme (fichier ASCII). Ces fichiers sont les rsultats de programmes (diteurs, compilateurs, fichiers rsultats...).
II-C-2 - Spciaux
L'une des originalits du systme LINUX rside dans le traitement qu'il fait des entres-sorties sur priphriques (terminaux, imprimantes, disques, bandes). D'un point de vue externe, il n'y a pas de diffrence pour les utilisateurs entre les fichiers ordinaires, les rpertoires et les priphriques pour ce qui a trait leur rfrenage. Un fichier spcial est associ un dispositif d'entre-sortie physique. Les fichiers spciaux sont traits par le systme comme des fichiers sur disque ordinaires, mais les oprations de lecture ou d'criture sur ces fichiers activent les dispositifs physiques associs. A un niveau un peu plus fin on peut distinguer deux types de fichiers spciaux : les fichiers spciaux en mode caractre comme les terminaux pour lesquels les entres-sorties sont ralises caractre par caractre ; Les fichiers spciaux en mode bloc comme les disques o les entres-sorties sont ralises par bloc (la taille des blocs tant en gnral 512 ou 1024 caractres).
II-C-3 - Rpertoires
Nous avons vu leur rle essentiel dans le systme puisque c'est par leur intermdiaire que les utilisateurs peuvent dsigner leurs fichiers. Citons les rpertoires principaux que l'on trouve sur tous les systmes : /bin : les fichiers excutables (en binaire) (initialisation du systme + commandes "essentielles") ; /boot : le noyau vmlinuz et les fichiers de dmarrage ; /dev : rpertoire de fichiers spciaux, qui servent de canaux de communication avec les priphriques (disques, adaptateurs rseau, cartes son, etc.) ; /etc : les fichiers de configuration du systme et les principaux scripts de paramtrage ; /home : la racine des rpertoires personnels des utilisateurs ; /lib : les bibliothques et les modules du noyau. /mnt : la racine des points de montage des systmes de fichiers priphriques ou extrieurs (cd, disquette, nfs, etc.) ; /opt : lieu d'installation d'applications supplmentaires (comme emacs, java, etc.) ; /root : rpertoire personnel du super-utilisateur root ; /sbin : les fichiers excutables pour l'administration du systme ; /tmp : stockage des fichiers temporaires ; /usr : programmes accessibles tout utilisateur, sa structure reproduit celle de la racine / ; /var : donnes variables lies la machine (fichiers d'impression, traces de connexions http, smb, etc... dans /var/log) ; /proc : ce pseudo-rpertoire contient une "image" du systme (/proc/kcore est l'image de la RAM) ; /lost+found : contient les pointeurs de blocs vers les blocs de donnes qui occupent des mauvais secteurs du disque.
- 14 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Il existe par ailleurs dans le systme un utilisateur privilgi disposant de tous les droits (le super-utilisateur dont une identification est root et le compte 0). la lecture ; l'criture ; l'excution.
Prcisons que le droit d'excution pour un utilisateur ou une catgorie d'utilisateurs, lorsqu'il est appliqu un rpertoire, signifie que cet utilisateur a la permission de faire figurer ce rpertoire dans une rfrence ou de s'y positionner (c'est--dire d'en faire son rpertoire de travail), le droit de lecture tant le droit de lire les noms rfrencs dans ce catalogue et le droit d'criture la possibilit d'crire dans ce rpertoire, et en particulier de dtruire un fichier du rpertoire, et cela mme sans aucun droit de lecture ou d'criture sur ce fichier lui-mme. Pour un fichier ordinaire, le droit de lecture donne la possibilit de lire le contenu du fichier et le droit d'criture celui de modifier le fichier. Pour assurer ces protections, le systme utilise donc 9 bits du i-noeud du fichier indiquant pour chaque catgorie d'utilisateurs et chacune des oprations si l'opration est ralisable. De plus 3 autres bits ont un rle spcial : le bit "set-uid" qui, lorsqu'il est positionn pour un fichier binaire excutable, indique que le processus correspondant une excution de ce programme a les droits du propritaire du programme et non de l'utilisateur qui le lance. C'est ce mcanisme qui permet tout utilisateur de modifier le fichier /etc/passwd dont l'utilisateur privilgi root est propritaire au travers de la commande passwd (le "set-uid bit" est positionn pour le fichier de rfrence /bin/passwd contenant le programme ralisant cette commande) ; le bit "set-gid qui a le mme rle que le prcdent mais relativement au groupe ; le bit de "collage" (sticky bit) qui assure le maintien d'un programme en zone de swap mme lorsqu'aucun processus actif ne correspond une excution du programme.
II-F - Comment manipuler des fichiers ? II-F-1 - Connatre le rpertoire de travail : pwd
La commande pwd fournit le nom du rpertoire de travail (c'est--dire la rfrence absolue du rpertoire o vous vous trouvez).
- 15 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
L'option -l de la commande ls permet d'obtenir des informations sur le type du fichier : rpertoire, fichier ordinaire ou fichier spcial, les droits d'accs au fichier par les diffrents utilisateurs du systme, le nombre de liens du fichier, les noms du propritaire et du groupe, la taille des fichiers en nombre de caractres et la date de dernire modification. Elle fournit par ailleurs le nombre total de blocs physiques occups par les fichiers numrs.
L'option -i de la commande ls permet de connatre les numros d'i-noeud des rpertoires et fichiers.
La commande cat peut tre applique un rpertoire, mais cela n'a pas beaucoup d'intrt tant donn la nature des informations contenues dans un tel fichier (codage de nombres entiers en binaire par exemple). Son utilisation sur un rpertoire, comme d'ailleurs sur un fichier binaire, ne fournit aucune information intressante ; elle peut d'ailleurs provoquer l'mission de caractres spciaux vers le terminal.
- 17 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Il est cependant important de se rappeler que la cration d'un rpertoire ne signifie pas la cration d'un rpertoire vide au sens propre du terme. Cela va crer un rpertoire contenant 2 rfrences qui sont . et ..
II-F-11 - Changer les droits, le groupe et le propritaire d'un fichier et d'un rpertoire : chmod, chown, chgrp
Le propritaire d'un fichier peut modifier le nom du propritaire, le groupe auquel sont appliqus les droits de groupe et les droits d'accs des diffrentes catgories d'utilisateurs ce fichier, et lui seul (avec le super-utilisateur) peut le faire.
- 18 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
les processus systme qui ne sont attachs aucun terminal, qui sont crs au lancement du systme ou des dates fixes par l'administrateur du systme; les premiers ne sont interrompus qu' l'arrt du systme (citons le swapper, un certain nombre de processus dits dmons comme, par exemple, le processus assurant le bon usage de l'imprimante en spoule ou le processus cron, qui permet de lancer des tches une date donne) ; les processus lancs par un utilisateur particulier, depuis un terminal donn ou une date donne. En particulier, le fait de se loguer sur un terminal, sous une identification donne, provoque le lancement d'un processus correspondant l'excution d'un programme dtermin l'avance pour chaque utilisateur (une rfrence du fichier contenant le programme excuter est donne dans le fichier systme /etc/passwd). Il s'agit presque toujours d'un processus correspondant l'excution d'un interprteur de langage de commandes commme par exemple le Bash.
Le lancement d'un processus suppose par consquent le chargement en mmoire centrale ( partir du disque) du programme correspondant en vue de son excution. La majorit des programmes Linux sont rentrants, c'est--dire que si plusieurs utilisateurs demandent l'excution d'un mme programme, une seule copie du programme est place en mmoire centrale, le systme assurant pour chacun des processus correspondants la gestion d'une zone de donnes propre chacun et le bon droulement de chacun des processus (sauvegarde de registres en particulier). L'diteur de liens de LINUX (commande ld) fournit ou non (selon les options) des modules excutables rentrants (zone instructions protge en criture). Un processus possde un certain nombre de caractristiques: une identification (un nombre entier) ; un propritaire (en fait il y en a deux, qui sont des entiers) ; un groupe propritaire (galement deux entiers) ; un terminal d'attachement ; un certain nombre d'autres attributs (comme par exemple la priorit ou le rpertoire de travail) sur lesquels nous reviendrons ultrieurement.
Il est possible d'avoir de plus amples informations sur les processus en utilisant des options. Par exemple:
Petite dfinition de chaque partie du rsultat: User: le propritaire du processus, en gnral l'utilisateur qui a lanc le processus ;
- 20 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
PID: le numro d'identification unique du processus. Sont attribus dans l'ordre de lancement des processus. Quand ils atteignent 30.000 ou plus, le nombre recommence 0. Les numros de 0 5 sont gnralement des processus de bas niveau du systme d'exploitation qui ne peuvent tre tus ; %CPU: pourcentage du temps de CPU consacr l'excution de ce processus ; %MEM: pourcentage de mmoire totale utilise par ce processus ; VSZ: superficie totale de la mmoire virtuelle, en blocs de 1k ; RSS: taille relle de l'ensemble, le chiffre exact de la mmoire physique alloue ce processus ; TTY: terminal associ ce processus. Le point d'interrogation indique que le processus n'est reli aucun terminal ; STAT: code d'tat du processus. Les diffrents tats sont S - repos, R - excution (sur file d'attente), Z zombie, N - tche de faible priorit ; START: lorsque le processus a t lanc, ceci indique en heures et minutes depuis quand le programme a t lanc, ou indique depuis combien de jours le processus est lanc si ilfonctionne depuis plus d'une journe ; TIME: temps CPU utilis par le processus depuis le dbut du lancement ; COMMAND: le nom de la commande. Il y a aussi ps -ef qui est quivalent ps aux mais qui a l'avantage de fonctionner sur les versions POSIX qu'on trouve sur les autres systmes Unix.
- 21 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
Il est galement possible d'ajouter des rsultats d'un processus la fin d'un fichier (donc sans effacement de son contenu antrieur) par des commandes de la forme commande >> rfrence comme l'illustre l'exemple suivant:
On constate que la redirection de la sortie standard est sans aucun effet sur le droulement du processus. De fait, lors de l'apparition d'une erreur, le message d'erreur n'est pas envoy sur cette sortie, mais un autre fichier standard appel sortie d'erreur standard galement associe de manire standard au terminal. Il est possible de rediriger cette sortie peu prs de la mme manire que la commande prcdente commande 2 > rfrence ou commande 2 >> rfrence. On peut, de mme, rediriger l'entre standard d'un processus o sont lues les donnes. Cette redirection rpond la syntaxe commande < rfrence.
Les enchanements de commandes que nous venons de voir ont deux caractristiques essentielles: Ils sont squentiels, c'est--dire qu'une commande n'est lance (et le processus associ cr) que lorsque la prcdente est termine; il n'y a aucun paralllisme dans l'excution. Eventuellement, comme c'est le cas des diffrents Shell, un processus en lance un autre et est suspendu jusqu' la fin du processus qu'il a lanc. Les processus sont totalement indpendants, c'est--dire que le droulement de l'un ne dpend pas de celui des prcdents. Il n'y a aucun change d'informations entre les diffrents processus.
est assez simple: la sortie standard de chaque processus pip (except le dernier) est redirige sur un tube et l'entre standard du processus suivant est redirige sur ce tube, si bien que les donnes d'un processus sont constitues par les rsultats du prcdent dans la liste des processus donns. Examinons sur un exemple simple ce qui se passe exactement:
La commande grep permet de rechercher une chane de caractres dans un fichier. La commande ps aux | grep pts/0 entrane la cration de deux processus concurrents, les rsultats du premier (correspondant la commande ps aux) tant envoys sur un tube. C'est au niveau du tube que le second processus (correspondant la commande grep pts/0) prend ses donnes, plutt qu'au clavier. La sortie standard du processus ps aux a t redirige sur le tube et l'entre standard du processus grep pts/0 galement. Le systme assure la synchronisation de l'ensemble dans le sens o: Il suspend le processus lecteur dans le tube lorsque le tube est vide; Il suspend le processus crivain dans le tube lorsque le tube est plein.
Sur ce dernier exemple vous avez pu voir l'existence effective des deux processus (le processus ps aux et le processus grep pts/0).
Le systme rpond en indiquant le numro du processus cr. Il faut savoir qu'un tel processus a les mmes sortie standard et sortie erreur standard que le processus qui le cre: ainsi en mode standard, les rsultats ventuels sont affichs sur l'cran. Il est possible (et fort agrable) d'utiliser les redirections pour ces processus. Par ailleurs les processus ainsi dtachs ne sont plus sous le contrle direct de la console, en ce sens qu'ils ne peuvent plus lire de donnes au clavier du terminal. Leur entre standard doit tre redirige, faute de quoi elle sera redirige par dfaut sur le fichier spcial de rfrence absolue /dev/null qui est, en quelque sorte, un puits sans fond o les utilisateurs peuvent envoyer tout ce dont ils ne veulent pas. Ces processus ne peuvent, par ailleurs, plus tre interrompus par le signal correspondant CTRL + C dont nous avons parl un peu avant.
- 23 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/
La commande kill -9 IDProcessus permet, en toutes circonstances un utilisateur de tuer un processus de numro donn depuis n'importe quel terminal; cela est particulirement important lorsqu'on a perdu pour une raison ou une autre la main son terminal et que le signal correspondant la squence CTRL + C sont sans effet; il est alors ncessaire d'envoyer ce signal d'interruption depuis une autre console. La seule contrainte ce niveau est que l'on ne peut envoyer un signal un processus que si l'on en est le propritaire ( moins d'tre le super-utilisateur). Pour terminer, signalons que le fait de se dloguer avant l'achvement des processus lancs depuis un terminal en background provoque l'interruption de ces processus (par l'mission d'un signal particulier que nous verrons plus tard). Pour viter ce phnomne, il existe une commande nohup qui permet aux processus lancs d'ignorer le signal SIGHUP prcdent. Ainsi la commande nohup prog "donnees" resultats& peut tre lance juste avant de se dloguer. Il s'agit du lancement en background du processus correspondant l'excution du programme de rfrence prog prenant ses donnes dans le fichier de rfrence "donnes" et crivant ses rsultats dans le fichier de rfrence "rsultats". Le fait de se dloguer n'interrompt alors plus le processus.
IV - Remerciements
Je remercie dourouc05 et ram-0000 pour leurs conseils et leur aide. Je remercie aussi u-milite et claudeleloup pour leur correction orthographique de cet article.
- 24 Copyright 2011 - PLU Julien. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.
http://jplu.developpez.com/tutoriels/systeme/presentation-linux/