# Bash et Linux

Bash et Linux forment ensemble l'une des compétences les plus durables et les plus transversales de l'informatique. Comprendre comment un système Linux fonctionne — sa hiérarchie de fichiers, ses permissions, ses processus — et savoir écrire des scripts shell pour l'automatiser, c'est se donner accès à un niveau de contrôle et d'efficacité que les interfaces graphiques ne peuvent pas égaler. Cette compétence est aussi bien indispensable à l'administrateur système qui gère un parc de serveurs qu'au développeur qui automatise son pipeline de déploiement ou au data scientist qui orchestre ses traitements de données.

Ce livre progresse du concret vers l'avancé, en construisant progressivement les couches de compréhension. Les premières parties posent les fondations : comment Linux organise ses fichiers, comment le shell interprète les commandes, comment composer des outils Unix avec des pipes pour réaliser des traitements puissants en quelques lignes. Les parties suivantes transforment ces connaissances en compétences de programmation — variables, structures de contrôle, fonctions, tableaux — avant d'aborder les outils système (processus, réseau, paquets) et les techniques d'automatisation avancées. Les derniers chapitres, qui constituent la Partie V, s'attachent à la qualité : scripts robustes avec gestion d'erreurs, expressions régulières avancées, planification avec cron et systemd, interopérabilité avec Python, et bonnes pratiques validées par ShellCheck.

L'approche adoptée mêle explications conceptuelles, définitions précises, blocs de code commentés et visualisations. Les exemples sont tirés de situations réelles — déploiements, sauvegardes, analyse de logs, intégration d'APIs — pour que chaque notion s'ancre immédiatement dans un contexte d'usage. À l'issue de ce parcours, vous serez en mesure d'écrire des scripts robustes, de diagnostiquer des problèmes système, de planifier des tâches automatisées et de faire collaborer Bash avec d'autres langages.

## Partie I — L'environnement Linux

- [Le système Linux](01_systeme_linux.md)
- [Terminal et shell](02_terminal_shell.md)
- [Le système de fichiers](03_systeme_fichiers.md)
- [Fichiers et permissions](04_fichiers_permissions.md)

## Partie II — Manipulation de données en ligne de commande

- [Lire et chercher](05_lire_chercher.md)
- [Transformer et filtrer](06_transformer_filtrer.md)
- [Redirections et pipes](07_redirections_pipes.md)

## Partie III — Le shell comme langage de programmation

- [Variables et expansions](08_variables.md)
- [Structures de contrôle](09_structures_controle.md)
- [Fonctions et scripts](10_fonctions_scripts.md)
- [Tableaux et chaînes](11_tableaux_chaines.md)

## Partie IV — Outils système

- [Processus et jobs](12_processus_jobs.md)
- [Réseau](13_reseau.md)
- [Gestion des paquets](14_paquets.md)
- [Environnement et configuration](15_environnement_config.md)

## Partie V — Automatisation avancée

- [Scripts robustes](16_scripts_robustes.md)
- [Expressions régulières avancées](17_regex_avancees.md)
- [Cron et automatisation](18_cron_automatisation.md)
- [Bash et les autres langages](19_bash_autres_langages.md)
- [Bonnes pratiques et ShellCheck](20_bonnes_pratiques.md)

---

**À propos de ce livre.** Ces notes couvrent Bash et Linux de l'environnement système aux techniques d'automatisation avancée, en passant par la programmation shell, les outils de manipulation de données et l'interopérabilité avec Python. L'approche mêle explications conceptuelles, blocs de code commentés et visualisations matplotlib. La rédaction a été réalisée par Lôc Cosnier avec l'assistance de Claude (Anthropic), un modèle de langage. Le contenu a été relu, structuré et validé par l'auteur ; toute erreur restante lui est imputable.
