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 :

  1. récupérer le code ;
  2. installer les dépendances ;
  3. exécuter les tests ;
  4. construire l’application ;
  5. créer une image Docker ;
  6. déployer l’application ;
  7. 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èreLinux ServerWindows Server
InterfaceSouvent orientée terminalInterface graphique disponible
AdministrationShell, SSH, outils systèmeGUI, PowerShell et outils Microsoft
Open sourceÉcosystème largement open sourceÉcosystème principalement propriétaire
AutomatisationShell, Python, Ansible, etc.PowerShell, outils Microsoft
WebTrès utiliséÉgalement utilisé
DevOpsTrès présentÉgalement compatible
CloudTrès largement utiliséTrès largement utilisé
Active DirectoryNon natifIntégré à l’écosystème Windows
DockerTrès utiliséDisponible également
Écosystème MicrosoftLimité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.

Newsletter

Recevez nos prochains articles.

Un email à chaque nouvel article. Nous collectons uniquement votre adresse email (voir notre politique de confidentialité).