# Formation BASH (SHELL) đ : Un voyage dans le monde des scripts
Bienvenue dans cette formation BashâŻ! Ensemble, nous allons explorer les bases, les astuces avancĂ©es, et les bonnes pratiques pour automatiser vos tĂąches et devenir maĂźtre de la ligne de commande. âš
---
## **Introduction Ă BASH** đ
Bash est l'interpréteur de commandes par défaut sur la plupart des systÚmes Linux. Il vous permet de manipuler votre systÚme, d'exécuter des scripts et de résoudre des problÚmes en un éclair.
- **Documentation officielle Bash** :
[Shell Command Language](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html)
- **Outils pour améliorer vos scripts** :
- **`shellcheck`** : DĂ©tectez et corrigez les erreurs dans vos scripts.
```bash
sudo apt install shellcheck
shellcheck monscript.sh
```
- **`shellspec`** : Ăcrivez des tests unitaires pour vos scripts Bash.
- **`tldr`** : Des résumés pratiques pour les commandes Bash courantes.
```bash
sudo apt install tldr
tldr lsof
```
---
## **Configuration du SHELL et importance du PATH** đ ïž
### **Qu'est-ce que le PATH�**
Le `PATH` est une variable environnementale contenant les dossiers oĂč votre systĂšme cherche les programmes exĂ©cutables. Si un programme n'est pas dans le `PATH`, il ne pourra pas ĂȘtre exĂ©cutĂ© directement.
- Afficher votre `PATH` :
```bash
echo $PATH
```
- Ajouter un dossier au `PATH` dans votre `~/.bashrc` :
```bash
export PATH=$PATH:$HOME/scripts
source ~/.bashrc
```
---
## **Environnements Python đ**
Les scripts Bash collaborent souvent avec des environnements Python. Créer un environnement virtuel est une bonne pratique pour isoler vos projets.
### **Créer et utiliser un environnement virtuel** :
1. Installez Python si ce nâest pas fait.
2. Créez un environnement virtuel :
```bash
python -m venv env
```
3. Activez-le :
```bash
source env/bin/activate
```
4. Installez vos modules nécessaires :
```bash
pip install numpy requests
```
---
## **Astuces pratiques** đ
### **Navigation dans le Shell**
- **Utilisez `TAB` pour auto-compléter** les commandes, les noms de fichiers et les dossiers.
- Retour rapide à votre répertoire personnel :
```bash
cd
```
### **Création et gestion de fichiers/dossiers**
- Créez un dossier et ses sous-dossiers :
```bash
mkdir -p Foret/Hutte/Coffre
```
- Supprimez des fichiers spécifiques :
```bash
rm Chateau/Cave/araignee_*
```
- DĂ©placez des fichiers dans un autre dossier :
```bash
mv Jardin/piece_* Foret/Hutte/Coffre/
```
### **RĂ©digez et lisez dans des fichiers**
- Ăcrivez dans un fichier :
```bash
echo "Mon message" > Foret/Hutte/journal.txt
```
- Lisez son contenu :
```bash
cat Foret/Hutte/journal.txt
```
---
## **Gestion des processus** đ
### **Lister les processus en cours** :
```bash
ps aux
```
### **Tuer un processus spécifique** :
Trouvez un processus lié à un port :
```bash
lsof -i :1234
```
Tuez-le :
```bash
kill -9 <PID>
```
Automatisation pour les processus contenant "sortil" :
```bash
for pid in $(ps aux | grep sortil | awk '{print $2}'); do kill -9 $pid; done
```
---
## **Manipulations avancĂ©es** đ§
### **Boucles et calculs**
- Boucle de lecture ligne par ligne :
```bash
while read line; do
echo "$line"
done < /etc/os-release
```
- Calculs en Bash (entiers uniquement) :
```bash
echo $((987 + 123 * 5))
```
- Calculs décimaux avec `bc` :
```bash
echo "63.1 + 0.01" | bc
```
---
## **Exemples amusants : GameShell đź**
Téléchargez et explorez le **GameShell** pour une initiation ludique à Bash :
```bash
wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh
bash gameshell.sh
```
AmĂ©liorez vos compĂ©tences en rĂ©solvant des missions, comme organiser des fichiers ou exĂ©cuter des commandes secrĂštesâŻ!
---
## **Bonus : Ressources pour aller plus loin** đ
- **The Art of Command Line** : [Guide avancé](https://github.com/papiche/the-art-of-command-line)
- **Astroport.ONE** : DĂ©couvrez des scripts innovants et contribuez Ă des projets passionnants : [Astroport.ONE](https://github.com/papiche/Astroport.ONE)
- **Root-Me Club** : [Apprenez la sécurité informatique](https://www.root-me.org/).
---
**Rappelez-vous** : La pratique rĂ©guliĂšre est la clĂ© pour maĂźtriser Bash. Continuez Ă expĂ©rimenter et Ă automatiser vos tĂąches quotidiennes. đ§ââïž
PrĂȘt pour le **LEVEL 2**âŻ? Ă vos claviersâŻ! đ