Académique Documents
Professionnel Documents
Culture Documents
INSTITUT SUPERIEUR DE
TECHNOLOGIE DE MAMOU
COURS DE LINUX
Préparé par : Mme CAMARA BAH KADE
TEL : 621153721/656033991
COURS DE LINUX
Sommaire
Chapitre I : Initiation à l'environnement (GNU/Linux) ...................................................................... 3
1) Historique ............................................................................................................................................ 3
2) Licence ................................................................................................................................................. 5
3) Caractéristiques ................................................................................................................................... 5
Distribution GNU/Linux ........................................................................................................................... 5
4) La connexion et déconnexion .............................................................................................................. 6
Les interfaces ........................................................................................................................................... 6
5) Système de fichier ............................................................................................................................... 7
Les principaux répertoires du système .................................................................................................... 7
6) Shell ..................................................................................................................................................... 8
II- LES COMMANDES DE BASE.................................................................................................................. 9
1- Gestion et manipulation des fichiers ............................................................................................... 9
III. Gestion des Permissions d'accès aux fichiers .................................................................................. 13
3.2 Les liens (ln) .................................................................................................................................... 22
3.3. ARCHIVER, COMPRESSER ET DÉCOMPRESSER................................................................................ 22
IV. GESTION DES PROCESSUS................................................................................................................. 23
4.1 Lister les processus .......................................................................................................................... 24
4.2 Tuer un processus ............................................................................................................................ 25
Role de l'administrateur. ....................................................................................................................... 28
V- GESTIONS DES DISQUES ET PARTITIONS ........................................................................................... 30
5.1. Montage manuel ............................................................................................................................ 30
5.2. Montage automatique .................................................................................................................... 35
5.3 INSTALLATION DE NOUVEAUX LOGICIELS ....................................................................................... 35
COURS DE LINUX
Chapitre I : Initiation à l'environnement (GNU/Linux)
1) Historique
UNIX est un vieux système d’exploitation. Révolutionnaire pour l’époque,
il a cependant bénéficié (et bénéficie toujours) de la recherche. Il est
Intéressant de voir qu’un projet déconsidéré au départ a pu influencer à
ce point tous les systèmes d’exploitation et rester le plus répandu en termes
d’architectures supportées.
Unix est un système d'exploitation issu du projet MULTICS (Multiplexed
Information and Computing Service), initié en 1965 par:
- MIT: Massachusetts Institute of Technology;
- Laboratoires bell d'AT&T
- General Electric.
-
UNIX a été développé dès 1969 sur un vieux PDP11
(Programmed Data Processor) qui trainait dans un coin, en avril 1969 Ken
Thompson a développé Unics (Uniplexed Information and Computing System).
La date du 1er janvier 1970 est considérée comme étant la date de
naissance du système Unix, ce qui explique pourquoi toutes les horloges
systèmes des systèmes d’exploitation Unix démarrent à partir de cette
époque.
Deux versions principales:
System V d'AT&T et Unix BSD (Berkeley Software Developpement)
développé par l’université de Californie.
Composé :
- Noyau kernel
- Shell
- Utilitaires
Les premières versions ne furent pas diffusées en dehors des
Laboratoires Bell. La V4, contrairement aux précédentes, écrites en
assembleur PDP11.
En 1973 D. Ritchie réécrit le système en langage C,
En 1977 ATT a mis les sources d'UNIX à la disposition des autres
entreprises, si bien qu'un grand nombre d'UNIX furent développés:
(Car il y’avait un décret datant de 1956 qui empechait l’entreprise ATT, dont
dépendait Bell Labs, de commercialiser autre chose que des équipements
téléphoniques ou télégraphiques, c’est la raison pour laquelle la décision fut
prise en 1973 de distribuer les sources d’UNIX dans les universités à des fins
éducatives)
AIX, Unix commercial basé sur system V développé en février 1990 par
IBM
SUN Solaris, Unix commercial basé sur system V et BSD
développé par SUN Microsystems
HPUX,
Unix commercial basé sur BSD développé à partir de 1986
par Hewlett Packard
Ultrix, Unix commercial développé par DEC
IRIX, Unix commercial développé par SGI
Unixware, Unix commercial par Novell
Unix SCO, Unix commercial basé sur system V développé des
1979 par Santa Cruz Operations et HP
Tru64 UNIX, Unix commercial développé par Compaq
En 1983 ATT eut le droit de commercialiser son Unix.
En 1984 Richard Stallman a amorcé un mouvement des logiciels
libres.
FSF : Free Software Foundation du projet GNU (GNU: GNU's not Unix:
2) Licence
Licence est un contrat d'utilisation d'un logiciel.
- Licence GPL: General Public License est une licence copyleft.
- Licence BSD: n'est pas une licence copyleft. Elle permet donc d'inclure
du code source dans un nouveau logiciel qui pourra être propriétaire.
3) Caractéristiques
Multi-taches;
Multi-utilisateurs,
Multi-plateforme;
Hiérarchie arborescente;
Sécurisé
Robuste
Système d'entreprise et outil puissance pour le réseau
Distribution GNU/Linux
Une distribution comprend le noyau, les pilotes, les bibliothèques, les utilitaires
d'installation et de post installation, ainsi qu'un grand nombre de logiciels.
Il existe plusieurs types de distribution :
4) La connexion et déconnexion
- La connexion
Authentification
Nom d'utilisateur permet á un utilisateur de s'identifier.
Mot de passe: est un mot secret qui confirme que l'utilisateur qui saisit est bien
le propriétaire du compte.
Les interfaces
Il existe deux interfaces, ou modes de connexions:
L'interface graphique, également appelée mode graphique.
L'interface texte, également appelée mode commande ou console.
Sur linux on peut facilement basculer du mode graphique vers l'interface texte
avec l'association de touches CTRL+ALT+F1 puis revenir en mode graphique
IST-MAMOU Mme CAMARA BAH KADE Page 6
COURS DE LINUX
5) Système de fichier
Le système de fichier ou file system est la localisation d’une hiérarchie à partir
d’un répertoire donné, sur un disque ou une partition. La taille du répertoire est
celle de ce disque ou de cette partition.
Contrairement à Windows, Unix ne gère qu’une seule hiérarchie. Il ne gère
aucun disque C ou D et ne possède qu’une unique racine « / ».
/bin Répertoire contenant les commandes et utilitaires employés par tous les
utilisateurs.
/boot Répertoire contenant les informations permettant le changement de Linux
/dev Répertoire contenant tous les fichiers périphériques permettant d’accéder
aux composants matériels.
/etc Répertoire contenant les commandes et fichiers de paramétrage nécessaires
à l’administrateur système.
/lib répertoire contenant les bibliothèques communes a tous les utilisateurs.
/proc répertoire spécial utilisé par le système et contenant la liste des processus
en cours d’exécution.
/sbin répertoire contenant les commandes et utilitaires utilisées seulement par
l’administration système.
/tmp répertoire contenant les fichiers temporaires
/usr répertoire compose d’un certain nombre de sous répertoires utilises par
l’ensemble des utilisateurs.
/var répertoire spécial utilise par le système pour stocker des données souvent
Modifiées.
6) Shell
L'interpréteur de commandes est l'interface entre l'utilisateur et le système
d'exploitation, d'où son nom anglais « shell » qui signifie « coquille » Shell
courant.
$ echo $SHELL
Voir les shells
$ cat /etc/shells
change le shell
$ chsh
Voir si le shell a changé se déconnecter et se connecter
Le shell bash est utilisé pour un débutant
NB:
enregistrer
18- La commande « sort » tri les lignes des fichiers en argument et affiche le
résultat à l'écran.
Syntaxe: sort [-ufnr] fichier
Option: -f pas de différence en majuscule et minuscule
-n effectue un tri numérique croissant.
Exple: sort ville
19- La commande « wc » compte le nombre de ligne, mot ou caractère d'un
fichier texte.
Syntaxe: wc [-lwc] [fichier...]
Option:
-l nombre de ligne
-w nombre de mot
-c nombre caractères
Exple: wc -l villes
La commande « df » affiche la quantité d'espace disque libre et occupé sur le
système de fichier monté.
Syntaxe: df [-k] [-h]
Option: -k donne les indications en Ko
-h donne les indications en Go
23- La commande « du » permet de comparer les tailles.
Même option que df
3. x, exécution
Notation octale des permissions
Il existe une autre facon d'indiquer les permissions de chaque catégorie, plus
simple en utilisant la numération octale
Voici la table de correspondance entre les 8 chiffres en numérotation octale
(base 8) et les 8 valeurs de droits fichiers. Par convention la présence d'un droit
est noté 1, l'absence 0.
...|...|... u g o
Attention ! on voit que le droit w est très étendu, et même dangereux quand il
est accordé à un groupe, car un membre du groupe peut supprimer des fichiers
dont il n'est pas propriétaire et sur lesquels il n'a même pas de droit d'écriture !
Remarque : Le droit x sur un répertoire est un préalable indispensable pour
qu'un utilisateur (de la catégorie correspondante au positionnement du x), puisse
exercer d'éventuels droits sur les fichiers contenus dans le répertoire.
Changements des droits
NB pour changer le propriétaire ou le groupe d’un fichier ou rep, il faut créer les
2 utilisateurs d’abord.
Ajout, retrait ou fixation des permissions Pour chaque fichier, on désigne par :
• u, g et o les 3 catégories d'utilisateurs (user, group, other) et de plus par a
(=all) tous les utilisateurs.
• r,w,x les 3 attributs de chaque fichier, pour chaque catégorie d'utilisateur.
• + - = l'action d'ajouter, de retirer ou de fixer un droit, qui s'applique à
chaque catégorie séparément.
• les changements, sur le modèle "à quelle(s) catégorie(s), quelle action,
quel(s) droit(s)" sont alors notés symboliquement :[u g o a] [+ - =] [r w x]
• par exemple chmod u+x fichier signifie "ajouter le droit d'exécution au
propriétaire du fichier"
• on peut regrouper les catégories si on veut exercer la même action :chmod
ug+x fichier "ajouter le droit d'exécution au propriétaire et au groupe" chmod
go-rwx fichier "enlever tous droits d'accès à tous les utilisateurs, sauf au
propriétaire"
Notation relative (aux droits existants)
• chmod [-R] <action-droits> fichiers
• L'option -R (récursif) permet de modifier les permissions de tous les sous-
répertoires.
• exemple : chmod [-R] go-rwx /home/toto enlève tous les permissions
d'accès des fichiers du rép. personnel de toto (et des sous-rép.), à tous sauf au
propriétaire
Notation absolue
• Pour chaque groupe, elle permet de fixer les nouveaux droits qui
remplacent les anciens. Si une catégorie n'est pas présente, ses anciens droits
s'appliquent.
• chmod u=rwx,g=rw,o=r fichiers remplace les permissions précédentes
des fichiers, en les fixant à -rwxrw-r--Attention : aucun espace dans la liste des
droits, pas même autour des éventuelles virgules
REPONSE
On suppose la situation initiale suivante :
1. root a créé le rep rep-stagiaire mkdir /home/rep-stagiaire
2. Il a attribué la propriété collective de ce rép. au groupe stagiaire, chgrp
stagiaire /home/rep-stagiaire
3. avec un accès complet, et rien pour les autres utilisateurs. chmod 770
/home/rep-stagiaire
Vérification : ll /home
Tout programme qui est exécuté sur une machine crée, via le système
d’exploitation, est un processus. Un processus est une représentation de
l’exécution d’un programme dans la mémoire de l’ordinateur. Ce n’est pas le
programme lui-même. Chaque processus se partage la mémoire de l’ordinateur,
chacun possède son propre territoire, sa propre parcelle de mémoire et il n’est
pas question qu’un processus étranger pénètre le territoire d’un autre processus.
Le cas échéant, un bon système d’exploitation tue le processus dérangeant
D’ailleurs, un des rôles du système d’exploitation est de gérer les processus
d’une machine afin que chaque programme puisse s’exécuter correctement.
Il existe toute une théorie sur les processus et leur méthode de fonctionnement
mais elle dépasse largement le cadre de ce cours. Nous signalerons seulement
quelques points de cette théorie qui vous seront utiles dans la pratique. Tout
d’abord, à tout processus correspond un numéro unique, appelé PID (Process
IDentificator).
Ce numéro sert au système d’exploitation afin de bien gérer les différentes
exécutions. Ensuite, il est important de savoir qu’un processus peut être père de
plusieurs fils, ainsi que les fils eux-même,. . . En effet, si un processus père
devient défaillant, tuer les fils ne servira pas à faire disparaître le père.
Finalement et très brièvement, un processus peut entrer dans plusieurs états lors
de son exécution, il peut être arrêté, suspendu,
activé et réactivé et ce, afin de mieux partager les ressources du système avec les
autres processus.
$ps T
PID TTY STAT TIME COMMAND
1234 pts/3 S 0:00 -bash
1311 pts/3 R 0:00 ps T
Ensuite, nous avons les options de sélection par liste. Ces options requièrent un
argument :
-C : Sélectionne les processus par nom de commande
-t : Sélectionne par terminal
-u : Sélectionne les processus de l’utilisateur spécifié
Exemple :
$ps -t pts/0
PID TTY TIME CMD
730 pts/0 00:00:00 bash
1217 pts/0 00:00:01 xdvi.bin
1221 pts/0 00:00:08 vim
Afin d’obtenir des informations plus détaillées sur chacun des processus, des
options de mise en forme sont disponibles. Les plus utilisées sont les suivantes :
-l : Affichage long format
u : Affichage orienté utilisateur
Signalons que le groupement d’options le plus utilisé est aux.
exemple, si le processus numéro 234 est bloqué ou boucle, alors kill 234
l’arrêtera et l’enlèvera de la liste des processus.
Parfois un simple kill ne suffit pas, vous pouvez alors tuer le processus de
manière forte en utilisant l’option -s 9 ou bien -9.
Vous ne pouvez tuer que des processus dont vous êtes propriétaires.
Un processus est un programme chargé en mémoire et en cours d'exécution.
Contrairement à Windows 98, les systèmes UNIX sont des systèmes multitâches
préemptifs, c'est à dire que chaque programme ou processus tournent
indépendamment. Lorsqu'un processus est planté, le système continue à tourner
car les processus sont traités indépendamment. La destruction d'un processus n'a
pas d'effet sur l'exécution des autres processus.
Informations associées à chaque processus :
Pour chaque processus exécuté, le système d'exploitation stocke un certain
nombres d'informations :
· Numéro unique du processus PID (Process IDentification) ;
· Numéro du processus parent PPID (Parent Process Identification) ;
· Numéro d'utilisateur PID (User IDentification) ayant lancé le processus ;
· Numéro du groupe GID (Group IDentification) ayant lancé le processus ;
· Durée de traitement utilisé (temps CPU) et priorité du processus ;
· Référence au répertoire de travail courant du processus ;
· Table de référence des fichiers ouverts par le processus.
Chaque processus peut créer lui−même des processus d'où la notion de
processus parent. C'est la cas par exemple du serveur Apache : lors de son
lancement, le processus père crée plusieurs processus fils afin de répondre
indépendamment à plusieurs clients. La destruction du processus parent (parent
process) entraîne la destruction de tous les processus fils (child process).
Afficher les processus avec la commande top :
DEVOIR
Connectez-vous au système comme un des utilisateurs créé précédemment. Et
créer un
Fichier vide nommé file dans le répertoire de connexion.
a) Quels sont les droits des autres sur ce fichier ?
Role de l'administrateur.
GNU/Linux étant un système d'exploitation Multi-Utilisateurs, la gestion du
système et des utilisateurs est confiée a un super utilisateur (root).
2- « id » affiche les informations concernant le numéro d'utilisateur (uid) ainsi
que sur les groupes d'appartenance (gid).
Syntaxe: id [utilisateur]
3- « who » affiche les utilisateurs connectés au système.
Il vous permet aussi de vous informer sur votre connexion.
Syntaxe: who; who ami (qui suis-je)?
Exple: who ami
6- « which » Vous indique la commande qui sera exécutée si vous tapez
commande.
NB:
Exemples :
Montage d'un lecteur de CD−ROM : $ mount −t iso9660 /dev/hdb
/mnt/cdrom
Montage d'une partition Windows: $ mount −t vfat /dev/hda1
/mnt/win98
Pour monter une clé usb: il faut créer d’abord le point de montage,
Mkdir /media/cleusb
mount /dev/sda1 /media/cleusb
Cd /media/cleusb puis ls pour visualiser
Pour accéder à une clé :
sda est le disque dur de mon pc (il a 3 partitions : sda1, sda2, sda3) :
on s'en fiche
sdb est la clé USB que je viens de brancher (elle a 2 partitions : sdb1
et sdb2). On va dire que je souhaite monter la partition sdb1.
3. monter la partion :
pmount /dev/sdb1
Par défaut, pmount crée un dossier dans /media/ dont le nom est celui
de la partition. Dans notre exemple, il va créer le dossier /media/sdb1/
$ lsblk
La première chose à faire est de définir par quel moyen nous allons
accéder aux paquetages, soit par CDROM soit par une liaison réseau.
Le programme apt−setup permet de configurer les sources de
paquetage de manière interactive.
Une autre manière possible est d'ajouter directement les informations
dans le fichier /etc/apt/sources.list.
Même si on utilise les cd-rom pour installer les paquetages il est
quand même conseiller d'ajouter la ligne : deb
http://security.debian.org/ stable/updates main contrib non−free au
fichier /etc/apt/sources.list ce qui permet de télécharger les derniers
paquetages qui corrigent des problèmes de sécurité. Après une
modification de ce fichier il faut lancer la commande apt−get update
pour que le système puisse construire la base de données des
paquetages en prenant en compte la nouvelle source.
Commandes usuelles :
apt−get install Nom_Du_Paquetage : Installe un nouveau paquetage
apt−get remove Nom_Du_Paquetage : Supprime d'un nouveau
paquetage
dpkg −S nom_du_fichier : Donne le paquetage auquel appartient le
fichier
dpkg −i nom_du_fichier : Installe le paquetage précédemment
téléchargé
dpkg −L Nom_Du_Paquetage : Liste tous les fichier d'un paquetage
apt−get update : Mise à jour de la liste des paquetages
apt−get dist−upgrade : Mise à jour de tous les paquetages