Pourquoi Commandes Linux essentielles ?
Dans le monde des développement logiciel, la gestion des systèmes d'exploitation est un aspect fondamental. Les développeurs doivent avoir une bonne connaissance des commandes Linux pour automatiser les tâches, gérer les fichiers et dossiers, et assurer une maintenance efficace de leurs environnements de travail.
Un cas d'usage concret serait la gestion quotidienne d'un serveur dédié à une application web. Les développeurs ont besoin de vérifier le statut du système, de sauvegarder les fichiers, de démarrer et arrêter des services, et de gérer les journaux pour dépanner les problèmes.
Prerequis
- Connaissance de base du terminal Unix
- Un environnement Linux (peu importe le distribution)
- Outils à installer :
gitpour le contrôle de version,curlouwgetpour télécharger des fichiers, etnanoouvimpour l'édition de fichiers
Concepts fondamentaux
1. Navigation dans le système de fichiers
La navigation est essentielle pour trouver les fichiers et dossiers nécessaires.
## Affiche le contenu du dossier courant
ls
## Change de dossier
cd /chemin/vers/dossier
## Retourne au dossier parent
cd ..
## Allez dans votre home directory
cd ~
## Affiche le chemin complet du dossier actuel
pwd
2. Création et suppression de fichiers et de dossiers
## Crée un nouveau fichier vide
touch nom_du_fichier.txt
## Crée un nouveau dossier
mkdir nom_du_dossier
## Supprime un fichier
rm nom_du_fichier.txt
## Supprime un dossier (recursivement)
rm -r nom_du_dossier
3. Copie et déplacement de fichiers et de dossiers
## Copie un fichier
cp source.txt destination.txt
## Déplace un fichier
mv source.txt destination.txt
## Copie récursivement un dossier
cp -r source_directory destination_directory
4. Affichage du contenu des fichiers
## Affiche le contenu d'un fichier
cat nom_du_fichier.txt
## Affiche les 10 premières lignes d'un fichier
head nom_du_fichier.txt
## Affiche les 10 dernières lignes d'un fichier
tail nom_du_fichier.txt
## Affiche le contenu d'un fichier et met à jour en temps réel
tail -f nom_du_fichier.log
Mise en pratique : projet fil rouge
Projet : Gestionnaire de tâches simplifié
Étape 1 : Création du dossier et initialisation du projet
## Crée un nouveau dossier pour le projet
mkdir todo_app
cd todo_app
## Initialise un dépôt Git
git init
Étape 2 : Création des fichiers de configuration et des scripts
Créer les fichiers suivants :
todo.sh: Script principal pour gérer les tâches.todo.list: Fichier contenant la liste des tâches.
## Crée le fichier todo.sh avec nano
nano todo.sh
## Ajoute ce contenu dans todo.sh
#!/bin/bash
if [ "$1" == "add" ]; then
echo "$2" >> todo.list
elif [ "$1" == "list" ]; then
cat todo.list
fi
Étape 3 : Rendre le script exécutable et l'exécuter
## Rend le fichier todo.sh exécutable
chmod +x todo.sh
## Ajoute une tâche
./todo.sh add "Faire la lessive"
## Liste les tâches
./todo.sh list
Erreurs frequentes et debugging
1. Erreur : Fichier non trouvé
## ❌ Mauvais
cat nom_du_fichier.txt
## ✅ Correct
if [ -f "nom_du_fichier.txt" ]; then
cat nom_du_fichier.txt
else
echo "Fichier non trouvé"
fi
2. Erreur : Permission refusée
## ❌ Mauvais
rm fichier_protégé.txt
## ✅ Correct
sudo rm fichier_protégé.txt
3. Erreur : Commande inconnue
## ❌ Mauvais
git status
## ✅ Correct
if command -v git &> /dev/null; then
git status
else
echo "Git n'est pas installé"
fi
Pour aller plus loin
Manipulation de fichiers avancée : Apprenez à utiliser les commandes
grep,awk, etsedpour traiter des données en texte.Contrôle de version avancé : Apprenez à utiliser des fonctionnalités avancées de Git comme les branches, les conflits et les reverts.
Scripts Shell avancés : Apprenez à écrire des scripts Bash plus complexes, en utilisant les boucles, les fonctions et les structures de contrôle.
Défi pratique
Créez un script Bash qui prend en entrée une URL et télécharge le contenu de cette URL dans un fichier. Assurez-vous que le script gère les erreurs potentielles (par exemple, si l'URL est invalide ou si la connexion échoue).
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <url>"
exit 1
fi
url=$1
if ! curl --output /dev/null --silent --head --fail "$url"; then
echo "URL invalide ou indisponible"
exit 1
fi
filename=$(basename "$url")
curl -o "$filename" "$url"
echo "Contenu téléchargé et enregistré dans $filename"
Ce script vérifie que le nombre d'arguments est correct, teste l'accessibilité de l'URL avec curl, et télécharge le contenu dans un fichier nommé comme la page web.