Ubuntu — Linux pour Débutants et Professionnels

Status: Basic Tags: Ubuntu Linux SystemAdmin DevOps Created: 2026-08-09 Related: Docker, Cloud Computing, Shell Scripting

Overview

Ubuntu est une distribution Linux basée sur Debian, développée par Canonical. C’est l’une des distributions les plus populaires pour les serveurs, le cloud, et les postes de travail.

Pourquoi Ubuntu ?

  • Gratuit et Open Source: Licence GNU GPL
  • Support à long terme (LTS): 5 ans de support gratuit
  • Grande communauté: Documentation abondante, forums actifs
  • Cloud-native: Dominant dans le cloud (AWS, Azure, GCP)
  • IA/ML: Support natif pour GPU, CUDA, frameworks ML

Versions

Versions LTS (Long Term Support)

VersionDate de sortieSupport jusqu’àNotes
20.04 LTSAvril 2020Avril 2025Très stable, largement utilisé
22.04 LTSAvril 2022Avril 2027Stable, recommandé pour production
24.04 LTSAvril 2024Avril 2029Dernière LTS, Noble Numbat
26.04 LTSAvril 2026Avril 2031À venir

Versions Standard (9 mois de support)

  • 23.10, 24.10, 25.04, etc.

Installation

Prérequis

  • CPU: x86_64, ARM64 (AWS Graviton, Raspberry Pi)
  • RAM: Minimum 4GB (8GB recommandé)
  • Disque: 25GB minimum (100GB recommandé)
  • ISO: Télécharger depuis ubuntu.com/download

Méthodes d’Installation

  1. GUI Installer: Pour postes de travail (GNOME, Kubuntu, Xubuntu)
  2. Server Installer: Pour serveurs (texte uniquement)
  3. Netboot: Installation réseau
  4. WSL: Windows Subsystem for Linux
  5. Cloud Images: AWS AMI, Azure VM, GCP Instance

Post-Installation

# Mettre à jour le système
sudo apt update && sudo apt upgrade -y
 
# Installer les outils de base
sudo apt install -y build-essential curl wget git
 
# Créer un utilisateur avec sudo
sudo adduser monutilisateur
sudo usermod -aG sudo monutilisateur
 
# Configurer le pare-feu
sudo ufw allow OpenSSH
sudo ufw enable
 
# Activer le firewall
sudo ufw status

Commandes Essentielles

Système et Maintenance

# Mettre à jour le système
sudo apt update              # Mettre à jour la liste des paquets
sudo apt upgrade -y          # Mettre à jour les paquets installés
sudo apt autoremove -y       # Supprimer les paquets orphelins
 
# Redémarrer proprement
sudo reboot
sudo shutdown -h now
 
# Vérifier l'état du système
systemctl status ssh         # Vérifier un service
journalctl -xe               # Voir les logs
df -h                        # Espace disque
free -m                      # Mémoire utilisée

Gestion des Paquets

# Installer un paquet
sudo apt install vim
 
# Désinstaller un paquet
sudo apt remove vim
 
# Chercher un paquet
apt search nginx
 
# Liste des paquets installés
dpkg --list | grep nginx
 
# Connaître l'origine d'un fichier
dpkg -S /usr/bin/python3

Utilisateurs et Permissions

# Créer un utilisateur
sudo adduser nom_utilisateur
 
# Ajouter aux groupes
sudo usermod -aG sudo nom_utilisateur
sudo usermod -aG docker nom_utilisateur
 
# Changer les permissions
chmod 755 fichier.sh
chmod 644 fichier.conf
chown utilisateur:groupe fichier
 
# Exécuter en tant qu'autre utilisateur
sudo -u utilisateur commande

Système de Fichiers

Structure Standard

/                   # Racine
├── bin/            # Commandes essentielles
├── etc/            # Configuration système
├── home/           # Dossiers utilisateurs
├── var/            # Fichiers variables (logs, cache)
├── tmp/            # Fichiers temporaires
├── dev/            # Périphériques
├── proc/           # Informations système (fichier virtuel)
├── sys/            # Système et matériel (fichier virtuel)
└── usr/            # Programmes utilisateurs

Montage de Disques

# Voir les disques
lsblk
 
# Monter un disque
sudo mount /dev/sdb1 /mnt/data
 
# Monter automatiquement au démarrage
sudo blkid          # Obtenir UUID
# Ajouter dans /etc/fstab
UUID="votre-uuid" /mnt/data ext4 defaults 0 2

Réseau et Sécurité

Configuration Réseau

# Voir les interfaces
ip addr
 
# Configuration réseau (Netplan)
sudo nano /etc/netplan/01-netcfg.yaml
sudo netplan apply
 
# Test de connectivité
ping google.com
nslookup google.com
curl -I https://example.com

Pare-feu UFW

# Activer UFW
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
 
# Voir les règles
sudo ufw status verbose

SSH

# Configurer SSH
sudo nano /etc/ssh/sshd_config
 
# Activer SSH
sudo systemctl enable ssh
sudo systemctl start ssh
 
# Connexion SSH
ssh utilisateur@ip_serveur
 
# Clés SSH
ssh-keygen -t ed25519
ssh-copy-id utilisateur@ip_serveur

Serveurs Web

Apache

sudo apt install apache2
sudo systemctl enable apache2
sudo systemctl start apache2
 
# Hôtes virtuels
sudo nano /etc/apache2/sites-available/monsite.conf
sudo a2ensite monsite
sudo systemctl reload apache2

Nginx

sudo apt install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
 
# Configuration
sudo nano /etc/nginx/sites-available/monsite
sudo ln -s /etc/nginx/sites-available/monsite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

HTTPS avec Let’s Encrypt

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d monsite.com
# Configurer le renouvellement automatique
sudo systemctl enable certbot.timer

Docker — Conteneurisation

Installation

# Installer Docker
curl -fsSL https://get.docker.com | sh
 
# Ajouter à docker group
sudo usermod -aG docker $USER
newgrp docker
 
# Vérifier
docker --version
docker run hello-world

Commandes Docker

# Images
docker images
docker pull nginx:latest
docker rmi nginx:latest
 
# Conteneurs
docker run -d --name mon-site nginx
docker ps
docker logs mon-site
docker stop mon-site
docker rm mon-site
 
# Dockerfile
FROM python:3.12
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
 
# Construire et lancer
docker build -t mon-app .
docker run -p 8080:8080 mon-app

Python et IA/ML

Environnement Python

# Python est pré-installé sur Ubuntu
python3 --version
 
# Créer un environnement virtuel
python3 -m venv monenv
source monenv/bin/activate
 
# Installer des packages
pip install numpy pandas scikit-learn
 
# Frameworks IA
pip install torch tensorflow pytorch-transformers

GPU et CUDA

# Installer les drivers NVIDIA
sudo ubuntu-drivers autoinstall
 
# Installer CUDA Toolkit
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.85.12_linux.run
sudo sh cuda_12.0.0_525.85.12_linux.run
 
# Vérifier
nvidia-smi
nvcc --version

Serveur Web pour API

# Installer les dépendances
sudo apt install python3-pip python3-dev
 
# Créer un virtualenv
python3 -m venv /opt/myproject/myproject-venv
source /opt/myproject/myproject-venv/bin/activate
 
# Installer Gunicorn et Flask
pip install gunicorn flask
 
# Lancer le serveur
gunicorn --bind 0.0.0.0:8000 app:app

Monitoring et Diagnostic

Outils de Monitoring

# top — Monitorer les processus en temps réel
top
 
# htop — Version améliorée de top
sudo apt install htop
htop
 
# iotop — Monitorer l'I/O disque
sudo apt install iotop
 
# nmon — Monitorer système et réseau
sudo apt install nmon
 
# Glances — Monitorer tout en une commande
pip install glances
glances

Logs et Debugging

# Voir les logs du système
journalctl -u service-name
journalctl --since "2024-01-01 09:00:00"
 
# Voir les logs en temps réel
journalctl -f -u ssh
 
# Analyser les logs
grep "error" /var/log/syslog
tail -f /var/log/syslog
 
# Debug réseau
netstat -tulnp
ss -tulnp
tcpdump -i eth0

Automatisations

Cron Jobs

# Éditer le crontab
crontab -e
 
# Exécuter tous les jours à 3h
0 3 * * * /chemin/vers/script.sh
 
# Exécuter toutes les heures
0 * * * * /chemin/vers/script.sh

Systemd Services

# /etc/systemd/system/monservice.service
[Unit]
Description=Mon Service Python
After=network.target
 
[Service]
User=monuser
WorkingDirectory=/opt/myproject
ExecStart=/opt/myproject/myproject-venv/bin/python app.py
Restart=always
 
[Install]
WantedBy=multi-user.target
# Activer le service
sudo systemctl enable monservice
sudo systemctl start monservice
sudo systemctl status monservice

Bonnes Pratiques

Sécurité

  • Toujours mettre à jour: sudo apt update && sudo apt upgrade
  • Utiliser des clés SSH: Éviter les mots de passe
  • Configurer le firewall: UFW est suffisant pour la plupart
  • Limiter les accès SSH: PermitRootLogin no, PasswordAuthentication no
  • Activer fail2ban: sudo apt install fail2ban
  • Sauvegarder régulièrement: rsync, tar, ou outils cloud

Performance

  • Swap: Ajouter un fichier swap si RAM limitée
  • Clean: sudo apt clean && sudo apt autoremove
  • Monitorer: Utiliser htop, iotop, glances
  • Optimiser nginx/apache: Activer gzip, caching
  • Utiliser SSD: Pour les charges de travail intensive

Maintenance

  • Vérifier les mises à jour de sécurité: sudo unattended-upgrades
  • Vérifier l’espace disque: df -h, du -sh /var/log
  • Archiver les logs: logrotate configuré par défaut
  • Tester les sauvegardes: Vérifier régulièrement
  • Documenter les changements: Noter les modifications importantes

Ressources

Documentation Officielle

Communauté

Outils Utiles

  • Netplan — Configuration réseau
  • Snap — Gestion de paquets universels
  • Cloud-Init — Configuration initiale cloud
  • LXD — Conteneurs système