Des couleurs dans ton less

Le mardi 22 septembre 2015 par Benjamin Boudoir

Quand j'ai besoin d'ouvrir un fichier que je ne modifie pas, j'aime bien less. Mais je fini souvent par ressortir emacs, parce que l'absence de coloration syntaxique est complexe sur certains documents (genre, XML le maudit).

Donc voici un petite manip bien sympatique... On commence par installer python-pygments (sous Debian et CentOS) pour récupérer pygmentize. Puis, on va se créer un fichier ~/.lessfilter :

#!/bin/sh

list=$(pygmentize -L | grep -Eo '\*\.[a-z0-9]*')
ext=$(echo "$1" | rev | cut -d'.' -f1 | rev)

echo "$list" | grep -q "^\*\.$ext\$"
if [ "$?" -eq 0 ]
then
  pygmentize -f 256 "$1"
elif [ "$1" = .bashrc ] || \
     [ "$1" = .bash_aliases ] || \
     [ "$1" = .bash_environment ] || \
     grep -q "#\!/bin/bash" "$1"
then
  pygmentize -f 256 -l sh "$1"
else
  exit 1
fi

exit 0

Qu'on rend exécutable.

Et ensuite on ajoute quelques lignes a son ~/.bashrc :

export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'

Et tadam !

Je m'inspire totalement de cet article, j'ai un peu modifié le comportement du lessfilter pour que ce soit pygment qui me donne les extensions gérées et pas que je les rentre à la main.


Envoyer une fonction par ssh

Le jeudi 23 juillet 2015 par Benjamin Boudoir

Il peut être utile dans un script d'envoyer du code sur un serveur afin d'obtenir des informations.

On peut avoir un script sur la machine, envoyer un script sur la machine et l'exécuter ou, moins chiant, envoyer une fonction.

Pour celà, on code une petite fonction, comme dans n'importe quel …

Lire la suite

Connexion SSH sans mot de passe

Le vendredi 13 mars 2015 par Benjamin Boudoir

Pour faire une connexion ssh sans mot de passe, la plupart des gens vous diront de simplement ne pas entrer de mot de passe. C'est une solution qui marche, mais qui est stupide dans 95% des cas (les 5% restants étant : ça sert pour des robots bien cachés et très …

Lire la suite

Sortir les variables d'un while

Le lundi 24 juin 2013 par Benjamin Boudoir

Petit bashism pratique.

Lorsque que l'on fait une commande du style :

macommande | while read line
do
   bidule=$(line | chouette)
done

On ne peut pas accéder à la variable $bidule.

Petit trick :

while read line
do
  bidule=$(line | chouette)
done < <(macommande)

Et voilà !

L'explication est simple, avec un pipe, while fait …

Lire la suite

Astuce bash en cas de load du serveur

Le mardi 05 mars 2013 par Benjamin Boudoir

Il vous est probablement arrivé de devoir vous connecter sur un serveur en surcharge pour essayer de le sauver. Mais si comme moi vous avez un .bashrc assez conséquent, tuné, avec plein de fonctions pratiques… Il est probable que cela vous desserve en demandant à votre serveur de faire plein …

Lire la suite