Linux & Systèmes PDF Gratuit

Cours Commandes de base en PDF (Débutant)

Commandes de base : éléments essentiels. Définition : ensemble de commandes shell pour naviguer, manipuler et interroger un système Linux (Ubuntu, Debian, etc.) depuis un terminal — gestion des fichiers, liens, permissions et outils de filtrage/tri. Document conçu comme référence synthétique avec exemples de syntaxe et cas d'usage, utilisable comme aide‑mémoire lors de TP ou interventions rapides. Compatible avec les distributions majeures (Ubuntu, Debian, CentOS) et adapté aux environnements WSL pour reproduire les exemples.

🎯 Ce que vous allez apprendre

  • Navigation et arborescence (ls, cd, pwd) — chemins absolus et relatifs, répertoire courant . et parent .., options fréquentes de ls (par ex. -l, -a), interprétation des permissions pour situer un fichier dans l'arborescence.
  • Manipulation de fichiers et répertoires (cp, mv, rm, mkdir, rmdir, find) — copier, déplacer, supprimer, créer ; risques associés à rm et stratégies de sauvegarde. Utilisation de find avec tests (-name, -user, -newer) et actions (-exec, -print) pour automatiser recherches et opérations récursives.
  • Liens et préservation d'attributs (ln, cp -p, -R) — distinction liens physiques et symboliques, effets sur suppression et chemins, conservation des métadonnées via cp -p et copies récursives avec -R.
  • Droits, propriétaires et attributs (chmod, chown, chgrp, umask, set-uid) — interpréter modes octaux et symboliques, appliquer récursivité (-R), comprendre UID/GID et impact du set-uid sur l'exécution.
  • Flux, pipes et outils de traitement (|, tee, sort, uniq, cut, tr, head, tail) — composition de commandes via pipe, enregistrement de flux avec tee, tri/filtrage pour produire rapports exploitables et isoler colonnes ou supprimer doublons.
  • Édition de fichiers depuis le terminal (vi/vim, nano) — ouverture, modification et sauvegarde ; différences de paradigme entre vi/vim (modes) et nano (interface simple).
  • Exécution et élévation de privilèges (su, sudo, id, echo, date) — exécuter sous un autre UID, vérifier identifiants effectifs via id, usage pratique de su -c ou sudo pour limiter la surface de risque.
  • Commandes internes vs utilitaires externes — comprendre l'impact sur performance, portabilité et comportement lors de redirections ou substitutions.

Commandes internes vs utilitaires externes

Les built‑ins sont intégrées à l'interpréteur (shell) et modifient l'environnement sans lancer de nouveau processus — exemples : cd, export, alias. Les utilitaires externes résident dans le système de fichiers (par ex. /bin/ls, /usr/bin/find) et s'exécutent comme processus distincts. Cette distinction influence la portabilité des scripts, la latence d'exécution et les effets des redirections ou substitutions ; par exemple cd doit être un built‑in pour affecter le répertoire courant, alors que ls est généralement un binaire externe. Pour des scripts robustes, privilégier les built‑ins quand ils satisfont le besoin et documenter les dépendances aux binaires externes.

Maîtriser le Shell Bash et le Terminal

Les exemples prennent Bash comme référence : expansions de variables, substitutions, gestion de l'historique et alias. Maîtriser la ligne de commande facilite l'automatisation et la reproductibilité via de petits scripts. Bonnes pratiques : privilégier des chemins absolus dans les scripts, vérifier les retours d'exécution ($?), et limiter l'usage de privilèges élevés. Ces compétences réduisent les erreurs courantes en administration et simplifient l'analyse d'incidents.

i
Basculer en mode insertion (insertion avant le curseur).
a
Basculer en mode insertion après le curseur.
Esc
Revenir au mode commande.
:w
Enregistrer le fichier depuis le mode commande.
:q
Quitter si aucun changement non enregistré.
:wq
Enregistrer et quitter.
:q!
Quitter sans enregistrer les modifications.

Pourquoi maîtriser le terminal Linux ?

Le terminal linux reste l'outil central pour l'administration système et le dépannage. Une bonne pratique du shell bash accélère les interventions, permet d'automatiser des tâches répétitives, et offre une traçabilité claire des actions réalisées sur des serveurs ou postes locaux. Ces compétences s'appliquent à la gestion des fichiers, la surveillance des processus, et l'identification rapide des incidents, tout en réduisant les risques liés à des manipulations manuelles.

Redirections et gestion des flux de données

La gestion des flux de données (entrée, sortie, erreur) est essentielle pour automatiser et consigner des traitements. Rediriger la sortie standard, l'erreur standard ou combiner des commandes via des tubes permet d'enchaîner des traitements, d'archiver des logs ou d'isoler les erreurs lors d'exécution. Comprendre ces mécanismes améliore la robustesse des scripts et la qualité des diagnostics en administration système.

Redirections et tubes (pipes)

Opérateurs fréquents : > (redirige la sortie standard vers un fichier), >> (ajoute à la fin d'un fichier), < (lire depuis un fichier), 2> (redirige la sortie d'erreur), et | (pipe, transmet la sortie standard d'une commande vers l'entrée d'une autre). Exemple concret :

# rediriger la sortie et l'erreur séparément
command > sortie.txt 2> erreur.log

# combiner sortie et erreur dans le même fichier
command > tout.log 2>&1

# utilisation de pipe et suppression sécurisée de logs
ps aux | grep nginx | tee processus.txt
find /var/log -name '*.log' -print0 | xargs -0 gzip -9

Pour préserver les chemins contenant des espaces lors d'opérations en masse, préférer -print0 et xargs -0, ou utiliser la forme -exec ... {} + de find.

📑 Sommaire du document

Table des matières simplifiée : la liste ci‑dessous reprend les principaux thèmes abordés dans l'ordre pédagogique conçu pour une montée en compétences progressive.

  • Gestion des fichiers
  • Droits et permissions
  • Processus et disques
  • Archivage et compression

Prérequis pour utiliser ce cours

Accès à un terminal sur une distribution Linux ou via WSL (Windows Subsystem for Linux) recommandé pour reproduire les exemples. Installer un interpréteur compatible Bash et des utilitaires usuels (par ex. coreutils, findutils, procps) si l'environnement est minimal. Disposer d'un compte utilisateur avec droits suffisants pour expérimenter (création de fichiers, modifications de permissions) tout en évitant l'usage prolongé d'un compte root. Ces conditions garantissent la reproductibilité des commandes et la compréhension de la syntaxe linux présentée.

💡 Pourquoi choisir ce cours ?

Rédigé par Thierry Vaira, ce document fournit une synthèse opérationnelle des commandes de base, fondée sur les pages man et complétée par exemples pratiques. L'approche pragmatique — commande, options usuelles, puis exemples d'exécution — facilite l'utilisation comme aide‑mémoire pour TP ou interventions rapides. Le contenu vise à rendre immédiate la mise en pratique en contexte réel d'administration système.

👤 À qui s'adresse ce cours ?

  • Public cible : utilisateurs et techniciens débutants en administration système ou développeurs amenés à interagir avec un shell Linux/UNIX sur poste local ou serveur.
  • Prérequis : accès à un terminal sur un système UNIX/Linux et notions élémentaires du système de fichiers (chemins, fichier/répertoire) ; une connaissance basique de la ligne de commande est utile.

Tableau récapitulatif des commandes Linux essentielles

Ce tableau présente dix commandes fréquemment utilisées, leur rôle et un exemple d'utilisation succinct. Il sert de référence rapide pour exécuter des opérations courantes sur la ligne de commande et comprendre la syntaxe de base.

Commande Action Exemple
ls Lister contenus d'un répertoire ls -la /etc
cd Changer de répertoire (built‑in) cd /var/log
cp Copier fichiers ou répertoires cp -r source/ dest/
mv Déplacer ou renommer mv fichier.txt ~/Documents/
rm Supprimer fichiers (avec prudence) rm -i fichier.txt
mkdir Créer un répertoire mkdir -p /tmp/projet
chmod Modifier permissions chmod 644 fichier.conf
chown Changer propriétaire/groupe chown user:group fichier
ps Lister processus en cours ps aux | grep sshd
man Accéder à la documentation d'une commande man find
env Afficher les variables d'environnement (ex. $PATH) env | grep PATH

❓ Foire Aux Questions (FAQ)

Quelle est la différence entre un lien physique et un lien symbolique ?

Un lien physique (hard link) associe un nom supplémentaire au même inode, si bien que la suppression d'un nom n'empêche pas l'accès au contenu tant qu'un autre nom pointe vers le même inode. Un lien symbolique contient un chemin vers la cible ; il peut pointer vers des fichiers inexistants ou des systèmes de fichiers différents. Supprimer un lien symbolique rompt le chemin sans affecter l'inode de la cible.

Comment utiliser find avec -exec sans erreur ?

Employer la forme -exec command {} \; ou, pour optimiser, -exec command {} + qui agrège les résultats. Pour gérer correctement les noms avec espaces ou caractères spéciaux, combiner -print0 avec xargs -0. Exemple pratique :

find . -name '*.log' -print0 | xargs -0 rm -f

Ces techniques évitent les erreurs liées au découpage en champs et préservent l'intégrité des chemins lors d'opérations sur plusieurs fichiers.