Introduction à Linux et la ligne de commande

Introduction à Linux et la ligne de commande

Qu'est-ce que Linux ?

Linux est un système d'exploitation open source créé par Linus Torvalds en 1991. Il est aujourd'hui omniprésent : serveurs web, smartphones (Android), objets connectés, supercalculateurs et bien sûr le cloud.

Pourquoi apprendre Linux ?

  • Omniprésence serveur : plus de 90% des serveurs web tournent sous Linux
  • DevOps & Cloud : AWS, GCP, Azure — les machines virtuelles sont majoritairement Linux
  • Open source : gratuit, personnalisable, transparent
  • Stabilité et performance : idéal pour les environnements de production

Les distributions principales

Distribution Usage typique Gestionnaire de paquets
Ubuntu / Debian Serveurs, postes de travail apt
CentOS / Rocky Linux Entreprise, serveurs dnf / yum
Alpine Conteneurs Docker apk
Arch Linux Utilisateurs avancés pacman

Le terminal : votre outil principal

Le terminal (ou shell) est l'interface en ligne de commande qui permet d'interagir avec le système. Le shell par défaut sur la plupart des distributions est Bash (Bourne Again Shell).

Premiers pas

# Qui suis-je ?
whoami

# Où suis-je ?
pwd

# Quelle date est-il ?
date

# Afficher le nom de la machine
hostname

# Voir les informations système
uname -a

Naviguer dans le système de fichiers

# Lister les fichiers
ls
ls -la          # Liste détaillée avec fichiers cachés
ls -lh          # Tailles lisibles (Ko, Mo, Go)

# Changer de répertoire
cd /home/user
cd ..           # Remonter d'un niveau
cd ~            # Aller dans le répertoire home
cd -            # Retourner au répertoire précédent

# Créer des répertoires
mkdir mon-projet
mkdir -p projets/web/frontend   # Créer toute l'arborescence

# Créer des fichiers
touch fichier.txt

L'arborescence Linux

Contrairement à Windows, Linux a une arborescence unique partant de / (la racine) :

/
├── bin/        # Commandes essentielles (ls, cp, mv...)
├── etc/        # Fichiers de configuration
├── home/       # Répertoires personnels des utilisateurs
├── var/        # Données variables (logs, bases de données)
├── tmp/        # Fichiers temporaires
├── usr/        # Programmes et bibliothèques utilisateur
├── opt/        # Logiciels tiers
├── dev/        # Fichiers de périphériques
├── proc/       # Informations sur les processus (virtuel)
└── root/       # Répertoire home de l'administrateur

Manipuler les fichiers

# Copier
cp fichier.txt copie.txt
cp -r dossier/ backup/        # Copier un répertoire récursivement

# Déplacer / Renommer
mv fichier.txt nouveau-nom.txt
mv fichier.txt /tmp/           # Déplacer

# Supprimer
rm fichier.txt
rm -r dossier/                 # Supprimer un répertoire
rm -rf dossier/                # Forcer la suppression (⚠️ dangereux)

# Afficher le contenu d'un fichier
cat fichier.txt
less fichier.txt               # Navigation page par page
head -n 20 fichier.txt         # 20 premières lignes
tail -n 20 fichier.txt         # 20 dernières lignes
tail -f /var/log/syslog        # Suivre un fichier en temps réel

Rechercher des fichiers et du contenu

# Trouver des fichiers
find /home -name "*.txt"
find . -type d -name "node_modules"
find /var/log -mtime -1        # Fichiers modifiés dans les dernières 24h

# Rechercher du texte dans les fichiers
grep "erreur" /var/log/syslog
grep -r "TODO" ./src/          # Recherche récursive
grep -i "warning" fichier.log  # Insensible à la casse
grep -n "function" script.js   # Afficher les numéros de ligne

Les redirections et les pipes

Un concept fondamental de Linux : tout est flux de données.

# Redirection de sortie
echo "Hello" > fichier.txt      # Écraser le contenu
echo "World" >> fichier.txt     # Ajouter à la fin

# Redirection d'erreur
commande 2> erreurs.log         # Rediriger les erreurs
commande > sortie.log 2>&1      # Tout dans un fichier

# Les pipes : enchaîner des commandes
cat access.log | grep "404" | wc -l           # Compter les erreurs 404
ps aux | grep nginx                            # Trouver les processus nginx
ls -la | sort -k5 -n -r | head -10            # Top 10 plus gros fichiers

L'aide intégrée

# Manuel d'une commande
man ls
man grep

# Aide rapide
ls --help
grep --help

# Rechercher une commande par description
apropos "copy files"

Bonnes pratiques

  1. Utilisez tab pour l'autocomplétion des commandes et chemins
  2. Utilisez l'historique avec les flèches haut/bas ou history
  3. Lisez les messages d'erreur — ils sont souvent explicites
  4. N'utilisez jamais rm -rf / — cela supprime tout le système
  5. Préférez less à cat pour les fichiers longs
  6. Utilisez man avant de chercher sur internet