Skip to main content

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 /release et ipconfig /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 lsblk avant.


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Ă©