TP : Bash Quest - L'Évasion du Serveur
Introduction
Dans ce TP, vous allez découvrir les rudiments de la ligne de commande Linux (le "shell").
Contrairement aux interfaces graphiques (souris, fenêtres) que vous connaissez, le shell permet de contrôler l'ordinateur en tapant des commandes textuelles. C'est l'outil privilégié des administrateurs système et des développeurs pour sa puissance et sa rapidité.
Objectif
Vous êtes piégé dans un serveur défaillant. Pour vous échapper, vous devez réparer le système en utilisant uniquement le terminal.
Le jeu "Bash Quest" simule un environnement Linux. Vous allez apprendre à :
- Naviguer dans les dossiers (
ls,cd,pwd) - Manipuler des fichiers (
mkdir,touch,rm,mv,cp) - Lire et rechercher du contenu (
cat,grep,head,tail) - Gérer les permissions (
chmod) - Rediriger des flux (
>,>>) - Gérer les processus (
ps,kill) - Analyser les données (
sort,uniq,wc,diff)
Installation et Lancement
- Téléchargez le fichier bash_quest.py.
- Ouvrez-le avec votre environnement Python (Thonny, IDLE, ou VS Code).
- Lancez le script (F5 ou bouton Run).
- Une fenêtre "terminal" noire ou l'interface de console apparaîtra. C'est votre aire de jeu.
Aide-Mémoire des Commandes
Voici les commandes que vous pourrez utiliser dans le jeu. Notez-les, elles sont votre seule arme !
Navigation et Fichiers
| Commande | Description | Exemple |
|---|---|---|
pwd |
Affiche le dossier où vous êtes (Print Working Directory) | pwd |
ls |
Liste les fichiers et dossiers (List) | ls ou ls documents |
cd |
Change de dossier (Change Directory) | cd documents ou cd .. (pour remonter) |
cat |
Affiche le contenu d'un fichier | cat message.txt |
mkdir |
Crée un nouveau dossier (Make Directory) | mkdir vacances |
touch |
Crée un fichier vide / Change l'horodatage | touch note.txt |
rm |
Supprime un fichier (Remove) | rm vieux_fichier.txt |
mv |
Déplace ou renomme un fichier (Move) | mv note.txt archives/ |
cp |
Copie un fichier (Copy) | cp image.jpg backup.jpg |
find |
Cherche des fichiers dans l'arborescence | find . -name "*.txt" |
Lecture et Analyse
| Commande | Description | Exemple |
|---|---|---|
grep |
Cherche un mot dans un fichier | grep "erreur" journal.log |
head |
Affiche les premières lignes d'un fichier | head -n 5 fichier.txt |
tail |
Affiche les dernières lignes d'un fichier | tail -n 10 fichier.log |
sort |
Trie les lignes d'un fichier | sort noms.txt |
uniq |
Filtre les lignes répétées adjacentes | uniq doublons.txt |
wc |
Compte les lignes, mots et caractères (Word Count) | wc -l fichier.txt (compte les lignes) |
diff |
Compare le contenu de deux fichiers | diff v1.txt v2.txt |
du |
Affiche l'utilisation de l'espace disque | du dossier/ |
Système et Processus
| Commande | Description | Exemple |
|---|---|---|
chmod |
Change les permissions d'un fichier | chmod +x script.sh |
ps |
Affiche les processus en cours | ps |
kill |
Arrête un processus via son PID | kill 1234 |
date |
Affiche la date et l'heure | date |
history |
Affiche l'historique des commandes tapées | history |
alias |
Crée un raccourci pour une commande | alias ll='ls -l' |
export |
Crée une variable d'environnement | export CHEMIN=/bin |
env |
Affiche les variables d'environnement | env |
Redirection de Flux
| Symbole | Description | Exemple |
|---|---|---|
> |
Redirige la sortie vers un fichier (écrase le contenu) | ls > liste.txt |
>> |
Redirige la sortie vers un fichier (ajoute à la fin) | echo "Fin" >> log.txt |
Aide et Jeu
| Commande | Description | Exemple |
|---|---|---|
man |
Affiche le manuel d'une commande | man ls |
indice |
Affiche les commandes utiles pour le niveau | indice |
help |
Affiche l'objectif actuel et l'aide générale | help |
restart |
Recommence le niveau en cours | restart |
exit |
Quitte le jeu | exit |
Votre Mission
Le jeu est divisé en 32 Niveaux.
À chaque niveau, tapez help pour voir votre objectif actuel.
Le jeu validera automatiquement vos actions. Si vous réussissez, vous passerez au niveau suivant.
Bonne chance, le sort du serveur est entre vos mains !