Introduction à GNU/Linux - Gestion des processus et services
Ce cours sur l’introduction aux systèmes GNU/Linux - Séance 4 couvre les compétences essentielles pour maîtriser les tâches d’administration de premier niveau sous Linux. Il aborde l’utilisation avancée du shell Bash, la gestion des processus, ainsi que la configuration des permissions sur les fichiers et répertoires. De plus, il guide les apprenants à travers les étapes clés de la compilation d’une application à partir de ses sources, une compétence technique importante pour comprendre le fonctionnement des logiciels libres. Le support de cours PDF, disponible en téléchargement gratuit, détaille en 23 pages les concepts pratiques et théoriques de cette séance. Il propose un plan structuré incluant l’exploitation des ressources du shell Bash, l’identification et la manipulation des processus, ainsi que la gestion des droits d’accès. Enfin, il met en lumière les défis de la compilation manuelle, encourageant ainsi les étudiants à privilégier la gestion des paquets pour une administration plus efficace. Ce matériel de formation est conçu pour fournir une base solide aux débutants tout en offrant des insights utiles aux utilisateurs intermédiaires souhaitant approfondir leur maîtrise de GNU/Linux.
Contenus explorés en détail
- Utiliser les ressources du shell Bash : Maîtrise des commandes essentielles, scripts de base et personnalisation de l'environnement utilisateur.
- Identifier et gérer les processus : Surveillance des processus en cours, gestion des priorités et arrêt des tâches indésirables.
- Gérer les permissions sur les fichiers et répertoires : Compréhension des droits d'accès (chmod, chown) et sécurisation des données.
- Compiler une application à partir de ses sources : Étapes de compilation, résolution des dépendances et installation manuelle.
Public concerné par ce PDF
Ce cours s'adresse aux étudiants en informatique, administrateurs systèmes débutants et développeurs souhaitant maîtriser les bases de l'administration GNU/Linux. Les professionnels en reconversion vers l'open-source y trouveront également des compétences clés pour gérer des serveurs ou des postes de travail Linux. Aucun prérequis avancé n'est nécessaire, mais une familiarité avec le terminal est un plus.
Exemples pratiques et applications réelles
Les compétences acquises permettent d'automatiser des tâches via des scripts Bash (ex: sauvegardes quotidiennes), d'optimiser les performances d'un serveur en contrôlant les processus, ou de sécuriser un système en ajustant les permissions. Par exemple, un administrateur peut utiliser cron
pour planifier des scripts ou htop
pour surveiller l'utilisation CPU.
Secteurs d'application professionnelle
- DevOps : Automatisation des déploiements avec des scripts Bash. Exemple : Configuration automatisée de serveurs cloud via Ansible.
- Cybersécurité : Durcissement des permissions pour protéger les données sensibles. Exemple : Restriction d'accès aux logs système.
- Développement logiciel : Compilation de logiciels open-source pour des plateformes spécifiques. Exemple : Adaptation d'une bibliothèque C pour ARM.
Guide des termes importants
- Bash : Shell Unix par défaut, utilisé pour exécuter des commandes et scripts.
- chmod : Commande pour modifier les permissions (lecture/écriture/exécution) des fichiers.
- Processus : Instance d'un programme en cours d'exécution, gérée par le noyau.
- Makefile : Fichier contenant des règles pour compiler un projet logiciel.
- sudo : Commande permettant d'exécuter des tâches avec des privilèges administrateur.
- Kernel : Noyau du système d'exploitation, gestionnaire central des ressources.
- Daemon : Processus système s'exécutant en arrière-plan (ex: serveur web).
- GCC : Compilateur GNU pour les langages C/C++, utilisé dans la compilation depuis les sources.
- UID/GID : Identifiants numériques uniques attribués à un utilisateur/groupe.
- SSH : Protocole sécurisé pour l'accès distant à un terminal Linux.
Réponses aux questions fréquentes
Comment vérifier les permissions d'un fichier sous Linux ?
Utilisez ls -l fichier
pour afficher les droits (ex: -rwxr--r--
). Les lettres représentent les droits du propriétaire (r/w/x), du groupe et des autres.
Quelle est la différence entre kill et pkill ?kill
termine un processus via son PID, tandis que pkill
le cible par son nom (ex: pkill nginx
).
Comment compiler un programme C sous Linux ?
Avec GCC : gcc -o mon_programme mon_programme.c
. Pour des projets complexes, utilisez un Makefile.
Pourquoi utiliser sudo ?sudo
accorde temporairement des droits root, essentiels pour les tâches d'administration (ex: installer des paquets).
Comment lister tous les processus en cours ?
Avec ps aux
ou top
pour une vue interactive. htop
(à installer) offre une interface plus intuitive.
Exercices appliqués et études de cas
Projet 1 : Script de sauvegarde automatisée
1. Créez un script Bash (backup.sh
) utilisant tar
pour compresser un dossier.
2. Ajoutez une logique pour vérifier l'espace disque avant l'exécution.
3. Planifiez-le via crontab -e
(ex: tous les jours à minuit).
Projet 2 : Surveillance des processus critiques
1. Utilisez pgrep
pour vérifier si un service (ex: Apache) est actif.
2. Si non, envoyez une alerte par email avec mail
ou relancez le service.
3. Testez en arrêtant manuellement le service.
Étude de cas : Compilation d'Nginx depuis les sources
1. Téléchargez les sources depuis nginx.org.
2. Installez les dépendances (libpcre3-dev
, zlib1g-dev
).
3. Exécutez ./configure
, make
, puis sudo make install
.
4. Comparez avec la version installée via un gestionnaire de paquets.
Introduction à GNU/Linux - Découvrir les bases en Séance 1
Introduction à GNU/Linux - Séance 3 : Gestion des utilisateurs
Introduction à GNU/Linux - Découvrir les commandes de base
Introduction aux systèmes NoSQL - Bases et avantages
Unix/Linux - Découvrir les bases du système d'exploitation
GNU/Linux - Maîtriser les bases du système d'exploitation