New Page
đ Commandes en ligne de commande
RĂ©fĂ©rence personnelle â Linux, macOS, Windows
đ Linux & macOS
đ Fichiers & Texte
nano +25 fichier
Ouvre un fichier dans l'éditeur nano directement à la ligne 25.
nano +25 /etc/hosts
tar -czvf archive.tar.gz dossier/
Crée une archive compressée gzip. Options : c = créer, z = compression gzip, v = verbose (affiche les fichiers), f = nom du fichier de sortie.
tar -czvf backup.tar.gz /home/user/documents/
tar -xzvf archive.tar.gz -C /chemin/
Extrait une archive .tar.gz. Sans z pour les .tar non compressés. -C spécifie le dossier de destination.
tar -xzvf backup.tar.gz -C /tmp/restore/
tar -xvf backup.tar -C /tmp/restore/ # sans compression
gzip -d fichier.gz
Décompresse un fichier .gz.
gzip -d archive.gz
zip -r archive.zip dossier/
Crée une archive ZIP. -r = récursif (inclut les sous-dossiers).
zip -r projet.zip ./mon_projet/
unzip archive.zip
Extrait une archive ZIP.
unzip projet.zip
unzip projet.zip -d /destination/ # vers un dossier spécifique
tail -n 10 fichier
Affiche les 10 derniĂšres lignes d'un fichier.
tail -n 10 /var/log/syslog
tail -f fichier
Suit un fichier en temps rĂ©el â idĂ©al pour surveiller des logs.
tail -f /var/log/nginx/access.log
du -sh dossier/
Affiche la taille d'un dossier. s = somme totale (pas détail), h = format lisible (Ko, Mo, Go).
du -sh /home/user/
du -sh /* # taille de chaque dossier racine
chmod +x fichier
Rend un fichier exécutable.
chmod +x script.sh
./script.sh # on peut maintenant l'exécuter
>> fichier
Redirige et ajoute la sortie à la fin d'un fichier, sans écraser le contenu existant.
echo "nouvelle ligne" >> journal.txt
ls -la >> liste_fichiers.txt
# Différence :
echo "test" > fichier.txt # écrase le fichier
echo "test" >> fichier.txt # ajoute Ă la fin
find chemin -type d -iname "*mot*"
Recherche des dossiers dont le nom contient "mot". -i = insensible Ă la casse.
find /home -type d -iname "*projet*"
find chemin -type f -iname "*mot*"
Recherche des fichiers dont le nom contient "mot".
find / -type f -iname "*.conf"
find . -type f -iname "*.log" # dans le dossier courant
grep -i "terme" fichier
Recherche un terme dans un fichier, insensible Ă la casse.
grep -i "error" /var/log/syslog
grep -i "failed" auth.log
grep -ci "terme" fichier
Compte le nombre de lignes contenant le terme (insensible Ă la casse).
grep -ci "error" /var/log/syslog
# Affiche : 42
ls | wc -l
Compte le nombre d'éléments dans le dossier courant. wc -l = word count, lignes.
ls | wc -l
# Affiche : 17
shutdown -h now
Ăteint immĂ©diatement la machine. -h = halt (arrĂȘt complet).
shutdown -h now # éteindre maintenant
shutdown -r now # redémarrer maintenant
shutdown -h +10 # éteindre dans 10 minutes
uname -a
Affiche les informations complĂštes sur le noyau et le systĂšme.
uname -a
# Linux hostname 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
đ RĂ©seau
scp -P port source@serveur:chemin destination
Copie un fichier via SSH entre deux machines. -P pour spécifier le port SSH.
# Télécharger depuis un serveur :
scp -P 22 user@192.168.1.10:/home/user/fichier.txt ./local/
# Envoyer vers un serveur :
scp -P 22 ./local/fichier.txt user@192.168.1.10:/home/user/
nmap -P0 -sS -p port ip
Scanner de ports réseau. -P0 = pas de ping préalable, -sS = scan SYN (semi-furtif), -p = port(s) ciblé(s).
nmap -P0 -sS -p 80,443 192.168.1.1
nmap -P0 -sS -p 1-1000 192.168.1.1 # plage de ports
nmap -P0 -sS 192.168.1.0/24 # scan d'un réseau entier
â ïž Ă utiliser uniquement sur des rĂ©seaux dont vous ĂȘtes responsable.
curl https://ipinfo.io/8.8.8.8
Obtient des informations sur une adresse IP (localisation, FAI, ASNâŠ).
curl https://ipinfo.io/8.8.8.8
# {"ip":"8.8.8.8","hostname":"dns.google","city":"Mountain View",...}
ssh-keygen -t rsa
GénÚre une paire de clés SSH (privée + publique) en RSA.
ssh-keygen -t rsa -b 4096 -C "mon@email.com"
# CrĂ©e : ~/.ssh/id_rsa (clĂ© privĂ©e â ne jamais partager)
# ~/.ssh/id_rsa.pub (clĂ© publique â Ă copier sur le serveur)
ssh-copy-id user@serveur
Copie la clé publique sur un serveur pour se connecter sans mot de passe.
ssh-copy-id user@192.168.1.10
# Ou avec une clé spécifique :
ssh-copy-id -i ~/.ssh/ma_cle.pub user@192.168.1.10
eval "$(ssh-agent -s)" + ssh-add /chemin/cle
Lance l'agent SSH en mémoire et charge une clé privée. à ajouter dans ~/.zshrc pour que cela soit automatique à chaque terminal.
# Ă ajouter dans ~/.zshrc :
eval "$(ssh-agent -s)"
ssh-add /chemin/vers/ma_cle_privee
Config SSH â ~/.ssh/config
Fichier de raccourcis SSH : permet de se connecter par un alias simple.
Host monserveur
HostName hostname.com
User monuser
IdentityFile /chemin/vers/ma_cle_privee
# Au lieu de : ssh -i /chemin/cle monuser@hostname.com
# On tape simplement :
ssh monserveur
python -m http.server 8080
Lance un serveur HTTP minimal sur le port 8080, servant le dossier courant. Pratique pour partager des fichiers localement.
cd /var/www/
python -m http.server 8080
# Accessible sur http://localhost:8080 ou http://IP_machine:8080
openssl aes-256-cbc -a --in fichier --out fichier.enc
Chiffre un fichier avec AES-256 (demande un mot de passe). -a = encodage base64 pour un fichier texte lisible.
openssl aes-256-cbc -a --in secret.txt --out secret.enc
openssl aes-256-cbc -d -a --in fichier.enc --out fichier
Déchiffre un fichier. -d = decrypt.
openssl aes-256-cbc -d -a --in secret.enc --out secret.txt
# Variante avec md5 (pour des clés générées avec certains outils) :
openssl enc -aes-256-cbc -d -md md5 -in id_rsa.enc -out id_rsa
masscan -p 1-65535,U:1-65535 cible --rate=10000
Scanner de ports trĂšs rapide sur tous les ports TCP et UDP. Bien plus rapide que nmap pour du scanning massif.
masscan -p 1-65535,U:1-65535 192.168.1.0/24 --rate=10000
â ïž Ă utiliser uniquement sur des rĂ©seaux dont vous ĂȘtes responsable.
nmap --script=mysql-brute -p 3306 IP
Tente une attaque par dictionnaire sur un service MySQL via les scripts NSE de nmap.
nmap --script=mysql-brute -p 3306 192.168.1.100
â ïž Ă utiliser uniquement dans un cadre lĂ©gal (pentest autorisĂ©, CTF, lab perso).
Scan réseau + filtre port ouvert (boucle bash) Détecte tous les hÎtes actifs sur le réseau, puis filtre ceux avec le port 80 ouvert.
for ip in $(nmap -n -sn 192.168.1.0/24 -oG - | awk '/Up$/{print $2}'); do
nmap -p 80 $ip | grep open > /dev/null
if [[ $? -eq 0 ]]; then echo $ip; fi
done
đŸ Stockage
sudo dd if=image.iso of=/dev/diskX
Copie bit-à -bit une image ISO sur un disque (création de clé USB bootable).
sudo dd if=/chemin/image.iso of=/dev/disk4 bs=4m status=progress
â ïž VĂ©rifier deux fois le bon disque cible â dd Ă©crase sans confirmation.
đ§ Linux uniquement
đ Informations systĂšme
free -h
Affiche l'utilisation de la RAM et du swap. -h = format lisible (Go, Mo).
free -h
# total used free shared buff/cache available
# Mem: 15Gi 4.2Gi 8.1Gi 312Mi 2.7Gi 10Gi
# Swap: 2.0Gi 0Bi 2.0Gi
lsblk
Liste tous les pĂ©riphĂ©riques de blocs (disques, partitions, clĂ©s USBâŠ) sous forme d'arborescence.
lsblk
# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
# sda 8:0 0 500G 0 disk
# ââsda1 8:1 0 499G 0 part /
# ââsda2 8:2 0 1G 0 part [SWAP]
# sdb 8:16 1 16G 0 disk
# ââsdb1 8:17 1 16G 0 part /media/usb
lscpu
Affiche les informations dĂ©taillĂ©es sur le processeur (architecture, nombre de cĆurs, frĂ©quenceâŠ).
lscpu
# Architecture: x86_64
# CPU(s): 8
# ModĂšle: Intel(R) Core(TM) i7-...
# Fréquence max: 4200 MHz
htop
Moniteur de processus interactif â version amĂ©liorĂ©e de top. Affiche CPU, RAM, processus en temps rĂ©el.
htop
# Raccourcis dans htop :
# F9 = envoyer un signal (kill)
# F6 = trier
# q = quitter
uptime -p
Affiche depuis combien de temps le systĂšme tourne, en format lisible.
uptime -p
# up 2 days, 3 hours, 41 minutes
lsb_release -a
Affiche la version de la distribution Linux (Debian, Ubuntu, etc.).
lsb_release -a
# Distributor ID: Ubuntu
# Description: Ubuntu 22.04.3 LTS
# Release: 22.04
# Codename: jammy
đ RĂ©seau Linux
ip addr add xx.xx.xx.xx/24 dev eth0
Assigne une adresse IP à une interface réseau (temporaire, perdu au redémarrage).
ip addr add 192.168.1.50/24 dev eth0
ip addr show eth0 # vérifier
ip route add 192.168.30.0/24 via 192.168.7.1
Ajoute une route statique. Pour la rendre permanente dans /etc/network/interfaces, utiliser le préfixe up :
# Commande temporaire :
ip route add 192.168.30.0/24 via 192.168.7.1
# Dans /etc/network/interfaces (permanente) :
up ip route add 192.168.30.0/24 via 192.168.7.1
# Vérifier la table de routage :
ip route show
sudo dhclient -r
LibĂšre l'adresse IP obtenue par DHCP.
sudo dhclient -r # libĂšre l'IP
sudo dhclient eth0 # demande une nouvelle IP
Ăquivalents Windows :
ipconfig /releaseetipconfig /renew
nano /etc/resolv.conf
Modifie manuellement les serveurs DNS du systĂšme. Le fichier contient une liste de serveurs DNS.
nameserver 192.168.1.1 # DNS local (box/routeur)
nameserver 8.8.8.8 # DNS Google
Configuration rĂ©seau statique â /etc/network/interfaces
Assigne une IP fixe à une interface réseau de façon permanente (Debian/Ubuntu).
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
arp-scan --localnet / arp-scan -I eth0 -l
DĂ©couvre tous les hĂŽtes actifs sur le rĂ©seau local via requĂȘtes ARP. Affiche IP + adresse MAC.
sudo arp-scan --localnet
sudo arp-scan -I eth0 -l
# 192.168.1.1 aa:bb:cc:dd:ee:ff Routeur
# 192.168.1.10 11:22:33:44:55:66 Unknown
đŸ Stockage Linux
shred -n 5 -vz /dev/sda
Efface définitivement un disque entier (écrase avec des données aléatoires). -n 5 = 5 passes, -z = passe finale en zéros, -v = verbose.
sudo shred -n 5 -vz /dev/sda
â ïž IrrĂ©versible â vĂ©rifier le bon disque avec
lsblkavant.
sudo hwclock --hctosys
Synchronise l'horloge logicielle du systÚme depuis l'horloge matérielle (RTC/BIOS). Utile aprÚs une installation ou un décalage d'heure.
sudo hwclock --hctosys
# hc = hardware clock â sys = system clock
đŠ Gestion des paquets (Debian/Ubuntu)
Routine complĂšte de mise Ă jour du systĂšme :
sudo apt update # rafraĂźchit la liste des paquets disponibles
sudo apt upgrade # met à jour les paquets installés
sudo apt dist-upgrade # mise à jour en gérant les changements de dépendances
sudo apt autoremove # supprime les paquets devenus inutiles
sudo reboot # redémarre
đ€ Utilisateurs & Permissions
Ajouter un utilisateur au groupe sudo :
apt install sudo
adduser nom_utilisateur sudo
reboot
Fichier sudoers (/etc/sudoers â Ă©diter via visudo) :
# Donner tous les droits Ă root :
root ALL = (ALL) ALL
# Permettre au groupe admin d'utiliser sudo sans mot de passe :
%admin ALL = (ALL) NOPASSWD: ALL
đ„ïž Bureau GNOME
sudo dconf reset -f /
RĂ©initialise tous les paramĂštres GNOME (thĂšme, raccourcis, extensionsâŠ) aux valeurs par dĂ©faut.
sudo dconf reset -f /
sudo reboot
đĄ curlFtpFs
Monte un serveur FTP comme un dossier local via FUSE. Permet de naviguer dans un FTP comme dans un dossier normal.
curlftpfs ftp://user:password@serveur.com /point/de/montage/
ls /point/de/montage/ # naviguer dans le FTP
# Démonter :
fusermount -u /point/de/montage/
đ macOS uniquement
đ SĂ©curitĂ© & WiFi
security find-generic-password -wa "NomDuWifi"
Affiche le mot de passe d'un réseau WiFi enregistré dans le Trousseau macOS.
security find-generic-password -wa "MonWifi"
# Demande le mot de passe admin pour autoriser l'accĂšs
đŸ Gestion des disques â diskutil
Créer une clé USB bootable :
diskutil list # repérer le disque (ex: /dev/disk2)
diskutil unmountDisk /dev/disk2 # démonter avant écriture
sudo dd if=/chemin/image.iso of=/dev/disk2 bs=1m # écrire l'image
diskutil eject /dev/disk2 # éjecter proprement
Formater une clé USB en exFAT :
diskutil eraseDisk exFat USB /dev/disk2
# Syntaxe : diskutil eraseDisk FORMAT NOM_VOLUME DISQUE
đ RĂ©seau macOS
route -n get default (ou netstat -rn)
Affiche la passerelle par défaut et la table de routage.
route -n get default
# router: 192.168.1.1
netstat -rn # table de routage complĂšte
sudo ifconfig en0 alias 192.168.7.99/24
Ajoute une IP secondaire (alias) Ă l'interface en0. Permet d'avoir plusieurs IPs sur la mĂȘme interface.
sudo ifconfig en0 alias 192.168.7.99/24
# Syntaxe alternative avec netmask explicite :
sudo ifconfig en0 alias 192.168.8.245 netmask 255.255.255.0
sudo ifconfig en0 -alias 192.168.7.99
Supprime un alias IP de l'interface en0.
sudo ifconfig en0 -alias 192.168.7.99
sudo ifconfig en0 -alias 192.168.8.245
⥠Utilitaires macOS
caffeinate
EmpĂȘche le Mac de se mettre en veille tant que la commande est active.
caffeinate # jusqu'Ă Ctrl+C
caffeinate -t 3600 # pendant 1 heure (en secondes)
caffeinate -i mon_script.sh # pendant l'exécution d'un script
đȘ Windows uniquement
đ RĂ©seau Windows
netsh wlan show profile name="NomWifi" key=clear
Affiche les détails d'un profil WiFi enregistré, y compris le mot de passe en clair.
netsh wlan show profile name="MonWifi" key=clear
REM Chercher la ligne "Contenu de la clé" (ou "Key Content" en anglais)
ipconfig /displaydns
Affiche le cache DNS local de Windows (les domaines récemment résolus).
ipconfig /displaydns
ipconfig /flushdns REM vider le cache DNS
ipconfig /release / ipconfig /renew
LibĂšre et renouvelle l'adresse IP obtenue via DHCP.
ipconfig /release REM libĂšre l'IP (Linux : sudo dhclient -r)
ipconfig /renew REM demande une nouvelle IP (Linux : sudo dhclient)
âïž SystĂšme Windows
shutdown /s /t 0
Ăteint Windows immĂ©diatement. /s = shutdown, /t 0 = dĂ©lai de 0 seconde.
shutdown /s /t 0 REM éteindre
shutdown /r /t 0 REM redémarrer
shutdown /a REM annuler un arrĂȘt planifiĂ©