Seb-Info

Linux commande de bases

Linux commande de bases

Cours simple : Linux et ses principes fondamentaux

1) Qu’est-ce que Linux ?

  • Linux est le noyau (kernel) : il gère mémoire, processeur, périphériques et processus.
  • Un système complet s’appelle souvent GNU/Linux : noyau Linux + utilitaires GNU + logiciels.
  • Une distribution (Ubuntu, Debian, Fedora…) = noyau + gestionnaire de paquets + configuration + dépôts de logiciels.
    Exemple : Ubuntu LTS = version stable à support long.

2) Architecture simplifiée

Matériel → Noyau (Linux)Espace utilisateur

  • Bibliothèques (libc, etc.)
  • Processus (programmes), services en arrière-plan (daemons, gérés par systemd sur Ubuntu)
  • Shell (ex. bash) dans un terminal pour exécuter des commandes
  • Éventuellement un environnement graphique (GNOME, KDE)

3) Principes fondateurs

  • Multi-utilisateur et multitâche
  • Principe du moindre privilège : travailler en utilisateur normal ; root uniquement si nécessaire (via sudo).
  • « Tout est fichier » : fichiers, répertoires, périphériques (/dev), infos noyau (/proc, /sys).
  • Composabilité UNIX : petits outils spécialisés chaînables (pipeline).
  • Transparence : configurations texte (/etc), journaux (/var/log).

4) Arborescence standard (FHS)

  • / : racine
  • /home/ : dossiers des utilisateurs
  • /etc/ : configuration système et services
  • /var/ : données variables (journaux, caches…)
  • /usr/ : logiciels et données installés par la distribution
  • /bin/, /sbin/ : exécutables essentiels
  • /tmp/ : fichiers temporaires
  • /dev/ : périphériques comme fichiers
  • /proc/, /sys/ : pseudo-systèmes exposant l’état du noyau/matériel

Conseil : pour les travaux en classe, rester dans votre dossier personnel /home/<vous>.

5) Processus et services

  • Un processus = un programme en cours d’exécution (PID = identifiant).
  • Un service/daemon = processus en arrière-plan (réseau, impression, logs…).
  • Sur Ubuntu, systemd pilote les services (démarrage, arrêt, journalisation).

6) Gestion des logiciels (Ubuntu)

  • Format de paquet : .deb
  • Outils : APT (apt) pour installer/mettre à jour depuis des dépôts signés ; dpkg (bas niveau) pour manipuler des .deb.
  • Mises à jour régulières ; versions LTS privilégiant la stabilité.

7) Droits et sécurité (bases)

  • Chaque fichier a un propriétaire, un groupe et des permissions : lecture (r), écriture (w), exécution (x) pour u/g/o (user/group/others).
  • N’utiliser root que ponctuellement (via sudo).
  • Bon réflexe : lire l’aide (man commande ou commande --help) et faire des copies avant modification.

8) Vocabulaire utile

  • Kernel (noyau) : cœur de l’OS
  • Shell : interpréteur de commandes (bash)
  • Terminal : fenêtre/console pour le shell
  • Distribution : assemblage cohérent du système
  • FHS : convention de l’arborescence
  • LTS : support long terme
  • Daemon : service en arrière-plan

Points clés (check-list)

  • Différence noyau / distribution
  • Configs dans /etc et journaux dans /var/log
  • Travail en utilisateur, pas en root par défaut
  • Droits r/w/x et propriétaires u/g/o
  • Tout est fichier (y compris /dev, /proc)

 

Partie 2 — 30 commandes Linux les plus employées (Ubuntu)

Conseil sécurité : travaillez dans votre dossier personnel (ex. ~/atelier-linux) et évitez sudo pour ces exercices.

1) pwd

Rôle : afficher le chemin du répertoire courant.

Options de base : (aucune courante).

# Exemple 1
pwd
# Exemple 2
cd ~ && pwd

2) ls

Rôle : lister fichiers et dossiers.

Options : -l (détails), -a (cachés), -h (tailles lisibles).

# Exemple 1
ls -l
# Exemple 2
ls -alh

3) cd

Rôle : changer de répertoire.

Options utiles : cd .. (parent), cd - (retour), cd ~ (HOME).

# Exemple 1
cd ~/Documents
# Exemple 2
cd .. && cd -

4) mkdir

Rôle : créer des dossiers.

Option : -p (crée l’arborescence complète).

# Exemple 1
mkdir demo
# Exemple 2
mkdir -p projets/web/api

5) rmdir

Rôle : supprimer un dossier vide.

Options : (aucune courante).

# Exemple 1
mkdir vide && rmdir vide
# Exemple 2
rmdir mon_dossier_vide

6) touch

Rôle : créer un fichier vide ou mettre à jour sa date.

Options : (simples par défaut).

# Exemple 1
touch notes.txt
# Exemple 2
touch logs/app.log

7) cp

Rôle : copier fichiers/dossiers.

Options : -i (confirmer), -r (récursif).

# Exemple 1
cp notes.txt notes.copie.txt
# Exemple 2
cp -r projets projets_backup

8) mv

Rôle : déplacer/renommer.

Option : -i (confirmer).

# Exemple 1
mv notes.copie.txt notes.final.txt
# Exemple 2
mv projets_backup archives/

9) rm

Rôle : supprimer fichiers/dossiers.

Options : -i (interactif), -r (récursif). ⚠️ Prudent !

# Exemple 1 (prudent)
rm -i notes.final.txt
# Exemple 2 (récursif, à éviter si doute)
rm -r archives_vieilles

10) echo

Rôle : afficher une chaîne (souvent combiné aux redirections >, >>).

Options : (simples par défaut).

# Exemple 1
echo "Bonjour SLAM"
# Exemple 2 (écrire dans un fichier)
echo "Ligne 1" > notes.txt

11) nano

Rôle : éditeur texte simple en terminal.

Astuce : enregistrer Ctrl+O, quitter Ctrl+X.

# Exemple 1
nano notes.txt
# Exemple 2
nano scripts/hello.sh

12) cat

Rôle : afficher/concaténer des fichiers.

Options : (simples par défaut).

# Exemple 1
cat notes.txt
# Exemple 2
cat a.txt b.txt > c.txt

13) less

Rôle : lire un fichier page par page.

Astuce : quitter q, rechercher /mot.

# Exemple 1
less notes.txt
# Exemple 2
less /var/log/syslog

14) head

Rôle : afficher le début d’un fichier.

Option : -n N (N lignes).

# Exemple 1
head notes.txt
# Exemple 2
head -n 5 notes.txt

15) tail

Rôle : afficher la fin d’un fichier.

Options : -n N (N lignes), -f (suivre en temps réel).

# Exemple 1
tail -n 3 notes.txt
# Exemple 2
tail -f /var/log/syslog

16) wc

Rôle : compter lignes/mots/octets.

Options : -l (lignes), -w (mots), -c (octets).

# Exemple 1
wc -l notes.txt
# Exemple 2
wc -w notes.txt

17) grep

Rôle : chercher du texte dans des fichiers.

Options : -n (numéros), -i (insensible casse), -R (récursif).

# Exemple 1
grep -n "Erreur" notes.txt
# Exemple 2
grep -Ri "todo" .

18) find

Rôle : rechercher des fichiers/dossiers par critères.

Options : -type f|d, -name, -maxdepth.

# Exemple 1
find . -type f -name "*.txt"
# Exemple 2
find . -maxdepth 2 -type d -name "api"

19) sort

Rôle : trier des lignes.

Options : -r (inverse), -n (numérique).

# Exemple 1
sort liste.txt
# Exemple 2
sort -nr scores.txt

20) uniq

Rôle : supprimer doublons consécutifs (souvent après sort).

Options : -c (compter), -d (afficher doublons).

# Exemple 1
sort noms.txt | uniq
# Exemple 2
sort noms.txt | uniq -c

21) cut

Rôle : extraire des colonnes.

Options : -d (séparateur), -f (champs).

# Exemple 1
cut -d',' -f1 users.csv
# Exemple 2
cut -d';' -f2-3 data.csv

22) chmod

Rôle : modifier les permissions (r, w, x) pour u/g/o.

Formes : symbolique (u+x) ou octale (644, 755).

# Exemple 1
chmod u+x scripts/hello.sh
# Exemple 2
chmod 644 notes.txt

23) df

Rôle : afficher l’espace disque des systèmes de fichiers.

Option : -h (lisible).

# Exemple 1
df -h
# Exemple 2
df -h /home

24) du

Rôle : taille des fichiers/dossiers.

Options : -s (synthèse), -h (lisible).

# Exemple 1
du -sh .
# Exemple 2
du -sh ~/Documents/*

25) tar

Rôle : archiver (et compresser avec gzip).

Options courantes : czf (créer+gzip+fichier), tzf (lister), xzf (extraire).

# Exemple 1 (créer)
tar czf sauvegarde.tgz projets notes
# Exemple 2 (extraire)
tar xzf sauvegarde.tgz -C restore/

26) ps

Rôle : lister processus.

Options : aux (tous), -ef (format BSD/System V).

# Exemple 1
ps aux | head
# Exemple 2
ps aux | grep bash

27) top

Rôle : observer en temps réel les processus.

Astuce : quitter q, trier avec P (CPU) / M (RAM).

# Exemple 1
top
# Exemple 2
top  # puis appuyez sur M pour trier par mémoire

28) kill

Rôle : envoyer un signal à un processus (arrêt).

Options : par défaut TERM (15), forcé -9 (KILL).

# Exemple 1 (terminer proprement)
kill 12345
# Exemple 2 (forcer si bloqué)
kill -9 12345

29) ping

Rôle : tester la connectivité réseau.

Option : -c N (nombre d’échos).

# Exemple 1
ping -c 2 1.1.1.1
# Exemple 2
ping -c 3 example.org

30) man

Rôle : afficher le manuel d’une commande.

Astuce : rechercher /mot, quitter q.

# Exemple 1
man grep
# Exemple 2
man find

Mise en pratique guidée (TP)

Objectif : enchaîner les commandes dans un scénario simple. Regarder à chaque fois le résultat. Soyez curieux ! Changez les paramètres pour voir.

TP Linux – Mise en pratique (débutant)

Objectifs pédagogiques

  • Savoir se repérer dans l’arborescence et manipuler des fichiers simples.
  • Rechercher et filtrer des informations en ligne de commande.
  • Comprendre les permissions de base et exécuter un script simple.
  • Mesurer l’espace disque et créer/extraire une archive.
  • Observer des processus et tester la connectivité réseau.

Pré-requis

  • Terminal disponible (GNOME Terminal) ; clavier : quitter less/man avec q, quitter nano avec Ctrl+X.
  • Connaître le dossier personnel /home/<utilisateur>.

Étape 0 — Mise en place

cd ~
mkdir -p ~/atelier-linux && cd ~/atelier-linux
pwd      # attendu : /home/<utilisateur>/atelier-linux
whoami   # votre identifiant
clear

Étape 1 — Arborescence & fichiers

Commandes : ls, cd, mkdir, rmdir, touch, echo, nano, cat, wc, head, tail, less

# créer structure
mkdir -p projets/web/{api,frontend} notes logs
ls -alh

# créer des fichiers
touch notes/todo.txt projets/web/api/main.py projets/web/frontend/index.html
echo "Faire le TP Linux" > notes/todo.txt
echo "Relire le cours Linux" >> notes/todo.txt
cat notes/todo.txt

# éditer (ajoutez une 3e ligne, puis Ctrl+O, Entrée, Ctrl+X)
nano notes/todo.txt

# compter/afficher
wc -l notes/todo.txt       # nombre de lignes
head -n 1 notes/todo.txt   # première ligne
tail -n 1 notes/todo.txt   # dernière ligne
less notes/todo.txt        # lecture confortable, quitter : q

# dossier vide : créer puis supprimer
mkdir vide && rmdir vide

Point de contrôle 1 (à montrer)

  • Sortie de ls -alh à la racine de ~/atelier-linux.
  • Contenu de notes/todo.txt (3 lignes minimum).

Étape 2 — Copier, renommer, supprimer

Commandes : cp, mv, rm -i

cp notes/todo.txt notes/todo.copie.txt
mv notes/todo.copie.txt notes/todo.final.txt
rm -i notes/todo.final.txt   # confirmez (y/n)

Point de contrôle 2

  • La copie todo.final.txt a été supprimée, todo.txt existe toujours.

Étape 3 — Rechercher & traiter du texte

Commandes : grep, find, sort, uniq, cut

# jeu de données simple
echo -e "alice,admin\nbob,user\ncarol,user\nbob,user" > users.csv

# extraire la colonne des rôles, trier et compter les occurrences
cut -d',' -f2 users.csv | sort | uniq -c

# recherche textuelle
grep -n "Relire" notes/todo.txt   # afficher la ligne contenant "Relire"

# recherches de fichiers
find . -type f -name "*.py"
find . -maxdepth 2 -type d -name "api"

Point de contrôle 3

  • Sortie du pipeline cut | sort | uniq -c (compte par rôle attendu).
  • Liste des .py trouvés.

Étape 4 — Permissions & script

Commandes : ls -l, chmod

# inspecter les droits d'un fichier
ls -l notes/todo.txt     # ex : -rw-r--r--

# créer un petit script
mkdir -p scripts
echo -e "#!/usr/bin/env bash\necho Bonjour $USER" > scripts/hello.sh

# le rendre exécutable et l'exécuter
chmod u+x scripts/hello.sh
./scripts/hello.sh       # attendu : "Bonjour <utilisateur>"

Point de contrôle 4

  • Permissions de scripts/hello.sh : le bit x pour l’utilisateur est présent (-rwx------ ou similaire).
  • Exécution du script affiche bien le message.

Étape 5 — Disque & archives

Commandes : df, du, tar

# espace disque global et taille du dossier d'atelier
df -h | head
du -sh .

# créer une archive gzip de "projets" et "notes"
tar czf sauvegarde.tgz projets notes

# vérifier le contenu de l'archive
tar tzf sauvegarde.tgz | head

# extraire dans un dossier restore/
mkdir -p restore
tar xzf sauvegarde.tgz -C restore

Point de contrôle 5

  • Fichier sauvegarde.tgz présent et listable avec tar tzf.
  • Dossier restore/ rempli après extraction.

Étape 6 — Processus & réseau

Commandes : ps, top (lecture), kill, ping

# lancer un processus en arrière-plan
sleep 120 &

# retrouver son PID et le stopper proprement
ps aux | grep sleep
# Remplacez <PID> ci-dessous par le numéro affiché (colonne PID)
kill <PID>

# observer (lecture) puis quitter
top   # quitter : q

# tester la connectivité
ping -c 2 example.org

Point de contrôle 6

  • Le processus sleep a bien été arrêté (ps ne l’affiche plus).
  • Ping renvoie 2 réponses sans perte.

Étape 7 — Aide & historique

Commandes : man, history

man grep            # consulter l'aide (rechercher /mot, quitter q)
history | tail -n 20

Livrables (à rendre)

  • Capture de pwd + ls -alh à la racine de ~/atelier-linux.
  • Contenu de notes/todo.txt (3 lignes min).
  • Sortie du pipeline cut | sort | uniq -c sur users.csv.
  • Exécution de ./scripts/hello.sh (copie de la sortie).
  • Listing de l’archive (tar tzf sauvegarde.tgz | head).
  • Les 15–20 dernières lignes de history.

.

 

Ce contenu est réservé aux membres du site. Si vous êtes un utilisateur existant, veuillez vous connecter. Les nouveaux utilisateurs peuvent s'inscrire ci-dessous.

Connexion pour les utilisateurs enregistrés
   
Nouvel utilisateur ?
*Champ requis
Powered by WP-Members