Mettre à jour tous les dépot git d’un répertoire

Voici une petite astuce qui me permet de mettre à jour tous les dépots git d’un répertoire. Pratique quand on a plein de sous-dépot.   Shell # For use in a shell: # Download this file to /usr/local/bin/git-pull-recursive, then chmod 755 it to install git-pull-recursive find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull" \; 123 # For use in a shell:# Download this file to /usr/local/bin/git-pull-recursive, then chmod 755 it to install git-pull-recursivefind . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull" \;...

Read More

Steam ne se lance pas

Ce n’est pas un gros article, mais c’est un problème qui ‘arrive souvent après une MAJ de pilote graphique / steam, alors je poste la solution en tant qu’article qui fera office d’aide mémoire.   quand je lance steam, je reste bloqué avec ceci dans la console : Shell Running Steam on ubuntu 16.04 64-bit STEAM_RUNTIME is enabled automatically Installing breakpad exception handler for appid(steam)/version(0) libGL error: unable to load driver: nouveau_dri.so libGL error: driver pointer missing libGL error: failed to load driver: nouveau libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast 12345678 Running Steam on ubuntu 16.04 64-bitSTEAM_RUNTIME is enabled automaticallyInstalling breakpad exception handler for appid(steam)/version(0)libGL error: unable to load driver: nouveau_dri.solibGL error: driver pointer missinglibGL error: failed to load driver: nouveaulibGL error: unable to load driver: swrast_dri.solibGL error: failed to load driver: swrast c’est du a un conflit entre les lib de steam et celle du system. il faut supprimer celle de steam (qui sont outdated) pour utililiser celle du system : Shell find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete 12 find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -deletefind ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete...

Read More

Installer openCV 2.4.12 pour ubuntu et Qt5

Bonjour à tous,   après avoir pas mal galérer à installer openCV 2.4.12 sur ubuntu et le faire fonctionner avec ubuntu, j’ai décidé de partager mon retour d’expérience.   Installer les dépendances :   Shell # install dependencies sudo apt-get update sudo apt-get install -y build-essential g++ sudo apt-get install -y cmake git sudo apt-get install -y libgtk2.0-dev sudo apt-get install -y pkg-config sudo apt-get install -y python-numpy python-dev sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils 1234567891011 # install dependenciessudo apt-get updatesudo apt-get install -y build-essential g++sudo apt-get install -y cmake gitsudo apt-get install -y libgtk2.0-devsudo apt-get install -y pkg-configsudo apt-get install -y python-numpy python-devsudo apt-get install -y libavcodec-dev libavformat-dev libswscale-devsudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils   Ensuite récupérer openCV depuis git Shell mkdir -p ~/dev/ cd ~/dev git clone https://github.com/Itseez/opencv.git 123 mkdir -p ~/dev/cd ~/devgit clone https://github.com/Itseez/opencv.git   Maintenant compilons le tout   Shell cd opencv-2.4.12 mkdir release cd release # compile and install cmake -G "Unix Makefiles" -D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_FAT_JAVA_LIB=ON -D INSTALL_TO_MANGLED_PATHS=ON -D INSTALL_CREATE_DISTRIB=ON -D INSTALL_TESTS=ON -D ENABLE_FAST_MATH=ON -D WITH_IMAGEIO=ON -D BUILD_SHARED_LIBS=OFF -D WITH_GSTREAMER=ON .. make all -j4 # 4 cores sudo make install 12345678 cd opencv-2.4.12mkdir releasecd release # compile and installcmake -G "Unix Makefiles" -D CMAKE_CXX_COMPILER=/usr/bin/g++ CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_FAT_JAVA_LIB=ON -D INSTALL_TO_MANGLED_PATHS=ON -D INSTALL_CREATE_DISTRIB=ON -D INSTALL_TESTS=ON -D ENABLE_FAST_MATH=ON -D WITH_IMAGEIO=ON -D BUILD_SHARED_LIBS=OFF -D WITH_GSTREAMER=ON ..make all -j4 # 4 coressudo make install   dans le dossier /etc/ld.so.conf.d/ créer un fichier « opencv.conf » Et coller ceci dedans : /usr/local/lib Maintenant executer la commande sudo ldconfig   Maintenant ajoutons les dépendances dans notre projet QT (dans le fichier .pro )   Shell INCLUDEPATH += . INCLUDEPATH += /usr/local/include INCLUDEPATH += /usr/local/include/opencv INCLUDEPATH += /usr/local/include/opencv2 INCLUDEPATH += /usr/local/include/opencv2/core INCLUDEPATH += /usr/local/include/opencv2/highgui INCLUDEPATH += /usr/local/include/opencv2/imgproc...

Read More

Lire le format hevc avec vlc (Ubuntu)

Voici une petite astuce toute simple pour lire le format hevc avec vlc sous Ubuntu 14.04 . Lorsqe vous avez ce message avec VLC (désoler, mon VLC est en anglais) No suitable decoder module VLC does not support the audio or video format “hevc. Unfortunately there is no way for you to fix this. Le message d’erreur précédent surviens lorsque vous assez de lire une video dans VLC. Pour résoudre le problème vous devez installer libde265 qui est une implémentation open source d codec h.265. Shell sudo apt-add-repository ppa:strukturag/libde265 sudo apt-get update sudo apt-get install vlc-plugin-libde265 123 sudo apt-add-repository ppa:strukturag/libde265 sudo apt-get update sudo apt-get install vlc-plugin-libde265   Voila, maintenant la vidéo devrais...

Read More

Créer des boîtes de dialogues en Bash

Créer des boîtes de dialogues en Bash

Bonjour à tous, Aujourd’hui une petite astuce assez sympa pour apprendre à créer des programmes bash un petit plus « fancy » grâce à whiptail. Vous savez ces petites boîtes de dialogues que l’on peut retrouver dans ce genre d’exemple : Nous allons voir comment créer ce genre de boîtes de dialogues. Sans plus tarder nous allons rentrer dans le vif du sujet 1. La Message Box La prmière boîte de dialogue que nous allons voir est la message Box, elle permet d’afficher un petit message à l’écran. whiptail --title "<titre>" --msgbox "<message>" <height> <width> Pour afficher quelque chose qui ressemble à cela : voici le code source bash Shell #!/bin/bash whiptail --title "Titre Message Box" --msgbox "Utilisation de whiptail pour la creation d'un messageBox. Cliquer sur Ok pour continuer." 10 60 12 #!/bin/bashwhiptail --title "Titre  Message Box" --msgbox "Utilisation de whiptail pour la creation d'un messageBox. Cliquer sur Ok pour continuer." 10 60 2. Une boite de dialogue oui / non La deuxième boite de dialogue que nous allons voir est la yes/no, elle permet d’afficher un message de confirmation avant d’executer une action. whiptail --title "<titre>" --yesno "<text>" <height> <width>   Shell #!/bin/bash if (whiptail --title "Boite de dialogue Oui / Non" --yesno "Voudrais-tu m'épouser ?" 10 60) then echo "C'est le plus beau jour de ma vie" else echo "Nooooooon !!" fi 123456 #!/bin/bashif (whiptail --title "Boite de dialogue Oui / Non" --yesno "Voudrais-tu m'épouser ?" 10 60) then echo "C'est le plus beau jour de ma vie"else echo "Nooooooon !!"fi Si jamais vous pouvez personnalisé les réponses en précisant la valeur du bouton yes et no avec les attributs : --yes-button "valeur du oui" --no-button "valeur non" 3. Input La troisème boîte de dialogue est l’input box, elle permet à l’utilisateur de saisir une information. whiptail --title "<titre>" --inputbox "<texte>" <height> <width> <default-text> Shell #!/bin/bash Name=$(whiptail --title "Input" --inputbox "Quel est ton prénom ?" 10 60 Morgan 3>&1 1>&2 2>&3) exitstatus=$? if [ $exitstatus = 0 ]; then echo "Okay, ton prénom est :" $Name else echo "Tu as annuler... :-(" fi 123456789 #!/bin/bashName=$(whiptail --title "Input" --inputbox "Quel est ton prénom ?" 10 60 Morgan 3>&1 1>&2 2>&3) exitstatus=$?if [ $exitstatus = 0 ]; then    echo "Okay, ton prénom est :" $Nameelse    echo "Tu as annuler... :-("fi  Créer une password Box Comme sont nom l’indique, c’est rès utile lorsqu’on veux que l’utilisateur renseigne un mot de passe Shell whiptail --title...

Read More

Donner les permissions aux fichiers et dossiers – linux

Donner les permissions aux fichiers et dossiers – linux

Bonjour à tous, Aujourd’hui une toute petite astuce pour donnée les « bonnes » permissions pour les fichiers et dossiers. Souvent, les gens ne donnent pas les bonnes permissions pour les fichiers/dossiers. En effet, ce n’est pas très sûr de donnée les droits d’exécutions sur les fichiers. Habituellement, pour un site web, on donne le chmod 644 pour les fichiers et 755 pour les répertoires.   Shell # Donne le chmod 644 pour tout les fichiers dans le dossier "YOUR_DIR" find YOUR_DIR/ -type f -print0 | xargs -0 chmod 644 # Donne le chmod 755 pour tous les dossiers dans le répertoire YOUR_DIR find YOUR_DIR/ -type d -print0 | xargs -0 chmod 755 12345 # Donne le chmod 644 pour tout les fichiers dans le dossier "YOUR_DIR"find YOUR_DIR/ -type f -print0 | xargs -0 chmod 644     # Donne le chmod 755 pour tous les dossiers dans le répertoire YOUR_DIR find YOUR_DIR/ -type d -print0 | xargs -0 chmod 755...

Read More

Plus de son après une mise à jour ? [Ubuntu]

Plus de son après une mise à jour ? [Ubuntu]

Bonjour à tous, Aujourd’hui sur irc, j’ai eu quelqu’un qui s’est plaint de ne plus avoir de son avec firefox sur sont ubuntu 14.04 LTS après une mise à jour. Alors, c’était dû au fait que les drivers de la carte son ne s’était pas installé correctement. Rien de bien méchant, cette petite ligne de commande résout le problème : sudo apt-get --reinstall install build-essential linux-headers-`uname...

Read More

Comment faire pour que « apt-get upgrade » utilise moins de ressources ?

Comment faire pour que « apt-get upgrade » utilise moins de ressources ?

Bonjour à tous, Aujourd’hui je vous présente une petite astuce toute simple pour faire en sorte que la mise à jour consomme moins de ressources sous linux. Dans certain cas il peut s’avérer utile que la mise à jour consomme moins de ressource (pour les petites configuration). Par contre la procédure prendra plus de temps. Sur linux, il existe deux commandes très utile qui sont : nice :  permet de changer le niveau de priorité d’un processus déterminé. La priorité la plus élevée correspond à un niveau de -20, tandis que la plus basse correspond à +19 ionice : même chose que nice mais pour la vitesse de lecture/écriture sur le disque. ionice va de 0 à 7, où 0 est la valeur de priorité la plus élevé et 7 la plus faible Pour nice et ionice le principe d’utilisation est le même : nice -n <niceness> <command> niceness étant la valeur de la priorité Pour mettre à jour la priorité d’un processus, il existe la commande renice renice -n <niceness> -p <pid>   Pour lancer la mise à jour avec une faible priorité : Pour les système GNU/Linux basé sur debian : sudo nice -n 19 apt-get upgrade on peut facilement combiner nice et ionice : sudo ionice -n 7 nice -n 19 apt-get upgrade Pour les systèmes basé sous centOS / Fedora sudo ionice -n 7 nice -n 19 yum...

Read More

Récupérer les paroles d’une musique (.mp3, .m4a) et l’enregistrer sous Linux

Récupérer les paroles d’une musique (.mp3, .m4a) et l’enregistrer sous Linux

Bonjour à tous, aujourd’hui nous allons voir un petit script bash bien sympathique qui permet de récupérer tous les fichiers musicaux (.mp3, .m4a ou d’autres – il suffit de les ajouter dans le script-) et d’y ajouter les paroles des chansons. Tout d’abord, nous devons nous assuré de disposer de wget et eyed3 Si vous êtes sur une distribution basé sur debian (ubuntu, elementary os, linux mint, etc …) sudo apt-get install wget eyed3 Si vous êtes sur une distribution basé sur centOS / fedora : yum install python-eyed3 wget   Qu’est-ce que eyed3 ? eyed3 est un petit programme python qui permet de jouer les méta-data ID3 . Elle sont surtout utilisé avec les fichiers .mp3, elle peuvent contenir le nom de l’artiste, de l’album, de la musique et aussi les paroles ! L’idée va être d’extraire de ces méta-datas le nom de l’artiste ainsi que le nom de la chanson pour récupérer les paroles et les stockés dans ces méta-data. Voici un petit script shell qui permet de faire cela automatiquement. Placer-le dans un répertoire (par exemple /home/user/musique) et il se chargera de scruter toutes les musiques des répertoires et sous répertoire pour y mettre à jour les méta-data.   Shell #!/bin/bash _TPL='http://makeitpersonal.co/lyrics?artist=<artist>&title=<title>' _SRY="Desole, il n'y a pas encore de parole pour cette chanson." [ "$1" ] && _PATH="$1" || _PATH=$PWD cd $_PATH for _FILE in {*.mp3,*.m4a}; do if [[ -r $_FILE ]]; then _SONG=$(eyeD3 --no-color "$_FILE" | grep title) _ARTIST="${_SONG#*"artist: "}" _TITLE="${_SONG%"artist: "*}" _TITLE="${_TITLE#"title: "}" echo -n "$_ARTIST - $_TITLE" _ARTIST="${_ARTIST// /+}" _TITLE="${_TITLE// /+}" _URL="${_TPL//"<artist>"/$_ARTIST}" _URL="${_URL//"<title>"/$_TITLE}" _LYRICS=$(wget -qO- $_URL) if [ "$_LYRICS" != "$_SRY" ]; then eyeD3 --lyrics=eng:Lyrics:"$_LYRICS" "$_FILE" 1>/dev/null else echo "pas de paroles trouvé... next!" fi fi done cd $OLDPWD 1234567891011121314151617181920212223242526272829303132333435 #!/bin/bash _TPL='http://makeitpersonal.co/lyrics?artist=<artist>&title=<title>'_SRY="Desole, il n'y a pas encore de parole pour cette chanson." [ "$1" ] && _PATH="$1" || _PATH=$PWD cd $_PATH for _FILE in {*.mp3,*.m4a}; do    if [[ -r $_FILE ]]; then        _SONG=$(eyeD3 --no-color "$_FILE" | grep title)         _ARTIST="${_SONG#*"artist: "}"        _TITLE="${_SONG%"artist: "*}"        _TITLE="${_TITLE#"title: "}"         echo -n "$_ARTIST - $_TITLE"         _ARTIST="${_ARTIST// /+}"        _TITLE="${_TITLE// /+}"        _URL="${_TPL//"<artist>"/$_ARTIST}"        _URL="${_URL//"<title>"/$_TITLE}"         _LYRICS=$(wget -qO- $_URL)         if [ "$_LYRICS" != "$_SRY" ]; then            eyeD3 --lyrics=eng:Lyrics:"$_LYRICS" "$_FILE" 1>/dev/null        else            echo "pas de paroles trouvé... next!"        fi    fidone cd $OLDPWD Merci à Cyprian Guerra pour le...

Read More

Wifiphisher : pirater les réseaux Wifi

Wifiphisher : pirater les réseaux Wifi

Un chercheur en sécurité grec, nommé George Chatzisofroniou, a développé un outil d’ingénierie sociale WiFi qui est conçu pour voler les informations d’identification des utilisateurs via les réseaux WiFi sécurisés. L’outil est baptisé WiFiPhisher et a été publié sur GitHub. « C’est une attaque d’ingénierie sociale qui n’utilise pas la force brute contrairement à d’autres méthodes. C’est un moyen facile d’obtenir les mots de passe WPA d’une cible« , a déclaré George Chatzisofroniou». Cependant, il existe déjà plusieurs outils de piratage sur Internet dédiés au piratage d’un réseau sécurisé WiFi, mais cet outil automatise de multiples techniques de piratage WiFi qui le font se démarquer des autres. WiFiPhisher utilise le scénario d’attaque « Evil Twin »  : l‘outil créer d’abord un faux point d’accès sans fil (AP) et se fait passer pour un AP WiFi légitime. Il déclenche ensuite une attaque par déni de service (DoS) contre le point d’accès WiFi légitime, ou crée des interférences autour de ce dernier, qui déconnecte alors les utilisateurs sans fil. Ces derniers sont ensuite invités à inspecter les réseaux disponibles… le piège se referme ! Une fois déconnecté du point d’accès WiFi légitime, l’outil va forcer les ordinateurs et périphériques hors ligne pour qu’ils se reconnectent automatiquement au jumeau maléfique, permettant au pirate d’intercepter tout le trafic via ce dispositif. La technique est également connu comme AP Phishing, Wi-Fi Phishing, Hotspotter ou Honeypot AP. Ce genre d’attaques font usage de faux points d’accès avec des pages de connexion truquées pour capturer les informations d’identification WiFi des utilisateurs, numéros de carte de crédit, ou encore lancer des attaques man-in-the-middle (ou MiTM) et infecter les hôtes du réseau sans fil. « WiFiPhisher est un outil de sécurité capable de monter des attaques phishing rapides et automatisées contre les réseaux WiFi WPA pour obtenir les identifiants sans brute force« , a déclaré Chatzisofroniou. « WifiPhisher renifle la zone et copies les paramètres du point d’accès cible et créer un point d’accès sans fil voyou qui est modelé sur la cible. » Source : undernews   Je n’ai pas voulu m’embêter à réécrire la partie théorie déjà très bien expliqué par undernews, alors je vous ai lamentablement copié/collé l’article d’undernews.   L’outils est disponible par défaut sur la distribution KALI mais vous pouvez l’installé très facilement sur ubuntu en clonant le dépôt gitHub Shell sudo apt-get install python-scapy tcpdump isc-dhcp-server hostapd git clone https://github.com/sophron/wifiphisher.git 12 sudo apt-get install python-scapy tcpdump isc-dhcp-server hostapdgit clone...

Read More