jeudi 18 septembre 2014

Chercher/remplacer en ligne de commande à la vitesse de la lumière

J'ai eu récemment besoin de faire une recherche/remplacement sur des dizaines de phrases que je stockais dans mon presse-papier, une solution était d'utiliser simplement 'sed' mais il fallait pour cela coller la phrase sur le terminal puis copier la sortie, avec 'xclip' plus besoin de le faire, il faudra tout d'abord installer xclip:


Et voici une petite fonction à ajouter dans son .bashrc


Il suffit de lancer cette fonction (lui associer un raccourci clavier serait une formidable idée pour aller à la vitesse c) pendant que la phrase se trouve dans le presse-papier, par exemple pour modifier tout les "#" en "-" dans le presse-papier, il suffira de lancer:

lundi 15 septembre 2014

Obtenir le nom et prénom d'un numéro de téléphone inconnu en ligne de commande (merci à Facebook :-))

Il y a quelques mois j'ai signalé une faille (qui en est vraiment une) à Facebook concernant la possibilité pour un utilisateur d'internet lambda (non forcément membre de Facebook) d'obtenir le nom et prénom d'un utilisateur en connaissant simplement son numéro de téléphone, cela fait de Facebook une formidable source d'information même un annuaire en ligne hors du commun, fait remarquable, votre nom et prénom peuvent être affichés à quiconque même si vous avez défini votre numéro de téléphone comme confidentiel, entendez par là "vous seul pouvez le voir"... Apparemment non, toute la planète peur le lier à votre identité ;-), Facebook a considéré que ce n'était pas une faille et ne l'ont donc pas résolu. voici la fonction à ajouter à votre .bashrc:
function get_name {
    NUM="$@"
    echo $(wget -qO- --post-data="email=$1" "https://m.facebook.com/login/identify?ctx=recover") | tee -a .fb_log | grep -oP '<strong>(.*?)</strong>' | sed -e :a -e 's/<[^>]*>//g;/</N;//ba'
}
Utilisation:
get_name "+indicatifnuméro"

Générer un nombre aléatoire de longueur arbitraire en bash

Cette petite fonction à ajouter à votre .bashrc génère un nombre aléatoire de longueur spécifiée en premier argument (la longueur 1 ne marche pas!)
function random {
    LEN=$1
    MAX=$(printf '9%.0s' $(seq 1 ${LEN}))
    ((LEN--))
    MIN=1$(printf '0%.0s' $(seq 1 ${LEN}))
    shuf -i ${MIN}-${MAX} -n 1
}

Lister tout les noms de domaines d'une adresse IP (reverse IP lookup in CLI)

Cette fonction est à ajouter dans votre fichier .bashrc et prend en paramètre une adresse IP pour afficher la liste de tout les domaines s'y trouvant:
function get_domains {
    wget -qO- "http://domains.yougetsignal.com/domains.php" --post-data="remoteAddress=$1&key=&_=" | grep -oP "([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?"
}

Affectations multiples de variables en bash

Si vous voulez affecter plusieurs variables en une seule ligne de commande, utilisez read
read a b c <<<$(echo 1 2 3)
echo "$a | $b | $c"