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)
| Version | Date de sortie | Support jusqu’à | Notes |
|---|---|---|---|
| 20.04 LTS | Avril 2020 | Avril 2025 | Très stable, largement utilisé |
| 22.04 LTS | Avril 2022 | Avril 2027 | Stable, recommandé pour production |
| 24.04 LTS | Avril 2024 | Avril 2029 | Dernière LTS, Noble Numbat |
| 26.04 LTS | Avril 2026 | Avril 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
- GUI Installer: Pour postes de travail (GNOME, Kubuntu, Xubuntu)
- Server Installer: Pour serveurs (texte uniquement)
- Netboot: Installation réseau
- WSL: Windows Subsystem for Linux
- 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 statusCommandes 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éeGestion 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/python3Utilisateurs 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 commandeSystè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 2Ré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.comPare-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 verboseSSH
# 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_serveurServeurs 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 apache2Nginx
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 nginxHTTPS 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.timerDocker — 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-worldCommandes 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-appPython 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-transformersGPU 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 --versionServeur 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:appMonitoring 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
glancesLogs 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 eth0Automatisations
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.shSystemd 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 monserviceBonnes 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:
logrotateconfiguré 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