[Avancé] Rechercher une chaine de caractères dans des fichiers sous Linux

Cet article vient en complément de mes articles [Avancé] rechercher et agir sur les fichiers en double sous Linux et Comment appliquer récursivement une instruction à des fichiers sous Linux. Je donne juste une petite astuce que j’ai trouvée sur un forum anglophone: Vous recherchez  par exemple tous les fichiers textes dont le nom contient un certain pattern, qui contiennent une certaine chaine de caractères. Par exemple vous pouvez très bien rechercher tous les scripts shell qui contiennent le mot clé “init”.

Placez vous dans le terminal à la racine de l’arborescence de recherche et tapez la commande:

find -name “PATTERN” -exec grep -H “CHAINE” {} \;

soit dans notre exemple de scripts shells, ça donnerait :

find -name “*.sh” -exec grep -H “init” {} \;

Pour plus de détails sur les patterns de recherche, reportez vous aux articles précités.

Quelques mots sur Ubuntu Netbook Edition

Je me suis récemment acheté un Netbook, l’ASUS EEEPC 1005PE-BLK001M pour être précis, que je vous recommande chaudement (et non je ne touche pas un centime de Darty pour la pub). Ses points forts: une autonomie exceptionnelle, un gros disque dur, 2GO de RAM, une prise éthernet, un écran 16/10, un clavier confortable pour sa taille et du wifi compatible avec la nouvelle norme (n).

J’ai aussitôt installé Ubuntu Netbook Edition en dual-boot avec Windows Seven. Ça m’a causé quelques petits soucis, au niveau de la luminosité de l’écran, j’explique dans la documentation comment s’en tirer (ce n’est pas très difficile et propre à ce modèle de netbook, à ce qu’il semblerait).

Toujours est-il que si vous souhaitez tenter l’aventure, il y a deux solutions:

  • La première, que je vous recommande, c’est d’aller à une install party où des bénévoles vous guideront et vous assisteront. Par exemple pour les gens de région parisienne, il y en a une tous les premiers samedi du mois à la cité des sciences. Pour les autres il y a surement un quelqu’un qui peut vous aider près de chez vous, cf à ce sujet les sites de parrainage comme parrain-linux.com ou encore parrains.linux.free.fr.
  • Autre possibilité, si vous savez parler anglais ne serait-ce qu’un minimum, le site officiel vous expliquera tout. Pour les anglophobes absolus, tournez vous vers la traduction automatique de google. Malheureusement elle ne va pas jusqu’à traduire le contenu des “show me how”.

Voila, en espérant que ces infos en aideront quelques uns ;)

[Avancé] rechercher et agir sur les fichiers en double sous Linux

Cet article vient en complément de mon article Comment appliquer récursivement une instruction à des fichiers sous Linux, pour préciser comment formuler la recherche.

Sous Linux, lorsqu’au sein d’un même répertoire, deux fichiers s’enregistrent sous le même nom, le système rajoute automatiquement entre la fin du nom et l’extension un nombre entre parenthèses qui s’incrémente automatiquement avec le nombre de copies. Par exemple si un de vos logiciels enregistre plusieurs fois le fichier “I_love_linux.txt” dans ce répertoire, la deuxième copie sera enregistrée avec le nom “I_love_linux(1).txt”, la troisième avec “I_love_linux(2).txt”, et ainsi de suite.

Pour des raisons élémentaires de gain de place, il peut être utile de supprimer ces fichiers, et le but de cet article est de trouver une commande qui fait ça automatiquement. L’astuce est de combiner correctement les caractères universels de la commande find. Pour rappel:

  • le caractère ‘*’ remplace n’importe quelle chaine de caractères.
  • le caractère ‘?’ remplace n’importe quel caractère.

Donc dans le cas où aucun fichier ne porte de nom avec quelque chose entre parenthèse dedans sinon les fichiers copies, il suffira d’utiliser la commande find avec le pattern “*(*).*”. Dans le cas contraire, il faudra d’abord rechercher les fichiers compris entre 1 et 9, puis ceux entre 10 et 99, et ainsi de suite avec le pattern “*(?).*”, puis avec le pattern “*(??).*”, et ainsi de suite ; ou encore utiliser un pattern plus complexe qui laisse le choix du nombre de caractères en précisant qu’on ne veut que des numéros, mais je n’entrerai pas dans les détails ici.

Par exemple j’ai pu utiliser la commande find -name “*(??).*” -exec rm {}  \; pour supprimer mes fichiers doublons compris entre 10 et 99.

[Avancé]Si sur votre live_cd de linux, les caractères sont énormes…

enorme

Ça nous arrive tous un jour où l’autre: On teste une nouvelle distribution linux, la carte graphique et l’écran sont mal reconnus, et on se retrouve avec une taille de police démentielle qui rend toute manipulation impossible à cause de la taille des menus. En plus si on est sur un live cd, toute manipulation conduisant au redémarrage est à proscrire, puisqu’on perdrait ce qu’on a fait.

Alors voici comment faire:

  1. Passer en terminal virtuel (combinaison de touche ctrl + alt + F1)
  2. éditer le fichier /etc/X11/xorg.conf avec les droits d’administration
    pour ce faire personnellement j’utilise nano, ce qui nous donne ‘nano /etc/X11/xorg.conf‘, éventuellement à faire précéder d’un sudo si vous êtes sur Ubuntu, ou bien à faire un su avant, je vous laisse agir selon votre distribution.
  3. Repérer la section dédiée à la carte graphique. Dedans il y a une ligne dans le style Driver  “quelque chose”. Et manifestement le quelque chose n’est pas bon, donc il faut le remplacer par quelque chose qui va avec votre config, les plus courants étant {ati, nv, vesa, nvidia}. Mais attention, certains correspondent à des pilotes propriétaires, s’ils ne sont pas inclus par défaut sur le live_cd (ce qui est rarement le cas), ça ne marchera pas. Par exemple moi j’ai une Geforce, et hier j’ai voulu tester Sidux. Le driver paramétré dans le xorg.conf était nv, je l’ai remplacé par vesa, qui est un driver générique, sachant que sur ma distribution habituelle j’utilise le driver nvidia qui est propriétaire
  4. Utilisez la combinaison de touches crtl + alt + backspace pour redémarrer le serveur X. Si le serveur redémarre, mais que vous avez toujours le problème, ou que c’est pire refaits la manip pour essayer un autre pilote. Si il ne se passe rien après avoir fait crtl + alt + backspace, revenez en section graphique (ctrl + alt +F7) et réessayez. S’il ne se passe toujours, rien, pas de chance, cette combinaison a été désactivée pour votre distribution.

Deux possibilités maintenant:

  • Vous vous apprêtez à plusieurs essais, ou bien vous souhaitez réactiver la combinaison dans l’un des cas contraire, passez à l’étape suivante.
    - Retournez dans le terminal virtuel, rééditez le fichier xorg.conf, et rajoutez à la fin la section que vous trouverez sur tuxplanet, mais ne redémarrez pas l’ordinateur après .
    - enregistrez le fichier
    Passez à l’étape suivante
  • Nous allons maintenant redémarrer X manuellement.
    - ps -A | grep X
    - notez le numéro de PID de Xorg
    - faites un kill PID (éventuellement en root si ça ne marche pas). Notez que j’ai dit kill et pas kill -09, nous souhaitons ici une terminaison correcte du processus, pas un arrêt brutal. Ne rajoutez le -09 que si ça ne marche pas autrement.

Après ça le serveur X redémarre, et normalement ça marche mieux. Sinon vous avez tous les outils pour refaire des essais. Pensez aussi à jeter un coup d’oeuil à la documentation francophone d’Ubuntu (même si vous n’êtes pas sur cette distribution, ce qui concerne le Xorg et les cartes graphiques reste valable)

Ces lignes de commande que l’on oublie toujours…

Le site où sont indexées les lignes de commande

Le site où sont indexées les lignes de commande

Pour tous ceux qui utilisent Linux et qui, comme moi, ont parfois du mal à se remémorer certaines lignes de commande dans le genre compliquées, je viens d’apprendre en lisant un article de Korben l’existence d’un site super sympathique qui recense toutes les commandes Unix. Il s’agit d’un site communautaire, où chacun peut ajouter de nouvelles commandes, commenter celles des autres, et voter pour les plus utiles.

Le principe est tout simple: il suffit d’entrer un mot clé en rapport avec la commande que l’on cherche dans la barre de recherche, et avec un peu de chance, elle sera dans les résultats. Sinon, dés que vous l’aurez retrouvée, rajoutez la illico, ça servira dans le futur :) . Le site s’appelle Command-line-fu, et personnellement j’y ai déjà appris deux ou trois petites commandes sympathiques que j’ignorais. A bookmarquer d’urgence ;) .

[Avancé] Comment appliquer récursivement une instruction à des fichiers sous Linux

recursion par sebr (cliquez pour afficher l'original)

recursion par sebr (cliquez pour afficher l'original)

Figurez vous qu’aujourd’hui même, on m’a transmis une archive contenant un meli-melo de fichiers .java et de fichiers .class avec pas mal de ramifications des dossiers. Or il se trouve que seuls les fichiers en .java m’intéressaient. Ne souhaitant pas passer des heures à pacourir les dossiers pour virer tous les .class manuellement, je me suis mis en quête d’une commande susceptible d’explorer récursivement les dossiers et sous dossiers, et d’en effacer tous les fichiers en .class.

Après quelques recherches dans les manpages, et quelques essais infructueux, j’ai posé la question sur irc (un salon de discussion en ligne), et j’ai immédiatement obtenu deux réponses toutes aussi fonctionnelles l’une que l’autre. Il suffisait de faire:

  • soit find . -name ‘*.class’ | xargs rm -f
  • soit find . -name ‘*.class’ -exec rm -v {} \;

Comme vous le voyez, les instructions sont composées de deux parties: la première, find . -name ‘*.class’, permet de rechercher récursivement tous les fichiers se terminant par ‘.class‘. La deuxième partie précise le traitement à appliquer aux fichiers. Les deux reviennent au même, mais la manière dont le résultat va être obtenu diffère.

Après discussion il est apparu que la première était la plus fonctionnelle au niveau de la rapidité d’exécution, car la commande rm est appelée une seule fois pour être appliquée d’un coup à toute la liste de fichiers,  tandis que la deuxième s’arrête à chaque fichier trouvé pour le supprimer avant de poursuivre la recherche, ce qui implique l’appel à la fonction rm autant de fois qu’il y a de fichiers, donc la création d’autant de processus, ce qui est couteux pour le système. Cependant la deuxième peut aussi avoir son intéret si un jour j’ai des dizaines de milliers de fichiers à supprimer, car il semblerait que le nombre d’éléments pouvant être passés dans un pipe (la barre verticale) soit limitée. Cela dit le débat reste ouvert car tous n’étaient pas d’accord sur la manière de procéder du Xargs. Voir la page de Wikipedia dédiée à Xargs (en) pour plus d’informations.

Pour conclure, ici on s’est intéressé à l’effaçage récursif d’un type donné de fichier, mais on remarquera aisément qu’en remplaçant rm par une autre commande, on peut généraliser ainsi l’application récursive d’une instruction à tous les dossiers et sous dossiers d’un répertoire.

note: ne pas faire attention aux options du rm. Je les ai reportées telles qu’on me les a données, mais il faut bien voir ce qu’elles veulent dire: le ‘-v’ de la deuxième commande, demande au rm de dire ce qu’il fait au fur et à mesure, et le ‘-f’ de la première commande demande d’ignorer les éventuels avertissements du système. Il convient de les modifier avec discernement en fonction de la situation.

PS: Faites des sauvegardes avant de faire des tests :) .

Enlevez de votre navigateur toutes ces choses inutiles qui l’encombrent.

Capture d'écran prise en 1024x768 (cliquez pour agrandir)

Capture d'écran prise en 1024x768 (cliquez pour agrandir)

Figurez vous que pendant les fêtes, je n’avais pas d’ordinateur avec un écran 19 pouces à ma disposition, et je me suis aperçu à cette occasion à quel point j’étais dépendant du confort du 19 pouces. En 17 pouces, avec toutes les barres d’outils qui embarassent l’écran, l’espace dans lequel on peut vraiement naviguer sur le Web est amputé d’un bon quart de l’écran, et je n’ose même pas imaginer ce que ça doit être en 15 pouces. Il y a en plus tout un tas de sites internets dont ce blog qui sont optimisés pour du 19 pouces. Ceci dit pour ce blog le seul effet négatif est que les images ne s’affichent pas en entier, et qu’il faut cliquer dessus pour les afficher à part. Mais ce n’est pas la fin du monde non plus.

Bref, comme ça m’ennuyait de perdre tant de mon écran, j’ai réfléchi à un moyen d’optimiser l’affichage, pour que les barres du navigateur  (Firefox) prennent le moins de place possible. Il y a toujours la solution de faire F11, mais comme ça cache aussi la barre d’adresse, la barre personnelle et les onglets,  cette solution ne me convenait pas. J’ai donc cherché divers moyens d’optimisation, et je suis arrivé au résultat que vous pouvez admirer sur l’illustration de ce topic (cliquez dessus pour l’agrandir). Je précise que je n’ai pas retouché l’image, c’est bien une capture d’écran totale, je ne l’ai pas rognée pour faire disparaitre les barres système.

Je vais maintenant détailler dans cet articles et dans ceux qui vont suivre comment j’en suis arrivé à ce résultat.

Tout d’abord les petits trucs faciles à mettre en oeuvre:

  • Si vous n’utilisez pas la barre personnelle (qui contient les marques pages d’accès rapide), masquez là en cliquant sur Affichage  -> Barres d’outils -> barre personnelle
  • Si vous n’utilisez pas ou peu la barre d’état (celle du bas), masquez là également via Affichage -> Barre d’état. En ce qui me concerne j’en ai besoin de temps en temps, mais je la masque la plupart du temps.
  • Si vous pensez surfer un bon moment sans rien faire d’autre, vous n’avez pas besoin des barres système.
    x Sous Windows, cliquez droit sur la barre, il doit y avoir (de tête) un menu propriétés ou préférences, cochez l’option “Masquer automatiquement”. La barre va disparaitre automatiquement lorsque le curseur ne sera pas en bas de l’écran. Mais elle réapparaitra dés que vous y redescendrez le curseur.
    x Sous Ubuntu Gnome, une option similaire existe pour les deux barres système, mais je préfère les masquer vers la droite. De même, faites clic droit, propriétés, et cochez “afficher les boutons de masquage“. Puis cliquez sur ces boutons pour camoufler les barres. Pour changer d’application, utilisez dés lors le raccourci clavier alt+tab, et pour changer d’espace de travail, utilisez le raccourcis ctrl+alt+ flèche_directionnelle, ou ctrl+alt+numéro_de_lespace.

Avec tout ça de fait, vous disposez déjà d’un espace bien plus aéré. Nous verrons dans le prochain article comment l’optimiser encore un peu pour en arriver à mon résultat  final.

Le grand catalogue des distributions Linux

distrowatchBon ça fait un petit bout de temps que je n’ai pas parlé de Linux. Alors je voudrais vous présenter ce site, pour ceux qui ne le connaissent pas encore. Ce site très pratique recense un nombre très important de distributions linux connues (environ 200), en donnant beaucoup d’informations utiles pour chacune d’elles, par exemple, dans le cas de Mythubuntu:

mythubuntu

Autant que possible, le site essaie d’afficher les explications en Français lorsqu’une traduction existe. Malheureusement un minimum de maitrise de la langue de Shakespeare est souvent indispensable. Ne vous laissez pas tromper par la possibilité d’achat: Ce qui est vendu, c’est un CD pressé et son expédition. Par contre le téléchargement, lui, est gratuit (sauf dans quelques rares exceptions).

Donc si un jour vous recherchez un certain type de distribution, ou que vous voulez des captures d’écran de telle autre, ou simplement que vous voulez vous renseigner sur ce qui existe, pensez à ce site vraiment incontournable :) .

Le petit guide d’Ubuntu…

fiston

Je vous ai déjà présenté Ubuntu dans un précédent billet, et nous avons également déjà vu comment le tester sans rien modifier sur son ordinateur. Or je viens de découvrir cette semaine un excellent petit guide de 6 pages écrit par Aurélien Paulus qui présente Ubuntu de façon simple et synthétique.

Il a voulu répondre à la problématique suivante: Il y a énormément de documentation sur Ubuntu qui existe, mais les gens qui veulent juste savoir ce que c’est ou avoir une bonne vue d’ensemble rapidement peuvent vite se retrouver perdus dans la masse. Et c’est vrai qu’il y a beaucoup d’endroits où l’on peut voir des petits articles de présentation d’Ubuntu, mais par contre les sites qui présentent Ubuntu de façon plus développée tout en restant synthétiques et accessibles au débutant sont bien plus rare. C’est pourquoi je vous recommande chaudement ce petit guide. Six pages, ce n’est pas long à lire, et vous rentabiliserez largement le temps passé à cela par la richesse et l’accessibilité du contenu.

Le guide est en libre téléchargement sur le site d’Aurélien Paulus.

Tester Ubuntu sans rien modifier sur votre ordinateur.

Etape n°1 de la découverte d’Ubuntu: Je teste sans prendre de risques :) .

  1. Rendez vous sur la page de téléchargement d’Ubuntu:
  2. Cliquez un peu plus bas sur “télécharger maintenant”
  3. Éventuellement vérifiez l’intégrité du fichier que vous venez de télécharger.
  4. Utilisez un graveur de CD pour graver l’image iso.
  5. Laisser le CD dans l’ordi
  6. Si le CD se lance sous Windows et affiche un menu, ignorez le pour l’instant, et fermez la fenêtre.

Note: Je détaille énormément la procédure dans mon article  pécédent: Graver une image iso. Donc si vous êtes perdu, n’hésitez pas à y jeter un oeuil ;) .

7. rebooter le PC
8. Au démarrage appuyer sur F12 et choisir de booter sur le CD.


commentaire: Ceci va charger une session Ubuntu dans la mémoire RAM de l’ordinateur sans rien modifier sur le disque dur. Vous allez donc pouvoir essayer Ubuntu sans contrainte, vu que si ça ne vous plait pas, vous avez juste à rebooter le PC et à enlever le CD, et votre ordinateur sera comme avant.

Quelques petites indications tout de même:

  • le menu démarrez est en haut à gauche.
  • la poubelle est en bas à droite.
  • Pour arrêter l’ordinateur il faut cliquer en haut à droite.
  • Ne cliquez pas encore sur Installer sauf si vous êtes sûrs de vous, et que vous savez ce que vous faites.

Voila pour le test sans risque. L’étape suivante est libre et dépend de votre motivation. Si vous ne voulez pas partitionner votre disque dur, vous pouvez tenter l’installation comme si Ubuntu était un simple programme Windows avec Wubi. Sinon, selon votre degré de compétence ou de motivation(car ce n’est pas bien compliqué si on se donne un peu de mal pour comprendre), vous pourrez tester l’installation en mode automatique ou l’installation en mode manuel. J’en reparlerai peut être en détail dans un prochain article.

Suivre

Get every new post delivered to your Inbox.