Bash, quelques astuces en vrac

septembre 9, 2011 · Posted in GNU/Linux · Comment 

Et bien je reprends un peu le fil de mes articles…

Il y avait bien longtemps que je n’avais pas publié quelques petites astuces.

Alors on y retourne !

Petites astuces en Bash…

1- Comment supprimer les lignes identiques dans un fichier :

# awk '!x[$0]++'  /ledossier/lefichier

2- Ecrire une suite de caractères sans les saisir :

 

# echo {1..50}
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
 
# echo {50..1}
 
50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
 
# echo a{b,c,d}e
 
abe ace ade
 
# echo {a..t}
 
a b c d e f g h i j k l m n o p q r s t
 
# echo {t..a}
 
t s r q p o n m l k j i h g f e d c b a
 
# echo {3..-2}
 
3 2 1 0 -1 -2
 
# echo {X..d}
 
X Y Z [  ] ^ _ ` a b c d

 

3- Lister uniquement les dossiers :

# echo */

4- Créer une arborescence complète et complexe en une seule fois :

# mkdir -p racine/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}

donnera :

 

racine
 
racine/lib/ext
 
racine/bin
 
racine/src
 
racine/doc/html, racine/doc/info et racine/doc/pdf
 
racine/demo/stat/a

 

Et voilou !

J’en ai d’autres, mais point trop n’en faut…

:)

Bon hack les amis !

 

 

La rumeur du mot de passe root

février 5, 2011 · Posted in Libfy · 1 Comment 

Il m’est souvent arrivé d’entendre certaines choses quant à la pratique d’Ubuntu sur l’utilisation du compte Root.

Et en particulier, ce genre de phrases : « Ubuntu a mis un mot de passe sur root, mais ils ne veulent pas le donner à l’utilisateur » ou alors « Le mot de passe est généré aléatoirement, tu ne le trouveras jamais », ou alors « Ils ont appliqué la technique de RMS : le mot de passe est vide ! »…

Tout ceci n’est que rumeur ou légende urbaine ! :)

Pour s’en assurer, il suffit de faire un simple

sudo vi /etc/shadow

Vous allez trouver ceci :

root:!:14865:0:99999:7:::
 
daemon:*:14726:0:99999:7:::
 
bin:*:14726:0:99999:7:::
 
sys:*:14726:0:99999:7:::
 
sync:*:14726:0:99999:7:::
 
games:*:14726:0:99999:7:::
alacon:$6$0Fou/nrZ$c4JF/AVOtmkCqIvE3nVrB7KQLvlkPzKlXaUwLJJW1jySU5QeBZ2mzLFsZRWtqjp/wPGqNSqaBeTnWdia1X2WI0:15010:0:99999:7:::

Chaque ligne contient 9 champs, séparés par :

  • nom de connexion de lutilisateur (« login »)
  • mot de passe chiffré
  • date du dernier changement de mot de passe
  • âge minimum du mot de passe
  • âge maximum du mot de passe
  • password warning period
  • password inactivity period
  • date de fin de validité du compte
  • champ réservé pour une utilisation future

Ce qui nous intéresse ici, c’est le 2ème champ. Si vous regardez la première ligne, celle qui concerne l’utilisateur root, ce champ prend la valeur « ! ».

Alors que si vous regardez la ligne concernant l’utilisateur alacon, le 2ème champ prend une valeur complexe, pleine de lettres, de chiffres et de symboles.

Alors que veut dire cette différence ? Facile : si le second champ a comme valeur « ! » ou « * », cela signifie tout simplement que l’utilisateur ne pourra pas utiliser de mot de passe UNIX pour se connecter.

Ceci ne veut pas dire qu’il ne pourra jamais se connecter avec ce user, mais en aucun cas il ne pourra le faire directement… Il devra utiliser su ou sudo pour prendre les droits de root par exemple.

Pour info, le fait de trouver $6$ au début du mot de passe de l’utilisateur alacon indique que le cryptage utilisé est SHA512. Si vous trouvez un $1$, cela signifiera que c’est MD5 qui a été utilisé pour crypter le mot de passe.

Et voilà, la fin d’un mythe…

Et puis si vraiment vous ne me croyez pas, et que vous souhaitiez être rassuré(e), mettez un mot de passe à root :

sudo passwd root

:)

Bon Hack !

Antonin

Android Market

février 4, 2011 · Posted in Android · Comment 

Google vient de mettre la touche finale au market Android accessible depuis un navigateur.

Vous pourrez alors rechercher, directement depuis votre PC, les applis qui vous intéressent. Autre avantage, l’association entre votre compte Google et les applis que vous allez télécharger.

Désormais, lors d’un wipe complet de votre tél, vous n’aurez plus à chercher ce que vous aviez installé…

LibreOffice 3.3 finale est disponible ! Yiiiiiiiha !

janvier 27, 2011 · Posted in Logiciel Libre · 1 Comment 

La version 3.3 finale  a été annoncée officiellement le 25 janvier 2011, et ça c’est une nouvelle qu’elle est bonne comme nouvelle !!!!

LibreOffice est une suite bureautique, destinée aussi bien à un usage personnel que professionnel.

Elle est compatible avec les principales autres suites bureautiques.

Elle offre toutes les fonctions attendues d’une telle suite : traitement de texte, tableur, présentation/diaporama, dessin, base de données.

Et d’autres encore : export natif au format PDF, édition de formules mathématiques, extensions, etc.

LibreOffice est disponible pour la plupart des plateformes : MS-Windows (Xp, Vista, Seven), Linux (32 et 64 bits, paquets deb et rpm), MacOS-X (version 10.4 et ultérieures, pour processeurs Intel et PowerPC).

Le site officiel.

Le lien de téléchargement de la version 3.3.0.

Allez hop, remplacez-moi tous ces OpenOffice qui traînent sur vos bécanes !! C’est sale !

Antonin

Trois alternatives pour votre gestionnaire de fenêtres

janvier 26, 2011 · Posted in Libfy · 1 Comment 

GNOME et KDE sont les environnements de bureau les plus populaires sous Linux.

Si vous êtes prêt à faire bouger les choses sur votre bureau, je vais vous présenter 3 des meilleures alternatives.

Le terme « gestionnaire de fenêtres » n’est pas forcément le meilleur, et environnement de bureau serait plus approprié.

Mais alors, quelle est la différence entre un environnement de bureau et un gestionnaire de fenêtres ?

En voilà une question qu’elle est bonne !

Les gestionnaires de fenêtres porte bien son nom : ils permettent de gérer le déplacement et la manipulation des «fenêtres» dans X.

GNOME et KDE, par exemple, ont leur propre gestionnaire de fenêtres : respectivement Metacity et KWin.

Mais ces 2 environnements fournissent également un grand nombre de fonctionnalités et applications que vous ne trouverez pas avec FVWM par exemple… même si FVWM est un très puissant gestionnaire de fenêtres.

Si KDE ou GNOME retiennent toute l’attention,  cela ne signifie pas qu’ils sont toujours le meilleur choix.

Il se peut que, pour une raison X ou Y, vous souhaitiez quelque chose de plus léger, quelque chose d’un peu plus configurable, ou plus minimaliste.

Peu importe les raisons qui peuvent vous mener à changer, voici un comparatif de 3 gestionnaires/environnements :

Xfce

Xfce est un des environnements de bureau les plus rapides, légers, et offrant de nombreuses fonctionnalités.

Xfce utilise la même boîte à outils (GTK) que GNOME, mais il est plus minimaliste que ce dernier.

Xfce a beaucoup évolué au fil des ans, en abandonnant petit à petit les traits assez laids de CDE (Common Desktop Environment) dont il était le clone.

La version la plus récente de Xfce est la 4.8.

Elle apporte de nouvelles fonctionnalités, comme le partage de fichiers à distance avec Thunar (son gestionnaire de fichiers). Il a également un meilleur support du multi-affichage (deux moniteurs ou plus), et est maintenant conforme à Freedesktop.org. Vous pourrez désormais modifier les menus en utilisant Alacarte ou un autre éditeur de menu qui prend en charge la norme Freedesktop.org.

Donc si vous cherchez une bonne alternative à GNOME ou KDE, tout en conservant un bureau très complet, pensez Xfce. Xubuntu est une des distributions intégrant Xfce.

LXDE

LXDE est un autre bureau léger. Comme Xfce, il utilise GTK+ et possède un ensemble complet d’applications : gestionnaire de fichiers, gestion de thèmes, éditeur de texte (Leafpad), terminal (LXTerminal), et utilise Openbox comme gestionnaire de fenêtres.

Il est très modulaire, et vous pouvez facilement modifier les composants pour tuner le bureau. C’est un très bon environnement de bureau, idéal pour des ordinateurs peu puissants. Il a même son propre lecteur de musique, LXMusic, dont la base est XMMS2.

Aujourd’hui, LXDE est le bureau par défaut de Knoppix, et il existe une variante d’Ubuntu utilisant LXDE, appelée Lubuntu.

Aujourd’hui, LXDE tourne très bien sur un Pentium II avec 192 Mo de RAM.

Fluxbox

Si vous êtes un habitué des mondes Windows ou Mac OS X, ou même GNOME ou KDE, Fluxbox risque de fortement vous dérouter.

Ce n’est pas un gestionnaire de fenêtres pour les utilisateurs occasionnels, mais un gestionnaire de fenêtres pour les utilisateurs avertis qui souhaitent maîtriser leur poste de travail et qui sont prêts à consacrer du temps pour le configurer.

Fluxbox ne possède pas son propre gestionnaire de fichiers, son dock, etc… C’est juste un gestionnaire de fenêtres avec de nombreuses fonctionnalités pour vous aider à prendre le contrôle de votre bureau.

Par exemple, Fluxbox vous permet de configurer certains paramètres détaillés des fenêtres et de déterminer quelles dimensions elles auront dans l’espace de travail, leurs décorations, etc.

Une autre caractéristique que vous ne trouverez pas dans GNOME ou KDE, c’est le « windows tabbing ». Vous pourrez regrouper des applications ou des fenêtres dans des onglets, et les utiliser comme vous le feriez avec les onglets dans Firefox. Cela peut grandement vous faciliter la tâche, si comme moi, vous êtes bordéliques et que votre environnement de bureau est à l’image de votre « vrai » bureau…

Pour conclure sur ce gestionnaire, Fluxbox n’est pas à recommander aux utilisateurs qui ne veulent pas se lancer dans la ligne de commande et les fichiers de configuration.

Bref, vous l’aurez compris, avec Linux, il existe un grand nombre de « bureaux » différents. Selon que vous soyiez expert ou débutant, que votre machine soit puissante ou non, ou pour des raisons purement esthétiques, vous pourrez choisir votre environnement de travail.

Chose intéressante également : vous pouvez avoir tous ces bureaux sur la même installation… Mais ce fera l’objet d’un autre article.

Alors en attendant,  amusez-vous bien !

Antonin

Coup de gueule !

janvier 25, 2011 · Posted in Libfy · 1 Comment 
Une fois n’est pas coutume, je vais (encore) pousser un coup de gueule.

Cette fois, c’est contre certains FAI et Microsoft.

Tout d’abord, s’il est encore besoin de le faire, je vais présenter rapidement 42 Registry.

Comme ils aiment à se définir, 42 Registry, c’est une expérience. Association Loi 1901 à but non lucratif, elle a pour vocation de proposer un TLD (Top Level Domain) permettant de regrouper une certaine communauté.

42, c’est quoi ?

42, c’est un nombre. C’est six fois neuf en base treize, c’est 101010 en base deux.

Notoirement, c’est le nombre choisi fortuitement par Douglas Adams dans l’une de ses oeuvres (The Hitchhiker’s Guide to the Galaxy) comme réponse à la question du sens de la vie, de l’univers, et du reste.

Moins notoirement, c’est aussi le nombre autour duquel nous avons choisi de réunir tout une communauté.

Je vous laisse lire la suite sur leur site, ici.

Revenons à mon coup de gueule.

Aujourd’hui, si l’un d’entre vous réserve un domaine en .42, il ne pourra être vu par :

– tous les abonnés FREE, SFR, ORANGE, OVH,

– toutes les personnes utilisant une machine propulsée par M$ Windows.

Même si certains, comme Libfy! font le nécessaire pour que .42 soit résolu partout, tant que les FAI ne feront pas un minimum d’effort, ce sera peine perdue.

Aujourd’hui, Microsoft propose un patch pour corriger leur putain de bug et permettre à leur OS de résoudre les .42 : modifier une clé du registre…

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

et créer cette clé :

"ScreenBadTlds"=dword:00000000

Pour les impatients, voici le .reg qui fera le boulot automatiquement : ici.

Ensuite, même si vous n’utilisez pas Windows, si vous êtes le malheureux abonné de l’un des FAI qui ne résoud toujours pas le .42, il faudra ajouter à vos serveurs DNS l’une des adresses suivantes :

81.93.248.69, 81.93.248.68, 91.194.60.196, 193.17.192.53

C’est tellement minable de la part de ces FAI que j’ai encore du mal à y croire…

Bref, tout ça pour dire que ça me gave, et que je suis fier d’appartenir à une communauté tellement innovante qu’elle arrive à renverser des géants, à déplacer des montagnes.

Alors n’hésitez pas à bousculer les mammouths immobiles… Si vous le souhaitez et si vous en avez besoin, réservez un .42 ! Et si vous avez besoin de le faire héberger et de créer un redirecteur vers votre site, contactez-moi ! Je me ferai un plaisir d’héberger vos DNS et redirecteurs sur mes serveurs DNS Libfy !

Antonin

Le Guide du Bash pour les débutants

janvier 24, 2011 · Posted in Libfy · 1 Comment 

Le Guide du Bash pour les débutants vous permet de démarrer avec des scripts Bash.

Il comble le manque qui existe entre les HOWTO Bash et le Advanced Bash Scripting Guide.

Il s’adresse à toutes les personnes qui veulent se rendre la vie plus facile en scriptant un maximum de choses.

Le guide contient de nombreux exemples et exercices à la fin de chaque chapitre.

Il est offert au téléchargement par son auteur, Machtelt Garrels.

Libfy! héberge ce guide et vous le propose ici.

Swappiness, ou comment augmenter la vélocité du système

janvier 24, 2011 · Posted in Linux Commandes · 1 Comment 

Dans le cadre d’une utilisation « bureau » de Linux (par opposition à « serveur »), on peut augmenter la vélocité du système en réduisant sa propension à utiliser le fichier d’échange.

Il aura ainsi plutôt tendance à utiliser la mémoire vive (beaucoup plus rapide).
A noter que cette possibilité n’existe pas dans les noyaux 2.4.

Pour afficher la valeur courante de la swappiness :

cat /proc/sys/vm/swappiness.

La valeur par défaut est de 60.

Pour changer cette valeur à chaud :

sysctl -w vm.swappiness=10.

Pour rendre le changement permanent, rajouter la ligne

vm/swappiness=10

dans le fichier /etc/sysctl.conf.

Attention aux dragons ! Ne jouez pas aux apprentis sorciers !
Antonin

[Tips Code] Les Magic Keys

janvier 24, 2011 · Posted in Linux Commandes · Comment 
Introduction

Il arrive parfois que le système se gèle et ne réponde plus du tout à aucune sollicitation (clavier/souris), et la seule solution qui vient à l’esprit (réflexe Windowsien sûrement), c’est de presser la touche « reset ».

Mais comme nous allons le voir, il existe tout une série de combinaison de touches qui permettent (la plupart du temps) d’arrêter notre système avec un minimum de risque, et à la limite, de restreindre la perte de données. C’est ce qu’on appelle les « Magic Keys« .

Pré-requis

Bien entendu pour pouvoir mettre en pratique ces combinaisons magiques, il faut que cette option soit compilée dans le noyau. Commençons donc par vérifier cette condition.
Ouvrez un terminal et taper la commande suivante :

grep "CONFIG_MAGIC_SYSRQ" /boot/config-$(uname -r)
La sortie doit ressembler à :

CONFIG_MAGIC_SYSRQ=y
Vous l’avez deviné, « y » pour « yes » (oui en français ;-)) )
Cette option n’étant pas toujours activée par défaut, il faut donc s’en assurer. Pour ce faire, taper dans un terminal :

cat /proc/sys/kernel/sysrq
qui doit retourner la valeur « 1 ».
Dans le cas contraire (retour de la valeur « 0 »), procéder comme suit pour l’activer (en tant que « root ») :

echo "1" > /proc/sys/kernel/sysrq
On peut aussi utiliser la commande sysctl au lieu d’echo

sysctl -w kernel.sysrq="1"
Il y a pourtant un inconvénient.
La modification effectuée avec echo ou sysctl sera perdu au redémarrage du système.

Pour que la configuration soit permanente il faut éditer le fichier /etc/sysctl.conf soit en utilisant un editeur de texte et ajouter la ligne

kernel.sysrq=1
soit en utilisant la commande

echo 'kernel.sysrq=1' >> /etc/sysctl.conf
Avant d’en arriver là

Lorsque le système se gèle (on supposera qu’on est dans une session X) et avant de mettre en oeuvre l’emploi des touches magiques, si toutefois votre clavier est encore actif, essayez d’abord de :
  • Tuer le serveur X grâce à la combinaison de touches « CTRL + ALT + BACKSPACE »
  • Switcher sur une autre console « CTRL + ALT + Fn » (n=1-6)
  • Si un réseau local existe, essayer de vous connecter par « ssh » depuis une autre machine et de reprendre la main sur votre poste de travail
  • Essayer de tuer le serveur X (en tant que root) :
kill -15 $(pidof X)
kill -9 $(pidof X)
Si toutes ces tentatives ont échoué, alors il est temps de faire appel aux « Magic Keys ».
Les Magic Keys
Les Magic Keys (ou touches SysReq) requièrent l’emploi d’une combinaison de trois touches à la fois.
La touche « ALT » (à gauche de la barre d’espacement, à ne pas confondre avec la touche « ALT Gr »), la touche « SysRq » (System Request), cette touche n’est rien d’autre que la touche appelée et désignée par « Impr écran syst » (en haut à droite des touches F1 à F12), et enfin d’une troisième touche parmi les lettres suivantes :

  • R : Raw Met le clavier en mode « raw » (brut). Essayez d’accéder à nouveau à votre clavier.
  • E : tErm SIGTERM. Envoie un signal de terminaison à tous les processus, sauf à init.
  • I : kIll SIGKILL. Envoie un signal de fin à tous les processus, sauf à init.
  • S : Sync Synchronisation du disque. Essaie d’écrire toutes les données non sauvegardées.
  • U : Umount Remonte tous les systèmes de fichiers en mode lecture seule. Empêche une vérification du système de fichiers au redémarrage
  • B : reBoot Redémarre le système. Plus propre que l’appui sur « reset ».
  • O : Out Arrête le système.
  • L : kilL SIGKILL. Envoie un signal de fin à tous les processus, y compris à init.
  • K : Key Envoie un signal de fin à tous les processus de la console virtuelle courante.
  • P : Print Affiche le contenu des registres et des drapeaux (flags) dans la console.
  • M : Memory Affiche le contenu de la mémoire dans la console.
  • T : Task Affiche le contenu des tâches en cours d’exécution et des informations qui les concernent.
  • 0-9 : Number Paramètre le niveau de la console de log.
  • H : Help Affiche une aide sur les codes touches.
Il faut bien comprendre que l’emploi des Magic Keys constitue une séquence, que ces combinaisons de touches doivent être employées dans un ordre bien précis :

Raw, tErm, kIll, Sync, Umount, reBoot (REISUB)
Passage du clavier en mode « brut »
  • Raw
Synchronisation des disques
  • tErm
Envoie d’un signal d’arrêt aux processus
  • kIll
Montage des systèmes de fichiers en lecture seule
  • Sync
Envoie d’un signal de terminaison aux processus
  • Umount
Reboot du système
  • reBoot
Note : Voici une phrase mnémotechnique pour se rappeler l’ordre de la séquence (en anglais) : « Raising Elephants Is So Utterly Boring ».
Amusez-vous bien.
Antonin

[Tips Code] Tests sur variables numériques

janvier 24, 2011 · Posted in Linux Commandes · Comment 

Dans la série des trucs et astuces, voici des bouts de code que j’utilise quand j’en ai besoin.
Dans un environnement shell, les variables sont, par défaut, de type chaîne de caractères.
Voici quelques astuces pour tester la valeur numérique d’une variable.
Avec grep
#!/bin/bash
 
var=$1
if [ "$(echo $var | grep "^[ [:digit:] ]*$")" ]
then
 echo "La chaîne est numérique"
fi
Avec expr
#!/bin/bash
 
var=$1
expr $var + 0 1>/dev/null 2>&1
statut=$? 
if test $statut -lt 2 
then 
 echo "$var" numérique 
fi
Avec test
On évalue à l’aide de la commande « test » (représentée ici par les crochets « [ » et « ] ») si la valeur de la variable « $var » est égale à zéro (0), puis on évalue le code retour ($?) pour ses 2 états de sortie (vrai ou faux, autrement dit 0 ou 1), qui dans un cas comme dans l’autre serait donc de type entier. Dans tout autre cas, code retour supérieur à 1, échec de l’évaluation.
#!/bin/bash
 
var=$1
[ $var -eq 0 ] 2> /dev/null
if [ $? -eq 0 -o $? -eq 1 ]
then
 echo "La chaîne est numérique"
fi
Avec le type entier
La création d’une variable de type entier doit au préalable être déclarée à l’aide de la commande « typeset -i » ou « let ».
Voici donc un exemple implémentant la commande « let » pour déterminer si une variable est bien de type « entier »
#!/bin/bash
 
var=$1
 
if let $var 2>/dev/null 
then
 echo "$var numérique"
else
 echo "$var non numérique"
fi

Page suivante »