Fiche d'exercices : Systèmes d'exploitation et Linux
📚 Partie 1 : Concepts fondamentaux des systèmes d'exploitation
Introduction 🦊
Exercice 1 - Rôles du système d'exploitation
Associez chaque fonction à son rôle dans le système d'exploitation :
Fonctions :
1. Gestion de la mémoire
2. Ordonnancement des processus
3. Gestion des fichiers
4. Interface utilisateur
5. Gestion des périphériques
Rôles :
A. Permettre l'interaction avec l'utilisateur
B. Organiser et stocker les données
C. Allouer la RAM aux programmes
D. Décider quel programme s'exécute
E. Contrôler imprimantes, clavier, souris
Fonctions :
1. Gestion de la mémoire
2. Ordonnancement des processus
3. Gestion des fichiers
4. Interface utilisateur
5. Gestion des périphériques
Rôles :
A. Permettre l'interaction avec l'utilisateur
B. Organiser et stocker les données
C. Allouer la RAM aux programmes
D. Décider quel programme s'exécute
E. Contrôler imprimantes, clavier, souris
Associations correctes :
1. Gestion de la mémoire → C. Allouer la RAM aux programmes
2. Ordonnancement des processus → D. Décider quel programme s'exécute
3. Gestion des fichiers → B. Organiser et stocker les données
4. Interface utilisateur → A. Permettre l'interaction avec l'utilisateur
5. Gestion des périphériques → E. Contrôler imprimantes, clavier, souris
1. Gestion de la mémoire → C. Allouer la RAM aux programmes
2. Ordonnancement des processus → D. Décider quel programme s'exécute
3. Gestion des fichiers → B. Organiser et stocker les données
4. Interface utilisateur → A. Permettre l'interaction avec l'utilisateur
5. Gestion des périphériques → E. Contrôler imprimantes, clavier, souris
Introduction 🦊
Exercice 2 - Types de systèmes d'exploitation
Classez ces systèmes d'exploitation par catégorie :
Systèmes : Windows 11, Ubuntu, macOS, Android, iOS, CentOS, Debian, FreeBSD
Catégories :
1. Systèmes propriétaires
2. Systèmes open source
3. Systèmes mobiles
4. Systèmes serveur
Systèmes : Windows 11, Ubuntu, macOS, Android, iOS, CentOS, Debian, FreeBSD
Catégories :
1. Systèmes propriétaires
2. Systèmes open source
3. Systèmes mobiles
4. Systèmes serveur
Classification :
1. Propriétaires : Windows 11, macOS, iOS
2. Open source : Ubuntu, CentOS, Debian, FreeBSD
3. Mobiles : Android, iOS
4. Serveur : CentOS, Debian, Ubuntu Server, FreeBSD
Note : Certains systèmes peuvent appartenir à plusieurs catégories
1. Propriétaires : Windows 11, macOS, iOS
2. Open source : Ubuntu, CentOS, Debian, FreeBSD
3. Mobiles : Android, iOS
4. Serveur : CentOS, Debian, Ubuntu Server, FreeBSD
Note : Certains systèmes peuvent appartenir à plusieurs catégories
Moyen 🦊🦊
Exercice 3 - Processus et threads
Analysez cette situation :
Un navigateur web a ouvert 3 onglets :
• Onglet 1 : YouTube (vidéo en cours)
• Onglet 2 : Gmail (lecture d'emails)
• Onglet 3 : Google Docs (édition de document)
Questions :
1. Combien de processus sont créés ?
2. Quels sont les avantages de cette architecture ?
3. Que se passe-t-il si l'onglet YouTube plante ?
4. Comment le système gère-t-il les priorités ?
Un navigateur web a ouvert 3 onglets :
• Onglet 1 : YouTube (vidéo en cours)
• Onglet 2 : Gmail (lecture d'emails)
• Onglet 3 : Google Docs (édition de document)
Questions :
1. Combien de processus sont créés ?
2. Quels sont les avantages de cette architecture ?
3. Que se passe-t-il si l'onglet YouTube plante ?
4. Comment le système gère-t-il les priorités ?
Analyse :
1. Processus : Généralement 4 processus (1 principal + 3 pour les onglets)
2. Avantages :
• Isolation : un onglet qui plante n'affecte pas les autres
• Sécurité : séparation des contextes
• Performance : parallélisation possible
3. Si YouTube plante : Seul cet onglet se ferme, les autres continuent
4. Priorités : L'onglet actif a plus de CPU, les onglets en arrière-plan sont limités
1. Processus : Généralement 4 processus (1 principal + 3 pour les onglets)
2. Avantages :
• Isolation : un onglet qui plante n'affecte pas les autres
• Sécurité : séparation des contextes
• Performance : parallélisation possible
3. Si YouTube plante : Seul cet onglet se ferme, les autres continuent
4. Priorités : L'onglet actif a plus de CPU, les onglets en arrière-plan sont limités
📚 Partie 2 : Commandes Linux de base
Introduction 🦊
Exercice 4 - Navigation dans les répertoires
Vous êtes dans le répertoire /home/user. Écrivez les commandes pour :
1. Afficher le répertoire courant
2. Lister le contenu du répertoire
3. Aller dans le répertoire Documents
4. Revenir au répertoire parent
5. Aller directement à la racine
6. Retourner au répertoire home de l'utilisateur
1. Afficher le répertoire courant
2. Lister le contenu du répertoire
3. Aller dans le répertoire Documents
4. Revenir au répertoire parent
5. Aller directement à la racine
6. Retourner au répertoire home de l'utilisateur
Commandes :
1. pwd
2. ls
3. cd Documents
4. cd ..
5. cd /
6. cd ~ ou cd /home/user
2. ls
3. cd Documents
4. cd ..
5. cd /
6. cd ~ ou cd /home/user
Introduction 🦊
Exercice 5 - Manipulation de fichiers
Écrivez les commandes pour :
1. Créer un fichier vide nommé "test.txt"
2. Créer un répertoire "projet"
3. Copier test.txt dans le répertoire projet
4. Renommer test.txt en ancien.txt
5. Supprimer le fichier ancien.txt
6. Supprimer le répertoire projet et son contenu
1. Créer un fichier vide nommé "test.txt"
2. Créer un répertoire "projet"
3. Copier test.txt dans le répertoire projet
4. Renommer test.txt en ancien.txt
5. Supprimer le fichier ancien.txt
6. Supprimer le répertoire projet et son contenu
Commandes :
1. touch test.txt
2. mkdir projet
3. cp test.txt projet/
4. mv test.txt ancien.txt
5. rm ancien.txt
6. rm -r projet
2. mkdir projet
3. cp test.txt projet/
4. mv test.txt ancien.txt
5. rm ancien.txt
6. rm -r projet
Moyen 🦊🦊
Exercice 6 - Permissions et propriétés
Analysez cette sortie de ls -l :
Questions :
1. Quels sont les types de ces éléments ?
2. Qui peut lire document.txt ?
3. Qui peut exécuter script.sh ?
4. Quelle commande pour donner tous les droits à tous sur document.txt ?
-rw-r--r-- 1 alice users 1024 Jan 15 10:30 document.txt
drwxr-xr-x 2 alice users 4096 Jan 15 09:15 dossier
-rwxr-xr-- 1 bob admin 512 Jan 14 16:45 script.sh
drwxr-xr-x 2 alice users 4096 Jan 15 09:15 dossier
-rwxr-xr-- 1 bob admin 512 Jan 14 16:45 script.sh
Questions :
1. Quels sont les types de ces éléments ?
2. Qui peut lire document.txt ?
3. Qui peut exécuter script.sh ?
4. Quelle commande pour donner tous les droits à tous sur document.txt ?
Analyse :
1. Types :
• document.txt : fichier régulier (-)
• dossier : répertoire (d)
• script.sh : fichier régulier (-)
2. Lecture document.txt : alice (propriétaire), users (groupe), tous (autres)
3. Exécution script.sh : bob (propriétaire), admin (groupe)
4. Commande : chmod 777 document.txt
1. Types :
• document.txt : fichier régulier (-)
• dossier : répertoire (d)
• script.sh : fichier régulier (-)
2. Lecture document.txt : alice (propriétaire), users (groupe), tous (autres)
3. Exécution script.sh : bob (propriétaire), admin (groupe)
4. Commande : chmod 777 document.txt
Moyen 🦊🦊
Exercice 7 - Recherche et filtrage
Écrivez les commandes pour :
1. Trouver tous les fichiers .txt dans le répertoire courant
2. Chercher le mot "erreur" dans le fichier log.txt
3. Afficher les 10 dernières lignes de log.txt
4. Compter le nombre de lignes dans un fichier
5. Afficher les processus contenant "python"
6. Trouver les fichiers modifiés dans les dernières 24h
1. Trouver tous les fichiers .txt dans le répertoire courant
2. Chercher le mot "erreur" dans le fichier log.txt
3. Afficher les 10 dernières lignes de log.txt
4. Compter le nombre de lignes dans un fichier
5. Afficher les processus contenant "python"
6. Trouver les fichiers modifiés dans les dernières 24h
Commandes :
1. find . -name "*.txt"
2. grep "erreur" log.txt
3. tail -n 10 log.txt
4. wc -l fichier.txt
5. ps aux | grep python
6. find . -mtime -1
2. grep "erreur" log.txt
3. tail -n 10 log.txt
4. wc -l fichier.txt
5. ps aux | grep python
6. find . -mtime -1
Difficile 🦊🦊🦊
Exercice 8 - Pipes et redirections
Créez des commandes complexes pour :
1. Lister les fichiers, trier par taille, afficher les 5 plus gros
2. Compter le nombre de processus par utilisateur
3. Sauvegarder la liste des fichiers dans un fichier
4. Chercher "TODO" dans tous les fichiers .py et compter les occurrences
5. Afficher les lignes uniques d'un fichier trié
1. Lister les fichiers, trier par taille, afficher les 5 plus gros
2. Compter le nombre de processus par utilisateur
3. Sauvegarder la liste des fichiers dans un fichier
4. Chercher "TODO" dans tous les fichiers .py et compter les occurrences
5. Afficher les lignes uniques d'un fichier trié
Commandes complexes :
1. ls -la | sort -k5 -n | tail -5
2. ps aux | awk '{print $1}' | sort | uniq -c
3. ls -la > liste_fichiers.txt
4. grep -r "TODO" *.py | wc -l
5. sort fichier.txt | uniq
2. ps aux | awk '{print $1}' | sort | uniq -c
3. ls -la > liste_fichiers.txt
4. grep -r "TODO" *.py | wc -l
5. sort fichier.txt | uniq
📚 Partie 3 : Gestion des processus et système
Moyen 🦊🦊
Exercice 9 - Surveillance système
Analysez cette sortie de la commande top :
Questions :
1. Quel processus consomme le plus de CPU ?
2. Quel processus utilise le plus de mémoire ?
3. Comment arrêter le processus python ?
4. Que fait le processus systemd ?
PID USER %CPU %MEM COMMAND
1234 alice 25.0 15.2 python script.py
5678 bob 12.5 8.1 firefox
9012 root 5.0 2.3 systemd
1234 alice 25.0 15.2 python script.py
5678 bob 12.5 8.1 firefox
9012 root 5.0 2.3 systemd
Questions :
1. Quel processus consomme le plus de CPU ?
2. Quel processus utilise le plus de mémoire ?
3. Comment arrêter le processus python ?
4. Que fait le processus systemd ?
Analyse :
1. Plus de CPU : python script.py (25.0%)
2. Plus de mémoire : python script.py (15.2%)
3. Arrêter python : kill 1234 ou killall python
4. systemd : Gestionnaire de services système (processus init moderne)
1. Plus de CPU : python script.py (25.0%)
2. Plus de mémoire : python script.py (15.2%)
3. Arrêter python : kill 1234 ou killall python
4. systemd : Gestionnaire de services système (processus init moderne)
Difficile 🦊🦊🦊
Exercice 10 - Scripts et automatisation
Créez un script bash qui :
1. Vérifie si un répertoire "backup" existe
2. Le crée s'il n'existe pas
3. Copie tous les fichiers .txt du répertoire courant vers backup
4. Affiche le nombre de fichiers copiés
5. Ajoute la date et l'heure dans un fichier log
1. Vérifie si un répertoire "backup" existe
2. Le crée s'il n'existe pas
3. Copie tous les fichiers .txt du répertoire courant vers backup
4. Affiche le nombre de fichiers copiés
5. Ajoute la date et l'heure dans un fichier log
Script bash :
#!/bin/bash # Vérifier et créer le répertoire backup if [ ! -d "backup" ]; then mkdir backup echo "Répertoire backup créé" fi # Compter les fichiers .txt count=$(ls *.txt 2>/dev/null | wc -l) if [ $count -gt 0 ]; then # Copier les fichiers .txt cp *.txt backup/ echo "$count fichiers .txt copiés vers backup" else echo "Aucun fichier .txt trouvé" fi # Ajouter l'entrée dans le log echo "$(date): Sauvegarde effectuée - $count fichiers" >> backup.logPour exécuter :
chmod +x backup.sh
./backup.sh
./backup.sh