Cours de Linux

Habib DHAHRI

2014-2015

Table des matières

Chapitre 1 : Présentation de linux
1.

Définition d’un système d’exploitation ....................................................................................... 1

2.

Qu’est qu’un logiciel Libre ........................................................................................................... 1

3.

Logiciel Libre / logiciel propriétaire ............................................................................................. 1

4.

Bref historique de Linux ............................................................................................................... 2

5.

Les distributions de Linux ............................................................................................................. 2

6.

Installation de UBUNTU ............................................................................................................... 3

7.

Composants de Linux ................................................................................................................... 8

8.

Un Shell ........................................................................................................................................ 9

Chapitre 2: Système de fichiers
1.

Le système de fichiers ................................................................................................................ 11

2.

Les divers types de fichiers ........................................................................................................ 11

3.

Nomenclature des fichiers ......................................................................................................... 12

4.

Les chemins ................................................................................................................................ 12
4.1.

Structure et nom de chemin .................................................................................................... 12

4.2.

Un chemin absolu ou complet : .............................................................................................. 12

4.3.

Chemin relatif................................................................................................................................ 13

5.

Répertoire personnel ................................................................................................................. 13

6.

Le tilde ........................................................................................................................................ 13

7.

Les commandes de base ............................................................................................................ 14
7.1.

Lister les fichiers et les répertoires ...................................................................................... 14

8.

Manipulation des dossiers ......................................................................................................... 15

9.

Manipulation des fichiers........................................................................................................... 16

10.

Les liens symboliques ......................................................................................................... 19

11.

Le Manuel de Linux ............................................................................................................ 20

Chapitre 3: Connexion des utilisateurs
1.
1.1.

La gestion des utilisateurs .......................................................................................................... 21
Ajouter un utilisateur : adduser ......................................................................................... 21

1.2.

La commande passwd ........................................................................................................ 21

1.3.

Supprimer le compte d'un utilisateur (non connecté) ...................................................... 22

2.

Gestion des comptes.................................................................................................................. 22

3.

Hiérarchie de comptes ............................................................................................................... 23

4.

Contenu du fichier /etc/passwd ................................................................................................ 23

5.

Notion d'identifiant .................................................................................................................... 23

6.

Le fichier /etc/shadow ............................................................................................................... 24
7.1.

Le fichier/etc/group................................................................................................................... 25

7.2.

Gestion des groupes .................................................................................................................. 26

Chapitre 4: Protection des fichiers
1.

Droits et utilisateurs................................................................................................................... 27

2.

Modification des droits .............................................................................................................. 28

3.

2.1.

Par symboles ................................................................................................................................. 28

2.2.

Par base 8 ....................................................................................................................................... 28

Masque des droits...................................................................................................................... 29
3.1.

Restreindre des droits automatiquement.......................................................................... 29

3.2.

Calcul de masque ......................................................................................................................... 29

4.

Changer de propriétaire et de groupe ....................................................................................... 30

5.

5. Droits d’accès étendus ........................................................................................................... 30
5.1.

SUID et SGID .................................................................................................................................. 30

Chapitre 5: Recherche des fichiers
1.

Considérations générales ........................................................................................................... 32

2.

Critères de recherche ................................................................................................................. 32

3.

2.1.

Commandes ................................................................................................................................... 33

2.2.

Critère .............................................................................................................................................. 34

Créer des archives ...................................................................................................................... 34
3.1.

Compression de fichier : gzip, bzip2 .................................................................................... 35

Chapitre 6: Les redirections
1.

Principe ...................................................................................................................................... 36

2.

En sortie ..................................................................................................................................... 36

3.

En entrée .................................................................................................................................... 37

4.

Les canaux standards ................................................................................................................. 38

5.

Filtre ........................................................................................................................................... 38

6.

Pipelines / tubes......................................................................................................................... 39

Chapitre 7: Gestion des processus
1.

Les processus système (daemons) ............................................................................................. 40
2.

3.

Exécution d'une commande ...................................................................................................... 41
3.1.

4.

Les processus utilisateurs.................................................................................................................. 40
Le mode en arrière-plan ........................................................................................................... 41

La commande ps ........................................................................................................................ 41

Il est donc impossible de savoir comment le programme est conçu. 3. mais pas les sources. Logiciel Libre / logiciel propriétaire Les logiciels propriétaires sont donc les logiciels dont une licence. est constitué de nombreuses lignes de code. Par conséquent. 1 . Quand on achète un logiciel (Microsoft Office par exemple) ou un système d'exploitation (Windows par exemple). Certains logiciels propriétaires sont gratuits. Cela implique que l'on ait accès à leur code source (d'où le terme équivalent Open Source). Exemple d’OS: Windows. (Windows est un OS propriétaire dont le code source est jalousement gardé par Microsoft. échanger. Il suffit d'avoir le binaire pour utiliser le programme. On ne peut donc pas le modifier ou regarder comment il fonctionne à l'intérieur. souvent payante. Ms Dos… 2.Chapitre 1: Présentation de Linux 1. Unix.) Les logiciels libres sont les logiciels que l'ont peut librement utiliser. On peut seulement l'utiliser et éventuellement le copier à l'identique. Qu’est qu’un logiciel Libre Un programme informatique. que ce soit un noyau ou un logiciel. étudier et redistribuer. mais bon). souvent appelé binaire. Définition d’un système d’exploitation Un système d’exploitation est un ensemble de programmes qui coordonnent le fonctionnement des différents composants matériels et logiciels d’un système informatique. Il faut passer par la phase de compilation qui transforme le code source en programme exécutable. ne donne qu'un droit limité d'utilisation. Mac OS. on a un CD qui contient le binaire. Ce code n'est généralement pas utilisable en tant que tel. écrites dans un langage de programmation (le langage C dans le cas du noyau Linux). on ne peut pas modifier le programme. on les appelle alors des freewares. On n'a la plupart du temps accès qu'aux binaires de ces logiciels. Imaginez que c'est un peu comme le Coca-Cola : personne ne connaît la recette de fabrication (y'a bien des gens qui essaient d'imiter.

avec un noyau maintenu par Linus Torvalds et diverses applications liées au système. des sources des utilitaires. De nombreux outils. Linux est le plus souvent diffusé sous forme d’une distribution. Elle a été fondée en 1994 en Caroline du Nord. Le projet GNU (programmes libres) et Linux (noyau d'OS) ont fusionné pour créer GNU/Linux. Ses objectifs 2 . Le but est de développer un OS complet. Les distributions de Linux GNU–Linux est un système Unix complet. Project GNU: est un projet lancé par Richard Stallman. en raison du grand nombre d'architectures qu'il supporte. plutôt que des logiciels complexes à tout faire. c’est surtout choisir une distribution qui corresponde avec les usages qu’on attend du système. En 1991. suppression de fichier. créé en 1969 par Ken Thompson et Dennis Ritchie. des éditeurs.4. sources des utilitaires. développe un noyau en s'inspirant des principes du système d'exploitation UNIX. Linus Torvalds. éditeur de texte). Sa conception a été particulièrement soignée. Il est l'un des systèmes d'exploitation les plus populaires au monde. commandes. et apportait plusieurs innovations. Il serait très difficile pour beaucoup d’utilisateurs de construire un système complet en partant du noyau. commandes. le projet GNU n'avait toujours pas de noyau et tournait sur des Unix propriétaires. Débuter avec Linux. un étudiant de l’université d’Helsinki. Bref historique de Linux UNIX est un système d'exploitation. applications) formant après installation un système complet. Le nom du système prend le nom de Linux (en référence à son créateur). libre et qui se base sur Unix afin de contrer le développement croissant des logiciels propriétaires(le prix Unix devenait de plus en plus payant). des interfaces graphiques. Chacune des distributions a ses avantages et ses inconvénients. en 1991. un ensemble de programmes (noyau.(Stallman avait créer les programmes de base:(programme de copie de fichier. tels des compilateurs. 5. RedHat est la première société créée ayant pour objectif de rassembler tout ce qui est nécessaire dans une distribution. Cependant. applications. existent. notamment le choix d'utiliser plusieurs outils simples et spécialisés. un chercheur du MIT.

RedHat met sa distribution à disposition sur Internet. Dès lors. c’est la version dite « Server Enterprise ». l’écran de « Bienvenue » apparaîtra. Debian. Ubuntu démarrera et fonctionnera directement à partir de votre support 3 . Au moyen de la souris. Pour les développeurs. choisissez votre langue dans la liste affichée à gauche. Parmi les distributions les plus utilisées. Cette société la vend aussi avec une documentation. Mandrake (toutes deux payantes).furent le développement de solutions logicielles. du consulting sur site. on trouve RedHat. Slackware (toutes trois gratuites) et SuSE. Installation de UBUNTU Les phases principales de l’installation d’une machines Gnu/Linux sont les suivantes :  Amorçage de l’installation  Partitionnement du disque dur  Installation du chargeur de boot  Configuration du réseau  Détermination du fuseau horaire  Initialisation du mot de passe root  Choix et installations des logiciels  Paramétrages post-installation Lorsque votre ordinateur aura détecté votre support Live DVD/USB et affiché brièvement un écran de chargement. des formations. 6. puis appuyez sur le bouton intitulé Essayer Ubuntu. du support téléphonique.

Lorsque vous avez sélectionné vos choix.Live DVD/USB. l’installateur vous demandera de choisir un réseau sans fil (si disponible). Si vous n’êtes pas connecté { Internet. cliquez sur Continuer. L’écran « Préparation de l’installation d’Ubuntu » vous permettra également de savoir si vous avez assez d’espace disque et si vous êtes connecté { une source d’énergie (dans le cas où vous installez Ubuntu sur un ordinateur portable fonctionnant sur la batterie). 4 .

votre nom apparaîtra sur l’écran de connexion ainsi que dans le menu utilisateur 5 . Lorsque vous êtes satisfait de la manière dont les partitions seront créées. Les options listées dépendent de votre système et ne seront peut-être pas toutes disponibles : Pour les configurations de dual-boot plus complexes. cliquez sur Continuer ou Installer maintenant. Après avoir choisi le type d’installation. Lorsqu’il sera configuré. vous devrez configurer les partitions manuellement.L’installateur d’Ubuntu détectera automatiquement tout système d’exploitation installé sur votre machine et présentera des options d’installation basées sur votre système. Ubuntu continuera le processus d’installation en tâche de fond. cliquez sur le bouton Installer maintenant en bas à droite pour continuer. paramétrage du clavier et fuseau horaire par défaut. mot de passe. Si vous choisissez Autre chose. Pour réduire le temps nécessaire { l’installation.telles que votre nom d’utilisateur. configurez les partitions suivant vos besoins. pendant que vous configurez les informations utilisateur importantes . Ubuntu a besoin d’informations { votre sujet afin de paramétrer le compte de l’utilisateur principal sur votre ordinateur.

Si vous ne voulez pas utiliser Ubuntu One ou si vous voulez créer votre nouveau compte plus tard. cliquez sur Me connecter plus tard. vous avez la possibilité de vous connecter { votre compte Ubuntu One existant ou d’en créer un nouveau. 6 .Au cours de l’installation. Renseignez toutes les informations nécessaires telles que votre adresse de courriel et votre mot de passe et cliquez sur Continuer.

Une fois l’installation terminée et après avoir redémarré votre ordinateur. L’écran déconnexion vous présentera votre nom d’utilisateur et vous devrez taper votre mot de passe pour continuer. un diaporama vous présentera une introduction à quelques-unes des applications incluses par défaut avec Ubuntu.Durant la progression de l’installation. l’installation est terminée et vous pourrez cliquer sur Redémarrer maintenant pour réinitialiser votre ordinateur et lancer Ubuntu. Après vingt minutes environ. vous serez accueilli par l’écran de connexion d’Ubuntu. 7 .

langage de commandes permettant d’écrire des programmes. Du shell lui–même. vi et vim. emacs. périphériques) et logicielles (processus. TCL/TK. Parmi les utilitaires. Netscape. interpréteur de commandes mais aussi. Le noyau assure la gestion des ressources physiques (processeur. mémoires. GTK. on trouve : Différents langages de programmation : C++.. Des outils de bureautique : messagerie. Fortran. traitement de textes .7.) Figure 1: Les composants de Linux 8 . assembleur. l’utilisateur n’accède pas directement au noyau mais à un interpréteur de commandes : le shell L’interface utilisateur de linux est donc constituée : D’un ensemble de programmes exécutables : les commandes. Java. gnotepad) .). éditeurs de lien . Comme c’est le cas avec tout système d’exploitation. Des utilitaires de développement et maintenance de logiciels : make. d’un interpréteur de commandes et d’un grand nombre d’utilitaires (Figure 1). fichiers. constitué du noyau. Composants de Linux Linux est un système d’exploitation.. Perl. plus que dans n’importe quel autre système d’exploitation.. Des outils pour le Web (Apache. Des éditeurs de textes (sed..

le clone de Berkeley avec de nombreuses extensions. Un Shell Est un interpréteur de commande. 9 . La ligne d'invite de commandes se lit donc habib’ chez phd ’.8. En d'autres termes. csh: Berkeley shell. habib@phd :~$ habib : le premier élément est votre pseudonyme. ksh: shell Korn. Il existe plusieurs shells. je suis identifié en tant que habib sur la machine phd. historique des commandes. Le Shell standard des Linux. Affiche une invite (prompt). logiciel libre à la manière du shell Korn. gestion des jobs (travaux en arrièreplan). c'est à dire de gestion des caractères joker (wildcards) dans les noms de fichiers. Il a été le premier à inclure des fonctionnalités de 'globbing'. Exécute des commandes. tcsh: Libre. Exécute des scripts. Est un interpréteur de commandes qui contient des redirections I/O. alias. bash: "Bourne Again shell". phd : ça c'est le nom de l'ordinateur sur lequel vous êtes en train de travailler. Parmi les plus courants: sh: Bourne shell est le shell standard pour les scripts. : c'est un séparateur. syntaxe de type Bourne avec des fonctionnalités Berkeley.

le symbole ~ signifie que vous êtes dans votre dossier personnel. Il peut prendre 2 formes différentes : $ : signifie que vous êtes en train d'utiliser un compte utilisateur "normal". il indique votre niveau d'autorisation sur la machine. # : signifie que vous êtes en mode super-utilisateur. 10 .~ :c'est le dossier dans lequel vous vous trouvez actuellement. C'est l'équivalent du dossier "Mes documents" de Windows. ce qu'on appelle le "Home" sous Linux. $ : Ce dernier symbole est très important.

tant les données (fichiers de données de tout type comme une image ou un programme). définit l’organisation des données sur un support de stockage. Le système de fichiers Un système de fichiers.) Ou encore les moyens de communication (sockets. souris. Linux est. comme tout Unix. appelé communément File System ou FS. carte son. que les périphériques (terminaux. un système d’exploitation entièrement orienté fichier. Tout (ou presque) est représenté par un fichier. clavier. etc. On peut dire que le système de fichier est le cœur de tout système Unix.Chapitre 2: Système de fichiers 1. Les divers types de fichiers Le système Linux ne connaît que trois types de fichiers : 11 .). etc. Arborescence de Linux 2. donc comment sont gérés et organisés les fichiers par le système d’exploitation. tubes nommés.

Les chemins 4. La plupart des caractères (les chiffres. les minuscules.1.  Les fichiers spéciaux.bak 4. chacun étant séparé par le caractère /. 3. Nomenclature des fichiers Linux fait la distinction entre les noms de fichiers en minuscules et en majuscules. Ils désignent les périphériques.Un chemin absolu ou complet : 12 . les lettres. les majuscules. soit bloc par bloc. de tous les répertoires qu’il est nécessaire de traverser pour y accéder. les entrées/sorties (E/S) se font soit caractère par caractère. certains signes. les tubes ou autres supports de communication interprocessus. avec un contenu différent. Un nom de fichier est ainsi généralement complété par son chemin d’accès. C’est un chemin absolu comme celui ci.  Les fichiers répertoires ou répertoires (directories). Cependant quelques caractères sont à éviter car ils ont une signification particulière au sein du shell : & . Toto. Chaque répertoire contient la liste et la référence des fichiers placés sous son contrôle et la référence du répertoire dont il dépend (répertoire père). Le / situé tout en haut s’appelle la racine ou root directory (à ne pas confondre avec le répertoire de l’administrateur root). TOTO. depuis la racine. 1024 ou 2048). Les fichiers spéciaux associés aux périphériques peuvent être caractères (terminaux) ou blocs (disque) . /home/toto/Docs/Backup/fic. Le nom de chemin ou path name d’un fichier est la concaténation. fichier). Les fichiers ordinaires (regular files).Structure et nom de chemin Les chemins permettent de définir un emplacement au sein du système de fichiers. un bloc étant composé de n caractères (512. les caractères accentués) sont acceptés. y compris l’espace.2. ( ) ~ <espace> \ / | ` ? (en début de nom). 4. Ils servent à mémoriser les programmes et les données des utilisateurs et du système. C’est la liste des répertoires et sous répertoires empruntés pour accéder à un endroit donné de l’arborescence jusqu’{ la position souhaitée (répertoire. ToTo et toto sont des noms de fichiers différents.

Exemple Documents/Photos est un chemin relatif : le répertoire Documents est considéré comme existant dans le répertoire courant . représente le répertoire courant.. C’est dans ce répertoire que l’utilisateur pourra créer ses propres fichiers et répertoires./Documents » indique explicitement le répertoire Documents dans le répertoire actif . Il est généralement implicite.  décrit tous les répertoires { traverser pour accéder { l’endroit voulu. qui est son répertoire personnel.  La longueur du chemin d’accès absolu d’un fichier est limitée { 1024 caractères.Chemin relatif Un nom de chemin peut aussi être relatif à sa position courante dans le répertoire. Il faut pour cela souvent utiliser deux entrées particulières de répertoires : Le point . Vous pouvez accéder à un autre répertoire de l’arborescence depuis l’emplacement actuel sans taper le chemin complet uniquement en précisant le chemin le plus court relativement à votre position actuelle au sein de l’arborescence. représentent le répertoire de niveau inférieur./bin est un chemin relatif : les .3. .. Répertoire personnel Lors de la création d’un utilisateur. actif. Les doubles points. l’utilisateur arrive directement dans ce répertoire. donc commence par un /. Le tilde 13 . Démarre de la racine. ni de . Lorsqu’il se connecte. sont relatifs { /usr/local et descendent d’un niveau vers /usr. l’administrateur lui alloue un répertoire personnel appelé home directory. 5./Documents/Photos est un chemin relatif parfaitement identique au précédent. 4.  ne contient pas de . sauf que le répertoire actif (courant) est explicitement indiqué par le point.. Exemple habib@phd:~$ pwd /home/habib habib@phd:~$ 6.. /usr/local/. « .

. Elle supporte plusieurs paramètres dont voici les plus pertinents. les autres. Les options de ls sont :  l : Pour chaque fichier ou dossier. etc. 3 2013 deja-dup drwxr-xr-x 7 habib habib 4096 mars 26 16:57 Desktop drwxrwxr-x 2 habib habib 4096 nov.1. * pour un exécutable.xlsx 1 2 3 4 5 6 7  1 : Le premier caractère représente le type de fichier ( : ordinaire. 14 . Les commandes de base 7. 2 12:21 emploiSem2.) .  t : La sortie est triée par date Exemple habib@phd:~$ ls -l total 248 drwxrwxr-x 3 habib habib 4096 sept.  R : Si la commande rencontre des répertoires. etc. Lister les fichiers et les répertoires La commande ls permet de lister le contenu d’un répertoire (catalogue) en lignes ou colonnes.  a : Les fichiers cachés sont affichés (ils commencent par un point). précise le répertoire lui même et non son contenu. mais le tilde ne doit être précédé d’aucun caractère. fournit des informations détaillées.  F : Rajoute un caractère à la fin du nom pour spécifier le type : / pour un répertoire. 2 emploiSem2. 19 09:17 doc1 drwxr-xr-x 2 habib habib 4096 mars 24 09:41 Documents drwxr-xr-x 5 habib habib 12288 mars 24 21:02 Downloads -rw-rw-r-. de manière récursive. par blocs de trois.  d : Sur un répertoire. les droits pour l’utilisateur (rw).. elle rentre dans les sous répertoires.xlsx -rw-rw-r-- 1 habib habib 93211 févr. le groupe (r) et tous (r).. Les droits sont expliqués ultérieurement.1 habib habib 93211 févr.Le bash interprète le caractère tilde ~ comme un alias du répertoire personnel. 7. @ pour un lien symbolique. d : répertoire. Les chemins peuvent être relatifs au tilde. l : lien symbolique.

 7 : Le nom du fichier. habib@phd:~$ mkdir rep1 habib@phd:~$ cd rep1 habib@phd:~/rep1$ pwd /home/habib/rep1 habib@phd:~/rep1$ Remove DIRectory : rmdir Supprime un répertoire. habib@phd:/home$ MaKe DIRectory :mkdir Crée un nouveau répertoire. 2 : Un compteur de liens.  5 : La taille du fichier en octets.  3 : Le propriétaire du fichier. s’il est vide. habib@phd:~$ pwd /home/habib habib@phd:~$ cd . généralement celui qui l’a créé.  4 : Le groupe auquel appartient le fichier. Manipulation des dossiers Print Working Directory :pwd Affiche le chemin d’accès du répertoire courant..  6 : La date de dernière modification. rmdir [-p] [-s] répertoire 15 . habib@phd:~$ pwd /home/habib habib@phd:~$ Change Directory : cd Permet de changer de répertoire de travail. 8.

habib@phd:~$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh La commande locate Permet d’afficher le nom complet de tout fichier ou répertoire correspondant { un critère de recherche donné. du répertoire courant. si aucun répertoire n’est précisé. de créer. habib@phd:~$ du Pictures 9192 Pictures/2008/01/05 9196 Pictures/2008/01 176112 Pictures/2008/11/01 176116 Pictures/2008/11 9.gz /bin/touch habib@phd:~$ 16 . de copier et de concaténer des fichiers. s : mode silencieux (aucun affichage) habib@phd:~$ rmdir rep1 Disk Usage : du Donne l’occupation disque en bloc des sous–répertoires du répertoire spécifié ou. Exemple Recherche les fichiers et répertoires contenant la chaîne de caractères touch. Exemples Affichage du contenu du fichier /etc/passwd.1. Manipulation des fichiers La commande cat est une commande multi-usage qui permet d’afficher.4x.gz /usr/X11R6/man/man4/mutouch.p : permet de détruire tous les sous –répertoires vides. habib@phd:~$ locate touch /usr/share/man/man1/touch.

il est écrasé sans avertissement selon le paramètre passé et selon les droits. mais dispose d'un peu plus d'options (entre autre peut revenir en arrière : b pour revenir d'une page. il est aussi possible de se déplacer vers le haut ou vers le bas avec les flèches de direction). fic1. ficn] Destination Dans le premier cas. y pour revenir d'une ligne. fic1 est recopié en Destination. cp fic1 [fic2 .. Si Destination existe.La commande more Afficher le contenu d'un fichier texte à l'écran en arrêtant le défilement à chaque page (espace pour descendre d'une page. f Forcer la copie. La commande peut prendre. r Récursif : copie un répertoire et tout son contenu. La commande touch : La commande touch est utilisée pour changer les dates d’accès et de modifications d’un fichier (d’où le « on touche »le fichier pour faire croire { l’ordinateur qu’on vient de le modifier alors qu’on n’a rien changé. Les chemins peuvent êtres absolus ou relatifs. Less nom_fichier Copier des fichiers La commande cp (copy) copie un ou plusieurs fichiers vers un autre fichier ou vers un répertoire. entre autres. habib@phd:~$ echo je vais tester la commande echo je vais tester la commande echo Déplacer et renommer un fichier 17 . Exemple touch f1 La commande ECHO Affiche { l’écran le texte qui suit la commande echo. p Les permissions et dates sont préservées. entrée pour descendre d'une ligne. les options suivantes : i Demande de confirmation de copie pour chaque fichier. Dans le second cas. q pour quitter) more nom_fichier La commande less Pareil que more.. fic2 et ainsi de suite sont recopiés dans le répertoire Destination.

suivant les options. La commande Word Count Cette commande permet le dénombrement des mots.  txt3 est déplacé dans rep1 et renommé en txt3. le début ou la fin de la ligne.  txt1 est renommé en txt1.. suppriment un répertoire. lignes et caractères dans un fichier.old mv txt2 rep1/txt2 mv txt3 rep1/txt3. de renommer un fichier.] Dans l’ordre. rm [Options] fic1 [fic2.. Avec les trois commandes mv successives suivantes :  txt2 est déplacé dans rep1 . les commandes suivantes suppriment un simple fichier.old . et éventuellement une arborescence complète. wc lwcL fichier  l : affiche le nombre de lignes  w : affiche le nombre de mots  c : affiche le nombre de caractères  L : affiche la longueur de la ligne la plus longue 18 . et une arborescence de manière forcée : rm fic1 rm -r rep1 rm -rf /home/public/depots Remarque L’utilisation combinée des paramètres -r et -f bien que très utile et pratique est très dangereuse. La suppression est définitive. Exemple touch txt1 txt2 txt3 mv txt1 txt1. ou les deux en même temps. Elle fonctionne comme la commande cp.old.La commande mv (move) permet de déplacer. Un mot est défini comme une suite de caractères précédée et suivie par des espaces. Les paramètres -f et -i ont le même effet. notamment en tant que root. Aucune confirmation ne vous est demandée. des tabulations.old Supprimer un fichier ou une arborescence La commande rm (remove) supprime un ou plusieurs fichiers.

Il est possible de créer des liens symboliques vers n’importe quel type de fichier. si le fichier pointé est un répertoire.sql 91 252 2039 test. si le fichier pointé est un fichier spécial (périphérique). Les liens symboliques Un lien est un fichier spécial (comme des raccourcis) contenant comme information un chemin vers un autre fichier. créer un fichier « fichier1 » vide de 0 bytes  Créer un lien physique « fichier2 ». quel qu’il soit et où qu’il soit. -n suivi d'un nombre: permet d'afficher le nombre de lignes que vous voulez. Exemple : (différence entre liens physique et liens symboliques )  Création d’un Répertoire TESTS.sql habib@phd:~$ Commandes de consultation de fichiers head nom_fichier : afficher uniquement le début du fichier. le lien est vu comme périphérique . en pointant vers le nom du « fichier1 »( et non vers l’inode). lancer le lien lance le programme .Exemple habib@phd:~$ wc test. Il est même possible de créer des liens sur des fichiers qui n’existent pas. si vous ne voulez que les 3 premières lignes. habib@phd:~$ mkdir TESTS 19 . ln -s fichier lien Le cas échéant le lien se comportera { l’identique du fichier pointé avec les mêmes permissions et les mêmes propriétés : si le fichier pointé est un programme. Par exemple. un cd sur le lien rentre dans ce répertoire . Il existe deux types de liens : le lien dur (hard link*-o et le lien symbolique (soft link) qui correspond à la définition donnée. La commande de création des liens symboliques ne vérifie pas si le fichier pointé existe. qui partagera le même inode (le même contenu) que « fichier1 »  Créer un lien symbolique « fichier 3 ». tapez head –n 3 nom fichier tail nom_fichier : afficher uniquement la fin du fichier sort nom_fichier : Tri par ordre alphabétique des lignes d'un fichier texte. 10.  Une fois dans le dossier tests.

alors que les liens symbolique a un type différent (l: « lien »). le cas échéant. une flèche en direction du chemin du fichier vers le lien dur.habib@phd:~$ cd TESTS habib@phd:~/TESTS$ touch fichier1 habib@phd:~/TESTS$ ln fichier1 fichier2 habib@phd:~/TESTS$ ln -s fichier1 fichier3 habib@phd:~/TESTS$ ls -li total 0 789699 -rw-rw-r-. 11. Le fichier d’origine et le lien physique ont le même horodatage (alors que le lien symbolique affiche l’heure et la date de sa création. Le Manuel de Linux La commande man permet de rechercher des informations sur les commandes. 19 06:49 fichier3 -> fichier1 Le fichier d’origine et le lien ont le même type de fichier « fichier régulier » indiqué par le tiret en tête des permissions. à la fin de la ligne du lien symbolique. Cette commande recherche les informations. Enfin on remarque. dans deux répertoires et leurs sous–répertoires :  /usr/man  /usr/local/man 20 . Man est le manuel Unix en ligne.2 habib habib 0 oct. 19 06:48 fichier1 789699 -rw-rw-r-.2 habib habib 0 oct. 19 06:48 fichier2 789701 lrwxrwxrwx 1 habib habib 8 oct.

tout en permettant le partage contrôlé nécessaire au travail en groupe.Chapitre 3 :Connexion des utilisateurs Pour permettre à de nombreux utilisateurs de travailler sur la même machine.1. Linux met en œuvre des mécanismes d’identification des utilisateurs. Déterminer un mot de passe pour l'utilisateur étudiant est à l'aide de la commande passwd: [root@ubuntu /]# passwd étudiant passwd vous demande de rentrer deux fois le même password. de protection et de confidentialité de l’information. 1. Ce dernier a tous les droits et aucune restriction d’accès ne lui est applicable. Tout utilisateur est identifié par un nom (login name) et ne peut utiliser le système que si son nom a préalablement été défini par l’administrateur du système (ou super–utilisateur). La gestion des utilisateurs 1. La commande passwd Syntaxe : passwd [options ] nom_login 21 . Ajouter un utilisateur : adduser Créer un compte utilisateur " etudiant" : [root@ubuntu /]# adduser étudiant Le compte est créé.2. c'est-à-dire qu'un répertoire étudiant a été créé dans le répertoire /home et l'utilisateur étudiant a été ajouté dans le fichier de configuration /etc/passwd. sudo : devenir root jusqu'à ce qu'on tape la commande exit (nécessite le mot de passe root) sudo nom_d'utilisateur : devenir un autre utilisateur (nécessite le mot de passe de l'utilisateur) userdel nom_d'utilisateur : supprime l'utilisateur (il faut être root) userdel --remove nom_d'utilisateur : supprime l'utilisateur et son répertoire personnel avec tout ce qu'il contient (il faut être root) 1. dont le nom est généralement root.

Gestion des comptes Connaître l'uid et le gid de l'utilisateur courant Commandes ( id. Chaque utilisateur qui utilise le système doit être connu de celui-ci par un nom et.Options -d l'utilisateur pourra se connecter sans mot de passe ! -l pour verrouiller le compte et empêcher sa connexion. 22 . L'identification d'un utilisateur s'effectue dans le fichier /etc/passwd. personnel de l'utilisateur La commande supprime toute trace de l'utilisateur dans le fichier de configuration : /etc/passwd y compris dans les groupes d'utilisateurs. Il existe plusieurs méthodes d'identification et de contrôle des utilisateurs. 2. whoami) habib@phd:~$ id uid=1000(habib) gid=1000(habib) groupes=1000 (habib). Supprimer le compte d'un utilisateur (non connecté) La commande userdel Syntaxe : userdel [-r] nom_login L'option -r supprime aussi le rép. Le numéro est unique pour un utilisateur ou un groupe donné. éventuellement.124(sambashare) La commande chfn permet d'indiquer dans le champ numéro 5 du fichier /etc/passwd différentes informations sur un utilisateur. 4(adm). -u pour déverrouiller le compte. un mot de passe. Les utilisateurs et les groupes sont repérés dans le système par des numéros : uid pour le numéro d'utilisateur (User IDentifier) et gid pour le numéro de groupe (Group IDentifier). 24(cdrom).108(lpadmin).3. 46(plugdev). 30(dip). 27(sudo). Un utilisateur doit appartenir à un ou plusieurs groupes d'utilisateurs pour être autorisé à utiliser le système. nous ne parlerons ici que de la méthode la plus simple mettant en œuvre les fichiers /etc/passwd et /etc/group. 1.

). Chaque utilisateur appartient à un groupe principal. Contenu du fichier /etc/passwd Un utilisateur est caractérisé par une ligne dans le fichier /etc/passwd. le programme qui interagit avec l'utilisateur et qui permet de taper des commandes (csh. Une ligne est formée par les champs suivants : login:passwd:uid:gid:comment:home:shell  login : Il s'agit du nom de l'utilisateur.  ne peuvent pas être utilisé comme login Comptes ordinaires 4. . sh.  gid : Numéro de groupe.  home : Chemin complet de la répertoire attribuée à l'utilisateur  shell : Chemin complet du shell.  uid : Il s'agit d'un numéro unique de l'utilisateur. lp. sync. Hiérarchie de comptes Super utilisateur(Root)  Les permissions d’accès ne sont pas appliquées sur lui. Compris entre 0 et 65535.  bin.. C'est un alphanumérique de 8 caractères maximum. Il pourra également appartenir à des groupes secondaires. daemon.3. Compte pour l’administrateur du système. Cette notion de groupe interviendra au niveau des permissions sur les fichiers. Les 100 premiers nombres sont par convention réservés au système et ne correspondent pas à des utilisateurs normaux.  il peut faire tous.  comment : Nom complet de l'utilisateur..  passwd : Il apparaît dans ce fichier sous forme codée. bash. 5. Notion d'identifiant Tous les identifiants sont définis dans le fichier /etc/passwd: 23 . news. tcsh. ftp …  comptes utilisateur utilisés par différentes applications et démons.

 Nombre de jours avant l'expiration du mot de passe impliquant l'avertissement de l'utilisateur. Ce fichier contient les mots de passe des utilisateurs.:/home/habib:/bin/bash guest-1X1nXe:x:116:125:Guest.  Nombre de jours après lesquels le mot de passe doit être changé ..  mot de passe crypté.  Nombre de jours durant lesquels le mot de passe est encore valide . habib@phd:~$ sudo cat /etc/shadox 24 . Pour contrecarrer cette faille.:/tmp/guest-1X1nXe:/bin/bash 6.$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh habib:x:1000:1000:habib.1. certains systèmes ont introduit le fichier /etc/shadow lisible uniquement par root . Le fichier /etc/shadow Le fichier /etc/passwd est public (toute personne qui a un compte sur la machine peut le lire).  Nombre de jours écoulés depuis le 1er janvier 1970 jusqu'au dernier changement de mot de passe ..76636260.  Nombre de jours après l'expiration provoquant la désactivation du compte  Numéro du jour depuis le 1er janvier 1970 à partir duquel le compte a été désactivé Champs réservé. Une ligne /etc/shadow est composée des champs suivants:  Nom de login . qui disparaissent alors de /etc/passwd.

séparés par deux points (:) Nom du groupe :  Nombre maximum de caractères : 8. Numéro du groupe (GID) :  Lien entre les fichiers /etc/group et /etc/passwd. 25 . Le fichier de déclaration des groupes /etc/group contient une ligne par groupe dans un format similaire au fichier /etc/passwd. et non le nom du groupe. Les membres  Chaque groupe comprend une liste des membres. Le fichier/etc/group Une ligne contient quatre champs. Un utilisateur appartient à un groupe principal (défini dans le fichier /etc/passwd) et éventuellement à des groupes secondaires. 7.  Il est demandé lorsqu'un utilisateur essaie de changer de groupe. Mot de passe :  Champ généralement vide.  Il est appelé numéro de groupe primaire (NGP) dans le fichier /etc/passwd. .  La commande newgrp permet à chaque membre de changer de groupe Intérêts  Accès à des fichiers communs à un autre groupe.1.habib:$6$YqAhRKne$H8inEeyLzCwI59Akv6siggiDEIb6mZ7EFwFx3KSBZPFLovQiIz6uLnqWvkwf xtv5FWKprR3eeHoM3StYWYYkm1:15986:0:99999:7 7. Un utilisateur peut appartenir à plusieurs groupes (groupes secondaires) (secondary group set).  Chaque NGP possède une entrée dans le fichier /etc/group  C’est cet identifiant qui est connu du système. les groupes sont stockés dans le fichier/etc/group permettant d'associer un nom de groupe (gname) à un numéro de groupe (gid) ainsi que la liste de ses membres. qui n'est utilisé que pour l'affichage. il permet d'augmenter la sécurité du système. Notion de groupe Les systèmes à base de Unix définissent une notion de groupe.  Il est unique sinon conflit avec la commande newgrp.  Lorsqu’il existe.

Gestion des groupes  groupadd nom_du_groupe : ajouter un groupe (il faut être root)  groupdel nom_du_groupe : supprime le groupe (il faut être root)  Usermod -g nom_du_groupe nom_d'utilisateur : Modifier le groupe principal d’un utilisateur  adduser nom_d'utilisateur –G nom_du_groupe : ajouter un utilisateur à un groupe (il faut être root) 26 .2.Par exemple : sudo cat /etc/group habib:x:1000: sambashare:x:124:habib guest-1X1nXe:x:125: guest-Fwpfxc:x:126: guest-eZmlJz:x:127: guest-fFlWYd:x:128: mysql:x:129: winbindd_priv:x:130: dhahri:x:1001: 7.

Cet utilisateur est propriétaire du fichier. chaque groupe possédant un identifiant unique.27(sudo). De même chaque utilisateur est rattaché à un groupe au moins (groupe principal).4(adm).124(samb ashare) habib@phd:~$ À chaque fichier (inode) sont associés un UID et un GID définissant son propriétaire et son groupe d’appartenance. En interne. Dans les autres cas (aucune correspondance) : il s’agit du reste du monde (others). un utilisateur se voit affecter un UID (User Identification) unique. le GID (Group Identification).24(cdrom).46(plugdev). pour le groupe d’appartenance et pour le reste du monde.30(dip). 27 . habib@phd:~$ id uid=1000(habib) gid=1000(habib) groupes=1000(habib). Droits et utilisateurs Le rôle d’un système d’exploitation est aussi d’assurer la sécurité et l’accès aux données. des autorisations d’accès individuelles. La commande id permet d’obtenir ces informations. Les UID sont différents : le système vérifie si le GID de l’utilisateur est identique au GID du fichier. Si oui l’utilisateur appartient au groupe associé au fichier. ni un membre du groupe. À sa création par l’administrateur. le système travaille uniquement avec les UID et GID. Vous affectez des droits pour le propriétaire. et pas avec les noms eux mêmes. Chaque fichier ou répertoire se voit attribuer des droits qui lui sont propres.108(lpadmin). ce qui est possible grâce au mécanisme des droits. Les groupes sont définis dans /etc/group. Les utilisateurs sont définis dans le fichier /etc/passwd. On distingue trois cas de figure : UID de l’utilisateur identique { l’UID défini pour le fichier.Chapitre 4: Protection des fichiers 1. Lors d’un accès le système vérifie si celui-ci est permis. ni le propriétaire.

ne précisez rien après le signe = : habib@phd:~$ chmod o= fic1 habib@phd:~$ ls -l -rwx--x--.. -rw-rw-r-. pour le reste du monde le caractère o et pour tous le caractère a. positionnelle et cumulable. chacun 28 . un fichier ou un répertoire dispose de droits par défaut.1 habib habib 0 mars 31 11:07 fic1 Si vous voulez supprimer tous les droits. il faut trois bits.] S’il faut modifier les droits de l’utilisateur. utilisez le caractère u. Il existe deux méthodes pour modifier ces droits : par la forme symbolique et par la base 8..Signification r :Readable (lecture). pour en retirer le caractère . et pour ne pas tenir compte des paramètres précédents le caractère =.2. w : Writable (écriture). Le paramètre -R change les droits de manière récursive. Pour encoder trois droits rwx.1. x :Executable (exécutable comme programme). 2. Seul le propriétaire d’un fichier peut en modifier les droits (plus l’administrateur système). Par base 8 La syntaxe est identique à celle des symboles. on utilise le caractère +. Modification des droits Lors de sa création. Enfin.1 habib habib 0 mars 31 11:07 fic1 2.1 habib habib 0 mars 31 11:07 fic1 chmod u=rwx.g=x. pour les droits du groupe le caractère g. le droit d’accès par lui même : r. 2. Utilisez la commande chmod (change mode) pour modifier les droits sur un fichier ou un répertoire. Pour ajouter des droits.1 habib habib 0 mars 31 11:07 fic1 habib@phd:~$ chmod g+w fic1 habib@phd:~$ ls -l -rw-rw-rw. À chaque droit correspond une valeur octale.o=rw fic1 -rwx--xrw.Par symboles chmod modifications Fic1 [Fic2. w ou x.

 Le masque est le même pour l’ensemble des fichiers. Pour obtenir cette valeur.  Puis le masque est appliqué.prenant la valeur 0 ou 1 selon que le droit est absent ou présent. Le masque par défaut est 022. lui même modifiable par la commande umask. habib@phd:~$ chmod 755 fic1 habib@phd:~$ ls -l -rwxr-xr-x 1 habib habib 0 mars 31 11:07 fic1 3.  Un masque ne modifie pas les droits des fichiers existants.(022)  Reste rw -r--r-- (644) Pour un répertoire  Défaut rwxrwxrwx (777)  Retirer ----w--w- (022)  Reste rwxr-xr-x (755) Remarque 29 . des droits leur sont automatiquement assignés. Généralement. Masque des droits 3.  Par défaut tous les répertoires sont créés avec les droits 777 (rwxrwxrwx). Calcul de masque Pour un fichier  Défaut rw-rw-rw. tous les fichiers sont créés avec les droits 666 (rwrwrw). d’où une notation octale possible. c’est rwrr (644) pour un fichier et rwxrxrx (755) pour un répertoire.  Par défaut. 3. 2 3 =8. tapez umask sans paramètre.(666)  Retirer ----w--w.Restreindre des droits automatiquement Lors de la création d’un fichier ou d’un répertoire. mais seulement ceux des nouveaux fichiers.1.2. La commande umask prend comme paramètre une valeur octale dont chaque droit individuel sera supprimé des droits d’accès maximum du fichier ou du répertoire. soit ----w--w-. Ces valeurs sont contrôlées par un masque.

mais supprimer des droits de ceux par défaut. 4. 5. chown utilisateur fic1 [Fic2. Changer de propriétaire et de groupe Il est possible de changer le propriétaire et le groupe d’un fichier { l’aide des commandes chown (change owner) et chgrp (change group). le système vérifie d’abord son existence... ce qui est impossible en octal. Ces droits d’accès étendus appliqués à une commande permettent à cette commande de s’exécuter avec les droits du propriétaire ou du groupe d’appartenance de la commande.(640) Et non 629..] chgrp groupe fic1 [Fic2. Par exemple :  Défaut rw-rw-rw. dans ce cas le système n’effectuera pas de vérification. 30 .. Il est possible de modifier en une seule commande à la fois le propriétaire et le groupe.. les droits précédents et l’emplacement du fichier ne sont pas modifiés.] chown utilisateur[.. droit par droit. et non plus avec les droits de l’utilisateur l’ayant lancée. chown utilisateur[:groupe] fic1 [fic2.. Mais un utilisateur peut changer le groupe d’un fichier s’il fait partie du nouveau groupe.1... Pour les deux commandes.groupe] fic1 [fic2.] En précisant le nom d’utilisateur (ou de groupe). Le paramètre -R change la propriété de manière récursive.Notez qu’appliquer un masque n’est pas soustraire.SUID et SGID Il est possible d’établir des droits d’accès étendus { l’exécution d’une commande.(666)  Retirer ----wxrwx (037)  Reste rw-r----.] Seul le root a le droit de changer le propriétaire d’un fichier.. Droits d’accès étendus 5. Vous pouvez préciser un UID ou un GID. chgrp video fic1 ls -l fic1 -rwxr-xr-x 1 seb video 0 mar 21 22:03 fic1 5.

Le droit s sur l’utilisateur est appelé le SUIDBit (Set User ID Bit). 26 2013 /usr/bin/passwd Un nouveau droit est apparu : le droit s pour les droits de l’utilisateur root. le programme est exécuté avec les droits du propriétaire du fichier ou de son groupe d’appartenance. il est lancé avec les droits de root. Si ceux ci ne sont pas présents . Le temps du traitement. Ce nouvel attribut permet l’exécution de la commande avec des droits d’accès étendus. Si la commande était exécutée avec les droits d’un utilisateur classique. 31 . 27 13:08 /etc/passwd habib@phd:~$ Vous constatez que ce fichier appartient à root. Dans le cas de passwd. et que seul root peut y écrire. La commande passwd ne devrait donc pas pouvoir modifier les fichiers.L’exemple le plus simple est le programme passwd permettant de changer son mot de passe. chmod u+s commande chmod g+s commande Les valeurs octales sont 4000 pour le SUIDBit et 2000 pour le GUIDBit. Voyez les droits de la commande passwd (/bin/passwd ou /usr/bin/passwd) : habib@phd:~$ ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 47064 juil. chmod 4755 commande chmod 2755 commande Seul le propriétaire ou l’administrateur peut positionner ce droit. le s est remplacé par un S. Un utilisateur simple ne peut lire que son contenu sans interagir. et sur le groupe le GUIDBit (Set Group ID Bit) La commande chmod permet de placer les SUIDBit et GUIDBit. passwd ne pourrait pas ouvrir et modifier les fichiers /etc/passwd et /etc/shadow : habib@phd:~$ ls -l /etc/passwd -rw-r--r-.1 root root 2019 janv. Positionner le SUIDbit ou le SGIDBit n’a de sens que si les droits d’exécution ont préalablement été établis (attribut x sur le propriétaire ou le groupe).

Chapitre 5 : Recherche des fichiers 1. 32 . % find -type f -name ‘’*s*’’ -print Affiche tous les fichiers contenus dans le répertoire courant et dont le nom contient la lettre s . Ces critères. s’ils sont plusieurs. Considérations générales La commande find parcourt les répertoires et leurs sous-répertoires de manière récursive à la recherche de fichiers. Critères de recherche Les paramètres permettent de définir les critères de recherche. sont combinés entre eux : les options des sélection des fichiers et répertoires peut etre par :  name : recherche par nom de fichier  type : recherche par type de fichier  user : recherche par propriétaire  group : recherche par l’appartenance { un groupe  size : recherche par taille de fichier  atime : recherche par date de dernier accès  mtime : recherche par date de dernière modification  ctime : recherche par date de création  perm : recherche par autorisations d’accès  links : recherche par nombre de références (links) aux fichiers Exemple % find -type d -print Affiche tous les répertoires contenus dans le répertoire courant. La syntaxe de cette commande est : find répertoire(s) critère_de_sélection option(s) Un répertoire ne peut être parcouru que si l’utilisateur dispose des droits de lecture et d’exécution sur ce répertoire ou sous-répertoire 2.

% find -type f -size +200k -print Affiche tous les fichiers de plus de 200 Ko. -type f -name "*.mp3" -ok rm -f {} \. Traitement après confirmation avec –ok Les mêmes explications s’appliquent également { l’option –ok.mp3" -exec rm -f {} \. demande une confirmation d’exécution de la commande pour chaque fichier trouvé.mp3 » : find . Ce caractère spécial doit s’écrire \. pour ne pas être interprété par le shell. Pour passer comme paramètre pour la commande le fichier trouvé par find. Exemple find . Le critère -exec va exécuter la commande située juste après pour chaque occurrence trouvée. Un fichier valide doit répondre simultanément { l’ensemble des critères définis. La commande find permet également des combinaisons logiques de ses options : ! : Négation logique des options a : liason par ET logique des options de recherche (and) 33 . -type f -name "*. mais celle-ci. que la commande placée derrière –ok sera exécutée. % find /home/TP_Linux -type d -perm 755 -print Affiche tous les sous-répertoires du répertoire /TP_Linux ayant comme autorisations d’accès rwxr-xr-x. 2. Quelques remarques s’imposent : -exec doit obligatoirement être la dernière option de la commande find. ».Commandes Outre l’option -print on trouve d’autres options permettant d’effectuer une action sur les fichiers trouvés. Combinaison de critères pour recherches complexes Les critères de sélection peuvent être combinés.1. La commande exécutée par -exec doit se terminer par un « . Exemple pour effacer tous les fichiers finissant par « . il faut écrire {} (substitution du fichier). Ce n’est qu’en cas de réponse affirmative (avec y). % find -mtime -3 -print Affiche tous les fichiers dont la date de la dernière modification remonte à moins de trois jours.

Il est très probable. ou fichiers. 34 .nombre2\} de nombre1 à nombre2 3.Critère Le modèle de critères peut contenir les caractères spéciaux suivants :  […] : Plage de caractères permis { cet emplacement  [^…] : Plage de caractères non permet { cet emplacement  .google.com./. De même. Créer des archives La commande tar signifie ‘tape archive' .gz.: Un caractère quelconque (y compris un espace)  : Signe de répétition. C'est la méthode ‘standard' pour lire et écrire des archives./. Agit sur le caractère placé devant le *  $ : Matérialise une fin de ligne  | : ou  ^ : début de ligne  \{…\} : Caractère de répétition.2. vous devriez utiliser tar. entre les accolades  \{nombre\} nombre exacte  \{nombre.tar. Vous trouverez souvent des archives de fichiers avec des noms comme fichiers. Ce sont respectivement des fichiers dans une archive tar et des fichiers dans une archive tar qui a été compressée avec le programme de compression gzip./.Chrome.config/google- chrome/SingletonSocket -> /tmp/.psoaMv/SingletonSocket 418525 0 lrwxrwxrwx 1 habib habib 8 avril 2 11:00 .config/pulse/94cf1668d3d045cf8dcc6e3a52222785-runtime -> /tmp/pulse-2L9K88eMlGn7 418558 0 lrwxrwxrwx 1 habib habib 46 avril 2 11:00 . si quelqu'un vous envoie des fichiers.o : liaison par OU logique des options de recherche (or) Exemple habib@phd:~$ find ! \( -type f -o -type d \) -ls 140199 0 lrwxrwxrwx 1 habib habib 23 mars 5 19:28 . qu'ils soient compressés dans une archive tar.tar. si vous devez envoyer des fichiers.\} nombre minimum  \{nombre1.config/google- chrome/SingletonLock -> phd-4756 2.

txt.  tar jxvf archive.txt L'utilitaire bzip2 offre (en général) un meilleur taux de compression que gzip.tar.txt. en affichant les noms des fichiers qui la composent. L'extension pour les fichiers gzippés est .txt.txt.tar fichier1 : Crée un fichier 'archive. gzip fichier.bz2. tar xvf archive.  tar xvfz archive.txt.tar' contenant fichier1. Compression de fichier : gzip.gz gunzip fichier.gz : extrait les fichiers de l'archive en utilisant gzip .bz2 bunzip2 fichier. bzip2 fichier.  tar cvfz archive.tar.bz2 : décompresse le fichier fichier.1.  tar cvf archive.gz : extrait le fichier fichier.txt : crée le fichier compressé fichier.txt : crée le fichier fichier.gz mon_dossier : crée un fichier gzip contenant le contenu du dossier ‘mon_dossier 3.tar : extrait les fichiers de l'archive archive.tar.tar. mais au prix d'un temps de compression et décompression plus élevé.bz2 : extrait les fichiers de l'archive en utilisant bzip2.gz. bzip2 gzip est un outil GNU de compression et de décompression. 35 .

27 19:16 ttt. Par défaut le canal d’entrée est le clavier. et le canal de sortie. Un troisième canal. le canal d’erreur. Tout flux de données en entrée ou en sortie de commande passe par un canal. l’écran. Il est possible de rediriger ces canaux vers des fichiers. les messages d’erreur vers un autre fichier. 2. est aussi redirigé vers l’écran par défaut. On indique ensuite le nom du fichier où seront placés les résultats de sortie.sh~ drwxrwxr-x 31 habib habib 4096 févr.1 habib habib 2039 janv.1 habib habib 292 janv. Principe La redirection consiste { de rediriger l’affichage de l’écran vers un fichier. 12 2012 test.sql -rw-rw-r-. une imprimante ou tout autre périphérique. il est possible de dévier le cours des données vers une autre destination ou depuis une autre source. Comme pour l’eau. 27 19:13 ttt. En sortie On se sert du caractère > pour rediriger la sortie standard (celle qui va normalement sur l’écran). 27 19:09 ttt -rw-rw-r-. Linux utilise des canaux d’entrées/sorties pour lire et écrire ses données.Chapitre 6 : Les redirections 1. 2 19:08 Ubuntu One drwxr-xr-x 2 habib habib 4096 août 31 2013 Videos Remarque 36 .sh -rw-rw-r-. de remplacer la saisie clavier par le contenu d’un fichier.1 habib habib 1936 janv. Exemple habib@phd:~$ ls -l >fich1 habib@phd:~$ cat fich1 total 9632 rwxrwx--. ou du flux texte de manière transparente pour les commandes Linux.1 habib habib 0 janv.

donc sans l’écraser. S’il existe. 27 19:13 ttt. Un exemple avec la commande wc (word count) qui permet de compter le nombre de lignes. 12 2012 test. par exemple ici ’end’. il sera créé. Elle permet l’utilisation des documents en ligne. Cela permet la saisie d’un texte jusqu’{ un point donné et l’envoi de son résultat { une commande ou un filtre. même si la commande tapée est incorrecte. 27 19:16 ttt. Après le << vous indiquez une chaîne définissant la fin de saisie.1 habib habib 2039 janv.sql -rw-rw-r-. Pour rajouter des données { la suite du fichier. on utilise la double redirection >>. Exemple ls -l > fich1 ddate >> fich1 cat fich1 -rwxrwx--.1 habib habib 0 janv.Si le fichier n’existe pas. En entrée Les commandes qui attendent des données ou des paramètres depuis le clavier peuvent aussi en recevoir depuis un fichier.sh -rw-rw-r-. 2 19:08 Ubuntu One drwxr-xr-x 2 habib habib 4096 août 31 2013 Videos Today is Sweetmorn.sh~ drwxrwxr-x 31 habib habib 4096 févr.txt La redirection << est particulière. habib@phd:~$ tr "[a-z]" "[A-Z]" << end > Ceci est un Exemple > le test de la commande tr > end CECI EST UN EXAMPLE 37 . Le shell commence d’abord par créer le fichier puis exécute ensuite la commande. { l’aide du caractère <. son contenu sera écrasé.1 habib habib 292 janv. 27 19:09 ttt -rw-rw-r-. Le résultat de la commande est ajouté à la fin du fichier. the 18th day of Discord in the YOLD 3180 3. Exemple wc < resultat. Les redirections classiques sont aussi autorisées.1 habib habib 1936 janv. de mots et de caractères d’un fichier.

le shell recherche d’abord les caractères <. >> en fin de ligne. et dans lequel on peut ou lire ou écrire. Vous pouvez rediriger les deux canaux de sortie dans un seul et même fichier. Vous pouvez utiliser les deux types de redirection à la fois : habib@phd:~$ wc < fich1 > fich2 habib@phd:~$ cat fich2 136 5. Il est aussi important de savoir dans quel sens le shell interprète les redirections.  Le canal d’entrée standard se nomme stdin et porte le descripteur 0. Les canaux standards On peut considérer un canal comme un fichier. On peut rediriger le canal d’erreur vers un autre fichier. On utilise pour cela le caractère >&.  Le canal d’erreur standard se nomme stderr et porte le descripteur 2. Ainsi si vous voulez grouper les deux canaux de sortie et d’erreur dans un même fichier.LE TEST DE LA COMMANDE TR 4.  Le canal de sortie standard se nomme stdout et porte le descripteur 1. en les liant. il faut procéder comme suit. habib@phd:~$ rmdir dossier2 rmdir: échec de suppression de «dossier2»: Aucun fichier ou dossier de ce type habib@phd:~$ rmdir dossier2 2>error. ls -l > fich1 2>&1 La sortie 2 est redirigée vers la sortie 1. Filtre 38 . qui possède son propre descripteur par défaut. donc les messages d’erreurs passeront par la sortie standard.log rmdir: échec de suppression de «dossier2»: Aucun fichier ou dossier de ce type. Puis le résultat de la sortie standard de la commande ls est redirigé vers le fichier fich1. Les redirections étant en principe en fin de commande. >. Ce fichier contiendra donc { la fois la sortie standard et la sortie d’erreur.log habib@phd:~$ cat error.

Un filtre (ou une commande filtre) est un programme sachant écrire et lire des données par les canaux standards d’entrée et de sortie. grep (critères de recherche). En voici quelques uns : more (affiche les données page par page). l’autre pour rediriger ce fichier vers le filtre. Le caractère permettant cela est | accessible depuis la combinaison [AltGr] 6 des claviers français. Cela oblige à taper deux lignes : une pour la redirection vers un fichier. Les tubes ou pipes permettent de rediriger directement le canal de sortie d’une commande vers le canal d’entrée d’une autre. Pipelines / tubes Les redirections d’entrée/sortie permettent de rediriger les résultats vers un fichier. wc est un filtre. Ce fichier peut ensuite être réinjecté dans un filtre pour en extraire d’autres résultats. 6. sort (tri des données). Il en modifie ou traite éventuellement le contenu. $ ls -l > fich1 $ wc < fich1 devient habib@phd:~$ ls -l | wc 35 327 2085 39 .

les variables. Le processus fils est un processus qui a été créé par un autre processus qui prend le nom de processus père. Les plus courants sont :  init : initialise un processus par terminal connecté sur la machine. Il est possible de distinguer deux types de processus : les processus système et les processus utilisateurs. C’est le processus parent de tous les interpréteurs de commandes créés par la connexion d’un utilisateur. les fichiers associés.  xinetd : super démon internet chargé de créer les processus serveurs réseau sur requêtes des clients. permettant la connexion des utilisateurs. Les attributs d’un processus appartiennent { ce que l’on appelle son environnement : parmi eux le code. le premier d’entre eux étant l’interpréteur de commandes { la connexion.Chapitre : Gestion des processus Un processus est un programme en cours d’exécution. 1. parfois disponibles { tous les utilisateurs du système. les données temporaires. les données permanentes.  crond : permet l’exécution d’un programme en mode cyclique. Les processus utilisateurs Ils correspondent { chaque exécution d’un programme par l’utilisateur. 40 . 2. Ils assurent des tâches d’ordre général. Un processus sous Linux est identifié par un numéro unique qui s’appelle le numéro d’identification du processus PID (Process IDentifier) et qui lui est attribué par le système { sa création. Ce processus a le numéro 1. Les processus système (daemons) Ces processus ne sont sous le contrôle d’aucun terminal et ont comme propriétaire l’administrateur du système ou un uid d’administration. Ils ne sont d’habitude stoppés qu’{ l’arrêt du système d’exploitation. Ces processus appartiennent { l’utilisateur et sont généralement attachés à un terminal.

 Le mode cyclique. l’utilisateur ne peut pas utiliser le terminal pour lancer une autre commande. Le contrôle n’est restitué { l’utilisateur qu’{ la fin de l’exécution de la commande. appelé aussi mode asynchrone. $ essai & L’utilisateur a la main.  Le mode interactif La commande est lancée { partir d’un interpréteur de commandes. Cette fonctionnalité est intéressante pour des tâches ne nécessitant pas d’interaction entre l’utilisateur et la tâche. La commande est lancée suivie du caractère &. La commande ps 41 . Pendant l’exécution de la commande.  Le mode en arrière-plan (background). Exécution d'une commande Il existe cinq modes d’exécution d’une commande sous Linux :  Le mode interactif (foreground).3.  Le mode batch. Il peut continuer { travailler tout en surveillant régulièrement l’exécution de la commande essai. Exemple Le fichier essai est un exécutable. il est possible d’interrompre cette commande en utilisant la combinaison de touches <ctrl-c>. comme par exemple la compilation d’un programme. À tout moment.  Le mode différé. Son exécution peut être surveillée par les commandes ps ou jobs. Exemple $ at 20:05 20/09/14 commande 4.Le mode en arrière-plan Le lancement de commandes en arrière-plan permet de rendre immédiatement le contrôle à l’utilisateur. 3. Son exécution n’interagit pas avec l’utilisateur.1. L’exécution différée d’une commande est réalisée { l’aide de la commande at qui permet de déclencher l’exécution d’une commande à une date fixée. ou de la suspendre { l’aide de <ctrl-z> .

. killall : tuer plusieurs processus La commande kill -signal PID sert essentiellement à arrêter des processus en arrière-plan (background). CMD : le programme qui a généré ce processus. Remarque ps sans arguments affiche seulement les processus lancés par le même utilisateur.. Un certain nombre d’événements (erreur. TIME : la durée d'exécution du processus. TTY : c'est le nom de la console depuis laquelle a été lancé le processus.ps : permet d'obtenir la liste des processus qui tournent au moment où vous lancez la commande habib@phd:~$ ps PID TTY TIME CMD 3497 pts/0 00:00:00 bash 7036 pts/0 00:00:00 less 8213 pts/0 00:00:00 man 8225 pts/0 00:00:00 pager 8295 pts/0 00:00:00 man 8303 pts/0 00:00:00 preconv PID : processus a un numéro unique qui permet de l'identifier. ps -u UTILISATEUR : lister les processus lancés par un utilisateur 5. Arrêter Un Processus Ctrl + C : arrêter un processus lancé en console kill : tuer un processus kill -9 vous demandez à Linux de tuer le processus sans lui laisser le temps de s'arrêter proprement 6. Les principaux signaux sont : SIGHUP :(SIGnal Hang UP : fin du shell) 42 . ps –ef:permet d’obtenir la liste de tous les processus lancés par tous les utilisateurs sur toutes les consoles. <ctrl-c>.) peut être signalé { un processus { l’aide d’un signal. L’option -signal correspond au signal envoyé au processus..

SIGINT :(SIGnal INTerrupt : interruption du programme) SIGKILL :(SIGnal KILL : tuer le processus) SIGTERM :(SIGnal TERMinate : terminaison douce) SIGQUIT :(SIGnal QUIT : terminaison brutale) SIGSTOP :(SIGnal STOP : stopper le processus) 43 .

« LINUX Initiation et utilisation ». 2008. Jean-Paul Armspach. « Débuter sous linux ».Frédérique Ostré-Waerzeggers. Edition EYROLLE.2004.Edition DUNOD . Hermantino singodiwirjo. Sébastien Blondeel. Christophe Blaess. 3. Daniel cartron. Pierre Colin. « Shells Linux et Unix par la pratique».Bibliographie 1. ». 44 . Edition EYROLLE. 2. 2004.