Table des matières
Commandes Unix usuelles
Commande | Fonction | Usage | Source |
---|---|---|---|
ls -lhS | Lister le fichiers en les triant du plus au moins volumineux | ls -lSh /mondossier | |
Ncdu | Voir l'utilisation du disque | ncdu / –exclude /mondossier | ncdu |
Sort | Trier les lignes d'un flux de données textes | sort test.txt | sort |
Tee | Écrit ce qu'elle reçoit dans sur la sortie standard et dans un/des fichiers | ls Musique | tee test.txt | |
Uniq | Affiche les lignes d'un texte en supprimant les multiples occurrences consécutives | sort test.txt | uniq | tee test.txt | Man Uniq |
Curl
Option | Fonction | Usage | Source/Note |
---|---|---|---|
-D | Stocker les headers dans un fichier | curl -D headers.txt example.org | Possibilité de ne pas les stocker dans un fichier et les afficher dans stdout avec -D- |
-I (i majuscule) | Ne retourner que le code de statut HTTP et non le code HTML de la page | ||
-k | Poursuit la connexion malgré https non certifié ou avec certificat auto-signé | ||
-L | Suivre les redirections | ||
-v | Mode verbeux |
Exemples
- Se connecter en SFTP avec une clé SSH et sans mot de passe :
curl -k -v -u mysuser: --key path/ssh/privatekey sftp://example.net
- Se connecter en SFTP avec un mot de passe et sans clé SSH :
curl -v --insecure sftp://USER:PASSWORD@example.net
- Ecrire de la données dans un cluster Elasticsearch :
curl -X POST -u elastic:password_elastic "https://elastic.org:9200/my_index/_doc/" -H 'Content-Type: application/json' -d '{ "title": "Elasticsearch Basics", "author": "John Doe IV", "published_year": 2025 }'
- Demander au serveur de répondre sans utiliser le cache (no-cache) et de ne pas stocker dans son cache la requête et sa réponse (no-store) :
curl -H 'Cache-Control: no-cache, no-store' http://example.org
Infos complémentaires : https://everything.curl.dev/usingcurl/scpsftp
Find
- Compter le nombre de fichiers du répertoire courant :
find . -maxdepth 1 -type f | wc -l
- Compter le nombre de fichiers pdf dans le répertoire courant et ses sous-répertoires :
find . -type f -iname "*.pdf" | wc -l
Grep
Option | Fonction | Usage | Source/Note |
---|---|---|---|
-o | Récupérer uniquement le contenu matchant avec le pattern | grep -o “dossier\_.*\.pdf” maliste.txt | |
-n | Afficher le numéro de ligne | grep -n “pattern” maliste.txt | |
-r | Chercher de manière récursive | grep -r “pattern” mondossier | |
-i | Insensibilité à la casse | ||
–exclude-dir | exclure une répertoire de la zone de recherche | grep -nri hosts1 –exclude-dir=.git . |
Exemples
- Chercher un pattern dans tous les fichiers d'un répertoire de manière récursive sans être sensible à la casse et en affichant le numéro de ligne :
grep -nri 'mon pattern' mon_repertoire/*
- Chercher les erreur 400, 401 403 ou 404 dans des logs Nginx :
egrep -nr "\s(400|401|403|404)\s" /var/log/nginx/access.log
pigz
Fonctionne comme gzip mais en utilisant tous les cœurs du serveur. Exemple :
pigz monfichier.img
Plus d'infos sur la compression en multithreading : https://www.linuxtricks.fr/wiki/compresser-en-multithreading-sous-linux-gzip-pigz-bzip2-lbzip2
Sed
Fonctions nombreuses mais peut notamment servir à faire de la substitution de chaînes de caractères dans des fichiers. Remplacer tous occurrences de “Mulder” par “Mulder&Scully” dans tous les fichiers .txt :
sed -i 's/Mulder/Mulder\&Scully/' *.txt
Suppression
La fonction de suppression d
supprime les lignes comprises dans un intervalle donné.
Syntaxe :
sed <commande_sed>d <fichier_à_traiter>
Exemple :
Supprimer les lignes 2 à 4
du <fichier> :
sed -i "2,4d" test1.txt
On peut utiliser les expressions régulières:
sed -i "/toto/d" test1.txt
Si, à l'inverse, on ne veut pas effacer les lignes contenant la chaîne toto (toutes les autres sont supprimées), on tapera:
sed -i "/toto/!d" test1.txt
Appliquer une substitution à tous les sous-dossiers et fichiers d'un dossier :
find <mondir> -type f -exec sed -i 's/Mulder/Scully/g' {} +
Source : https://debian-facile.org/doc:systeme:sed - Licence GNU-GPLv2
Tar
Option | Fonction | Usage | Source/Note |
---|---|---|---|
-C | Extraire dans un dossier précis | tar -xzvf archive.tgz -C dossier/destination | |
–strip-components=1 | Extraire tous les fichier sans le dossier de l'archive | tar -xzvf archive.tgz –strip-components=1 | Bien mettre le nom de l'archive avant l'option –strip-components |
Tcpdump
Option | Fonction | Usage | Source/Note |
---|---|---|---|
-i | Filtrer sur une interface particulière | tcpdump -i wlan0 | |
-n | Ne pas résoudre les fqdn | tcpdump -i wlan0 -n | |
host | Filtrer sur les paquet en provenant ou à destination d'un hôte | tcpdump host 192.168.1.66 | |
net | Filtrer sur un réseau | tcpdump net 192.168.1.0/24 | Possibilité de filtrer sur tous les réseaux sauf celui mentionné avec 'not' |
port | Filtrer sur un port | tcpdump -i wlan0 port 22 |
Combinaison
Il est possible de combiner plusieurs règles de filtrage à l'aide d'opérateurs logiques :
- AND ou &&
- OR ou ||
- not ou !
Ne voir que les paquets en provenance de l'hôte 192.168.66.12 sur le port 22 :
tcpdump src 192.168.66.12 and port 22
Voir tous les paquets en provenance de réseaux autre que 192.168.1.0/24 :
tcpdump src net not 192.168.1.0/24
Source : https://www.malekal.com/tcpdump-capturer-des-paquets-reseaux-sur-linux/
Divers
- Créer un dossier et se placer direct dedans :
mkdir nouveaudossier && cd $_
- Créer et gérer des processus en arrière-plan : https://www.thegeekstuff.com/2010/05/unix-background-job/
- Générer un fichier de 100MB de données aléatoires :
head -c 100M /dev/urandom > 100MB.dat
- Supprimer l'apparition de logs en output dans la console :
sudo dmesg -n 1
Plus d'infos : https://askubuntu.com/questions/97256/how-do-i-disable-messages-or-logging-from-printing-on-the-console-virtual-termin