Vous êtes sur la page 1sur 97

Introduction au système d'exploitation

Linux
Les bases pour l'apprenti administrateur système

Pr. Maïssa MBAYE


maissa.mbaye@ugb.edu.sn

Licence Mathématiques Appliquées et Informatique (MAI)

Version 0.9.3
24 juillet 2018
Première partie I

Généralités et le Shell
Introduction au système d'exploitation Linux 3 / 47

Pourquoi un cours sur le système d'exploitation Linux ?

Le système d'exploitation est le premier programme chargé


dans un système Informatique
La connaissance Linux est essentielle dans certaines carrières
en Informatique
Linux porte l'empreinte génétique des premiers systèmes
d'exploitations
Ce cours ouvre une porte vers les logiciels libres.
Plan

1 Généralités

2 Généralités Unix/Linux

3 Shell, commandes et aide en ligne


Le Shell
Commandes et Aide en ligne
Introduction au système d'exploitation Linux 5 / 47
Généralités

Un monde sans les systèmes d'exploitation

Il etait une fois les cartes perforées :

Voir la vidéo (http://www.youtube.com/watch?v=oaVwzYN6BP4)


Introduction au système d'exploitation Linux 6 / 47
Généralités

Structure d'un système informatique moderne


Introduction au système d'exploitation Linux 6 / 47
Généralités

Structure d'un système informatique moderne


Introduction au système d'exploitation Linux 6 / 47
Généralités

Structure d'un système informatique moderne


Introduction au système d'exploitation Linux 6 / 47
Généralités

Structure d'un système informatique moderne


Introduction au système d'exploitation Linux 7 / 47
Généralités

Structure d'un système informatique moderne

Le matériel → fournit les ressources de calcul


Introduction au système d'exploitation Linux 7 / 47
Généralités

Structure d'un système informatique moderne

Le matériel→ fournit les ressources de calcul


CPU, Mémoire, Périphériques d'entrées sorties (souris, claviers, écran,
disques)
Introduction au système d'exploitation Linux 7 / 47
Généralités

Structure d'un système informatique moderne

Le matériel → fournit les ressources de calcul


CPU, Mémoire, Périphériques d'entrées sorties (souris, claviers, écran,
disques)
Le système d'exploitation → controle et coordonne l'utilisation des ressoureces
par les applications et les utilisateurs
Introduction au système d'exploitation Linux 7 / 47
Généralités

Structure d'un système informatique moderne

Le matériel → fournit les ressources de calcul


CPU, Mémoire, Périphériques d'entrées sorties (souris, claviers, écran,
disques)
Le système d'exploitation → controle et coordonne l'utilisation des ressoureces
par les applications et les utilisateurs
Les applications → ore des solutions pour résoudre les besoins de calcul des
utilisateurs
Introduction au système d'exploitation Linux 7 / 47
Généralités

Structure d'un système informatique moderne

Le matériel → fournit les ressources de calcul


CPU, Mémoire, Périphériques d'entrées sorties (souris, claviers, écran,
disques)
Le système d'exploitation → controle et coordonne l'utilisation des ressoureces
par les applications et les utilisateurs
Les applications → ore des solutions pour résoudre les besoins de calcul des
utilisateurs
Bureautique, compilateurs, Navigateurs Web, base de données, jeux
vidéos, . . .
Introduction au système d'exploitation Linux 7 / 47
Généralités

Structure d'un système informatique moderne

Le matériel → fournit les ressources de calcul


CPU, Mémoire, Périphériques d'entrées sorties (souris, claviers, écran,
disques)
Le système d'exploitation → controle et coordonne l'utilisation des ressoureces
par les applications et les utilisateurs
Les applications → ore des solutions pour résoudre les besoins de calcul des
utilisateurs
Bureautique, compilateurs, Navigateurs Web, base de données, jeux
vidéos, . . .
Les utilisateurs → Personnes, d'autres ordinateurs, . . .
Introduction au système d'exploitation Linux 8 / 47
Généralités

Système d'exploitation (Operating System)

Dénition
Un système d'exploitation est un logiciel qui permet aux utilisateurs :
d'utiliser les logiciels installés sur l'ordinateur
d'acceder aux périphériques de manière simple (imprimante, clavier, souris, . . . )
de stocker et traiter les données et les informations brutes

⇒ Objectif : Faciliter l'utilisation de l'ordinateur à l'utilisateur


Introduction au système d'exploitation Linux 9 / 47
Généralités

Système d'exploitation (Operating System)(2)

Les systèmes d'exploitations les plus connus du grand public sont :


Microsoft Windows

Mac OS X

Linux qui fait partie de la famille des OS Unix


Android
Introduction au système d'exploitation Linux 10 / 47
Généralités

Services d'un système d'exloitation

Les systèmes d'exploitations fournissent un environnement pour l'execution des


programmes des utilisateurs
Interface utilisateurs
Environnement d'execution des programmes
Opérations d'entrée-sortie
Manipulation du système de chier
Support de communication à travers le réseau
Mecanisme de detection d'erreurs
Introduction au système d'exploitation Linux 11 / 47
Généralités

Objectifs du cours

Faire l'étude des concepts et programmes de bases (commandes)


permettant d'utiliser le système d'exploitation Linux
Objectif pédagogique 1 : l'etudiant doit connaitre après ce
cours les concepts fondammentaux de Linux et UNIX.
Compétences ciblées 2 : L'etudiant doit acquérir les
compétences pour réaliser les tâches de base sur la ligne de
commande :
Manipulation des chiers
Redirection et tubes (pipes) ;
Manipulation des données textuelles
Manipulation des processus et les droits des utilisateurs
...

1. Ce que vous devez savoir


2. Ce que vous devez savoir faire
Plan

1 Généralités

2 Généralités Unix/Linux

3 Shell, commandes et aide en ligne


Le Shell
Commandes et Aide en ligne
Introduction au système d'exploitation Linux 13 / 47
Généralités Unix/Linux

Unix - un label

Dénition(s) d'Unix 1

1. Pour l'historique d'Unix consulter : Chapitre 2 de [Art of Unix Programming, de Eric Steven
Raymond, Addison Wesley, 2003 ])
Introduction au système d'exploitation Linux 13 / 47
Généralités Unix/Linux

Unix - un label

Dénition(s) d'Unix 1
Dénition stricte : label donné à une famille d'OS certiés conformes [par
l'Open Group] à la spécication Single Unix Specication

1. Pour l'historique d'Unix consulter : Chapitre 2 de [Art of Unix Programming, de Eric Steven
Raymond, Addison Wesley, 2003 ])
Introduction au système d'exploitation Linux 13 / 47
Généralités Unix/Linux

Unix - un label

Dénition(s) d'Unix 1
Dénition stricte : label donné à une famille d'OS certiés conformes [par
l'Open Group] à la spécication Single Unix Specication

Dénition usuelle : Famille d'OS clonant les fonctions des systèmes Unix
classiques (System V ou Unix BSD)

1. Pour l'historique d'Unix consulter : Chapitre 2 de [Art of Unix Programming, de Eric Steven
Raymond, Addison Wesley, 2003 ])
Introduction au système d'exploitation Linux 13 / 47
Généralités Unix/Linux

Unix - un label

Dénition(s) d'Unix 1
Dénition stricte : label donné à une famille d'OS certiés conformes [par
l'Open Group] à la spécication Single Unix Specication

Dénition usuelle : Famille d'OS clonant les fonctions des systèmes Unix
classiques (System V ou Unix BSD)
Plusieurs variantes d'Unix (mais descendent tous du System V ou de
Unix BSD) :

1. Pour l'historique d'Unix consulter : Chapitre 2 de [Art of Unix Programming, de Eric Steven
Raymond, Addison Wesley, 2003 ])
Introduction au système d'exploitation Linux 14 / 47
Généralités Unix/Linux

Unix - un label

The Open Group (http://www.Unix.org)


Possède la marque déposée Unix R
Publie la norme Single Unix Specication
Intègre les normes précédentes : X/Open Company's XPG4,
IEEE's POSIX (Portable Operating System Interface )
Standards et ISO/IEC
Unix - une famille

1969 Unics 1969

1971 - 1973 UnixTSS


Source ouverte (Open Source) 1-4 1971 - 1973
1974 - 1975 Source partagée (Mixed/Shared Source) UnixTSS
5-6 PWB/Unix 1974 - 1975
1978 Source fermée (Closed Source)

BSD 1978
1.0 - 2.0 UnixTSS
1979 7
1979
Unix 32v

1980
BSD 1980
3.0 - 4.1 Xenix
1981 1.0 - 2.3
System III
1981
1982
Xenix 1982
BSD 4.2 3.0
1983 Sun OS System V 1983
1 - 1.1 R1 - R2
1984 SCO Xenix
1984
UnixTSS
1985 8 SCO Xenix
AIX System V 1985
W286
1986 BSD 4.3 1.0 R3 HP/UX
Sun OS 1.0 - 1.2 1986
1.2 - 3.0 SCO Xenix
1987 UnixTSS V386 1987
(Time Sharing HP/UX
1988 System) BSD 4.3 System V
R4 2.0 - 3.0 1988
9 - 10 Tahoe SCO Xenix
1989 W386 1989
BSD 4.3
1990 Reno 1990
1991 BSD NET/2
Linux 0.0.1 1991
Sun OS
Minix 4
1.x NEXTSTEP/ 386BSD
OPENSTEP 1992
1992 1.0 - 4.0 HP/UX
NetBSD 6 - 11
Linux 0.8 - 1.0 1993
0.95 - 1.2.x BSD SCO Unix
1993 4.4 - 4.4 lite2 Unixware
3.2.4 1994
FreeBSD 1.x - 2.x
1994 1.0 - 2.2.x
1995 NetBSD OpenBSD 1995
1.1 - 1.2 OpenServer
1.0 - 2.2 5.0 - 5.04 Solaris
1996 AIX 2.1 - 10 1996
3.x - 6.x
1997 1997
NetBSD 1.3
1998 FreeBSD 1998
3.0 - 3.2
Minix OpenServer Unixware
1999 2.x Mac OS X 5.0.5 - 5.0.7 7.x
Linux Server 1999
2000 2.0 - 2.6.x OpenBSD
2.3 - 4.x 2000
FreeBSD NetBSD
2001 - 2004 3.3 - 8.0 1.3 - 5.x 2001 - 2004
Mac OS X HP/UX
2005 10.0 - 10.6 11i - 11i v3
Minix OpenServer OpenSolaris 2005
(Darwin)
3.x 6.x 2008.05 et
2006 - 2010 supérieur 2006 - 2010

Source : Wikipedia
Introduction au système d'exploitation Linux 16 / 47
Généralités Unix/Linux

Unix - un système

Un système d'exploitation Unix est composé de 4 couches :


Le kernel(noyau) : coeur du système qui gère l'accès au
matériel, l'execution des applications sur le processeur et
fournit l'environnement un environnement d'execution des
processus à l'utilisateur
Introduction au système d'exploitation Linux 16 / 47
Généralités Unix/Linux

Unix - un système

Un système d'exploitation Unix est composé de 4 couches :


Le kernel(noyau) : coeur du système qui gère l'accès au
matériel, l'execution des applications sur le processeur et
fournit l'environnement un environnement d'execution des
processus à l'utilisateur
les API : fournissent une interface aux programmeurs pour
avoir accès aux fonctionnalités du système d'exploitation
Introduction au système d'exploitation Linux 16 / 47
Généralités Unix/Linux

Unix - un système

Un système d'exploitation Unix est composé de 4 couches :


Le kernel(noyau) : coeur du système qui gère l'accès au
matériel, l'execution des applications sur le processeur et
fournit l'environnement un environnement d'execution des
processus à l'utilisateur
les API : fournissent une interface aux programmeurs pour
avoir accès aux fonctionnalités du système d'exploitation
Les outils et utilitaires : un ensemble de logiciels spécialisés
avec des noms standards permettant de faire les tâches au
quotidien (les commandes)
Introduction au système d'exploitation Linux 16 / 47
Généralités Unix/Linux

Unix - un système

Un système d'exploitation Unix est composé de 4 couches :


Le kernel(noyau) : coeur du système qui gère l'accès au
matériel, l'execution des applications sur le processeur et
fournit l'environnement un environnement d'execution des
processus à l'utilisateur
les API : fournissent une interface aux programmeurs pour
avoir accès aux fonctionnalités du système d'exploitation
Les outils et utilitaires : un ensemble de logiciels spécialisés
avec des noms standards permettant de faire les tâches au
quotidien (les commandes)
Le Shell : permet aux utilisateurs de lancer les utilitaires
Introduction au système d'exploitation Linux 17 / 47
Généralités Unix/Linux

Le projet GNU (GNU is Not UNIX)

1984 : Démarrage du projet GNU par Richard Stallman (Chercheur au


MIT)

Richard
Stallman
Introduction au système d'exploitation Linux 17 / 47
Généralités Unix/Linux

Le projet GNU (GNU is Not UNIX)

1984 : Démarrage du projet GNU par Richard Stallman (Chercheur au


MIT)
Objectif : Créer un système d'exploitation Unix-like libre

Richard
Stallman
Introduction au système d'exploitation Linux 17 / 47
Généralités Unix/Linux

Le projet GNU (GNU is Not UNIX)

1984 : Démarrage du projet GNU par Richard Stallman (Chercheur au


MIT)
Objectif : Créer un système d'exploitation Unix-like libre

1985 : Création de la FSF (Free Software Foundation), organisation à


Richard but non lucratif
Stallman
Introduction au système d'exploitation Linux 17 / 47
Généralités Unix/Linux

Le projet GNU (GNU is Not UNIX)

1984 : Démarrage du projet GNU par Richard Stallman (Chercheur au


MIT)
Objectif : Créer un système d'exploitation Unix-like libre

1985 : Création de la FSF (Free Software Foundation), organisation à


Richard but non lucratif
Stallman 1990 : Le projet GNU a produit :
Introduction au système d'exploitation Linux 17 / 47
Généralités Unix/Linux

Le projet GNU (GNU is Not UNIX)

1984 : Démarrage du projet GNU par Richard Stallman (Chercheur au


MIT)
Objectif : Créer un système d'exploitation Unix-like libre

1985 : Création de la FSF (Free Software Foundation), organisation à


Richard but non lucratif
Stallman 1990 : Le projet GNU a produit :
une licence : la GPL (General Public License)
Introduction au système d'exploitation Linux 17 / 47
Généralités Unix/Linux

Le projet GNU (GNU is Not UNIX)

1984 : Démarrage du projet GNU par Richard Stallman (Chercheur au


MIT)
Objectif : Créer un système d'exploitation Unix-like libre

1985 : Création de la FSF (Free Software Foundation), organisation à


Richard but non lucratif
Stallman 1990 : Le projet GNU a produit :
une licence : la GPL (General Public License)
un ensemble d'outils presque complet : (emacs, gcc, gdb,
glibc, ...)
Introduction au système d'exploitation Linux 17 / 47
Généralités Unix/Linux

Le projet GNU (GNU is Not UNIX)

1984 : Démarrage du projet GNU par Richard Stallman (Chercheur au


MIT)
Objectif : Créer un système d'exploitation Unix-like libre

1985 : Création de la FSF (Free Software Foundation), organisation à


Richard but non lucratif
Stallman 1990 : Le projet GNU a produit :
une licence : la GPL (General Public License)
un ensemble d'outils presque complet : (emacs, gcc, gdb,
glibc, ...)
Grand manquant ⇒ Un Kernel Unix fonctionnel (même s'il
existait GNU/HURD)

Pour aller plus loin


[Richard Stallman et la révolution du logiciel libre. Une biographie autorisée, Sam
Williams, Richard Stallman & Christophe Masutti, Framabook et Eyrolles Edition
Janvier 2010] disponible librement sur le site http://www.framasoft.net
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 Linus Tovalds developpe un clone de Kernel Unix (Linux)


inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)

Linus
Tovalds

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 Linus Tovaldsdeveloppe un clone de Kernel Unix (Linux)


inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)
Kernel 1.x Version 1.0 (Mars 1994), Version 1.2 (Mars 1995)

Linus
Tovalds

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 developpe un clone de Kernel Unix (Linux)


Linus Tovalds
inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)
Kernel 1.x Version 1.0 (Mars 1994), Version 1.2 (Mars 1995)
Kernel 2.x (x < 6) Version 2.0 (Juin 1996), Version 2.2 (Janvier 1999), Version
Linus 2.4 (Janvier 2001)
Tovalds

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 developpe un clone de Kernel Unix (Linux)


Linus Tovalds
inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)
Kernel 1.x Version 1.0 (Mars 1994), Version 1.2 (Mars 1995)
Kernel 2.x (x < 6) Version 2.0 (Juin 1996), Version 2.2 (Janvier 1999), Version
Linus 2.4 (Janvier 2001)
Tovalds
Kernel 2.6.x (Decembre 2006) Changement de stratégie de numérotation
(majeur mineur)

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 developpe un clone de Kernel Unix (Linux)


Linus Tovalds
inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)
Kernel 1.x Version 1.0 (Mars 1994), Version 1.2 (Mars 1995)
Kernel 2.x (x < 6) Version 2.0 (Juin 1996), Version 2.2 (Janvier 1999), Version
Linus 2.4 (Janvier 2001)
Tovalds
Kernel 2.6.x (Decembre 2006) Changement de stratégie de numérotation
(majeur mineur)
Kernel 3.0 (Juillet 2011 et predecesseur du Kernel 2.6.39) Changement
de numérotation par décision de Linus Tovalds

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 developpe un clone de Kernel Unix (Linux)


Linus Tovalds
inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)
Kernel 1.x Version 1.0 (Mars 1994), Version 1.2 (Mars 1995)
Kernel 2.x (x < 6) Version 2.0 (Juin 1996), Version 2.2 (Janvier 1999), Version
Linus 2.4 (Janvier 2001)
Tovalds
Kernel 2.6.x (Decembre 2006) Changement de stratégie de numérotation
(majeur mineur)
Kernel 3.0 (Juillet 2011 et predecesseur du Kernel 2.6.39) Changement
de numérotation par décision de Linus Tovalds

5 000 développeurs et 500 entreprises ont participé à l'édition du noyau entre


2005 et 2009 3

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 developpe un clone de Kernel Unix (Linux)


Linus Tovalds
inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)
Kernel 1.x Version 1.0 (Mars 1994), Version 1.2 (Mars 1995)
Kernel 2.x (x < 6) Version 2.0 (Juin 1996), Version 2.2 (Janvier 1999), Version
Linus 2.4 (Janvier 2001)
Tovalds
Kernel 2.6.x (Decembre 2006) Changement de stratégie de numérotation
(majeur mineur)
Kernel 3.0 (Juillet 2011 et predecesseur du Kernel 2.6.39) Changement
de numérotation par décision de Linus Tovalds

5 000 développeurs et 500 entreprises ont participé à l'édition du noyau entre


2005 et 2009 3
Sources du kernel disponible à l'adresse (http://www.kernel.org)

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 18 / 47
Généralités Unix/Linux

Le Kernel (noyau) Linux

Octobre 1991 developpe un clone de Kernel Unix (Linux)


Linus Tovalds
inspiré de Minix et la diuse sur la Newsgroup comp.os.minix
sous la version 0.2 (sous GPL)
Kernel 1.x Version 1.0 (Mars 1994), Version 1.2 (Mars 1995)
Kernel 2.x (x < 6) Version 2.0 (Juin 1996), Version 2.2 (Janvier 1999), Version
Linus 2.4 (Janvier 2001)
Tovalds
Kernel 2.6.x (Decembre 2006) Changement de stratégie de numérotation
(majeur mineur)
Kernel 3.0 (Juillet 2011 et predecesseur du Kernel 2.6.39) Changement
de numérotation par décision de Linus Tovalds

5 000 développeurs et 500 entreprises ont participé à l'édition du noyau entre


2005 et 2009 3
Sources du kernel disponible à l'adresse (http://www.kernel.org)

Le noyau à lui seul ne peut être utilisé ⇒ rencontre Projet GNU et Kernel Linux

3. http ://www.linuxfoundation.org/sites/main/les/publications/whowriteslinux.pdf
Introduction au système d'exploitation Linux 19 / 47
Généralités Unix/Linux

Versions du Kernel Linux

La numérotation des versions de Linux suit une logique bien précise :


Versions antérieures à la 2.6
Introduction au système d'exploitation Linux 19 / 47
Généralités Unix/Linux

Versions du Kernel Linux

La numérotation des versions de Linux suit une logique bien précise :


Versions antérieures à la 2.6
Introduction au système d'exploitation Linux 19 / 47
Généralités Unix/Linux

Versions du Kernel Linux

La numérotation des versions de Linux suit une logique bien précise :


Versions antérieures à la 2.6
Introduction au système d'exploitation Linux 19 / 47
Généralités Unix/Linux

Versions du Kernel Linux

La numérotation des versions de Linux suit une logique bien précise :


Versions antérieures à la 2.6
Introduction au système d'exploitation Linux 19 / 47
Généralités Unix/Linux

Versions du Kernel Linux

La numérotation des versions de Linux suit une logique bien précise :


Versions à partir la version 2.6, jusqu'à la version 3.0.0 ?
Introduction au système d'exploitation Linux 20 / 47
Généralités Unix/Linux

Ils vécurent heureux et . . . : GNU/Linux

GNU/Linux ou Linux

GNU/Linux ou Linux (tout court) = Kernel Linux + outils issus du Projet GNU

Richard Stallman préfere GNU/Linux mais l'usage a imposé Linux tout court.
Introduction au système d'exploitation Linux 20 / 47
Généralités Unix/Linux

Ils vécurent heureux et . . . : GNU/Linux

GNU/Linux ou Linux

GNU/Linux ou Linux (tout court) = Kernel Linux + outils issus du Projet GNU

Richard Stallman préfere GNU/Linux mais l'usage a imposé Linux tout court.
Introduction au système d'exploitation Linux 20 / 47
Généralités Unix/Linux

Ils vécurent heureux et . . . : GNU/Linux

GNU/Linux ou Linux

GNU/Linux ou Linux (tout court) = Kernel Linux + outils issus du Projet GNU

Richard Stallman préfere GNU/Linux mais l'usage a imposé Linux tout court.
Introduction au système d'exploitation Linux 20 / 47
Généralités Unix/Linux

Ils vécurent heureux et . . . : GNU/Linux

GNU/Linux ou Linux

GNU/Linux ou Linux (tout court) = Kernel Linux + outils issus du Projet GNU

Richard Stallman préfere GNU/Linux mais l'usage a imposé Linux tout court.
Introduction au système d'exploitation Linux 20 / 47
Généralités Unix/Linux

Ils vécurent heureux et . . . : GNU/Linux

GNU/Linux ou Linux

GNU/Linux ou Linux (tout court) = Kernel Linux + outils issus du Projet GNU

Richard Stallman préfere GNU/Linux mais l'usage a imposé Linux tout court.
Introduction au système d'exploitation Linux 20 / 47
Généralités Unix/Linux

Ils vécurent heureux et . . . : GNU/Linux

GNU/Linux ou Linux

GNU/Linux ou Linux (tout court) = Kernel Linux + outils issus du Projet GNU

Richard Stallman préfere GNU/Linux mais l'usage a imposé Linux tout court.
Introduction au système d'exploitation Linux 21 / 47
Généralités Unix/Linux

Eurent beaucoup d'enfants : Distributions Linux

Gentoo
TM

A simple, lightweight linux distribution.


TM

Fedora
Introduction au système d'exploitation Linux 22 / 47
Généralités Unix/Linux

Distributions Linux

Denition
Les distributions rassemblent les composants d'un système dans un ensemble cohérent
et stable dont l'installation, l'utilisation et la maintenance sont facilitées. a
a . Source Wikipédia http://fr.wikipedia.org/wiki/Distribution_GNU/Linux

Une distribution (GNU/)Linux est un package orant :


Le Kernel Linux généralement avec des personnalisations (mineures)
Un dépot de logiciels (libre ou non) avec un système de gestion de logiciels
(Package Manager)
(Eventuellement) Des logiciels spéciques à la distribution (Conguration, . . . )
...
Plus de 200 4 disctributions classables en trois catégories :
Distributions généralistes complètes (Fedora, Debian, . . . )
Distributions spécialisées (E.g Ipcof pour le rewalling)
Distributions de test ou LiveCD (E.g Knoppix)

4. voir http://distrowatch.com/,http://lwn.net/Distributions/
5
Quelques captures d'ecrans pour
mettre l'eau à la bouche . . .

5. Source des images : Wikipédia


Distribution Archi Linux (Beryl)
Distribution Fedora Core+Gnome
Distribution FrugalWare
Distribution OpenSuse
Distribution Debian
Distribution Gentoo
Distribution Mandriva
Distribution Ubuntu
Introduction au système d'exploitation Linux 25 / 47
Généralités Unix/Linux

Utilisations communes de Linux

Linux est utilisé par ses 40 millions d'adeptes pour mettre en place :
Les serveurs d'Internet (WEB, Routage, FTP, Firewall, DNS, . . . )
Les serveurs d'impressions et de chiers
Les serveurs d'applications
Les supercalculateurs (Clustering)
Les stations de travail pour calcul scientique (Physique, Astronimie
Mathématiques,. . . )
Les stations de travail bureautiques
...
Plan

1 Généralités

2 Généralités Unix/Linux

3 Shell, commandes et aide en ligne


Le Shell
Commandes et Aide en ligne
Plan

1 Généralités

2 Généralités Unix/Linux

3 Shell, commandes et aide en ligne


Le Shell
Commandes et Aide en ligne
Introduction au système d'exploitation Linux 28 / 47
Shell, commandes et aide en ligne
Le Shell

Shell Unix

Idée de Shell
Un Shell a est :
Un programme qui permet aux utilisateurs de lancer d'autres programmes
Une couche logicielle servant d'interface entre les utilisateurs et le système
d'exploitation Unix
Une des innovations majeures d'Unix a été la séparation du système
d'exploitation et du Shell
a . cocquille ou cocque en français
Introduction au système d'exploitation Linux 29 / 47
Shell, commandes et aide en ligne
Le Shell

Shell Unix

Il existent deux types de Shells :


Shells en mode texte :
Entrées sous forme de textes (les commandes)
Sorties textuelles formatées ou non
Utilisation orientée administration
Autres appelations : Terminal, Console, . . .
Shells graphiques :
Entrées sous plusieurs formes : texte, souris, touch, . . .
Sorties aux formats quelconque : fenêtres, . . .
Utilisations comme ordinateur personnel (bureautique, . . . )
Autres appelations : GUI, Gestionnaire de Bureau
L'emploi du mot Shell sous Unix, sans autre precision, fait généralement
référence aux Shells orientés texte (pour des raisons historiques. . . )
Introduction au système d'exploitation Linux 30 / 47
Shell, commandes et aide en ligne
Le Shell

Les Shells Linux

Bourne Shell ou sh
Porte le nom de son créateur Steven Bourne
correspond au programme sh
C shell ou csh
Shell dont la syntaxe du langage de script est proche du
langage C
GNU Bourne-Again SHell ou bash
Une version GNU du Bourne Shell
Le Shell le plus répendu dans les distributions Linux
...

la liste des Shells installés sur station Unix est disponible avec la commande :
> cat /etc/shells
Introduction au système d'exploitation Linux 31 / 47
Shell, commandes et aide en ligne
Le Shell

Emulateurs de Shell ou terminal

Les environnements graphiques de Linux proposent des émulateurs


de Shell : Xterm, Konsole, Gnome-terminal, . . .

Figure  Xterm
Figure  Gnome Terminal
Plan

1 Généralités

2 Généralités Unix/Linux

3 Shell, commandes et aide en ligne


Le Shell
Commandes et Aide en ligne
Introduction au système d'exploitation Linux 33 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Qu'est ce qu'une commande Unix ?

une commande est un programme réalisant une tâche spécique et


pouvant être exécutée par un utilisateur (au sens large)

Exemple : ls -l /home/sroot/
ls est la commande (que faire ?)
-l est une option (comment faire ?)
/home/sroot/ est le paramettre transmis à la commande (sur quoi faire ?)
Introduction au système d'exploitation Linux 34 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Qu'est ce qu'une commande Unix ?

Le resultat de l'exécution d'une commande est :


soit un achage de texte
soit une modication du système
soit les deux

Exemple de sortie
~:> ls -l /home/sroot/
total 44
drwxr-xr-x 2 sroot sroot 4096 janv. 7 18:44 Bureau
drwxr-xr-x 2 sroot sroot 4096 janv. 7 18:44 Documents
-rw-rr 1 sroot sroot 8445 janv. 7 14:22 examples.desktop
drwxr-xr-x 2 sroot sroot 4096 janv. 7 18:44 Images
drwxr-xr-x 2 sroot sroot 4096 janv. 7 18:44 Modèles
...
Introduction au système d'exploitation Linux 35 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Types de commandes et la commande < type>

Il existe trois types de commandes


Les commandes internes au Shell (elles sont installées en même temps que le
Shell)
Les commandes externes au Shell : installées par l'utilisateur ou faisant partie de
la distribution
Les alias qui sont des speudos commandes basées sur les autres commandes
existantes
,→ La commande type permet de connaitre le type d'une commande

user@machine:~> type ls
ls est un alias vers  ls -color=auto 

user@machine:~> type bg
bg est une primitive du shell

user@machine:~> type passwd


passwd est /usr/bin/passwd
Introduction au système d'exploitation Linux 36 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Les options des commandes permettent à l'utilisateur de controler leurs


comportements
L'ordre des options n'est normalement pas important, doivent être avant le
parametre
Exemple :

user@machine:~> ncal user@machine:~> ncal -b


Janvier 2013 Janvier 2013
lu 7 14 21 28 lu ma me je ve sa di
ma 1 8 15 22 29 1 2 3 4 5 6
me 2 9 16 23 30 7 8 9 10 11 12 13
je 3 10 17 24 31 14 15 16 17 18 19 20
ve 4 11 18 25 21 22 23 24 25 26 27
sa 5 12 19 26 28 29 30 31
di 6 13 20 27
Introduction au système d'exploitation Linux 37 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Il existe quatre types d'options suivant la forme :


Type Unix : introduit par Unix System V
Type BSD : introduit par Unix BSD
Type Long GNU : introduit par le mouvement GNU
Type ambigü : nom donné par Richard Stallman aux options
qui ne collent à aucun des types précédents
Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)


Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)

Exemple
> ls -l -h repertoire
> ls -la repertoire #combinaison de deux options -l et -a
Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)

Exemple
> ls -l -h repertoire
> ls -la repertoire #combinaison de deux options -l et -a

Option type BSD : Caratère(s) alphanumérique(s) sans tiret (-)


Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)

Exemple
> ls -l -h repertoire
> ls -la repertoire #combinaison de deux options -l et -a

Option type BSD : Caratère(s) alphanumérique(s) sans tiret (-)

Exemple
> tar xvzf archive.tar.gz #combinaison des options x,v,z et -f
> ps aux #combinaison des options a,u et x
Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)

Exemple
> ls -l -h repertoire
> ls -la repertoire #combinaison de deux options -l et -a

Option type BSD : Caratère(s) alphanumérique(s) sans tiret (-)

Exemple
> tar xvzf archive.tar.gz #combinaison des options x,v,z et -f
> ps aux #combinaison des options a,u et x

Option longue type GNU : suite de mots (souvent en anglais) dont le premier est precédé d'un
double tiret (-) et les autres sont séparés par des tirets (-)
Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)

Exemple
> ls -l -h repertoire
> ls -la repertoire #combinaison de deux options -l et -a

Option type BSD : Caratère(s) alphanumérique(s) sans tiret (-)

Exemple
> tar xvzf archive.tar.gz #combinaison des options x,v,z et -f
> ps aux #combinaison des options a,u et x

Option longue type GNU : suite de mots (souvent en anglais) dont le premier est precédé d'un
double tiret (-) et les autres sont séparés par des tirets (-)

Exemple
> ls -all -humain-readable -author un-repertoire # trois options
Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)

Exemple
> ls -l -h repertoire
> ls -la repertoire #combinaison de deux options -l et -a

Option type BSD : Caratère(s) alphanumérique(s) sans tiret (-)

Exemple
> tar xvzf archive.tar.gz #combinaison des options x,v,z et -f
> ps aux #combinaison des options a,u et x

Option longue type GNU : suite de mots (souvent en anglais) dont le premier est precédé d'un
double tiret (-) et les autres sont séparés par des tirets (-)

Exemple
> ls -all -humain-readable -author un-repertoire # trois options

Option longue type ambigü : Options dont il est dicile de savoir si c'est une combinaison
d'options ou une option longue
Introduction au système d'exploitation Linux 38 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Options des commandes

Option type Unix : Caratère(s) alphanumérique(s) precédé(s) d'un tiret (-)

Exemple
> ls -l -h repertoire
> ls -la repertoire #combinaison de deux options -l et -a

Option type BSD : Caratère(s) alphanumérique(s) sans tiret (-)

Exemple
> tar xvzf archive.tar.gz #combinaison des options x,v,z et -f
> ps aux #combinaison des options a,u et x

Option longue type GNU : suite de mots (souvent en anglais) dont le premier est precédé d'un
double tiret (-) et les autres sont séparés par des tirets (-)

Exemple
> ls -all -humain-readable -author un-repertoire # trois options

Option longue type ambigü : Options dont il est dicile de savoir si c'est une combinaison
d'options ou une option longue

Exemple
>find . -name "*.avi" #combinaison des options n,a,m et e ou bien une seule option -name?
Introduction au système d'exploitation Linux 39 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Alias de commande : commande <alias>


Les alias sont des raccourcis d'autres commandes
Permettent de créer simplement de nouvelles commandes en se basant sur les
commandes existantes
Les alias créees sur la ligne de commande ne sont valables que sur les terminaux
sur lesquels ils sont dénis.
,→ La commande alias permet de créer des alias

Exemple
> ls -l
total 16
drwxrwxr-x 2 sroot sroot 4096 janv. 21 10:37 bin
drwxrwxr-x 2 sroot sroot 4096 janv. 21 10:37 include
drwxrwxr-x 3 sroot sroot 4096 janv. 21 10:37 lib
drwxrwxr-x 4 sroot sroot 4096 janv. 21 10:37 src
> alias ll='ls -l'
> alias ll
alias ll='ls -l'
> ll
total 16
drwxrwxr-x 2 sroot sroot 4096 janv. 21 10:37 bin
drwxrwxr-x 2 sroot sroot 4096 janv. 21 10:37 include
drwxrwxr-x 3 sroot sroot 4096 janv. 21 10:37 lib
drwxrwxr-x 4 sroot sroot 4096 janv. 21 10:37 src
...
Introduction au système d'exploitation Linux 40 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Documentation en ligne

1 La commande man permet de présenter la documentation qui :


est installée en même temps que la commande et qui fait oce
de mode d'emploi
2 La commande info permet d'accèder à des tutoriels sur
l'utilisation des commandes :
Contenu plus orienté pédagogie
3 La commande help permet d'acceder à l'aide des commandes
internes au Shell
4 La commande apropos cherche le nom et la description des
pages de manuel
5 Dans les environnement graphiques (Gnome, KDE, Xfce, . . . )
la touche [F1] donne accès à de la documentation
Introduction au système d'exploitation Linux 41 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Commande man

Sythaxe de la commande
man [section ] [nom_commande ]

Extrait de la page manuelle de la commande man


...
Le tableau ci-dessous indique le numéro des sections de manuel ainsi
que le type de pages qu'elles contiennent.
1 Programmes exécutables ou commandes de l'interpréteur de commandes (shell) ;
2 Appels système (fonctions fournies par le noyau) ;
3 Appels de bibliothèque (fonctions fournies par les bibliothèques des programmes) ;
4 Fichiers spéciaux (situés généralement dans /dev) ;
5 Formats des fichiers et conventions. Par exemple /etc/passwd ;
6 Jeux ;
7 Divers (y compris les macropaquets et les conventions). Par exemple, man(7), groff(7) ;
8 Commandes de gestion du système (généralement réservées au superutilisateur) ;
9 Sous-programmes du noyau [hors standard].
...
Introduction au système d'exploitation Linux 42 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Commande man
Utilisation de base :

> man printf


> man 3 printf
> man -f printf

Recherche de page manuelle :

> man -k "list directory"


dir (1) - list directory contents
ls (1) - list directory contents
vdir (1) - list directory contents
> apropos "list directory"
dir (1) - list directory contents
ls (1) - list directory contents
vdir (1) - list directory contents
> man -f printf
printf (3) - formatted output conversion
printf (1) - format and print data

La commande mandb reconstruit la base de données des pages manuelles


Introduction au système d'exploitation Linux 43 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Commande man

> man 3 printf


Introduction au système d'exploitation Linux 44 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

La commande help

la commande help permet d'Acher des informations sur les


commandes intégrées dans bash (voir man bash)
Exemple
> help bg
bg: bg [job_spec ...]
Déplace des tâches vers l'arrière plan.

Place chaque JOB_SPEC en arrière plan comme s'il avait été démarré avec  & .
Si JOB_SPEC n'est pas fourni, le shell utilise sa propre notion
de tâche actuelle.

Code de sortie :
Renvoie le code de succès à moins que le contrôle de tâche ne soit pas activé ou
qu'une erreur ne survienne.
Introduction au système d'exploitation Linux 45 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Documentation Linux sur Internet

HOWTO (Comment faire)


Les HOWTOs sont des tutoriels sur des aspects spécialisés de Linux et bien plus . . .
Le site http://www.tldp.org/ (The Linux Documentation Project) est une
base de données de HOWTOs

Des milliers de sites sont dédiés au système d'exploitation Linux


http://www-106.ibm.com/developerworks/linux/ : IBM developerWorks
http://librenix.com/ : Librenix
http://www.tuxmobil.org/howtos.html TuxMobile
...
Des magazines de références :
Linux Journal
Linux Magazine
SysAdmin Magazine
Unix Review
...
Introduction au système d'exploitation Linux 46 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Bibliographie

Carla Schroder
Linux Cookbook :Practical Advice for Linux System Administrators

O'Reilly, November 2004


Richard Blum,
Linux Command Line and Shell Scripting Bible,
Wiley Publishing, Inc. 2008
Michael Palmer
Guide to UNIX Using Linux, FOURTH EDITION

Course Technology, Cengage Learning, 2008


Introduction au système d'exploitation Linux 47 / 47
Shell, commandes et aide en ligne
Commandes et Aide en ligne

Credits

Cette présentation a été réalisée avec des outils libres : . . . . . . . . .

la classe BEAMER de LATEX Libreoce Draw

Vous aimerez peut-être aussi