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 dels(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 àrmet stratégies de sauvegarde. Utilisation defindavec 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 viacp -pet 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 duset-uidsur l'exécution. - Flux, pipes et outils de traitement (
|,tee,sort,uniq,cut,tr,head,tail) — composition de commandes via pipe, enregistrement de flux avectee, 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 entrevi/vim(modes) etnano(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 viaid, usage pratique desu -cousudopour 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
shellLinux/UNIX sur poste local ou serveur. - Prérequis : accès à un
terminalsur unsystème UNIX/Linuxet notions élémentaires dusystè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.