Imad’s wiki
GithubLinkedInXMailHashnode
  • ADMINISTRATION LINUX
    • Linux et ses distributions
    • Commandes Utiles
    • Gestion des paquets
    • SSH
    • Partitionnement LVM
  • Base de données
    • PostgreSQL
      • Quelques commandes Postgres
      • Mise à jour de Postgresql sous windows
  • Tutoriels
    • Securité
      • Wazuh
      • Intégration Debian sur Active Directory
      • Certificat SSL
    • SingleSignOn
      • Authentik
      • SAML + CENTREON
      • OpenID + Apache Guacamole
      • OpenID + Proxmox
    • Git
      • Git
    • Infra-As-Code
      • Terraform + Proxmox
      • Ansible
    • Conteneurisation
      • Docker
        • Quelques commandes Docker utiles
Powered by GitBook
On this page
  • 1. Commandes de base pour la navigation dans le système de fichiers
  • 2. Commandes pour la gestion des fichiers
  • 3. Commandes pour la gestion des droits
  • 3.1 chmod
  • 3.2 chown
  • 4. Commandes de gestion des processus
  • 5. Commandes réseau
  • 6. Manipulation des fichiers compressés
  • 7. Utilisation de su et sudo
  • 8. Commande pour gestion des disques
  • 1. Utilisation de du
  • 2. Utilisation de df
  • 3. Utilisation de lsblk
  • 4. Utilisation de mount et umount
  • 5. Utilisation de blkid
  • 9. Téléchargement et Interaction Web avec curl et wget
  • 1. curl
  • 2. wget

Was this helpful?

  1. ADMINISTRATION LINUX

Commandes Utiles

Quelques commandes utiles sous Linux

Voici une liste de commandes courantes utilisées dans l'administration Linux. Chaque commande est accompagnée de ses options les plus fréquemment utilisées et d'explications détaillées.

1. Commandes de base pour la navigation dans le système de fichiers

  • pwd : Affiche le chemin complet du répertoire courant (Print Working Directory).

    pwd
  • ls : Liste les fichiers et dossiers dans le répertoire courant.

    ls
    • ls -t : Trie les fichiers par date de modification, du plus récent au plus ancien.

      ls -t
    • ls -S : Trie les fichiers par taille, du plus grand au plus petit.

      ls -S
    • ls -l : Affiche les détails de chaque fichier (permissions, propriétaire, taille, date).

      ls -l
    • ls -R : Affiche les fichiers dans les sous-répertoires de manière récursive.

      ls -R

Récursif : C'est à dire non seulement les fichiers et répertoires dans le répertoire courant, mais aussi tout le contenu des sous-répertoires, et ainsi de suite.

  • ls -a : Montre également les fichiers cachés (les fichiers dont le nom commence par un point).

    ls -a
  • ls -h : Affiche les tailles des fichiers de manière lisible (Ko, Mo, Go).

    ls -h

Les différentes options peuvent êtres associées. Par exemple ls -alh

Exemple de sortie :

drwxr-xr-x  3 user group  4.0K Oct 24 10:30 .
drwxr-xr-x  5 user group  4.0K Oct 22 15:20 ..
-rw-r--r--  1 user group  1.5M Oct 20 09:00 file1.txt
-rw-r--r--  1 user group  200K Oct 21 12:45 file2.log
-rw-------  1 user group  512 Oct 23 08:15 .hidden_file

Détails de la sortie :

  • drwxr-xr-x : Représente les permissions. Le premier caractère d indique qu'il s'agit d'un répertoire. Les autres caractères montrent les permissions pour le propriétaire, le groupe et les autres utilisateurs.

    • d : Répertoire

    • rwx : Permissions du propriétaire (lecture, écriture, exécution)

    • r-x : Permissions du groupe (lecture, pas d'écriture, exécution)

    • r-x : Permissions des autres utilisateurs (lecture, pas d'écriture, exécution)

  • 3 : Nombre de liens (ou sous-répertoires) dans le répertoire.

  • user : Nom de l'utilisateur propriétaire du fichier.

  • group : Nom du groupe associé au fichier.

  • 4.0K, 1.5M, 200K, 512 : Tailles des fichiers en format lisible.

  • Oct 24 10:30 : Date et heure de la dernière modification.

  • . et .. : . représente le répertoire courant, tandis que .. représente le répertoire parent.

  • file1.txt, file2.log, .hidden_file : Noms des fichiers et répertoires listés. Notez que .hidden_file est un fichier caché en raison du point (.) au début de son nom.

Cette commande est très utile pour avoir un aperçu détaillé des fichiers dans un répertoire, y compris les fichiers cachés et les tailles facilement compréhensibles.

  • cd [chemin] : Change le répertoire courant vers celui spécifié.

    cd [chemin]
    • Exemple : Change de répertoire vers /home/utilisateur.

      cd /home/utilisateur
    • Astuce : cd .. te fait remonter d’un répertoire.

      cd ..
  • cp [source] [destination] : Copie des fichiers ou des dossiers.

    cp [source] [destination]
    • Exemple : Copie fichier1.txt vers fichier2.txt.

      cp fichier1.txt fichier2.txt
    • cp -r : Copie un dossier récursivement (avec son contenu).

      cp -r dossier1/ dossier2/
  • mv [source] [destination] : Déplace ou renomme des fichiers ou des dossiers.

    mv [source] [destination]
    • Exemple : Déplace un fichier.

      mv fichier.txt /chemin/destination
    • Pour renommer un fichier : mv ancien_nom.txt nouveau_nom.txt.

      mv ancien_nom.txt nouveau_nom.txt
  • rm [fichier] : Supprime des fichiers.

    rm [fichier]
    • Exemple : Supprime le fichier spécifié.

      rm fichier.txt
    • rm -r : Supprime un dossier et son contenu récursivement.

      rm -r dossier/

Attention : Cette action est irréversible.

2. Commandes pour la gestion des fichiers

  • cat [fichier] : Affiche le contenu d'un fichier dans le terminal.

    cat [fichier]
  • touch [fichier] : Crée un fichier vide ou modifie la date de dernier accès du fichier.

    touch [fichier]
  • mkdir [nom_dossier] : Crée un nouveau répertoire.

    mkdir [nom_dossier]
  • mkdir -p [chemin] : Crée un répertoire ainsi que tous les sous-répertoires nécessaires dans le chemin spécifié.

    mkdir -p [chemin]
    • Exemple : Crée un répertoire et tous les sous-répertoires nécessaires.

      mkdir -p /chemin/vers/nouveau/dossier

Option -p : Si un ou plusieurs des répertoires du chemin n'existent pas, cette option les crée également.

  • rmdir [nom_dossier] : Supprime un répertoire vide.

    rmdir [nom_dossier]

3. Commandes pour la gestion des droits

3.1 chmod

chmod [permissions] [fichier] : Change les permissions d’un fichier ou dossier.

chmod [permissions] [fichier] 

Chmod ( change mode ) peut être utilisé de deux manières : symbolique ou numérique.

Mode numérique

Il Utilise des chiffres pour représenter les permissions.

  • 4 : lecture (r)

  • 2 : écriture (w)

  • 1 : exécution (x)

Les permissions sont additionnées pour chaque type d'utilisateur :

  • Propriétaire : premier chiffre

  • Groupe : deuxième chiffre

  • Autres : troisième chiffre

  • Exemple : Change les permissions d'un fichier.

    chmod 755 fichier.txt
  • Explication :

    7

    = lecture (4) + écriture (2) + exécution (1),

    5

    = lecture (4) + exécution (1).

Mode symbolique

Utilise des lettres pour représenter les utilisateurs et les permissions.

  • u : utilisateur (propriétaire)

  • g : groupe

  • o : autres

  • a : tous (utilisateur, groupe et autres)

  • r : lecture

  • w : écriture

  • x : exécution

  • Exemple

chmod u+x fichier.txt  # Ajoute la permission d'exécution pour le propriétaire
chmod g-w fichier.txt  # Retire la permission d'écriture pour le groupe
chmod a=r fichier.txt   # Définit la permission de lecture uniquement pour tous

3.2 chown

chown [utilisateur]:[groupe] [fichier] : Change le propriétaire d’un fichier ou dossier.

chown [utilisateur]:[groupe] [fichier]
  • Exemple : Change le propriétaire d'un fichier.

    chown imad fichier.txt  # Change le propriétaire à 'imad'
  • Exemple : Change le propriétaire et le groupe d'un fichier.

chown imad:staff fichier.txt  # Change le propriétaire à 'imad' et le groupe à 'staff'

L'option -R avec la commande chown signifie "récursif". Elle permet de changer le propriétaire et/ou le groupe d'un fichier ou d'un répertoire ainsi que de tous les fichiers et sous-répertoires qu'il contient.

Syntaxe

chown -R [nouveau_propriétaire][:nouveau_groupe] répertoire

Exemple d'utilisation

Changer le propriétaire récursivement : Supposons que vous ayez un répertoire appelé mon_dossier qui contient plusieurs fichiers et sous-répertoires. Pour changer le propriétaire de mon_dossier et de tout son contenu à imad, vous pouvez utiliser la commande suivante :

chown -R imad mon_dossier

Changer le propriétaire et le groupe récursivement : Si vous souhaitez également changer le groupe en même temps, par exemple, à developpeurs ,vous pouvez exécuter :

chown -R imad:developpeurs mon_dossier

4. Commandes de gestion des processus

  • ps : Affiche les processus en cours.

    ps aux
  • top : Affiche en temps réel les processus actifs, ainsi que leur utilisation des ressources.

    top
  • kill [PID] : Termine un processus spécifié par son PID (Process ID).

    kill [PID]
    • Exemple :

      kill 1234

      pour terminer le processus ayant le PID 1234.

    • Pour forcer l'arrêt :

      kill -9 [PID]

5. Commandes réseau

  • nc [adresse] [port] : nc ou Netcat ouvre une connexion vers un hôte à une adresse IP ou un nom de domaine et un port spécifiés.

    nc 192.168.1.1 80
  • Cette commande peut également être utilisée pour écouter un port sur votre machine :

    nc -l -p [port]
  • ip route show : Affiche la table de routage actuelle du système.

    ip route show
  • ip route add default via [adresse_gw] : Définit une passerelle par défaut pour le routage du trafic sortant.

    ip route add default via 192.168.1.254
  • Pour supprimer une passerelle par défaut existante, utilisez :

    ip route del default
  • ping [adresse] : Vérifie la connectivité réseau vers un hôte en envoyant des paquets ICMP.

    ping [adresse]
  • ip a : Affiche les interfaces réseau et leurs configurations ( adresse IP, masque, etc,)

    ip a
  • ss : ss est le nouveau netstat qui est dépriécié sur certaines distribs linux. Il Affiche des informations sur les sockets et les connexions réseau.

    ss -tuln

Cette commande liste toutes les connexions TCP et UDP en cours, ainsi que les ports d'écoute.

  • traceroute [domaine] : Affiche le chemin que prennent les paquets pour atteindre une destination.

    traceroute [domaine]
  • nslookup [domaine] : Interroge un serveur DNS pour obtenir l’adresse IP d’un domaine.

    nslookup [domaine]

6. Manipulation des fichiers compressés

  • tar -czvf archive.tar.gz /chemin/dossier : Compresse un dossier en une archive .tar.gz.

    tar -czvf archive.tar.gz /chemin/dossier
    • -c : Créer une archive.

    • -z : Compresser avec gzip.

    • -v : Mode verbeux (affiche les fichiers traités).

    • -f : Nom du fichier archive.

  • tar -xzvf archive.tar.gz : Décompresse une archive .tar.gz.

    tar -xzvf archive.tar.gz
  • Décompression avec unzip :

    • unzip [archive.zip] : Permet d'extraire le contenu d'un fichier ZIP.

      unzip archive.zip
    • Cette commande va décompresser le fichier archive.zip dans le répertoire courant.

    • Pour extraire vers un répertoire spécifique, on peut utiliser l'option -d :

      unzip archive.zip -d /chemin/vers/dossier
  • Compression avec zip :

    • zip [archive.zip] [fichiers] : Crée un fichier ZIP à partir de fichiers ou de répertoires spécifiés.

      zip archive.zip fichier1.txt fichier2.txt
    • Cette commande va créer un fichier ZIP nommé archive.zip contenant fichier1.txt et fichier2.txt.

    • Pour zipper un dossier entier, on utilise l'option -r :

      zip -r archive.zip dossier/

7. Utilisation de su et sudo

  • su [utilisateur] : Permet de se connecter en tant qu’autre utilisateur (par défaut root). Il demande le mot de passe de l'utilisateur cible.

    su [utilisateur]
    • Exemple :

      su - utilisateur

      pour passer à l'utilisateur spécifié avec son environnement.

  • sudo [commande] : Exécute une commande avec les privilèges d’un autre utilisateur, généralement root, sans changer de session. Il demande le mot de passe de l'utilisateur qui exécute la commande.

    sudo [commande]
    • Exemple :

      sudo apt update

      pour mettre à jour la liste des paquets en tant que super utilisateur.

8. Commande pour gestion des disques

La gestion des disques permet de surveiller l'espace disque, visualiser les partitions, et diagnostiquer les problèmes de stockage. Ci-dessous, des commandes utiles avec des exemples pratiques pour mieux comprendre leur utilité.

1. Utilisation de du

  • du -h

But : Afficher la taille de tous les dossiers et sous-dossiers dans le répertoire courant.

Par exemple, dans un dossier contenant des dossiers imbriqués :

mon_dossier/
├── Documents
│   ├── Photos
│   └── Textes
├── Téléchargements
└── Musique

En utilisant du -h dans ce dossier, vous verrez la taille de chaque sous-dossier, y compris ceux imbriqués :

du -h mon_dossier/
4.0K    mon_dossier/Documents/Textes
5.0M    mon_dossier/Documents/Photos
6.0M    mon_dossier/Documents
20M     mon_dossier/Téléchargements
2.0G    mon_dossier/Musique
2.3G    mon_dossier

Résumé : du -h montre la taille de chaque dossier, sous-dossier, et fichier jusqu'à la fin de l’arborescence.

  • du -h --max-depth=1

But : Afficher la taille de chaque dossier de premier niveau uniquement dans le répertoire courant, sans aller plus profondément.

Avec la même structure de dossier, si vous utilisez du -h --max-depth=1, vous verrez uniquement la taille des dossiers de premier niveau :

du -h --max-depth=1 mon_dossier/
6.0M    mon_dossier/Documents
20M     mon_dossier/Téléchargements
2.0G    mon_dossier/Musique
2.3G    mon_dossier

Résumé : du -h --max-depth=1 affiche la taille des dossiers de premier niveau uniquement, sans parcourir les sous-dossiers. Idéal pour un aperçu rapide des dossiers principaux.

  • du -sh :

But : Afficher la taille totale d’un répertoire, sans détails sur les sous-dossiers ou fichiers individuels. L’option -s (summary) résume la taille totale, et -h rend l'affichage lisible avec des unités (Ko, Mo, Go).

du -sh /chemin/vers/dossier
2.3G    /chemin/vers/dossier

Exemple : Si vous êtes dans le dossier /home/user/Downloads et exécutez du -sh, vous obtiendrez la taille totale utilisée par le contenu de Downloads sans détails sur chaque sous-dossier :

du -sh
500M    .

Résumé : du -sh est utile pour une vérification rapide de la taille globale d’un dossier sans entrer dans les détails. Cela permet de visualiser la place occupée par le dossier en entier.

2. Utilisation de df

  • df -h

But : Afficher l'espace disque utilisé et disponible pour chaque système de fichiers, avec des unités lisibles (Go, Mo).

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G   20G   18G  53% /
tmpfs           798M     0  798M   0% /dev/shm
/dev/sdb1       100G   55G   45G  56% /mnt/data

3. Utilisation de lsblk

  • lsblk

But : Afficher une arborescence des périphériques de stockage, leurs partitions, et points de montage.

lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    40G  0 disk 
└─sda1   8:1    0    40G  0 part /
sdb      8:16   0   100G  0 disk 
└─sdb1   8:17   0   100G  0 part /mnt/data

4. Utilisation de mount et umount

  • mount

But : Afficher les systèmes de fichiers actuellement montés ou monter un périphérique sur un répertoire spécifique. Utilisez mount suivi du périphérique et du point de montage pour monter un disque.

sudo mount /dev/sdb1 /mnt/data
mount: /mnt/data: mounted filesystem ext4. # sortie de la commande en haut
  • umount

But : Démonter un périphérique, le rendant inaccessible depuis le système.

sudo umount /mnt/data
umount: /mnt/data: successfully unmounted. #sortie de la commande en haut

5. Utilisation de blkid

But : La commande blkid permet d'identifier les périphériques de stockage en affichant leurs informations, comme le type de système de fichiers et l'UUID (Universally Unique Identifier). L’UUID est un identifiant unique assigné à chaque partition de disque, permettant de référencer un périphérique indépendamment de son nom de fichier (par exemple, /dev/sda1).

blkid
/dev/sda1: UUID="e6b05e9c-55a4-4a78-8b4c-1e25a8a3f9c4" TYPE="ext4" PARTUUID="0e8b3c9d-01"
/dev/sdb1: UUID="d9f8d47b-7db1-4b7c-9e0f-0d9c5d8a6d5a" TYPE="ext4" PARTUUID="0e8b3c9d-02"

Explication : Chaque périphérique listé montre plusieurs attributs :

  • UUID : Un identifiant unique pour chaque partition. Par exemple, e6b05e9c-55a4-4a78-8b4c-1e25a8a3f9c4. Utiliser l’UUID au lieu de noms de périphériques (comme /dev/sda1) est particulièrement utile dans les fichiers de configuration (comme /etc/fstab), car cet identifiant reste constant même si le nom du périphérique change.

  • TYPE : Type de système de fichiers de la partition, ici ext4.

  • PARTUUID : Un autre identifiant unique, généralement utilisé pour les partitions sur des tables de partition GPT.

Résumé : blkid est essentiel pour identifier les périphériques de stockage et leurs systèmes de fichiers, surtout lors de la configuration de montages permanents avec des UUID pour garantir une compatibilité entre redémarrages.

Fichier /etc/fstab

But : Le fichier /etc/fstab est utilisé pour définir les systèmes de fichiers à monter automatiquement au démarrage, avec leurs options de montage. Chaque ligne dans fstab correspond à un périphérique ou une partition à monter.

Un exemple d’entrée dans /etc/fstab :

UUID=e6b05e9c-55a4-4a78-8b4c-1e25a8a3f9c4 /mnt/data ext4 defaults 0 2

Explication des colonnes :

  • Périphérique : Généralement spécifié avec l’UUID du périphérique, pour garantir un montage stable même si le nom du périphérique (comme /dev/sda1) change. Ici, UUID=e6b05e9c-55a4-4a78-8b4c-1e25a8a3f9c4.

  • Point de montage : Le répertoire où le système de fichiers sera monté. Dans cet exemple, /mnt/data.

  • Type : Le type de système de fichiers. Par exemple, ext4 pour Linux.

  • Options de montage : Ici defaults (lecture/écriture, auto, etc.), mais plusieurs options sont possibles, comme ro pour lecture seule.

  • Dump : Habituellement 0, il indique si le système de fichiers doit être sauvegardé par la commande dump.

  • Pass : Contrôle l’ordre de vérification des disques au démarrage. 0 signifie sans vérification, 1 pour la racine, et 2 pour les autres disques.

Résumé : /etc/fstab est un fichier clé pour la gestion automatique des montages des systèmes de fichiers. En spécifiant les UUID et les options adaptées, il garantit que les partitions sont toujours montées correctement au démarrage, simplifiant la gestion des disques.

9. Téléchargement et Interaction Web avec curl et wget

Les commandes curl et wget permettent de télécharger des fichiers, d’interagir avec des serveurs web et d’effectuer des requêtes HTTP, mais elles sont adaptées à des usages différents. curl est particulièrement polyvalent, prenant en charge de nombreuses méthodes HTTP (GET, POST, PUT, DELETE, etc.) pour interagir de façon dynamique avec des API ou des services web. En revanche, wget est optimisé pour le téléchargement fiable de fichiers, y compris la récupération de sites entiers.

1. curl

curl est un outil polyvalent pour transférer des données via de nombreux protocoles (HTTP, FTP, etc.), souvent utilisé pour télécharger des fichiers ou interagir avec des APIs.

Options principales de curl :

  • -O : Télécharge un fichier et le sauvegarde avec son nom d'origine (sans modification).

  • -o [nom] : Télécharge un fichier et le renomme selon le nom spécifié.

  • -s : "Silent mode" - Ne montre pas la barre de progression ni les messages de téléchargement. Idéal dans des scripts où l’on souhaite éviter les sorties visibles.

  • -S : Affiche les messages d'erreur même en mode silencieux (utilisé avec -s).

  • -L : Suit les redirections HTTP. Souvent nécessaire lorsque l'URL redirige vers un lien final (utile pour les sites avec des redirections intermédiaires).

  • -I : Effectue une requête HTTP HEAD pour afficher uniquement les en-têtes HTTP, sans télécharger le contenu. Pratique pour vérifier la disponibilité d’un lien.

  • -sSL : Combine plusieurs options : mode silencieux, suivi des redirections et affichage des erreurs en cas de problème. Très utilisé dans les scripts pour éviter les interruptions inattendues.

Exemples de commandes curl :

curl -O http://exemple.com/fichier.txt

Explication : Télécharge fichier.txt dans le répertoire courant en conservant son nom d'origine.

curl -o monfichier.txt http://exemple.com/fichier.txt

Explication : Télécharge fichier.txt et le renomme en monfichier.txt.

curl -I http://exemple.com

Explication : Affiche les en-têtes HTTP du site pour vérifier sa disponibilité ou d'autres informations comme la type de serveur web ( apche, nginx ou autres ).

Exemple de sortie de curl -I

HTTP/1.1 200 OK
Date: Thu, 25 Oct 2024 12:34:56 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Tue, 15 Jan 2024 15:42:00 GMT
ETag: "3e9-5a4e7cb7e5c6d"
Accept-Ranges: bytes
Content-Length: 1000
Content-Type: text/html; charset=UTF-8

2. wget

wget est conçu pour des téléchargements robustes, avec la possibilité de reprendre un téléchargement interrompu. Il est idéal pour des téléchargements en masse et récursifs.

Options principales de wget :

  • -O [nom] : Télécharge un fichier et le renomme selon le nom spécifié, remplaçant l'option par défaut qui utilise le nom original.

  • -O [nom] : Télécharge un fichier et le renomme selon le nom spécifié, remplaçant l'option par défaut qui utilise le nom original.

  • -c : Reprend le téléchargement d'un fichier si l’opération précédente a été interrompue, utile pour des fichiers volumineux.

  • -r : Téléchargement récursif de plusieurs fichiers ou d’un site complet, pratique pour copier des sites ou des dossiers entiers en ligne.

  • -l [profondeur] : Limite la profondeur du téléchargement récursif (par défaut, wget suit les liens vers d'autres fichiers indéfiniment sans cette option).

Exemples de commandes wget :

wget http://exemple.com/fichier.txt

Explication : Télécharge fichier.txt dans le répertoire courant avec son nom original.

wget -O monfichier.txt http://exemple.com/fichier.txt

Explication : Télécharge fichier.txt et le renomme en monfichier.txt.

wget -c http://exemple.com/fichier.txt

Explication : Reprend le téléchargement de fichier.txt s’il a été interrompu.

wget -r -l 1 http://exemple.com

Explication : Télécharge le site exemple.com de manière récursive avec une profondeur d'un seul niveau, utile pour copier des pages liées en un clic.

Résumé :

curl est plus adapté pour les requêtes API et les téléchargements simples, tandis que wget excelle dans les téléchargements en masse et avec reprise automatique. Ensemble, ces commandes fournissent des options puissantes pour interagir avec les serveurs web et gérer les transferts de données de manière flexible.

PreviousLinux et ses distributionsNextGestion des paquets

Last updated 6 months ago

Was this helpful?

Page cover image