Quelques commandes utiles

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/