Ce cours couvre les commandes essentielles et les appels système sous Linux pour maîtriser l'administration et l’automatisation des tâches. Il aborde la manipulation des fichiers, la gestion des processus, les permissions, ainsi que l’utilisation des scripts shell. Ce PDF gratuit offre une documentation claire et pratique pour apprendre à interagir efficacement avec le terminal, optimiser les performances et résoudre les problèmes courants. Destiné aux débutants et aux utilisateurs avancés, il sert de référence complète pour exploiter pleinement les fonctionnalités du système d’exploitation Linux. Le contenu est structuré pour faciliter l’apprentissage autonome et l’intégration rapide des connaissances.
Ce cours s'adresse aux administrateurs système débutants, développeurs C/Unix, et ingénieurs logiciel souhaitant approfondir leur maîtrise de Linux. Des bases en ligne de commande et une familiarité avec un langage de programmation (idéalement C) sont recommandées.
Introduction à l'architecture Linux, systèmes de fichiers (ext4, XFS), et hiérarchie FHS. Manipulation des fichiers via commandes (ls, cp, rm, chmod). Gestion des processus (ps, top, kill) et redirections E/S (>, |). Configuration de l'environnement utilisateur (bashrc, profil).
Combinaison de C et shell : compilation avec gcc, scripts makefile. Fonctions shell avancées (boucles, conditions, grep/sed/awk). Gestion des signaux (SIGINT, SIGKILL). Intégration de binaires C dans des pipelines shell. Bonnes pratiques de scripting (débogage avec -x, vérification d'erreurs).
Gestion des utilisateurs (useradd, passwd) et groupes. Configuration réseau (ifconfig, netstat, iptables). Supervision (journalctl, syslog). Planification de tâches (cron, at). Installation de paquets (apt/yum/dnf). Sauvegardes (tar, rsync) et gestion des logs.
Fonctionnement des syscalls (open, read, write, fork). Accès bas niveau aux fichiers (descripteurs). Gestion de la mémoire (mmap, brk). Communication inter-processus (pipes, sockets). Sécurité des appels (droits setuid). Exemples en C avec errno pour la gestion d'erreurs.
Présentation des noyaux temps réel (PREEMPT_RT). Contraintes temporelles et latences. Outils de mesure (cyclictest). Priorités processus (chrt, nice). Développement d'applications embarquées critiques. Cas pratiques avec Raspberry Pi ou BeagleBone.
Cours combinant théorie (30%) et TP (70%). Environnements virtualisés (QEMU, Docker) pour les exercices. Projet final : création d'un mini-service système avec gestion de logs et API shell. Accès à des ressources en ligne (manpages, kernel.org).
Partner sites PDF Tutorials (English) | PDF Manuales (Spanish) | Cours PDF (French)