Skip to content

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

  1. Téléchargez le fichier bash_quest.py.
  2. Ouvrez-le avec votre environnement Python (Thonny, IDLE, ou VS Code).
  3. Lancez le script (F5 ou bouton Run).
  4. 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 !

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 !

Accueil