Cours Linux
Samuel G.
SYSTÈME D'EXPLOITATION
Un système d’exploitation est une couche logicielle composée d’un ensemble de programmes. Appelé
couramment OS, de l’anglais operating system, il permet aux utilisateurs et aux applications d’exploiter les
ressources matérielles d’une machine. . Le rôle principal d'un système d'exploitation est de fournir une
interface utilisateur permettant de communiquer avec le matériel et les logiciels de l'appareil. Il agit donc
comme un intermédiaire entre l'utilisateur et le matériel informatique.
L'interface utilisateur peut exécuter des programmes, accéder aux fichiers et aux périphériques, et gérer les
ressources du système. Le système d'exploitation alloue des ressources aux applications en cours
d'exécution et gère l'accès concurrent aux ressources.
SYSTÈME D'EXPLOITATION
Il existe plusieurs systèmes d'exploitation disponibles sur le marché, notamment Linux, Windows et
.macOS, chacun ayant des caractéristiques et des fonctions uniques. Voici quelques exemples de
systèmes d'exploitation :
• Linux: est un Système d'exploitation open source basé sur le noyau Linux, créé par Linus Torvalds
en 1991. Linux est disponible gratuitement pour tous les utilisateurs et peut être modifié et
distribué par n'importe qui. Linux est utilisé dans diverses applications telles que les serveurs, les
ordinateurs personnels, les appareils mobiles et les systèmes embarqués.
• Windows : est un système d'exploitation propriétaire créé par Microsoft en 1985. Windows est le
système d'exploitation le plus utilisé dans le monde, disponible pour les ordinateurs personnels,
les serveurs et les appareils mobiles. Windows est connu pour sa compatibilité avec de nombreux
logiciels et matériels, ainsi que pour son interface utilisateur conviviale.
• MacOS : est un système d'exploitation propriétaire développé par Apple pour ses ordinateurs
personnels, les Mac. MacOS est connu pour sa convivialité, sa sécurité et sa compatibilité avec les
logiciels Apple.
SYSTÈME D'EXPLOITATION
UNIX, GNU
.• UNIX est un système d’exploitation créé dans les années 1970 chez AT&T Bell Labs. C’est un
système multi-utilisateur et multitâche très influent, à l’origine de nombreux autres systèmes. Il
existe plusieurs variantes certifiées UNIX comme AIX (IBM), HP-UX (HP) ou Solaris (Oracle).UNIX
a posé les bases des systèmes modernes, notamment en ce qui concerne l'organisation des
fichiers, la gestion des processus, et les permissions.
• GNU signifie «GNU's Not Unix» (GNU n’est pas UNIX) — c’est un projet lancé en 1983 par Richard
Stallman. Le but était de créer un système d’exploitation libre et compatible UNIX, mais sans
utiliser de code propriétaire. Le but de GNU était de créer un système d'exploitation entièrement
libre, avec un code source ouvert et des droits d'utilisation, de modification et de distribution pour
tous. Le projet GNU a produit de nombreux outils indispensables : GCC (compilateur), Bash
(interpréteur de commandes), glibc (bibliothèque standard), etc. Cependant, il lui manquait un
noyau fonctionnel pour être un système complet.
Linux
.• Linux est le noyau (kernel) d’un système d’exploitation, développé par Linus Torvalds en
1991.Torvalds a utilisé le noyau de Minix, un système d'exploitation de type Unix à code source
ouvert et éducatif, utilisé comme outil pédagogique pour enseigner les principes de conception
des systèmes d'exploitation. Ce noyau, combiné avec les outils du projet GNU, forme ce qu’on
appelle couramment un système Linux. En réalité, le nom complet devrait être GNU/Linux, car
beaucoup de composants viennent du projet GNU. ,: g ii
Shell
Le shell est l’environnement de travail par défaut pour un administrateur Linux.
.
C’est l’interface dans laquelle les utilisateurs et les administrateurs saisissent des commandes, qui sont
ensuite exécutées par le système d’exploitation.
Travailler dans le shell, c’est avant tout comprendre et utiliser correctement la syntaxe des commandes.
En général, une commande se compose de trois parties principales :
Élément Description
Commande C’est le nom de la commande à exécuter, par exemple ls (pour afficher les fichiers du répertoire courant).
Ce sont des modificateurs qui changent le comportement de la commande. Exemple : -l avec ls affiche les
Option(s)
fichiers en mode liste détaillée.
Ce sont les cibles de la commande, comme un nom de fichier, un répertoire, etc. Les options sont
techniquement aussi des arguments, mais on distingue souvent les deux pour mieux comprendre.
Pour avoir une brève description de la commande et les options possibles:
Argument(s)
commande --help
Shell – Commandes de base .
Commande Description
pwd Affiche le chemin complet du répertoire courant.
whoami Affiche le nom de l'utilisateur actuellement connecté.
ls -l Affiche la liste détaillée des fichiers du répertoire courant.
ip address show Affiche les adresses IP et les interfaces réseau du système.
free -m Affiche l'utilisation de la mémoire (RAM et swap) en mégaoctets.
df -h Affiche l'espace disque utilisé et disponible dans un format lisible.
cat /etc/hosts Affiche le contenu du fichier /etc/hosts.
findmnt Affiche les points de montage du système de fichiers.
who Liste les utilisateurs actuellement connectés au système.
touch monfichier.txt Crée un fichier vide ou met à jour la date de modification.
echo "Bonjour" Affiche un message ou une variable.
man echo Affiche le manuel d’une commande.
clear Efface l’écran du terminal.
history Affiche l’historique des commandes.
Shell – Obtenir de l’aide .
• Pour obtenir de l’aide il faut utiliser les pages du manuel Linux man. man est l’abréviation de "manual".
C’est un outil qui affiche la documentation officielle (le manuel utilisateur) d’une commande ou d’un
programme sous Linux.
• Syntaxe de base
man [section] commande
section (optionnelle) : il existe plusieurs sections dans le manuel
NB: Pour une première utilisation de man il serait préférable d’utiliser la commande mandb pour
mettre à jour les pages man
Les différentes sections du man sont disponibles grâce à la commande man man
• Astuces utiles avec man
Commande Fonction
/mot Recherche un mot dans la page
n Trouve l’occurrence suivante du mot recherché
q Quitte le manuel
h Aide pour la navigation dans man
man -k mot Recherche un mot clé dans toutes les pages de man
La redirection dans le shell
La redirection permet de contrôler où vont les entrées et sorties des commandes.
Par défaut :
• La sortie standard (texte produit) va à l’écran.
• L’entrée standard vient du clavier.
• Les erreurs sont aussi affichées à l’écran.
Grâce à la redirection, il est possible:
• rediriger la sortie vers un fichier,
• lire des données depuis un fichier,
• séparer la sortie normale et les erreurs.
Sortie standard (stdout) — Redirection
vers un fichier
ls > fichiers.txt # Enregistre la liste dans fichiers.txt
echo "Hello" >> log.txt # Ajoute "Hello" à la fin de log.txt
Redirection des erreurs (stderr)
Symbole Description
2> Redirige les erreurs
2>> Ajoute les erreurs à la fin du fichier
2>&1 Combine erreurs et sortie normale
ls /fake 2> erreur.txt # Redirige les erreurs vers erreur.txt
ls /etc/fake > out.txt 2> err.txt # Sépare sortie normale et erreurs
ls /etc/fake > tout.txt 2>&1 # Met tout (stdout + stderr) dans tout.txt
Les pipes (|)
Le pipe (|) est utilisé pour chaîner des commandes : il envoie la sortie d'une
commande directement en entrée d'une autre commande, sans passer par
l'écran ni par des fichiers temporaires.
Commande Description
ls | less Affiche la liste des fichiers de manière paginée avec less.
cat /etc/passwd | sort Trie le contenu du fichier passwd.
ls /etc | wc -l Compte le nombre de fichiers et dossiers dans /etc.
find / -name '*.log' | less Recherche tous les fichiers .log et affiche les résultats paginés.
who | sort Trie les utilisateurs actuellement connectés.
history | grep ls Recherche les commandes ls dans l'historique.
df -h | grep '/dev/sd' Filtre l'espace disque pour afficher uniquement les disques durs.
Editeurs de fichier
Au fil des années, de nombreux éditeurs de texte ont été développés pour Linux.
Cependant, un seul éditeur est essentiel : vi.
• Même si d'autres éditeurs (comme nano, gedit, etc.) sont parfois plus simples à utiliser,
• vi reste toujours disponible sur toutes les distributions Linux.
• Connaître vi est donc obligatoire pour tout administrateur Linux.
• vim signifie "Vi IMproved" (vi amélioré).
• C'est une réécriture complète de vi, avec de nombreuses améliorations :
• Coloration syntaxique pour les fichiers de configuration.
• Détection plus facile des erreurs de frappe.
• Navigation et édition plus confortables
Commandes vim
vim fichier.txt # edite fichier.txt. S’il n’existe pas il sera crée
Commande vim Description
Esc Mode commande
i, a Activer le mode editeur
o Ouvrir une nouvelle ligne en dessous
:wq ou la touche ZZ Enregistrer et quitter
:q! Quitter sans enregistrer
:w nouveaufichier Enregistrer sous…
dd Couper ou effacer la ligne courante
yy Copier la ligne courante
p Coller
v Mode visuel. Appuyer sur la touche y pour copier; Touche d pour couper ou effacer; Touche p pour coller
u undo (annuler)
Ctrl+r Annuler la dernière action annuler
gg Aller à la première ligne
G Aller à la dernière ligne
/text recherche en avant du mot text
?text recherche en arrièrer du mot text
^ Aller en début de ligne
$ Aller en fin de ligne
Système de fichiers
Pour administrer un système Linux, il faut connaître les répertoires par défaut qui
existent sur presque tous les systèmes Linux. Cette section décrit ces
répertoires et explique comment les montages (mounts) sont utilisés pour
construire la hiérarchie du système de fichiers.
Le FHS (Filesystem Hierarchy Standard) est une norme qui définit l’organisation
du système de fichiers sous Linux. Elle indique quels répertoires doivent exister,
à quoi ils servent, et où placer les fichiers (binaire, config, logs, etc.).
Répertoire Nom complet Description
/ Racine Point de départ de toute la hiérarchie du système de fichiers.
/bin Binary Commandes de base accessibles à tous les utilisateurs.
/sbin System Binary Commandes d’administration système, souvent réservées à root.
Système /etc
/home
Etcetera
Home
Fichiers de configuration du système.
Répertoires personnels des utilisateurs normaux.
/root Root Répertoire personnel de l’utilisateur root.
de fichiers /lib
/usr
Library
Unix System
Resources
Bibliothèques partagées essentielles pour /bin et /sbin.
Programmes, bibliothèques et données partagées.
/var Variable Données variables comme les logs, mails, caches, etc.
/tmp Temporary Fichiers temporaires, souvent nettoyés au redémarrage.
/boot Boot Fichiers nécessaires au démarrage du système (ex: noyau, GRUB).
/dev Device Fichiers représentant les périphériques (disques, claviers, etc.).
/proc Process Interface avec le noyau, expose les processus et infos système.
/mnt Mount Point de montage temporaire pour des systèmes de fichiers externes.
/media Media Montage automatique de médias amovibles (CD, USB).
/opt Optional Logiciels additionnels installés en dehors de la distribution standard.
Système de fichiers virtuel utilisé pour accéder aux informations
matérielles (hardware) et au noyau. Il fait partie du système sysfs, qui
/sys System
permet de configurer ou de lire des paramètres liés au matériel
(périphériques, bus, pilotes, etc.).
/run Runtime Données d’exécution temporaires depuis le démarrage du système.
Le concept de montage : Hiérarchie du
système de fichiers
Le système de fichiers Linux est présenté comme une seule hiérarchie,
commençant à la racine /.
Cette hiérarchie peut être répartie sur plusieurs périphériques (partitions, disques,
volumes logiques, ou même d'autres ordinateurs via le réseau).
Chaque périphérique est "monté" à un répertoire spécifique de l’arborescence.
Commandes utiles
• findmnt #Affiche sous forme d'arbre tous les systèmes de fichiers actuellement montés.
• df -Th #afficher l'espace disque disponible sur les systèmes de fichiers montés.
Gestion des fichiers
Commande Action Exemple Description
ls Lister les fichiers ls -l /home Affiche les fichiers avec détails.
cd Changer de dossier cd /etc Va dans le dossier /etc.
Montre dans quel dossier tu te
pwd Afficher le chemin courant pwd
trouves.
cp Copier un fichier cp fichier1.txt copie.txt Copie fichier1.txt en copie.txt.
mv Déplacer / Renommer mv test.txt /tmp/ Déplace test.txt vers /tmp/.
rm Supprimer un fichier rm vieux.txt Supprime vieux.txt.
mkdir Créer un dossier mkdir nouveau_dossier Crée un dossier.
rmdir Supprimer un dossier vide rmdir dossier Supprime un dossier vide.
touch Créer un fichier vide touch nouveau.txt Crée un fichier vide.
cat Afficher le contenu d'un fichier cat fichier.txt Affiche tout le contenu.
less ou more Lire un gros fichier page par page less long_fichier.log Navigation plus facile.
head Voir les premières lignes head fichier.log Affiche les 10 premières lignes.
tail Voir les dernières lignes tail fichier.log Affiche les 10 dernières lignes.
Commande Description
La cp fichier1.txt fichier2.txt Copie fichier1.txt en fichier2.txt.
commande cp fichier.txt /home/user/
Copie le fichier dans un autre
répertoire.
cp
cp -r dossier1 dossier2 Copie un dossier et tout son contenu.
cp *.txt /tmp/ Copie tous les fichiers .txt dans /tmp
La Commande Description
commande Déplace fichier.txt dans
mv fichier.txt /tmp/
mv /tmp.
mv fichier.txt Renomme fichier.txt en
nouveau.txt nouveau.txt.
mv dossier1/ Déplace le dossier dans
/home/user/ /home/user/
La Commande Description
rm fichier.txt Supprime le fichier fichier.txt.
commande Demande confirmation avant de
rm -i fichier.txt
rm supprimer.
Supprime sans confirmation
rm -f fichier.txt
(force).
Supprime un dossier et son
rm -r dossier/
contenu.
Supprime un dossier et son
rm -rf dossier/
contenu sans confirmation.
La Commande Description
mkdir projet Crée un dossier projet.
commande Crée le dossier et ses
mkdir et mkdir -p
dossier/sousdir
sous-dossiers (s’il n’existent
pas).
rmdir
Supprime le dossier projet s’il
rmdir projet
est vide.
rmdir -p Supprime les sous-dossiers et
dossier/sousdir parents s’ils sont vides.
Gestion des utilisateurs
adduser nom_user1 #ajoute un nouvel utilisateur
sudo userdel #supprime un utilisateur
userdel -r user1 #Supprime l'utilisateur et son dossier personnel (/home/user1).
passwd user1 #Modifier le mot de passe de l'utilisateur.
usermod -aG groupe user1 # Ajouter un utilisateur à un groupe secondaire (-aG = append group).
id user1 # Affiche UID, GID et groupes auxquels user1 appartienht
cat /etc/group # Afficher tous les groupes et leurs membres
Gestion des utilisateurs : Fichiers
importants
Fichier Rôle
/etc/passwd Liste des utilisateurs
/etc/shadow Mots de passe chiffrés et expirations
/etc/group Liste des groupes
/etc/login.defs Paramètres par défaut (UID, mots de passe, etc.) --prioritaire
/etc/default/useradd Paramètres par défaut (UID, mots de passe, etc.)
Permission Il y a trois types de permissions
Répertoires
s Linux – Permission Fichiers
(dossiers)
Lire le contenu d’un Lister les fichiers du
Fichiers vs Lecture (r)
fichier répertoire (ls)
Répertoires Créer, supprimer ou
Modifier ou supprimer le renommer des
Écriture (w)
fichier fichiers dans le
répertoire
Exécuter un fichier Accéder au contenu
Exécution (x)
comme un programme du répertoire (cd)
Permissions Linux
Les permissions sont divisées en trois niveaux :
Type Signification
u User (propriétaire)
g Group (groupe)
o Others (autres utilisateurs)
a All (u + g + o)
Permissions Linux
r a une valeur numérique de 4,
w a une valeur numérique de 2,
x une valeur numérique de 1,
Exemple de permissions : drwxr-xr– valeur numérique (754)
Type UGO (Utilisateur / Groupe / Autres) Explication
d d signifie "directory" (répertoire)
rwx Propriétaire : peut tout faire Valeur 7 (4+2+1)
r-x Groupe : peut lire et entrer Valeur 5 (4+0+1)
r-- Autres : peut uniquement lister Valeur 4 (4+0+0)
Permissions Linux
Attribuer des permissions avec chmod : Mode symbolique
chmod u+x fichier.txt # Ajouter exécution au propriétaire
chmod g-w fichier.txt # Supprimer écriture au groupe
chmod o=r fichier.txt # Définir lecture seule pour "others"
chmod a+rw fichier.txt # Ajouter lecture/écriture à tous
chmod +rw fichier.txt # Ajouter lecture/écriture à tous
Permissions Linux
Attribuer des permissions avec chmod : Mode numérique
Commande Explication
chmod 777 fichier rwx rwx rwx (tous les droits pour u, g et o)
chmod 755 fichier rwx r-x r-x (tous les droits pour u, lecture et exécution pour g et o)
chmod 644 fichier rw- r-- r-- (lecture et écriture pour u, lecture seule pour les autres)
chmod 700 fichier rwx --- --- (tous les droits pour u, rien pour g et o)
u : utilisateur
g : group
o : others