walk-hoary

Archives pour la catégorie Commandes en vracs

Encodage de caractère

Parfois, le serveur d’hébergement se trouve en UTF-8 mais malgré les avertissements aux développeurs, on se retrouve avec des fichiers ANSI comme la plupart des éditeur de texte sous Windows. (Je parle même pas des \r inutiles).

Connaître l’encodage du fichier

file --mime-encoding MONFICHIER.php

Sans cette option –mime-encoding, file vous dirai juste qu’il s’agit d’une code php…

 

Conversion du fichier

Exemple de l’ansi à l’UTF8

iconv -f WINDOWS-1252 -t UTF-8 MONFICHIER_ansi.php > MONFICHIER_utf8.php

Ou de l’UTF-8 à l’iso8859-15

iconv -f UTF-8 -t ISO_8859-15 MONFICHIER_utf8.php > MONFICHIER_iso.php

 

Encodages supportés

iconv -l vous donnera la liste des encodages supportés. Les plus importants à retenir sont :

  • WINDOWS-1252 (Parfois appelé CP-1252, ANSI ou latin-1, c’est un dérivé de ISO_8859-1 qui ressemble beaucoup ISO_8859-15)
  • UTF-8 (universel et compatible ASCII)
  • ISO_8859-1 (Ou latin-1 lui aussi, il lui manque les symbole euro qui est ¤)
  • ISO_8859-15 (Ou latin-9)
  • ASCII (lol)
  • Le code morse ne fait pas parti des encodages supportés

 

Faire des recherches sous linux

Afficher tous les fichiers contenu dans le répertoire courant (en donnant les chemin relatif au répertoire courant)

Recherche de fichier avec find

Par faignantise, on utilise des fois ceci pour cherche un fichier qui contient bateau dans son nom. Ça a l’avantage d’être très explicite mais nous nous retrouvons parfois avec des répertoire qui comportent aussi « bateau ».

find /var/log | grep "bateau"

Voici quelque chose de plus élégant :

find -name *bateau*

Ou tous les fichier qui finissent par .log

find -name *.log

Rechercher un contenu

Recherche tous les fichiers qui contienne l’expression « bateau »

grep "bateau" -r *

Voici des options très utiles :

  • -i pour être insensible à la case
  • -a pour cherche dans les fichiers binaires
  • -n pour afficher le nom du fichier avec son numéro de ligne
  • -c pour afficher le nombre d’occurance dans le fichier
  • -o n’affiche que l’occurance trouvée
grep  -rino "bateau" *

Combinons les deux recherche

Cherche l’expression bateau dans les fichiers qui se termine par .log

find -name *.log -exec grep -ino "bateau" {} \;

Pas à suivre, vous perdez le nom du fichier, préférez l'outil grep seul.

Vous l’aurez compris, vous pouvez utiliser cela pour supprimer par exemple des fichiers qui correspondent à une recherche. Par exemple, supprimer les fichier qui commence par toto dans le répertoire /tmp :

find /tmp -name toto* -exec rm {} \;

Ajouter la clé d’un dépôt à votre système APT

Parfois, il arrive de devoir ajouter des dépôts non officiels à la distribution. Pour cela, j’ai l’habitude d’éditer directement le fichier /etc/apt/sources.list

Et bien sûr cela provoque un message à chaque update du style :

W: Erreur de GPG : http://archives.unpaquetexemple.com squeeze Release : Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 0123456789ABCDEF

Une solution simple est de l’ajouter comme cela (en ayant remplacé la clé donnée par le Warning ci précédant) :

gpg --keyserver pgpkeys.mit.edu --recv-key 0123456789ABCDEF
gpg -a --export C514AF8E4BA401C3 | apt-key add -

Tags: , , , ,

Limitation de bande passante

Aujourd’hui je vous ressort 2 outils qui peuvent bien dépanner : wondershaper et trickle.
Ils ont pour fonction de limiter la bande passante réseau ; le premier limite au niveau de l’interface, le second au niveau du programme.

Wondershaper

Il se contente juste de limiter le débit en kb/s d’une ou plusieurs de vos interfaces

Pour limiter à 10Mbps en download et 280Kbps en upload :
#wondershaper eth0 10000 280

Pour limiter à 56kbps (Rhaaa les bon vieux modem RTC…) :
#wondershaper eth0 56

Pour supprimer ces limites (Elle disparraissent au reboot) :
#wondershaper clear eth0

Trickle

Il s’agit d’un programme qui va lancer votre programme à votre place en limitant son débit réseau en Ko/s. Il n’est donc pas possible de limiter le débit avec twickle si votre programme est déjà lancé.

Effectuer un téléchargement à 30 Ko/s
$trickle -d 30 wget http://test-debit.free.fr/8192.rnd

Lancer firefox avec une connexion de 50Ko/s en download et 3Ko/s en upload
$trickle -u 3 -d 50 firefox

Lancer sans limitation initiale ; cela est pratique dans l’optique de changer le debit plus tard
$trickle firefox

Modifier le débit commun à chaque programme lancé par trickle avec tricked
$trickled -u 5 -d 20

Tags: , , ,

Quelques astuces bash

Il arrive souvent de vouloir manipuler des process par des petits scripts automatisés. J’ai condensé ici quelques mémos qui me servent occasionnelement.

Lancer mpd si celui ci n’est pas lancé :

if [ -z $(pidof mpd) ]; then
	mpd &
fi

Mettre en priorité CPU basse un programme déjà lancé (19 = la plus basse, -20 = la plus haute)

renice -n 19 -p $(pidof mpd)

Mettre en priorité IO basse un programme (7 = la plus basse, 0 = la plus haute)

ionice -n 7 -p $(pidof mpd)

Tags: , , ,

Lire une video en utilisant la carte graphique

Les pc actuels sont assez puissant pour ne pas avoir besoin d’aide à la décompression h264 mais parfois si.

Si vous avez une carte graphique acceleratrice, pour aurez peu être la chance de pouvoir décoder votre video h264.

Pour cela, il suffira de lancer votre video avec mplayer :

mplayer -vo vdpau -vc ffh264vdpau maVideo.mp4

Il vous faudra au préalable évidement utiliser un driver pour votre carte graphique (nvidia ou nouveau par exemple) et avoir la librairie libvdpau1.

 

Pour flash, j’ai du également forcer la décompression hardware dans le fichier /etc/adobe/mms.cfg (Il est à créer comme son répertoire) :

EnableLinuxHWVideoDecode=1
OverrideGPUValidation=0

Tags: , ,

Dupliquer une arborscence

Voici une synthaxe pour dupliquer une arborescence (avec seulement les répertoire).

rsync  -a --include='*/' --exclude='*' REPERTOIRE_SOURCE/ REPERTOIRE_DESTINATION/

PS: Les commentaires sont à nouveau ouverts si vous avez des questions, remarques, insultes et dons de maisons…

 

Tags: , ,

Gestion des scripts de démarrage init.d

Sous Debian ou Ubuntu par exemple, init gère aussi les scripts de demarrage et d’arret de vos services placés dans /etc/init.d

Un runlevel ?
Votre système évolue sur des runlevel allant de 0 à 6.
0 = Système arreté
1 à 2 = Système en mode single
3 à 5 = Système en mode multi-utilisateur (3 atteint par défaut chez debian)
6 = redemarrage du système

Les scripts ?
Ceux si sont généralement placés dans /etc/init.d/ .
Suivant le runlevel, les scripts (Qui sont des liens vers /etc/init.d/) du répertoire /etc/rcX.d/ sont appelés suivant un ordre conventionnel :
MNNnnnnn où M vaut S ou K pour start et kill si le passage du runlevel se fait en descendant ou en montant, NN est la priorité du script, 01 sera executé avant 02.. nnnn est le nom que l’on retrouve dans /etc/init.d/

exemple
/etc/rc3.d/S30mpd sera executé lorsque l’on passera du runlevel 2 à 3 après tous les autres script de priorité inférieur à 30 de ce repertoire.
/etc/rc1.d/K14mpd sera executé au passage du runlevel 2 à 1.

Comment ajouter un script toto
Placez votre script toto dans /etc/init.d/
Pour ajouter les liens afin qu’il démarre : update-rc.d toto defaults
Pour retirer les liens : update-rc.d toto remove

Tags: , ,

Créer un patch

Voici deux commandes toutes simples lorsque vous souhaitez diffuser une modification d’un code ou l’appliquer :

Vous souhaitez diffuser une modification d’un code

Soit monFichier.php un fichier modifié en ayant pris soin d’avoir sa version « normale » disons sous le nom monFichier.php.original et monPatch.diff le patch de sortie que va être crée.

diff -c monFichier.php.original monFichier.php > monPatch.diff

Vous souhaitez appliquer un patch

patch < monPatch.diff

A retenir

Vous pouvez concaténer les patch dans un seul fichier (Et donc les visualiser par un editeur de texte).

L’option -p pour patch permet de situer où appliquer le patch. (-p 1 : repertoire courant, -p 0 : repertoire courant et recursivement les autres, -p 2 : appliquer dans le repertoire courant en ignorant le premier niveau dans le patch…).

Vous pouvez gzipper pour gagner en place tel que

diff gnagna1.c gnagna2.c > gzip gnagna.diff.gz

et

zcat gnagna.diff.gz | patch

Tags: , ,

Split

Vous voulez découper le plus simplement possible un fichier ? Dans mon cas, il s’agit de fait passer un fichier de 16Go sur une partition FAT32.

Et bien utilisez juste split pour le découpage et cat pour l’assemblage :

split 2GB FichierADecouper.iso FichierDecoupe.part.
cat FichierDecoupe.part.* > FichierADecouper.iso

Ici split va découper le fichier FichierADecouper.iso en fichiers de 2Mo nommés FichierDecoupe.part.** où ** va de aa à zz. (Utilisé l’option -d pour avoir de 00 à 99).

Tags: , , ,

Je n'aime pas les boîtes noires.