Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 18 novembre 2018

Installer et configurer cheat

Il y a quelques temps déjà, j'avais présenté le projet Cheat de Chris Allen Lane, qui permet de retrouver rapidement des exemples d'utilisation pour les commandes Unix.

On va voir aujourd'hui comment l'installer, le configurer et créer nos propres "cheat sheets".

Installer cheat

cheat est écrit en Python et s'installe donc par un:

sudo pip install cheat

On vérifie la version:

cheat -v
cheat 2.3.1

Configurer cheat

On va ajouter dans notre .bashrc:

export CHEATCOLORS=true

comme cela nos antisèches seront plus jolies !

Puis on va installer le script d'autocomplétion pour Bash:

sudo curl -L https://raw.githubusercontent.com/chrisallenlane/cheat/master/cheat/autocompletion/cheat.bash -o /etc/bash_completion.d/cheat

Maintenant, cheat propose les commandes disponibles quand on appuie sur TAB. Ne pas hésiter à entrer une lettre avant TAB, sinon il nous propose 191 commandes ...

L'autocomplétion n'est pas implémentée sur les options de la commande, c'est dommage.

Ajouter une nouvelle cheatsheet

Pour ajouter une nouvelle sheet sur la commande mycmd:

cheat -e mycmd

Et vous aller alors éditer le fichier ~/.cheat/mycmd.

Si vous souhaitez changer le répertoire des "user cheat", il faut procéder comme ceci:

export CHEATPATH='/path/to/my/cheats'

Les antisèches installées par défaut sont placées dans /usr/local/lib/python3.4/dist-packages/cheat/cheatsheets.

Mettre à jour cheat

Pour mettre à jour cheat:

sudo pip install --upgrade cheat

Voilà. Happy cheating :-)

samedi 2 juin 2018

Chercher dans des fichiers de log avec lnav

Quand on développe, on passe beaucoup de temps à consulter et à chercher des informations dans les fichiers de logs des produits ou du système.

J'ai longtemps utilisé glogg et maintenant il me parait lourd et peu efficace.

lnav que je vais vous présenter maintenant est plus léger et s'avère très performant grâce à de nombreux raccourcis clavier.

Au lancement, on obtient le résultat suivant:

lnav.png

Vous constatez qu'on est au début du fichier. Pour naviguer dans le fichier, on peut utiliser:

  • g pour aller au début
  • G pour aller à la fin
  • Page up ou Backspace/ Page down ou Espace pour naviguer de page en page

Mais ce qu'il y a de commode, c'est que lnav permet d'aller à la prochaine erreur, en tappant 'e' ou au prochain warning en tappant 'w'.

De la même façon, 'E' vous positionne sur l'erreur précédente et 'W' sur le warning précédent.

On peut également naviguer dans le temps, c'est à dire que la touche 'o' vous fait avancer de 24h dans le fichier et 'O' le fait dans le sens inverse. Si l'intervalle recherché est de 24h, il faut utiliser respectivement 'd' ou 'D'.

lnav vous autorise aussi à rechercher un motif en tappant /<regexp>, les regular expressions acceptées étant les PCRE (Perl-Compatible Regular Expressions).

Autre fonctionnalité intéressante, on peut marquer une ligne pour la retrouver plus tard avec la touche 'm'. Ensuite l'appui sur les touches 'u' et 'U' permet de naviguer d'une ligne marquée à l'autre. C'est très utile pour débugger.

Bref, lnav devient rapidement un outil indispensable du quotidien du développeur, et le fait qu'il soit utilisable directement dans un terminal est un atout non négligeable.

Je n'ai évidemment pas décrit ici tout ce qu'on faire avec, pour découvrir d'autres fonctionnalités, vous pouvez utiliser la touche '?' au démarrage de lnav.

lundi 23 janvier 2017

Monter disques et clés usb sans être administrateur avec udisksctl

Sous Linux, les médias amovibles sont généralement montés par un clic depuis l'environnement graphique, celui-ci effectue alors le montage en tant qu'utilisateur avec toutes les options nécessaires après avoir créé un point de montage.

Cette façon de faire présente les avantages suivants:

  • Il n'est pas besoin d'être administrateur, i.e. root pour effectuer le montage
  • Le point de montage est créé pour nous
  • Les options de montage sont positionnées pour nous, en particulier celles qui font que le média est en lecture/écriture pour l'utilisateur et non uniquement pour root

L'autre façon de faire étant de passer une commande mount en root avec toutes les options utiles.

Pour monter un média amovible depuis un terminal à la façon de faire de l'environnement graphique, on peut utiliser la commande udisksctl.

Il suffit pour cela de connaître le device du média ou clé USB:

user@machine:~$ udisksctl mount -b /dev/sdc1
Mounted /dev/sdc1 at /media/user/my-data.

On peut aussi utiliser l'option longue:

user@machine:~$ udisksctl mount --block-device /dev/sdc1
Mounted /dev/sdc1 at /media/user/my-data.

Et vous aurez remarqué que je ne suis pas connecté en root.

Vérifions que les options de montage sont correctes:

user@machine:~$ mount | grep sdc
/dev/sdc1 on /media/user/my-data type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

Un montage depuis un clic avec Mate n'aurait pas fait mieux.

Et pour démonter ce volume:

user@machine:~$ udisksctl unmount -b /dev/sdc1
Unmounted /dev/sdc1.

Ces commandes sont évidemment utilisables dans un script même si la manpage d'udisksctl ne le recommande pas.

- page 1 de 3