Administration Système
Linux Server : commandes essentielles, administration système, DevOps et Linux vs Windows Server
Par divinioPublié le 13 min de lecture

Linux occupe une place importante dans les environnements serveurs, le cloud, le développement web et le DevOps.
Lorsqu’on commence à travailler avec un serveur, il ne suffit pas de savoir installer une application. Il faut également comprendre comment naviguer dans le système, gérer les fichiers, surveiller les ressources, administrer les services et diagnostiquer les problèmes.
Linux est particulièrement présent dans ces environnements, mais Windows Server reste également très utilisé dans de nombreuses infrastructures professionnelles.
Dans cet article, nous allons découvrir les bases de Linux Server, plusieurs commandes essentielles, les principes de l’administration système, son rôle dans le DevOps et les principales différences entre Linux Server et Windows Server.
🐧 Qu’est-ce qu’un serveur Linux ?
Un serveur Linux est un ordinateur ou une machine virtuelle utilisant Linux comme système d’exploitation et destiné à fournir différents services à des utilisateurs, applications ou autres systèmes.
Un serveur Linux peut notamment héberger :
– 🌐 des sites web ;
– 🔌 des API ;
– 🗄️ des bases de données ;
– 📦 des applications ;
– 🐳 des conteneurs Docker ;
– 📡 des services réseau ;
– ☁️ des infrastructures cloud ;
– ⚙️ des outils DevOps.
Parmi les distributions Linux couramment utilisées sur les serveurs, on retrouve notamment Ubuntu Server, Debian, Rocky Linux, AlmaLinux et Fedora Server.
Le choix de la distribution dépend du projet, des outils utilisés et des besoins de l’organisation.
💻 Les commandes Linux essentielles
L’une des particularités de Linux Server est l’importance du terminal.
Contrairement à un environnement de bureau où l’on peut effectuer de nombreuses opérations avec une interface graphique, l’administration d’un serveur Linux se fait très souvent en ligne de commande.
Voici quelques commandes fondamentales.
📁 ls : afficher le contenu d’un répertoire
La commande `ls` permet de voir les fichiers et dossiers présents dans un répertoire.
bash
ls
Pour afficher davantage d’informations :
ls -la
Cette commande permet notamment d’afficher les fichiers cachés ainsi que certaines informations concernant les permissions et les propriétaires.
📍 pwd : connaître le répertoire courant
La commande pwd permet de connaître l’emplacement actuel dans l’arborescence du système.
pwd
Elle est particulièrement utile lorsque l’on navigue entre plusieurs répertoires.
📂 cd : se déplacer dans les répertoires
La commande cd permet de changer de répertoire.
cd /var/www
Pour revenir au répertoire parent :
cd ..
Pour revenir au répertoire personnel :
cd ~
📁 mkdir : créer un répertoire
Pour créer un nouveau dossier :
mkdir projet
Il est également possible de créer plusieurs niveaux de répertoires :
mkdir -p projet/src/components
📄 touch : créer un fichier
La commande touch permet notamment de créer un fichier vide.
touch fichier.txt
📋 cp : copier un fichier ou un répertoire
Pour copier un fichier :
cp fichier.txt sauvegarde.txt
Pour copier un répertoire et son contenu :
cp -r projet sauvegarde
🚚 mv : déplacer ou renommer
La commande mv permet de déplacer un fichier ou de le renommer.
Renommer un fichier :
mv ancien.txt nouveau.txt
Déplacer un fichier :
mv fichier.txt /var/www/
🗑️ rm : supprimer
Pour supprimer un fichier :
rm fichier.txt
Pour supprimer un répertoire et son contenu :
rm -r projet
⚠️ Cette commande doit être utilisée avec beaucoup de prudence sur un serveur de production.
📖 cat : afficher le contenu d’un fichier
La commande cat permet d’afficher rapidement le contenu d’un fichier texte.
cat fichier.txt
Elle peut notamment être pratique pour consulter certains fichiers de configuration ou de logs.
🔎 grep : rechercher du texte
grep permet de rechercher une chaîne de caractères.
Par exemple :
grep "error" app.log
On peut ainsi rechercher rapidement une erreur dans un fichier de journalisation.
🔐 sudo : exécuter une commande avec des privilèges élevés
Certaines opérations nécessitent des privilèges administrateur.
sudo apt update
L’utilisation de sudo doit rester contrôlée afin d’éviter d’effectuer involontairement des opérations sensibles.
📦 Gestion des logiciels avec Linux
Les distributions Linux disposent de gestionnaires de paquets permettant d’installer, mettre à jour et supprimer des logiciels.
Sur Debian et Ubuntu, on utilise notamment apt.
Mettre à jour la liste des paquets :
sudo apt update
Installer les mises à jour :
sudo apt upgrade
Installer un logiciel :
sudo apt install nginx
Supprimer un logiciel :
sudo apt remove nginx
Les commandes peuvent varier selon la distribution utilisée.
👤 Utilisateurs et groupes
Un serveur Linux peut être utilisé par plusieurs utilisateurs.
La gestion des utilisateurs est donc une partie importante de l’administration système.
Créer un utilisateur :
sudo adduser utilisateur
Changer le mot de passe :
sudo passwd utilisateur
Afficher les informations concernant un utilisateur :
id utilisateur
Les groupes permettent également d’organiser les droits d’accès aux ressources du système.
🔒 Permissions Linux
Linux possède un système de permissions permettant de contrôler l’accès aux fichiers et répertoires.
Les principales permissions sont :
r→ lecture ;w→ écriture ;x→ exécution.
Elles sont généralement appliquées à trois catégories :
- le propriétaire ;
- le groupe ;
- les autres utilisateurs.
Par exemple :
-rwxr-xr--
La commande chmod permet de modifier les permissions.
Exemple :
chmod +x script.sh
La commande chown permet de modifier le propriétaire d’un fichier :
sudo chown utilisateur:utilisateur fichier.txt
Une bonne gestion des permissions est essentielle pour limiter les accès inutiles.
⚙️ Processus et services Linux
Un serveur exécute de nombreux processus et services.
Il est important de savoir les identifier et les surveiller.
🔍 ps
La commande ps permet d’afficher les processus en cours :
ps aux
📊 top
La commande top permet d’observer les processus et l’utilisation des ressources :
top
Une alternative populaire est :
htop
🔄 Gestion des services avec systemd
De nombreuses distributions Linux modernes utilisent systemd pour gérer les services.
Vérifier l’état d’un service :
sudo systemctl status nginx
Démarrer un service :
sudo systemctl start nginx
Arrêter un service :
sudo systemctl stop nginx
Redémarrer un service :
sudo systemctl restart nginx
Activer un service au démarrage :
sudo systemctl enable nginx
Désactiver son démarrage automatique :
sudo systemctl disable nginx
Cette gestion des services est particulièrement importante lorsqu’on administre un serveur web, une API ou différents services d’infrastructure.
📊 Surveiller les ressources du serveur
Un administrateur système doit régulièrement surveiller les ressources disponibles.
💾 Espace disque
Pour connaître l’espace disponible :
df -h
Pour connaître l’espace utilisé par les fichiers et répertoires :
du -sh *
🧠 Mémoire RAM
Pour afficher l’utilisation de la mémoire :
free -h
⚡ Processeur et processus
Pour observer l’activité du système :
top
ou :
htop
Ces outils permettent notamment d’identifier une consommation inhabituelle de CPU ou de mémoire.
🌐 Réseau et diagnostic
L’administration d’un serveur nécessite également de comprendre les bases du réseau.
Quelques commandes utiles :
Afficher les interfaces et adresses réseau :
ip addr
Afficher les routes :
ip route
Tester la connectivité :
ping 8.8.8.8
Tester la résolution DNS :
nslookup example.com
ou :
dig example.com
Vérifier les ports et services en écoute :
ss -tulpn
Ces commandes peuvent être utiles lorsqu’une application n’est plus accessible ou lorsqu’un service réseau rencontre un problème.
📜 Les logs : une source essentielle d’informations
Lorsqu’un problème apparaît sur un serveur, les journaux système et applicatifs peuvent fournir des informations importantes.
Les logs permettent notamment de rechercher :
- des erreurs ;
- des connexions ;
- des problèmes de services ;
- des événements système ;
- des tentatives d’accès ;
- des problèmes applicatifs.
Avec journalctl, on peut consulter les journaux gérés par systemd.
Par exemple :
sudo journalctl -u nginx
Pour suivre les nouveaux événements en temps réel :
sudo journalctl -u nginx -f
La capacité à lire et interpréter les logs est une compétence importante pour un administrateur système.
🔑 Connexion à un serveur avec SSH
Un serveur Linux est souvent administré à distance.
SSH, pour Secure Shell, permet d’établir une connexion sécurisée avec un serveur distant.
Exemple :
ssh utilisateur@adresse-ip
Une fois connecté, l’administrateur peut notamment :
- gérer les fichiers ;
- installer des logiciels ;
- démarrer ou arrêter des services ;
- consulter les logs ;
- effectuer des opérations de maintenance ;
- déployer des applications.
La sécurisation de l’accès SSH est donc un élément important de l’administration d’un serveur.
🛡️ Administration et sécurité d’un serveur Linux
Administrer un serveur ne consiste pas uniquement à faire fonctionner les applications.
Il faut également prendre en compte la sécurité.
Quelques bonnes pratiques :
- utiliser des comptes individuels ;
- limiter les privilèges administrateur ;
- maintenir le système à jour ;
- contrôler les ports ouverts ;
- sécuriser SSH ;
- utiliser un pare-feu ;
- surveiller les logs ;
- effectuer des sauvegardes ;
- protéger les secrets et clés privées ;
- limiter les services inutiles.
Une configuration sécurisée doit également être adaptée au contexte et aux services réellement utilisés.
⚙️ Linux et l’administration système
La maîtrise de Linux constitue une base importante pour l’administration système.
Un administrateur doit notamment comprendre :
- les utilisateurs et groupes ;
- les permissions ;
- les processus ;
- les services ;
- le stockage ;
- les réseaux ;
- les logs ;
- les sauvegardes ;
- la sécurité ;
- les performances ;
- l’automatisation.
Les commandes Linux ne sont donc qu’une partie du métier.
Le plus important est de comprendre ce que fait le système et pourquoi une opération est nécessaire.
🚀 Linux et le DevOps
Linux est très présent dans les environnements DevOps.
Le DevOps cherche notamment à améliorer la collaboration entre le développement et les opérations, tout en automatisant les différentes étapes du cycle de vie d’une application.
Un workflow peut ressembler à ceci :
Développement
↓
Tests
↓
Build
↓
CI/CD
↓
Déploiement
↓
Production
↓
Monitoring
Linux fournit un environnement largement utilisé pour mettre en œuvre ce type de processus.
🐳 Linux et Docker
Docker est fortement utilisé dans les environnements Linux.
Avec Docker, une application peut être exécutée dans un conteneur contenant son environnement et ses dépendances.
Une architecture peut par exemple être composée de :
Frontend
↓
API
↓
PostgreSQL
API
↓
Redis
Chaque service peut être exécuté dans son propre conteneur.
Docker permet ainsi de standardiser certains environnements et de faciliter les déploiements.
🔄 Linux et CI/CD
Les outils CI/CD permettent d’automatiser différentes étapes du développement et du déploiement.
Un pipeline peut notamment :
- récupérer le code ;
- installer les dépendances ;
- exécuter les tests ;
- construire l’application ;
- créer une image Docker ;
- déployer l’application ;
- effectuer certaines vérifications.
Linux est fréquemment utilisé comme environnement d’exécution pour ces pipelines.
☁️ Linux et le Cloud
Linux est également très présent dans les infrastructures cloud.
Une infrastructure peut utiliser des machines virtuelles Linux pour exécuter :
- des applications web ;
- des API ;
- des bases de données ;
- des services Docker ;
- des outils de monitoring ;
- des systèmes d’automatisation.
La connaissance de Linux est donc particulièrement utile lorsqu’on souhaite évoluer vers le Cloud ou le DevOps.
🪟 Linux Server vs Windows Server
Linux Server et Windows Server sont deux systèmes d’exploitation utilisés dans les infrastructures professionnelles.
Ils peuvent tous les deux héberger des applications, gérer des services réseau et fournir des ressources à d’autres systèmes.
Cependant, leur philosophie et leurs outils diffèrent.
🐧 Linux Server
Linux est particulièrement connu pour :
- son environnement en ligne de commande ;
- sa flexibilité ;
- son écosystème open source ;
- ses possibilités d’automatisation ;
- son utilisation importante dans les serveurs web ;
- son intégration avec de nombreux outils DevOps ;
- son utilisation dans les environnements cloud.
Les administrateurs Linux travaillent fréquemment avec le terminal, SSH, des scripts et des outils d’automatisation.
🪟 Windows Server
Windows Server fait partie de l’écosystème Microsoft.
Il est notamment utilisé dans des environnements reposant sur des technologies Microsoft telles que :
- Active Directory ;
- PowerShell ;
- Microsoft SQL Server ;
- les services Microsoft ;
- les applications conçues pour l’environnement Windows.
Windows Server propose également des outils graphiques d’administration, tout en permettant une automatisation importante grâce à PowerShell.
⚖️ Linux vs Windows Server : quelles différences ?
| Critère | Linux Server | Windows Server |
|---|---|---|
| Interface | Souvent orientée terminal | Interface graphique disponible |
| Administration | Shell, SSH, outils système | GUI, PowerShell et outils Microsoft |
| Open source | Écosystème largement open source | Écosystème principalement propriétaire |
| Automatisation | Shell, Python, Ansible, etc. | PowerShell, outils Microsoft |
| Web | Très utilisé | Également utilisé |
| DevOps | Très présent | Également compatible |
| Cloud | Très largement utilisé | Très largement utilisé |
| Active Directory | Non natif | Intégré à l’écosystème Windows |
| Docker | Très utilisé | Disponible également |
| Écosystème Microsoft | Limité | Très intégré |
Le choix entre Linux Server et Windows Server dépend donc du contexte.
Il faut notamment prendre en compte :
- les applications à héberger ;
- les technologies déjà utilisées ;
- les compétences de l’équipe ;
- les besoins en automatisation ;
- les contraintes de l’organisation ;
- les services Microsoft nécessaires ;
- les exigences de l’infrastructure.
Il ne s’agit pas simplement de déterminer quel système est « meilleur », mais de choisir celui qui correspond aux besoins du projet.
🏢 Dans quels cas utiliser Linux Server ?
Linux peut être particulièrement adapté à des environnements tels que :
- les serveurs web ;
- les API ;
- les applications backend ;
- les environnements Docker ;
- les infrastructures cloud ;
- les pipelines CI/CD ;
- les systèmes nécessitant une forte automatisation ;
- les infrastructures basées sur des outils open source.
Par exemple, une application composée de Next.js, FastAPI, PostgreSQL et Redis peut être déployée dans une infrastructure Linux avec Docker.
🏢 Dans quels cas utiliser Windows Server ?
Windows Server peut être particulièrement pertinent dans les organisations qui utilisent déjà fortement l’écosystème Microsoft.
Par exemple, une entreprise utilisant Active Directory, PowerShell, Microsoft SQL Server et différentes applications Windows peut avoir intérêt à conserver une infrastructure intégrée à cet environnement.
Le choix doit donc être effectué en fonction des besoins techniques et organisationnels.
🧠 Les compétences à développer
Maîtriser quelques commandes Linux est une bonne première étape.
Mais pour progresser en administration système et en DevOps, il est utile de développer progressivement plusieurs compétences :
Niveau débutant
- navigation dans le terminal ;
- gestion des fichiers ;
- utilisateurs et groupes ;
- permissions ;
- installation de logiciels ;
- commandes réseau de base.
Niveau intermédiaire
- gestion des services ;
- logs ;
- SSH ;
- configuration réseau ;
- stockage ;
- sauvegardes ;
- sécurité ;
- monitoring ;
- scripts Bash.
Niveau avancé
- Docker ;
- CI/CD ;
- Infrastructure as Code ;
- Ansible ;
- Terraform ;
- Kubernetes ;
- Cloud ;
- monitoring avancé ;
- automatisation de l’infrastructure.
📋 Les commandes à retenir
Voici une petite liste de commandes utiles pour commencer :
ls # Lister les fichiers
pwd # Afficher le répertoire courant
cd # Changer de répertoire
mkdir # Créer un répertoire
touch # Créer un fichier
cp # Copier
mv # Déplacer ou renommer
rm # Supprimer
cat # Afficher le contenu d'un fichier
grep # Rechercher du texte
sudo # Exécuter avec des privilèges élevés
apt # Gérer les paquets sur Debian/Ubuntu
chmod # Modifier les permissions
chown # Modifier le propriétaire
ps # Afficher les processus
top # Surveiller les processus
htop # Surveiller les ressources
systemctl # Gérer les services
journalctl # Consulter les journaux
df -h # Vérifier l'espace disque
du -sh # Vérifier l'espace utilisé
free -h # Vérifier la mémoire
ip addr # Afficher les interfaces réseau
ip route # Afficher les routes
ping # Tester la connectivité
ss # Examiner les ports et connexions
ssh # Se connecter à un serveur distant
🎯 Conclusion
Linux Server constitue une base importante pour comprendre l’administration système, les infrastructures cloud et le DevOps.
Les commandes comme ls, cd, grep, systemctl, df, free, ip ou ssh permettent de commencer à interagir directement avec le système.
Mais la maîtrise d’un serveur ne se résume pas à mémoriser des commandes.
Il faut également comprendre :
- 🔐 la sécurité ;
- 👤 les utilisateurs et permissions ;
- ⚙️ les services ;
- 📊 les ressources ;
- 🌐 les réseaux ;
- 📜 les logs ;
- 💾 les sauvegardes ;
- 🐳 les conteneurs ;
- 🔄 le CI/CD ;
- ☁️ le Cloud ;
- 🚀 l’automatisation.
Linux et Windows Server répondent tous les deux à des besoins différents. Le choix dépend principalement de l’environnement technique, des applications utilisées et des objectifs de l’organisation.
Pour un professionnel souhaitant évoluer vers l’administration système, le Cloud ou le DevOps, comprendre Linux constitue une compétence particulièrement utile.


