Les principales commandes Linux à connaître


958 views
Temps de lecture 22min 30s
4/13/2023, 9:24:24 AM
Auteur : Michael

Les principales commandes Linux à connaître

 

Linux est un système d'exploitation open-source très populaire utilisé par de nombreux développeurs web pour leur environnement de développement. Connaître les commandes Linux de base est essentiel pour travailler efficacement en ligne de commande et effectuer diverses tâches liées au développement web. Dans ce guide, nous allons passer en revue les principales commandes Linux que tout développeur web devrait connaître pour gérer les fichiers, les répertoires, les processus, les permissions et d'autres tâches courantes. Que vous soyez débutant ou que vous ayez déjà une certaine expérience avec Linux, ce guide vous aidera à renforcer vos compétences en ligne de commande pour le développement web.

 

1. Navigation et gestion des fichiers et des répertoires

 

A. Commandes de navigation

  • cd : Change le répertoire courant.
  • ls : Liste les fichiers et les répertoires dans un répertoire.
  • pwd : Affiche le chemin du répertoire courant.
  • mkdir : Crée un nouveau répertoire.
  • rmdir : Supprime un répertoire vide.
  • rm : Supprime un fichier ou un répertoire.
  • cp : Copie un fichier ou un répertoire.
  • mv : Déplace ou renomme un fichier ou un répertoire.
  • cat : Affiche le contenu d'un fichier.
  • less : Affiche le contenu d'un fichier de manière paginée.
  • head : Affiche les premières lignes d'un fichier.
  • tail : Affiche les dernières lignes d'un fichier.
  • touch : Crée un fichier vide ou met à jour l'horodatage d'un fichier existant.

 

B. Commandes de recherche et de filtrage

  • grep : Recherche un motif dans le contenu des fichiers.
  • find : Recherche des fichiers et des répertoires en fonction de critères spécifiques.
  • locate : Recherche des fichiers et des répertoires à partir d'une base de données préindexée.
  • sort : Trie les lignes d'un fichier.
  • uniq : Affiche les lignes uniques d'un fichier.
  • wc : Compte le nombre de mots, de lignes et de caractères dans un fichier.

 

C. Commandes de compression et d'archivage

  • tar : Crée, extrait et gère des archives tar.
  • gzip : Comprime ou décompresse des fichiers avec gzip.
  • gunzip : Décompresse des fichiers compressés avec gzip.
  • zip : Crée, extrait et gère des archives zip.
  • unzip : Extrait des fichiers d'une archive zip.
  • bzip2 : Comprime ou décompresse des fichiers avec bzip2.
  • bunzip2 : Décompresse des fichiers compressés avec bzip2.

 

D. Commandes de manipulation de fichiers

  • sed : Édite et transforme le contenu de fichiers texte.
  • awk : Traite et analyse les fichiers texte structurés.
  • grep : Recherche un motif dans le contenu des fichiers.
  • cut : Coupe les colonnes d'un fichier texte.
  • paste : Colle les colonnes de plusieurs fichiers texte.
  • tr : Remplace ou supprime des caractères dans un fichier texte.
  • tee : Lit l'entrée standard et l'écrit dans un fichier et/ou sur la sortie standard.

 

E. Commandes de gestion des droits et des permissions

  • chmod : Modifie les permissions d'un fichier ou d'un répertoire.
  • chown : Change le propriétaire d'un fichier ou d'un répertoire.
  • chgrp : Change le groupe propriétaire d'un fichier ou d'un répertoire.
  • sudo : Exécute une commande avec les droits d'administration.
  • su : Permet de se connecter en tant qu'utilisateur root ou un autre utilisateur.
  • passwd : Permet de changer le mot de passe d'un utilisateur.

 

 

II. Gestion des processus

 

A. Commandes de gestion des processus

  • ps : Affiche les processus en cours d'exécution.
  • kill : Envoie un signal à un processus pour le terminer.
  • top : Affiche les processus en cours d'exécution en temps réel avec leurs informations de consommation de ressources.
  • bg : Met un processus en arrière-plan.
  • fg : Ramène un processus en premier plan.
  • jobs : Affiche les tâches en cours d'exécution en arrière-plan.
  • nohup : Permet d'exécuter une commande en arrière-plan même si la session de terminal se ferme.

B. Commandes de gestion des services

  • systemctl : Gère les services système sous systemd.
  • service : Gère les services système sous les systèmes d'initiation traditionnels.
  • chkconfig : Permet de configurer les services qui se lancent automatiquement au démarrage du système.

 

 

III. Réseau et connectivité

 

A. Commandes de réseau

  • ping : Vérifie la connectivité avec une adresse IP ou un nom de domaine.
  • traceroute : Affiche la route que les paquets prennent pour atteindre une adresse IP ou un nom de domaine.
  • ifconfig : Affiche les informations de configuration des interfaces réseau.
  • ip : Gère les interfaces réseau, les adresses IP et les routes.
  • netstat : Affiche les connexions réseau en cours.
  • nslookup : Permet de résoudre un nom de domaine en une adresse IP.
  • wget : Télécharge des fichiers à partir d'Internet.
  • curl : Permet d'envoyer et de recevoir des données à partir d'URLs.

B. Commandes de gestion des connexions réseau

  • ssh : Permet de se connecter à distance à un serveur en utilisant le protocole SSH.
  • scp : Copie des fichiers en utilisant le protocole SCP.
  • sftp : Permet de transférer des fichiers en utilisant le protocole SFTP.
  • ftp : Permet de transférer des fichiers en utilisant le protocole FTP.
  • telnet : Permet de se connecter à distance à un serveur en utilisant le protocole Telnet.
  • nc : Permet d'établir des connexions réseau, d'envoyer et de recevoir des données.

 

 

IV. Gestion des packages et des logiciels

 

A. Commandes de gestion des packages

  • apt/apt-get : Gère les paquets sous les distributions basées sur Debian, comme Ubuntu.
  • yum : Gère les paquets sous les distributions basées sur Red Hat, comme CentOS et Fedora.
  • dnf : Gère les paquets sous les distributions Fedora et CentOS récents.
  • pacman : Gère les paquets sous Arch Linux et ses dérivées.
  • zypper : Gère les paquets sous openSUSE.
  • snap : Gère les paquets sous les distributions supportant le format Snap.
  • flatpak : Gère les paquets sous les distributions supportant le format Flatpak.

 

B. Commandes de gestion des logiciels

  • apt-cache/apt-get : Permet de rechercher des informations sur les paquets, de les installer, de les mettre à jour et de les supprimer.
  • yum/dnf : Permet de rechercher des informations sur les paquets, de les installer, de les mettre à jour et de les supprimer.
  • pacman : Permet de rechercher des informations sur les paquets, de les installer, de les mettre à jour et de les supprimer.
  • zypper : Permet de rechercher des informations sur les paquets, de les installer, de les mettre à jour et de les supprimer.
  • snap : Permet d'installer, de mettre à jour, de lister et de supprimer des paquets au format Snap.
  • flatpak : Permet d'installer, de mettre à jour, de lister et de supprimer des paquets au format Flatpak.
  • dpkg : Gère les paquets sous les distributions basées sur Debian, permet d'installer, de configurer et de supprimer des paquets.
  • rpm : Gère les paquets sous les distributions basées sur Red Hat, permet d'installer, de configurer et de supprimer des paquets.
  • yum/dnf : Permet de rechercher des informations sur les paquets, de les installer, de les mettre à jour et de les supprimer.

 

 

V. Gestion des utilisateurs et des groupes

 

  • useradd : Permet d'ajouter un nouvel utilisateur.
  • usermod : Permet de modifier les paramètres d'un utilisateur existant.
  • userdel : Permet de supprimer un utilisateur.
  • passwd : Permet de changer le mot de passe d'un utilisateur.
  • groupadd : Permet d'ajouter un nouveau groupe.
  • groupmod : Permet de modifier les paramètres d'un groupe existant.
  • groupdel : Permet de supprimer un groupe.
  • id : Affiche l'identifiant réel et les groupes auxquels appartient un utilisateur.
  • whoami : Affiche le nom de l'utilisateur actuel.
  • su : Permet de changer d'utilisateur ou de se connecter en tant qu'utilisateur différent.
  • sudo : Permet d'exécuter des commandes en tant qu'utilisateur superutilisateur ou autre utilisateur autorisé.
  • chown : Permet de changer le propriétaire d'un fichier ou d'un répertoire.
  • chmod : Permet de modifier les permissions d'un fichier ou d'un répertoire.
  • chgrp : Permet de changer le groupe propriétaire d'un fichier ou d'un répertoire.
  • passwd : Permet de changer le mot de passe d'un utilisateur.
  • logout : Permet de se déconnecter de la session actuelle.

 

 

VI. Gestion des processus et des services

 

A. Commandes de gestion des processus

  • ps : Affiche les processus en cours d'exécution.
  • top : Affiche les informations sur les processus en temps réel.
  • kill : Envoie un signal à un processus pour demander son arrêt.
  • killall : Envoie un signal à tous les processus qui correspondent au nom donné.
  • bg : Met un processus en arrière-plan.
  • fg : Ramène un processus en premier plan.
  • jobs : Affiche les travaux en cours d'exécution en arrière-plan.
  • nice : Permet de modifier la priorité d'un processus en cours d'exécution.
  • renice : Permet de modifier la priorité d'un processus en cours d'exécution.
  • pstree : Affiche une représentation arborescente des processus.

 

B. Commandes de gestion des services

  • systemctl : Permet de gérer les services du système sous systemd.
  • service : Permet de gérer les services du système sous les anciennes versions de systemd.
  • chkconfig : Permet de configurer les services à démarrer au démarrage du système sous les systèmes basés sur Red Hat.
  • update-rc.d : Permet de configurer les services à démarrer au démarrage du système sous les systèmes basés sur Debian.
  • systemctl/service : Permet de démarrer, d'arrêter, de redémarrer, d'activer ou de désactiver les services du système.
  • journalctl : Permet de consulter les journaux système.

 

 

VII. Gestion des fichiers et des répertoires

 

A. Commandes de manipulation de fichiers

  • touch : Crée un fichier vide ou met à jour l'horodatage d'un fichier existant.
  • cp : Copie des fichiers et des répertoires.
  • mv : Déplace ou renomme des fichiers et des répertoires.
  • rm : Supprime des fichiers et des répertoires.
  • cat : Affiche le contenu d'un fichier.
  • less : Affiche le contenu d'un fichier page par page.
  • head : Affiche les premières lignes d'un fichier.
  • tail : Affiche les dernières lignes d'un fichier.
  • grep : Recherche des motifs dans le contenu de fichiers.
  • find : Recherche des fichiers et des répertoires en fonction de différents critères tels que le nom, la taille, la date de modification, etc.
  • wc : Compte le nombre de lignes, de mots et de caractères dans un fichier.
  • file : Détermine le type de fichier.
  • mkdir : Crée un nouveau répertoire.
  • rmdir : Supprime un répertoire vide.
  • rm : Supprime un fichier ou un répertoire.
  • cp : Copie des fichiers et des répertoires.
  • mv : Déplace ou renomme des fichiers et des répertoires.
  • ln : Crée des liens symboliques ou matériels.
  • du : Affiche l'espace disque utilisé par un fichier ou un répertoire.
  • df : Affiche l'espace disque disponible sur les systèmes de fichiers montés.
  • tar : Permet de créer, d'afficher ou d'extraire des archives tar.
  • gzip/gunzip : Compresse ou décompresse des fichiers avec gzip.
  • bzip2/bunzip2 : Compresse ou décompresse des fichiers avec bzip2.
  • wget : Permet de télécharger des fichiers depuis Internet.

 

 

VIII. Gestion des réseaux

 

A. Commandes réseau

  • ifconfig : Affiche les informations sur les interfaces réseau.
  • ip : Permet de configurer et d'afficher les informations sur les interfaces réseau (remplace ifconfig dans de nombreuses distributions récentes).
  • ping : Envoie des paquets ICMP Echo Request à une adresse IP pour tester la connectivité réseau.
  • traceroute : Trace la route des paquets vers une adresse IP pour déterminer les sauts de réseau intermédiaires.
  • nslookup : Permet de résoudre des noms d'hôtes en adresses IP.
  • dig : Outil de requête DNS avancé pour interroger les serveurs DNS.
  • curl : Permet de transférer des données depuis ou vers un serveur à l'aide de différents protocoles (HTTP, FTP, etc.).
  • ssh : Permet de se connecter à distance à un serveur sécurisé en utilisant le protocole SSH.
  • scp : Permet de copier des fichiers entre des hôtes locaux et distants via SSH.
  • sftp : Permet de transférer des fichiers en toute sécurité entre des hôtes locaux et distants via SSH.
  • netstat : Affiche les informations sur les connexions réseau, les tables de routage, les interfaces réseau, etc.
  • lsof : Liste les fichiers ouverts par les processus en cours d'exécution.
  • nmap : Permet de scanner les ports d'un hôte pour détecter les services en cours d'exécution.

 

B. Configuration réseau

  • nano/vim : Éditeurs de texte en ligne de commande pour modifier les fichiers de configuration réseau.
  • ifup/ifdown : Permettent de monter ou de démonter des interfaces réseau spécifiques.
  • route : Permet de configurer les tables de routage pour définir les routes par défaut ou les routes spécifiques pour les interfaces réseau.
  • iptables : Permet de configurer les règles de pare-feu pour contrôler le trafic réseau.
  • hostname : Affiche ou configure le nom d'hôte du système.
  • dnsdomainname : Affiche ou configure le nom de domaine DNS du système.
  • resolvconf : Permet de configurer les paramètres de résolution DNS.
  • ifconfig : Affiche les informations sur les interfaces réseau (déprécié dans de nombreuses distributions récentes, remplacé par ip).
  • ip : Permet de configurer et d'afficher les informations sur les interfaces réseau (utilisé dans de nombreuses distributions récentes).
  • systemctl : Permet de gérer les services et les unités système, y compris les services réseau.

 

 

IX. Sécurité

 

A. Gestion des utilisateurs et des groupes

  • useradd : Permet d'ajouter un nouvel utilisateur.
  • userdel : Permet de supprimer un utilisateur.
  • usermod : Permet de modifier les attributs d'un utilisateur existant.
  • passwd : Permet de changer le mot de passe d'un utilisateur.
  • groupadd : Permet d'ajouter un nouveau groupe.
  • groupdel : Permet de supprimer un groupe.
  • groupmod : Permet de modifier les attributs d'un groupe existant.
  • usermod : Permet d'ajouter ou de supprimer un utilisateur à/d'un groupe existant.

 

B. Permissions et propriétaires de fichiers

  • chmod : Permet de modifier les permissions d'accès aux fichiers et aux répertoires.
  • chown : Permet de changer le propriétaire d'un fichier ou d'un répertoire.
  • chgrp : Permet de changer le groupe propriétaire d'un fichier ou d'un répertoire.
  • umask : Permet de définir les permissions par défaut pour les nouveaux fichiers et répertoires.

 

C. Sécurité réseau

  • firewalld/ufw : Outils de configuration du pare-feu pour gérer les règles de pare-feu et les zones de sécurité.
  • selinux/apparmor : Systèmes de sécurité renforcée pour restreindre les actions des processus sur le système.
  • fail2ban : Outil de prévention des intrusions qui protège contre les attaques de force brute.
  • ssh : Permet de configurer les options de sécurité pour les connexions SSH, telles que la désactivation de l'accès root, l'utilisation de clés SSH, etc.

 

D. Gestion des certificats et du chiffrement

  • openssl : Bibliothèque et outils de chiffrement pour générer et gérer des certificats SSL/TLS, des clés privées, des CSR, etc.
  • certbot : Outil de gestion des certificats SSL/TLS Let's Encrypt pour obtenir et renouveler automatiquement des certificats gratuits pour les domaines.

 

E. Audit et surveillance :

  • auditd : Permet de configurer et de gérer le service d'audit Linux pour collecter les informations de sécurité du système.
  • ausearch : Permet de rechercher et d'afficher les enregistrements d'audit dans les journaux d'audit.
  • journalctl : Permet de consulter les journaux du système à l'aide du système de journalisation systemd.
  • dmesg : Permet d'afficher les messages du noyau et les informations de démarrage du système.
  • top/htop : Permet d'afficher les processus en cours d'exécution et leur utilisation des ressources en temps réel.
  • ps : Permet d'afficher les processus en cours d'exécution sur le système.
  • kill : Permet d'envoyer un signal à un processus pour le terminer ou le redémarrer.
  • lsof : Permet de lister les fichiers ouverts par les processus en cours d'exécution.
  • netstat : Permet d'afficher les connexions réseau en cours, les interfaces réseau et les statistiques associées.
  • tcpdump : Permet de capturer et d'analyser le trafic réseau en temps réel.
  • iftop : Permet de surveiller la bande passante réseau en temps réel pour les interfaces spécifiques.
  • sar : Permet de collecter et de rapporter les données de performance système, y compris l'utilisation du CPU, de la mémoire, du réseau et d'autres ressources.
  • vmstat : Permet d'afficher les statistiques de performance du système et des processus en temps réel.
  • iostat : Permet d'afficher les statistiques d'utilisation des disques d'E/S du système et des périphériques de stockage.
  • nmon : Permet de surveiller les performances système et réseau en temps réel avec une interface utilisateur interactive.
  • watch : Permet d'exécuter périodiquement une commande et d'afficher les résultats en temps réel pour la surveillance continue.
  • logrotate : Permet de gérer la rotation et la compression des fichiers journaux pour éviter qu'ils ne deviennent trop volumineux.

 

F. Gestion des sauvegardes

  • tar : Permet de créer, d'afficher, de modifier et d'extraire des fichiers d'archives tar.
  • rsync : Permet de synchroniser et de sauvegarder des fichiers et des répertoires locaux ou distants.
  • dd : Permet de copier et de convertir des fichiers ou des partitions, souvent utilisé pour la création d'images disque.
  • backup/duplicity/BorgBackup : Outils de sauvegarde pour créer et gérer des sauvegardes automatisées et chiffrées.

 

G. Gestion des mises à jour et des paquets

  • apt/dpkg/aptitude : Outils de gestion des paquets Debian pour installer, mettre à jour, supprimer et gérer les paquets et les dépendances.
  • yum/rpm : Outils de gestion des paquets RPM pour les distributions basées sur Red Hat pour installer, mettre à jour, supprimer et gérer les paquets et les dépendances.
  • pacman/yaourt : Outils de gestion des paquets pour Arch Linux pour installer, mettre à jour, supprimer et gérer les paquets et les dépendances.
  • zypper : Outil de gestion des paquets pour openSUSE pour installer, mettre à jour, supprimer et gérer les paquets et les dépendances.

 

H. Gestion des services

  • systemctl : Permet de gérer les services et les unités système, y compris le démarrage, l'arrêt, la redémarrage, l'activation et la désactivation des services.
  • service/init.d : Outils de gestion des services pour les anciennes versions de systèmes d'initiation, utilisés dans certaines distributions Linux.
  • systemd : Système d'initiation moderne utilisé dans de nombreuses distributions Linux pour gérer les services et les processus du système.

 

I. Gestion des journaux système

  • journalctl : Permet de lire et de filtrer les journaux système générés par systemd pour la journalisation des événements système et des messages de journal.
  • dmesg : Permet d'afficher les messages du noyau et les événements système en temps réel.

 

J. Sécurité des mots de passe

  • passwd : Permet de changer le mot de passe de l'utilisateur courant.
  • shadow : Fichier de configuration pour stocker les informations de mot de passe crypté des utilisateurs.
  • chpasswd : Permet de changer les mots de passe des utilisateurs en utilisant un fichier d'entrée avec les nouveaux mots de passe.
  • passwdqc/pam_pwquality : Outils pour renforcer les politiques de mots de passe en définissant des règles de complexité et de longueur des mots de passe.
  • sudo : Permet à un utilisateur autorisé d'exécuter des commandes en tant qu'utilisateur root ou en tant qu'autres utilisateurs autorisés.

 

K. Gestion des droits d'accès et de permissions

  • chmod : Permet de modifier les permissions de fichiers et de répertoires pour définir les droits d'accès en lecture, écriture et exécution.
  • chown : Permet de changer le propriétaire et le groupe d'un fichier ou d'un répertoire.
  • chgrp : Permet de changer le groupe d'un fichier ou d'un répertoire.
  • umask : Permet de définir les permissions par défaut pour les nouveaux fichiers et répertoires créés par un utilisateur.
  • setfacl : Permet de définir les listes de contrôle d'accès (ACL) pour gérer les droits d'accès supplémentaires sur les fichiers et les répertoires.
  • getfacl : Permet d'afficher les listes de contrôle d'accès (ACL) d'un fichier ou d'un répertoire.

 

L. Gestion des utilisateurs et des groupes

  • useradd/adduser : Permet d'ajouter un nouvel utilisateur au système.
  • userdel : Permet de supprimer un utilisateur du système.
  • usermod : Permet de modifier les informations d'un utilisateur existant.
  • groupadd : Permet d'ajouter un nouveau groupe d'utilisateurs au système.
  • groupdel : Permet de supprimer un groupe d'utilisateurs du système.
  • groupmod : Permet de modifier les informations d'un groupe d'utilisateurs existant.
  • id : Permet d'afficher les informations d'identification d'un utilisateur, y compris son UID (User ID) et les groupes auxquels il appartient.
  • su : Permet de basculer vers un autre utilisateur, généralement l'utilisateur root.
  • sudo : Permet à un utilisateur autorisé d'exécuter des commandes en tant qu'utilisateur root ou en tant qu'autres utilisateurs autorisés.

 

M. Gestion des disques et des systèmes de fichiers

  • fdisk/parted : Outils de gestion des partitions de disque pour créer, modifier et supprimer des partitions sur les disques durs et autres supports de stockage.
  • mkfs : Permet de créer un système de fichiers sur une partition formatée.
  • mount/umount : Permet de monter et de démonter des systèmes de fichiers sur des partitions ou des périphériques de stockage.
  • fsck : Permet de vérifier et de réparer les systèmes de fichiers corrompus ou endommagés.
  • blkid : Permet d'afficher les informations d'identification des systèmes de fichiers sur les partitions ou les périphériques de stockage, y compris les UUID (Universally Unique Identifier) et les labels de système de fichiers.
  • df : Permet d'afficher l'espace disque utilisé et disponible sur les systèmes de fichiers montés.
  • du : Permet d'afficher l'espace disque utilisé par les fichiers et les répertoires.
  • mount/umount : Permet de monter et de démonter des systèmes de fichiers sur des partitions ou des périphériques de stockage.
  • ln : Permet de créer des liens symboliques ou matériels vers des fichiers ou des répertoires.
  • rm : Permet de supprimer des fichiers ou des répertoires.
  • rmdir : Permet de supprimer un répertoire vide.
  • mkdir : Permet de créer un nouveau répertoire.
  • cp : Permet de copier des fichiers ou des répertoires.
  • mv : Permet de déplacer ou de renommer des fichiers ou des répertoires.
  • find : Permet de rechercher des fichiers et des répertoires en fonction de critères tels que le nom, la taille, la date de modification, etc.
  • grep : Permet de rechercher des motifs dans les fichiers.
  • cat : Permet d'afficher le contenu des fichiers.
  • head/tail : Permet d'afficher les premières ou les dernières lignes d'un fichier.
  • less/more : Permet de visualiser le contenu des fichiers de manière paginée.
  • touch : Permet de créer des fichiers vides ou de mettre à jour les horodatages des fichiers existants.
  • file : Permet de déterminer le type de fichier.
  • diff : Permet de comparer le contenu de deux fichiers.
  • patch : Permet d'appliquer des patchs à des fichiers pour les mettre à jour.
  • wget/curl : Outils de téléchargement de fichiers depuis le Web.

 

Voilà une liste non exhaustive des principales commandes Linux à connaître pour gérer les fichiers, les répertoires, les utilisateurs, les permissions, les disques et les systèmes de fichiers.

Il en existe bien sûr de nombreuses autres, mais celles-ci sont couramment utilisées dans les tâches administratives courantes sur un système Linux.