
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).
pwdls : Liste les fichiers et dossiers dans le répertoire courant.
lsls -t : Trie les fichiers par date de modification, du plus récent au plus ancien.
ls -tls -S : Trie les fichiers par taille, du plus grand au plus petit.
ls -Sls -l : Affiche les détails de chaque fichier (permissions, propriétaire, taille, date).
ls -lls -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 -als -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 :
Détails de la sortie :
drwxr-xr-x: Représente les permissions. Le premier caractèredindique 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épertoirerwx: 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_fileest 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é.
Exemple : Change de répertoire vers /home/utilisateur.
Astuce : cd .. te fait remonter d’un répertoire.
cp [source] [destination] : Copie des fichiers ou des dossiers.
Exemple : Copie fichier1.txt vers fichier2.txt.
cp -r : Copie un dossier récursivement (avec son contenu).
mv [source] [destination] : Déplace ou renomme des fichiers ou des dossiers.
Exemple : Déplace un fichier.
Pour renommer un fichier : mv ancien_nom.txt nouveau_nom.txt.
rm [fichier] : Supprime des fichiers.
Exemple : Supprime le fichier spécifié.
rm -r : Supprime un dossier et son contenu récursivement.
Attention : Cette action est irréversible.
2. Commandes pour la gestion des fichiers
cat [fichier] : Affiche le contenu d'un fichier dans le terminal.
touch [fichier] : Crée un fichier vide ou modifie la date de dernier accès du fichier.
mkdir [nom_dossier] : Crée un nouveau répertoire.
mkdir -p [chemin] : Crée un répertoire ainsi que tous les sous-répertoires nécessaires dans le chemin spécifié.
Exemple : Crée un répertoire et tous les sous-répertoires nécessaires.
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.
3. Commandes pour la gestion des droits
3.1 chmod
chmodchmod [permissions] [fichier] : Change les permissions d’un fichier ou dossier.
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.
Explication :
= lecture (4) + écriture (2) + exécution (1),
= lecture (4) + exécution (1).
Mode symbolique
Utilise des lettres pour représenter les utilisateurs et les permissions.
u: utilisateur (propriétaire)g: groupeo: autresa: tous (utilisateur, groupe et autres)r: lecturew: écriturex: exécution
Exemple
3.2 chown
chownchown [utilisateur]:[groupe] [fichier] : Change le propriétaire d’un fichier ou dossier.
Exemple : Change le propriétaire d'un fichier.
Exemple : Change le propriétaire et le groupe d'un fichier.
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
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 :
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 :
4. Commandes de gestion des processus
ps : Affiche les processus en cours.
top : Affiche en temps réel les processus actifs, ainsi que leur utilisation des ressources.
kill [PID] : Termine un processus spécifié par son PID (Process ID).
Exemple :
pour terminer le processus ayant le PID 1234.
Pour forcer l'arrêt :
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.
Cette commande peut également être utilisée pour écouter un port sur votre machine :
ip route show : Affiche la table de routage actuelle du système.
ip route add default via [adresse_gw] : Définit une passerelle par défaut pour le routage du trafic sortant.
Pour supprimer une passerelle par défaut existante, utilisez :
ping [adresse] : Vérifie la connectivité réseau vers un hôte en envoyant des paquets ICMP.
ip a : Affiche les interfaces réseau et leurs configurations ( adresse IP, masque, etc,)
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.
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.
nslookup [domaine] : Interroge un serveur DNS pour obtenir l’adresse IP d’un domaine.
6. Manipulation des fichiers compressés
tar -czvf archive.tar.gz /chemin/dossier : Compresse un dossier en une archive .tar.gz.
-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.
Décompression avec
unzip:unzip [archive.zip] : Permet d'extraire le contenu d'un fichier ZIP.
Cette commande va décompresser le fichier
archive.zipdans le répertoire courant.Pour extraire vers un répertoire spécifique, on peut utiliser l'option -d :
Compression avec
zip:zip [archive.zip] [fichiers] : Crée un fichier ZIP à partir de fichiers ou de répertoires spécifiés.
Cette commande va créer un fichier ZIP nommé
archive.zipcontenantfichier1.txtetfichier2.txt.Pour zipper un dossier entier, on utilise l'option -r :
7. Utilisation de su et sudo
su et sudosu [utilisateur] : Permet de se connecter en tant qu’autre utilisateur (par défaut root). Il demande le mot de passe de l'utilisateur cible.
Exemple :
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.
Exemple :
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
dudu -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 :
En utilisant du -h dans ce dossier, vous verrez la taille de chaque sous-dossier, y compris ceux imbriqués :
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 :
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).
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 :
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
dfdf -h
But : Afficher l'espace disque utilisé et disponible pour chaque système de fichiers, avec des unités lisibles (Go, Mo).
3. Utilisation de lsblk
lsblklsblk
But : Afficher une arborescence des périphériques de stockage, leurs partitions, et points de montage.
4. Utilisation de mount et umount
mount et umountmount
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.
umount
But : Démonter un périphérique, le rendant inaccessible depuis le système.
5. Utilisation de blkid
blkidBut : 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).
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 :
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,
ext4pour Linux.Options de montage : Ici
defaults(lecture/écriture, auto, etc.), mais plusieurs options sont possibles, commeropour 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.
0signifie sans vérification,1pour la racine, et2pour 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
curl et wgetLes 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
curlcurl 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 :
Explication : Télécharge fichier.txt dans le répertoire courant en conservant son nom d'origine.
Explication : Télécharge fichier.txt et le renomme en monfichier.txt.
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
2. wget
wgetwget 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 :
Explication : Télécharge fichier.txt dans le répertoire courant avec son nom original.
Explication : Télécharge fichier.txt et le renomme en monfichier.txt.
Explication : Reprend le téléchargement de fichier.txt s’il a été interrompu.
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.
10. OpenSSL
OpenSSL est un outil en ligne de commande (et une bibliothèque) qui permet, entre autres :
de générer des clés privées / publiques, paramètres cryptographiques.
de créer, signer et gérer des certificats X.509 (pour TLS/SSL).
de chiffrer / déchiffrer des données, des fichiers ; faire des opérations de cryptographie symétrique ou asymétrique.
de générer des hachés (hashes), des condensés (digests), des codes d'authentification, signatures…
de tester des connexions SSL/TLS vers des serveurs (client SSL/TLS).
de convertir entre différents formats de certificats (PEM, DER, PKCS#12, etc.).
Bref — OpenSSL permet de faire presque tout ce qui touche à la cryptographie, certificats, SSL/TLS, chiffrement, clés, etc.
1. Commandes générales
📌 Version
📌 Liste globale des commandes
2. Génération de clés
Clé RSA 2048 bits
Clé RSA 4096 bits
Clé EC (Elliptic Curve)
3. Certificats & CSR
Créer une CSR + clé privée
Créer un certificat auto-signé (1 an)
Créer une CA (Certificate Authority) locale
Génère une clé CA puis un certificat CA auto-signé. Tu utiliseras ensuite cette CA pour signer d’autres certificats (serveur, client…).
Pour éviter les questions interactives, ajoute -subj "/C=FR/O=MonOrg/CN=Mon-CA" à la commande openssl req.
Signer un certificat avec une CA
1) Générer la clé + CSR du serveur
Pour TLS moderne, le SAN (Subject Alternative Name) est souvent obligatoire.
2) Signer la CSR (certificat serveur)
Sans SAN (simple) :
Avec SAN (recommandé) :
Pour que les clients fassent confiance au certificat signé, installe ca.crt dans leur magasin de confiance (trust store).
Lire un certificat
4. Conversion de certificats
PEM → DER
DER → PEM
PEM → PFX (PKCS#12)
5. Chiffrement de fichiers
Chiffrer
Déchiffrer
6. Hash & intégrité
SHA-256
SHA-512
7. openssl rand — Générer des données aléatoires
openssl rand — Générer des données aléatoires📌 Aléatoire en Base64 (très utilisé pour les mots de passe)
16 octets (≈ 24 caractères Base64)
32 octets (≈ 44 caractères Base64) – recommandé
64 octets (≈ 88 caractères Base64)
📌 Aléatoire en hexadécimal
📌 Aléatoire brut (binaire)
✔️ À quoi ça sert ?
génération de mots de passe forts
génération de clés symétriques (AES)
génération de tokens API
création de secrets pour scripts ou déploiements
8. openssl passwd — Générer des hashes de mot de passe
openssl passwd — Générer des hashes de mot de passeopenssl passwd génère un hash de mot de passe au format UNIX crypt(3), utilisé dans /etc/shadow.
📌 SHA-512 (recommandé)
📌 SHA-256
📌 MD5 (ancien, éviter)
📌 Demander le mot de passe sans le taper en clair
(puis tapez le mot de passe)
📌 Ajouter un sel personnalisé
✔️ Usage typique
scripts d’automatisation (Ansible, cloud-init, Docker…)
création d’entrées pour
/etc/shadowgénérer un mot de passe chiffré pour un utilisateur Linux
9. Diagnostic TLS
Tester une connexion HTTPS
Afficher uniquement le certificat serveur
10. Résumé rapide (cheat-sheet)
Mot de passe aléatoire
openssl rand -base64 32
Hash pour /etc/shadow
openssl passwd -6
Clé privée RSA
openssl genrsa -out key.pem 4096
CSR
openssl req -new -key key.pem -out req.csr
Certificat auto-signé
openssl req -x509 -new -key key.pem -out cert.pem -days 365
Créer une CA
openssl genrsa -out ca.key 4096 && openssl req -x509 -new -key ca.key -out ca.crt -days 3650 -sha256
Signer une CSR (CA)
openssl x509 -req -in req.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out cert.pem -days 825 -sha256
Chiffrer un fichier
openssl enc -aes-256-cbc -salt -in in.txt -out out.enc
Lire un certificat
openssl x509 -in cert.pem -text -noout
11. Redirections shell : stdout, stderr, /dev/null
Les redirections permettent de contrôler où vont la sortie normale (stdout) et les messages d'erreur (stderr) d'une commande.
Rappel des descripteurs de fichiers standards
0
stdin
Entrée standard (clavier, pipe…)
<
1
stdout
Sortie normale (résultat attendu)
> >>
2
stderr
Messages d'erreur et warnings
2>
Les redirections les plus utilisées
Cacher tout (sortie + erreurs)
commande > /dev/null 2>&1
Méthode classique – la plus répandue
Cacher tout (syntaxe bash/zsh moderne)
commande &> /dev/null
Plus court, très apprécié (bash 4+ et zsh)
Cacher uniquement les erreurs
commande 2>/dev/null
Garde la sortie normale visible sur le terminal
Fusionner erreurs dans la sortie normale
commande 2>&1
Très utile avec grep, tee, less, pipes en général
Envoyer la sortie normale vers le canal erreur
commande >&2 ou commande 1>&2
Rare, mais utile dans les scripts pour marquer une sortie comme erreur
Séparer proprement les deux flux
commande > output.log 2> errors.log
Idéal pour les logs séparés
Mémo ultra-rapide (à retenir pour toujours)
Last updated