Pourquoi maitriser ces 10 commandes Linux sur un VPS
Vous venez de recevoir les identifiants de votre premier VPS Linux. L'interface est un terminal noir, pas de panneau graphique, pas de bouton "Installer" : tout se fait en ligne de commande via SSH. Cette situation déstabilise souvent les administrateurs débutants, qu'ils viennent de Windows, d'un panel web ou d'un hébergement mutualisé. La bonne nouvelle : une dizaine de commandes couvrent la grande majorité des opérations du quotidien sur un serveur VPS.
Ce guide détaille les 10 commandes indispensables pour administrer un VPS sous Ubuntu (22.04 LTS, 24.04 LTS) ou Debian 12. Chaque commande est présentée avec sa syntaxe, ses options les plus utiles et un exemple concret appliqué à l'administration d'un serveur distant. Si vous hésitez encore sur le système d'exploitation à installer, consultez notre guide quelle distribution Linux choisir pour un VPS.
1. ssh : se connecter au VPS
ssh (Secure Shell) est la commande qui ouvre une session sécurisée sur votre serveur distant. Sans elle, rien d'autre n'est possible. La connexion chiffre l'intégralité du trafic entre votre poste local et le VPS.
Syntaxe de base
ssh utilisateur@adresse-ip-du-vps
Exemple avec l'utilisateur root et l'adresse IP fictive 203.0.113.10 :
ssh root@203.0.113.10
Options courantes
-p 2222: se connecter sur un port SSH personnalisé (par défaut : 22) ;-i ~/.ssh/id_ed25519: spécifier une clé privée SSH particulière ;-v: mode verbeux pour diagnostiquer un échec de connexion.
L'authentification par mot de passe est la méthode par défaut à la livraison d'un VPS, mais l'authentification par clé publique est plus sûre et plus pratique au quotidien. Pour configurer l'accès par clé : configurer une clé SSH sur VPS Linux sans perdre l'accès. Pour durcir la configuration du daemon SSH : sécuriser SSH sur un VPS Linux.
Si vous administrez votre VPS Linux depuis un poste Windows, PuTTY et WinSCP sont les clients les plus courants : configurer l'accès à un VPS Linux depuis Windows avec PuTTY et WinSCP.
2. ls : lister les fichiers et répertoires
ls affiche le contenu d'un répertoire. C'est la première commande à taper pour voir ce qui se trouve à un emplacement donné sur le serveur.
Syntaxe de base
ls
ls /chemin/du/repertoire
Options courantes
-l: affichage long avec permissions, propriétaire, taille et date de modification ;-a: inclure les fichiers cachés (ceux commençant par un point, comme.bashrc) ;-h: tailles lisibles (Ko, Mo, Go au lieu d'octets) ;-t: trier par date de modification (le plus récent en premier).
Exemple concret
Voir le contenu détaillé du répertoire /etc/ssh/ pour vérifier les fichiers de configuration du daemon SSH :
ls -lah /etc/ssh/
La combinaison -lah est la plus utilisée en administration serveur : elle donne tous les détails, y compris les fichiers cachés, avec des tailles lisibles.
3. cd et pwd : naviguer dans l'arborescence
cd (change directory) change le répertoire courant. pwd (print working directory) affiche le chemin absolu du répertoire dans lequel vous vous trouvez. Ces deux commandes fonctionnent ensemble pour se repérer dans l'arborescence du serveur.
Syntaxe
cd /var/log
pwd
Raccourcis utiles
cd ~oucdseul : revenir au répertoire personnel de l'utilisateur ;cd ..: remonter d'un niveau dans l'arborescence ;cd -: revenir au répertoire précédent.
Créer un nouveau répertoire avant d'y entrer :
mkdir -p /opt/mon-serveur/config
cd /opt/mon-serveur/config
pwd
L'option -p de mkdir crée toute l'arborescence manquante d'un coup, sans erreur si les répertoires intermédiaires existent déjà.
4. cat, less et tail : lire des fichiers et des logs
Lire le contenu d'un fichier de configuration ou d'un fichier de logs est l'opération la plus fréquente en administration. Trois commandes couvrent tous les cas.
cat fichier: affiche tout le contenu d'un coup (adapté aux petits fichiers) ;less fichier: affiche le contenu page par page avec défilement (toucheqpour quitter) ;tail -n 50 fichier: affiche les 50 dernières lignes (utile pour les fins de logs) ;tail -f fichier: suit le fichier en temps réel, les nouvelles lignes s'affichent au fur et à mesure (Ctrl+C pour arrêter).
Exemples concrets
Lire la configuration SSH du serveur :
cat /etc/ssh/sshd_config
Suivre en temps réel les logs du système :
tail -f /var/log/syslog
Parcourir un gros fichier de logs page par page :
less /var/log/auth.log
La combinaison tail -f est particulièrement utile pour diagnostiquer un problème sur un serveur de jeu ou un service qui plante au démarrage : vous voyez les erreurs défiler en direct dans le terminal.
5. nano : éditer un fichier de configuration
nano est l'éditeur de texte en terminal le plus accessible pour un débutant. Il affiche les raccourcis clavier en bas de l'écran, contrairement à vim qui demande un apprentissage spécifique. La quasi-totalité de l'administration d'un VPS passe par l'édition de fichiers de configuration en texte brut.
Syntaxe
sudo nano /etc/ssh/sshd_config
Raccourcis essentiels
Ctrl+OpuisEntrée: enregistrer le fichier ;Ctrl+X: quitter nano ;Ctrl+W: rechercher un mot dans le fichier ;Ctrl+K: couper la ligne entière ;Ctrl+U: coller la ligne coupée.
Avant de modifier un fichier de configuration critique, créez une copie de sauvegarde :
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config
Si la modification rend le service inaccessible, vous pouvez revenir à l'original avec sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config.
6. apt : installer et mettre a jour les paquets
apt est le gestionnaire de paquets des distributions Debian et Ubuntu. Il télécharge, installe, met à jour et supprime les logiciels disponibles dans les dépôts officiels de la distribution.
Commandes essentielles
sudo apt update
Met à jour la liste des paquets disponibles dans les dépôts. À exécuter avant toute installation.
sudo apt upgrade -y
Installe les nouvelles versions de tous les paquets déjà installés. L'option -y confirme automatiquement.
sudo apt install nginx -y
Installe un paquet (ici nginx). Remplacez par le nom du logiciel souhaité.
sudo apt remove nginx -y
Supprime un paquet installé (les fichiers de configuration sont conservés).
sudo apt autoremove -y
Supprime les dépendances devenues inutiles après la suppression d'un paquet.
Bonne pratique
Mettez à jour votre VPS régulièrement pour appliquer les correctifs de sécurité. La combinaison la plus courante :
sudo apt update && sudo apt upgrade -y
Le && exécute la deuxième commande uniquement si la première réussit.
7. chmod et chown : gérer les permissions
Chaque fichier et répertoire Linux possède des permissions qui définissent qui peut lire, écrire ou exécuter. chmod modifie les permissions, chown modifie le propriétaire.
Lire les permissions
La commande ls -l affiche les permissions sous la forme -rwxr-xr--. Chaque groupe de trois lettres correspond à un niveau d'accès :
- Les 3 premiers caractères : permissions du propriétaire (owner) ;
- Les 3 suivants : permissions du groupe (group) ;
- Les 3 derniers : permissions des autres utilisateurs (others).
Les lettres signifient : r = lecture (4), w = écriture (2), x = exécution (1). Le mode numérique additionne ces valeurs par niveau.
Exemples chmod
chmod 755 /opt/mon-serveur/start.sh
Le propriétaire peut lire, écrire et exécuter (7 = 4+2+1). Le groupe et les autres peuvent lire et exécuter (5 = 4+1).
chmod 600 /home/admin/.ssh/authorized_keys
Seul le propriétaire peut lire et écrire (6 = 4+2). Personne d'autre n'a accès. C'est la permission requise pour les fichiers de clés SSH.
Exemples chown
sudo chown admin:admin /opt/mon-serveur/ -R
Attribue le répertoire et tout son contenu (-R = récursif) à l'utilisateur admin et au groupe admin.
8. systemctl : gérer les services
systemctl contrôle les services (daemons) gérés par systemd, le système d'initialisation d'Ubuntu et Debian. Tout service installé sur un VPS (SSH, Nginx, MySQL, un serveur de jeu) se démarre, s'arrête et se configure au boot avec systemctl.
Commandes essentielles
sudo systemctl status nginx
Affiche l'état du service : actif, inactif ou en erreur, avec les dernières lignes de logs.
sudo systemctl start nginx
Démarre le service immédiatement.
sudo systemctl stop nginx
Arrête le service immédiatement.
sudo systemctl restart nginx
Arrête puis redémarre le service (nécessaire après une modification de configuration).
sudo systemctl enable nginx
Active le démarrage automatique du service au boot du VPS. Sans cette commande, le service ne redémarre pas après un reboot.
sudo systemctl enable --now nginx
Combine enable et start en une seule commande : le service démarre immédiatement et sera relancé au prochain boot.
Pour créer votre propre service systemd (serveur de jeu FiveM, Minecraft, application Node.js), consultez notre guide créer un service systemd pour un serveur de jeu Linux.
9. ss : vérifier les ports ouverts
ss (socket statistics) affiche les connexions réseau et les ports en écoute sur le VPS. C'est le remplaçant moderne de netstat sur les distributions actuelles. Savoir quels ports sont ouverts est essentiel pour la sécurité et le diagnostic réseau.
Commande la plus utile
sudo ss -tulnp
Cette combinaison d'options affiche :
-t: les sockets TCP ;-u: les sockets UDP ;-l: uniquement les ports en écoute (listening) ;-n: adresses et ports en format numérique (pas de résolution DNS) ;-p: le nom et le PID du processus associé à chaque port.
Exemples
Vérifier si le port 22 (SSH) est en écoute :
sudo ss -tulnp | grep :22
Vérifier si un serveur de jeu écoute sur le port 30120 (FiveM) ou 25565 (Minecraft) :
sudo ss -tulnp | grep :30120
sudo ss -tulnp | grep :25565
Si un port n'apparait pas dans la liste, le service correspondant n'est pas démarré ou écoute sur un autre port. Si le port est en écoute mais inaccessible depuis l'extérieur, le pare-feu bloque probablement la connexion : ouvrir les ports d'un serveur de jeu avec UFW.
10. journalctl : consulter les logs systeme
journalctl interroge le journal de systemd, qui centralise les logs de tous les services du VPS. Plus puissant que la lecture manuelle des fichiers dans /var/log/, il permet de filtrer par service, par date ou par niveau de gravité.
Commandes courantes
sudo journalctl -u ssh --no-pager -n 50
Affiche les 50 dernières entrées du service SSH.
sudo journalctl -u nginx --since "1 hour ago"
Affiche les logs Nginx de la dernière heure.
sudo journalctl -p err -b
Affiche uniquement les erreurs depuis le dernier démarrage du VPS (-b = boot courant, -p err = priorité erreur et supérieure).
sudo journalctl -f
Suit les logs en temps réel (équivalent de tail -f pour le journal systemd). Ctrl+C pour arrêter.
Pour aller plus loin dans l'analyse des tentatives de connexion SSH, consultez notre guide analyser les échecs de connexion SSH dans les logs Linux. Pour bloquer automatiquement les adresses IP qui multiplient les tentatives : installer et configurer Fail2ban sur un VPS Linux.
Tableau récapitulatif des 10 commandes
| Commande | Rôle | Exemple rapide |
|---|---|---|
ssh | Se connecter au VPS | ssh root@203.0.113.10 |
ls | Lister fichiers et répertoires | ls -lah /etc/ |
cd / pwd | Naviguer dans l'arborescence | cd /var/log && pwd |
cat / less / tail | Lire fichiers et logs | tail -f /var/log/syslog |
nano | Éditer un fichier de configuration | sudo nano /etc/ssh/sshd_config |
apt | Installer et mettre à jour les paquets | sudo apt update && sudo apt upgrade -y |
chmod / chown | Gérer les permissions | chmod 755 start.sh |
systemctl | Gérer les services | sudo systemctl restart nginx |
ss | Vérifier les ports ouverts | sudo ss -tulnp |
journalctl | Consulter les logs système | sudo journalctl -u ssh -n 50 |
Aller plus loin
Ces 10 commandes couvrent les opérations de base sur un VPS Linux. Pour renforcer la sécurité et le monitoring de votre serveur :
- Surveiller en temps réel la charge CPU, la RAM et les processus avec htop et btop ;
- Bloquer les tentatives de brute-force SSH avec Fail2ban ;
- Ouvrir uniquement les ports nécessaires avec le pare-feu UFW ;
- Créer un service systemd pour lancer automatiquement un serveur de jeu au boot avec notre guide systemd ;
- Passer à l'étape suivante avec le durcissement complet de SSH.