Cinq commandes Linux essentielles que tout administrateur système doit maîtriser dès maintenant
Maîtrisez la ligne de commande avec ce guide essentiel couvrant les cinq outils Linux incontournables que tout administrateur système doit connaître. Nous détaillons `systemctl` pour la gestion des services, `ss` pour l'analyse réseau, `dnf`/`apt` pour le provisionnement, `awk` pour l'automatisation avancée et l'analyse de données, et `ssh` pour l'accès distant sécurisé et le tunneling. Apprenez l'utilisation pratique, les meilleures pratiques et les options avancées pour rationaliser les opérations quotidiennes, améliorer le dépannage et renforcer la sécurité du système.
Cinq commandes Linux essentielles que tout administrateur système doit maîtriser maintenant
L'administration système Linux devient plus facile lorsque vous pouvez inspecter rapidement un serveur depuis la ligne de commande. Les tableaux de bord aident, mais lorsqu'un service est en panne, un port est fermé ou un journal doit être analysé, ces commandes Linux essentielles vous offrent le chemin le plus rapide vers une réponse.
Ce guide couvre cinq commandes que vous utiliserez constamment : systemctl, ss, apt ou dnf, awk et ssh. Les exemples se concentrent sur les opérations quotidiennes, le dépannage et l'accès distant sécurisé.
1. Gestion du cycle de vie des services : systemctl
La commande systemctl est l'interface principale pour contrôler systemd, le gestionnaire de services utilisé par la plupart des distributions serveur actuelles, y compris RHEL, Fedora, Debian et Ubuntu. Vous l'utilisez pour gérer les services, les minuteries, les sockets et les cibles de démarrage.
Opérations systemctl de base
Comprendre la distinction entre l'état d'exécution (start/stop) et la configuration de démarrage (enable/disable) est crucial.
| Commande | Description | Objectif |
|---|---|---|
status |
Affiche l'état actuel détaillé, y compris les journaux récents. | Dépannage et vérifications immédiates. |
start / stop |
Modifie l'état du service maintenant. | Contrôle d'exécution. |
enable / disable |
Configure le service pour démarrer/ne pas démarrer au démarrage. | Contrôle de persistance. |
restart |
Arrête puis démarre un service en une seule opération. | Application des modifications de configuration. |
reload |
Demande au service de recharger ses fichiers de configuration sans interruption (si pris en charge). | Mises à jour de configuration sans interruption de service. |
# Vérifier l'état du serveur web
sudo systemctl status httpd.service
# S'assurer que le service SSH démarre au démarrage et le démarrer maintenant
sudo systemctl enable sshd --now
# Lister tous les services en échec
systemctl list-units --type=service --state=failed
Meilleure pratique : Utilisez toujours
systemctl status <service>après avoir démarré ou redémarré un service pour confirmer qu'il fonctionne correctement et vérifier les erreurs de configuration dans la sortie.
2. Analyse réseau et statistiques de sockets : ss
La commande ss (Socket Statistics) est le remplacement moderne et plus rapide de l'obsolète netstat. Elle est essentielle pour dépanner la connectivité réseau, identifier les ports ouverts, vérifier les règles de pare-feu et diagnostiquer les goulots d'étranglement de performance liés aux sockets.
Options ss pratiques
Les administrateurs système utilisent principalement ss pour voir quels ports sont ouverts et quelles applications écoutent.
# Afficher les sockets TCP (t) en écoute, les sockets UDP (u), les adresses numériques (n) et les informations de processus (p)
ss -tulnp
# Trouver le processus qui écoute sur le port 80
sudo ss -tulnp | grep ':80'
# Afficher toutes les connexions établies vers le serveur
ss -o state established
Utilisation avancée : Filtrage et résumé
Vous pouvez utiliser les options de filtrage pour analyser rapidement des types de connexions spécifiques, ce qui est inestimable lors d'audits de sécurité ou de réponse à des incidents.
# Afficher les connexions TCP provenant de l'adresse source 192.168.1.5
ss -n state established '( src 192.168.1.5 )'
# Résumer les statistiques de sockets par protocole
ss -s
3. Provisionnement logiciel robuste : dnf / apt
Que vous gériez des systèmes de la famille RHEL avec dnf ou des systèmes de la famille Debian avec apt, la gestion des paquets maintient les serveurs à jour et utilisables. Une bonne hygiène des paquets inclut l'actualisation des métadonnées, la révision des mises à niveau, la suppression des paquets inutilisés et la connaissance du dépôt qui a fourni un paquet.
Tâches essentielles de gestion des paquets
| Tâche | dnf (RHEL/Fedora) |
apt (Debian/Ubuntu) |
|---|---|---|
| Mettre à jour les métadonnées | sudo dnf check-update |
sudo apt update |
| Appliquer les mises à jour de sécurité/système | sudo dnf upgrade |
sudo apt upgrade |
| Installer un paquet | sudo dnf install httpd |
sudo apt install apache2 |
| Supprimer un paquet | sudo dnf remove <paquet> |
sudo apt remove <paquet> |
| Supprimer les dépendances inutilisées | sudo dnf autoremove |
sudo apt autoremove |
| Rechercher un paquet | dnf search <mot-clé> |
apt search <mot-clé> |
# Exemple : Mise à jour et nettoyage d'un serveur Ubuntu
sudo apt update && sudo apt upgrade -y
sudo apt autoremove
# Exemple : Installation d'un paquet et affichage des détails (RHEL/Fedora)
sudo dnf install vim-enhanced
dnf info vim-enhanced
Astuce : Échelonnez les mises à jour en production. Sur Debian et Ubuntu, comprenez la différence entre
apt upgradeetapt full-upgrade. Sur les systèmes de la famille RHEL, séparez les mises à jour de routine des paquets des mises à niveau majeures de la version du système d'exploitation.
4. Traitement avancé de texte et génération de rapports : awk
Alors que grep est excellent pour le filtrage simple et que sed gère l'édition de flux, le langage de programmation awk est l'outil ultime pour l'analyse de données structurées, la génération de rapports et la manipulation complexe de texte dans les scripts. Les administrateurs système utilisent fréquemment awk pour analyser les fichiers journaux, les fichiers de configuration et les sorties de commandes.
awk traite le texte ligne par ligne, en séparant chaque ligne en champs basés sur un délimiteur (par défaut, l'espace blanc). Les variables $1, $2, etc., se réfèrent à ces champs.
Syntaxe et exemples awk
# Syntaxe : awk 'PATRON { ACTION }'
# Exemple : Afficher le nom d'utilisateur (champ 1) et le shell (champ 7) depuis /etc/passwd (délimiteur est ':')
awk -F ':' '{ print "Utilisateur : " $1 " | Shell : " $7 }' /etc/passwd
# Exemple : Trouver tous les processus utilisant plus de 10% de CPU et afficher PID et utilisation CPU
ps aux | awk 'NR>1 && $3 > 10 { print "PID : " $2 " | CPU% : " $3 }'
# Exemple : Additionner les tailles des fichiers listés par 'ls -l' (champ 5)
ls -l | awk 'NR>1 { sum += $5 } END { print "Total d'octets : " sum }'
awk est utile lorsque les données doivent être extraites, formatées ou calculées avant d'être transmises à une autre commande ou stockées dans un rapport. Par exemple, vous pouvez transformer une sortie de processus bruyante en un court rapport CPU sans ouvrir un tableur.
5. Accès distant sécurisé et tunneling : ssh
Le protocole Secure Shell (ssh) est la bouée de sauvetage de l'administration Linux à distance. Les administrateurs système doivent maîtriser non seulement la connexion de base, mais aussi les configurations avancées, la gestion des clés et les techniques de tunneling pour maintenir un accès sécurisé et efficace à l'infrastructure.
Maîtrise de l'authentification par clé
L'authentification par mot de passe est sujette aux attaques par force brute. Les administrateurs système doivent s'appuyer sur les clés SSH pour une sécurité renforcée.
- Générer une paire de clés :
ssh-keygen -t ed25519 - Copier la clé publique sur le serveur distant :
ssh-copy-id utilisateur@hôte_distant
Configuration et utilisation essentielles de ssh
Le fichier de configuration SSH local (~/.ssh/config) vous permet de définir des alias et des paramètres de connexion permanents, rationalisant les opérations quotidiennes.
# Exemple d'entrée ~/.ssh/config
Hôte db-prod-serveur
Hostname 192.168.10.50
User admin_sys
Port 2222
IdentityFile ~/.ssh/id_ed25519_prod
LocalForward 8080 127.0.0.1:80
Tunneling SSH (Redirection de ports)
Le tunneling vous permet d'accéder en toute sécurité à des services derrière un pare-feu ou de proxyfier le trafic de manière sécurisée. Les deux principaux types sont :
Redirection locale (
-L) : Mappe un port local sur votre machine vers un hôte et un port accessibles depuis le serveur distant.# Accéder à la base de données fonctionnant sur le serveur distant (port 3306) via le port local 5000 ssh -L 5000:localhost:3306 utilisateur@hôte_distantRedirection distante (
-R) : Mappe un port distant vers un hôte et un port accessibles depuis votre machine locale. Utile lorsqu'un serveur distant a besoin d'un accès temporaire à un service de développement local.# L'hôte distant peut accéder à mon serveur web local (80) via son port 8080 ssh -R 8080:localhost:80 utilisateur@hôte_distant
À retenir
Si vous pouvez gérer les services avec systemctl, inspecter les sockets avec ss, maintenir les paquets à jour avec apt ou dnf, analyser le texte avec awk et accéder aux systèmes en toute sécurité avec ssh, vous pouvez gérer la plupart des travaux d'administration Linux de première ligne. Gardez un petit ensemble de commandes testées dans vos runbooks, puis développez-les selon les besoins de votre environnement.