Vous trouverez ici une pléthore de commandes diverses et variées.
Génération d'une clé privée et publique SSH :
[user@local ~]$ ssh-keygen -t rsa -b 4096 -C "mail@domain.com" -f ~/.ssh/id_rsa
Envoi d'une clé publique sur un serveur distant :
[user@local ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@ip
Génération d'un certificat auto signé OpenSSL :
[user@local ~]$ openssl genrsa -aes256 -out ssl.key 4096
[user@local ~]$ openssl rsa -in ssl.key -out ssl.key
[user@local ~]$ openssl req -sha1 -nodes -new -key ssl.key -out ssl.csr
Récupérer un CUE à partir d'un MKA :
[user@local ~]$ mkvextract tracks fichier.mka 1:cdda.flac
[user@local ~]$ mkvextract cuesheet fichier.mka --redirect-output cdda.cue
Couper un FLAC à partir du CUE :
[user@local ~]$ cuebreakpoints cdda.cue | shnsplit -o flac cdda.flac
Création d'un utilisateur :
[root@local ~]# useradd -m -s /bin/bash monuser
[root@local ~]# passwd monuser
[root@local ~]# usermod -G users,audio,optical,lp,scanner,log,power,floppy,storage,video,network,wheel monuser
Ajouter un utilisateur à un groupe :
[root@local ~]# usermod -G -a GROUPNAME USERNAME
Antidater un fichier :
[user@local ~]$ touch -t 197001010000.00 monfichier.ext
Format : [[CC]YY]MMDDhhmm[.ss] (dans mon exemple le 1er janvier 1970 à 00h00m00s)
Effacer les données d'un disque dur de manière définitive et irrécupérable :
5 passes avec la commande shred :
[root@local ~]# shred -zvn5 /dev/sdX
1 passe avec la commande dd ou dcfldd :
[root@local ~]# dd if=/dev/urandom of=/dev/sdX bs=512 conv=notrunc
[root@local ~]# dcfldd if=/dev/urandom of=/dev/sdX bs=512 conv=notrunc
5 passes avec la commande dd ou dcfldd :
[root@local ~]# for n in `seq 5`; do dd if=/dev/urandom of=/dev/sdX bs=512 conv=notrunc; done
[root@local ~]# for n in `seq 5`; do dcfldd if=/dev/urandom of=/dev/sdX bs=512 conv=notrunc; done
Comparer 2 fichiers avec vimdiff :
[user@local ~]$ vimdiff /path/to/file1 /path/to/file2
Raccourcis de vimdiff :
- do : (diff-obtain) applique la différence depuis l'autre fenêtre vers la courante
- dp : (diff-put) applique la différence depuis la fenêtre courante vers l'autre
- ]c : passe à la prochaine différence
- [c : passe à la précédente différence
- ctrl+w w : passe d'une fenêtre à l'autre
- ctrl+w c : Fermer la fenêtre courante
- ctrl+w o : Fermer toutes les autres fenêtres
Test du temps de réponse d'un serveur DNS :
[user@local ~]$ dig @ipdns tetsumaki.net | grep time
Sous CentOS : liste les problèmes de dépendances :
[root@local ~]# packages-cleanup -problems
Sous CentOS : suppression des paquets dupliqués :
[root@local ~]# packages-cleanup -cleandupes
Sous CentOS : lister les paquets orphelins :
[root@local ~]# packages-cleanup -orphans
Renommer des JPEG en masse en se basant sur l'exif au format par défaut de exiv2 %Y%m%d_%H%M%S :
[user@local images]$ find . -iname '*.jpg' -exec exiv2 rename '{}' \;
Compresser des données avec pour destination un chemin SSH :
[user@local ~]$ tar zcf - dossier1/ dossier2/ fichier1 | ssh user@server "cat > /path/to/archiv.tar.gz"
Décompresser des données avec pour source un chemin SSH :
[user@local ~]$ ssh user@server "cat /path/to/archiv.tar.gz" | tar zxf -
Génération de toutes les IPv4 en /8 :
[user@local ~]$ for A in $(seq 1 254); do echo "$A.0.0.0/8"; done
Génération de toutes les IPv4 en /16 :
[user@local ~]$ for A in $(seq 1 254); do for B in $(seq 1 254); do echo "$A.$B.0.0/16 "; done; done
Tester si le port 22 est ouvert sur l'intégralité des IPv4 avec curl :
[user@local ~]$ PORT=22
[user@local ~]$ for A in $(seq 1 254); do for B in $(seq 1 254); do for C in $(seq 1 254); do for D in $(seq 1 254); do if [ -n "$(curl -s $A:$B:$C:$D:$PORT )" ]; then echo "Open: $A:$B:$C:$D:$PORT"; fi; done; done; done; done
Renommer tous les fichiers E6* en E7* dans tous les répertoires ???/script/ :
[user@local test]$ tree
.
├── AAA
│ └── script
│ └── E6TATA
├── BBB
│ └── script
│ └── E6TOTO
└── CCC
└── script
└── E6TUTU
[user@local test]$ rename E6 E7 ???/script/E6*
[user@local test]$ tree
.
├── AAA
│ └── script
│ └── E7TATA
├── BBB
│ └── script
│ └── E7TOTO
└── CCC
└── script
└── E7TUTU
Modifier en masse l'URL d'un tracker avec transmission-edit :
[user@local ~]$ transmission-edit -r tracker.xthor.to xbt.xthor.tk *.torrent
Télécharger un fichier sur arte.tv avec youtube-dl :
[user@local ~]$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' --output "%(title)s.%(ext)s" https://www.arte.tv/fr/videos/083310-000-A/tous-surveilles-7-milliards-de-suspects/