Linux for dummies

Fil des billets Fil des commentaires

Fusionner 2 pdf avec gs

Posté le 09 mai   |   Linux for dummies   

Facile !

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=fichier_de_sortie.pdf
-dBATCH fichier_d_entree_1.pdf fichier_d_entree_2.pdf

Navigateurs à double panneau

Posté le 25 juillet   |   Linux for dummies   

Il arrive d'avoir besoin de se servir de navigateurs avec deux panneaux pour permettre d'y voir plus clair ou de comparer deux folders. Je vais en citer ici 3 différents que j'ai l'habitude d'utiliser, deux graphiques (dont un natif sur l'environnement gnome), et un en console.

Le premier est nautilus, navigateur par défaut sur gnome. On peut ajouter un panneau par affichage > panneau supplémentaire, ou directement par F3.

Nautilus

Le deuxième est emelfm2, qui a la particularité d'intégrer quelques raccourcis pratique en bas (ouvrir un terminal dans le répertoire courant, exécuter en root, ...) et qui intègre également un terminal, parfois bien pratique pour chercher rapidement ce que le navigateur n'affiche pas.

Emelfm2

Le dernier, en console, est midnight commander, qui a menu très complet, permettant très simplement de compresser des répertoires et des fichiers, de copier un fichier d'un volet vers l'autre... Attention toutefois, pour quitter, il faut taper sur F10, qui est sur gnome-terminal le raccourci "menu" (il faudra donc penser à désactiver le raccourci F10 via édition > raccourcis clavier.

Midnight commander

Sox et conversion 32 bits / 16 bits

Posté le 17 mai   |   Linux for dummies   

Récemment, j'ai eu à convertir un fichier .wav 32 bits en un fichier mp3. Habituellement j'utilise lame dans une console comme convertisseur mp3, mais avec un wav 32 bits en input ça ne semblait pas marcher :

$ lame file.wav 
Unsupported data format: 0x0003

Allons bon, lame va pas bien, c'est pas grave, on va faire du ogg :

$ oggenc file.wav 
Omition d'un tronçon de type « JUNK » et de longueur 4042
Ouverture avec le module wav : WAV file reader
Encodage de "file.wav" 
         en "file.ogg" 
à la qualité 3,00
        [ 22,7%] [ 0m42s remaining] - ^C

Ça marche avec le ogg, pas la peine d'attendre que ce soit fini. N'empêche que j'ai toujours pas mon mp3 parce que lame ne veut pas traiter du wav 32 bits. Solution de secours : utiliser sox, packagé dans sox :

$ aptitude search sox
(...)
c   sox                             - Swiss army knife of sound processing

Et maintenant passons à la conversion du wav 32 bits en wav 16 bits, à 44,1kHz :

                                              
$ sox file.wav -b 16 ~/tmp/file2.wav rate -I 44100 dither -s
sox WARN dither: dither clipped 23 samples; decrease volume?

Remarquez le dernier message : le fichier son a clippé (saturé) sur 23 échantillons. On va refaire la conversion, mais cette fois-ci en diminuant le gain de 1dB :

$ sox file.wav -b 16 ~/tmp/file2.wav gain -1 rate -I 44100 dither -s
$

Cette fois c'est parfait ! plus qu'à passer une couche de lame et ça marche sans souci.

Grep sur une colonne en temps réel

Posté le 21 février   |   Linux for dummies    |   un commentaire »

La première chose au programme de ce billet, c'est apprendre à lire un log en temps réel (par exemple ici le fichier squid.log, généré par un squid et complété en continu) :

tail -f squid.log

Ça marche, mais compliquons un peu l'hypothèse de départ. On ajoute au système un logrotate qui va faire tourner le log toutes les 5 minutes (et qui va renommer squid.log en squid.log.YYYYMMDD.HHhMMmSSs). Si on continue avec notre tail précédent, toutes les cinq minutes on sera bon pour le relancer (le flux est cassé à la rotation). Heureusement, tail a une autre option, qui est plus robuste face à la suppression du fichier qu'on regarde :

tail -F squid.log

Et là c'est gagné. Maintenant, on va encore compliquer un peu et on va garder uniquement les lignes qui nous intéressent (qui contiennent le mot "motif"). Habituellement, quand on cherche une chaine de caractère dans un fichier de log en temps réel, on a tendance à grepper simplement :

tail -F squid.log | grep motif

Mais si on a face à nous une ligne qui se présente ainsi, on peut matcher des lignes qui ne vont pas forcément nous intéresser :

2011-02-21 15h54h10s motif_qui_nous_intéresse blabla blibli
2011-02-21 15h54h10s blabla motif_qui_ne_nous_intéresse_pas blibli

On a ici des lignes avec 5 colonnes séparées par des espaces, on veut uniquement grepper sur "motif" dans la troisième colonne :

tail -F squid.log | awk '$3 ~ "motif"'

Et éventuellement, si la colonne 4 ne nous intéresse vraiment pas, on peut même profiter du awk pour seulement afficher ce qui est pertinent :

tail -F squid.log | awk '$3 ~ "motif" {print $1,$2,$3,$5}'

J'en profite pour faire passer un rappel sur grep : non, on ne fait pas un cat pipe grep, un grep "motif" "fichier" suffit amplement, vous risquez de vous faire pendre ou brûler si vous osez faire ça.

Et en cadeau, un mémo sur awk : http://www.shellunix.com/awk.html

Changer l'apparence des manpages

Posté le 13 janvier   |   Linux for dummies   

C'est assez facile ! Vous avez le choix entre plusieurs programmes pour ouvrir des manpages : more, less, most ... Pour ma part, j'utilise most sous Debian/Ubuntu, qui est pratique et qui a des couleurs assez sympathiques.

Première étape : installer most

sudo aptitude install most

Deuxième étape : choisir most (ou un autre) comme pager par défaut

sudo update-alternatives --config pager
Il existe 5 choix pour l'alternative pager (qui fournit /usr/bin/pager).

  Sélection   Chemin          Priorité  État
------------------------------------------------------------
  0            /bin/less        77        mode automatique
  1            /bin/less        77        mode manuel
  2            /bin/more        50        mode manuel
* 3            /usr/bin/most    60        mode manuel
  4            /usr/bin/pg      10        mode manuel
  5            /usr/bin/w3m     25        mode manuel

Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :
3

- page 1 de 5