La puissance des outils linux sous windows 2


Sommaire

zenobral

Windows,  je l’aime vraiment désormais…

Quiconque a subi les déclinaisons de Windows 3.1 (ou avant) à Windows 10, ne peut être que satisfait d’avoir désormais un système stable sous lequel travailler, en tout cas depuis ses trois dernières moutures : 7, 8 et 10 (non vous n’aviez pas loupé la 9).

Néanmoins si il reste une chose que j’envie particulièrement aux Linuxiens (et donc aux macs qui sont sous base Unix), c’est leur console et leurs outils de traitement de données (et que pourtant trop peu d’utilisateurs de mac utilisent à mon goût). Si windows a su corriger le tir en proposant une nouvelle version de sa console, la Powershell, qui offre un large panel de possibilités, je l’ai personnellement découvert sur le tard, et ai donc totalement migré sur les outils gnu, qui sont ceux proposés à majorité sur les environnements unix.

Mais pourquoi donc installer/apprendre des commandes consoles gnu/unix?

Essentiellement pour 5 raisons :

  • On peut traiter des volumes de données qui ne pourraient de toute manière pas rentrer dans Excel, Libre Office, Google Spreadsheet ou même dans un simple éditeur de texte
  • Il n’y a pas d’interface graphique, donc pas de perte de temps et de mémoire dans la représentation graphique des données, donc beaucoup plus rapide
  • A partir du moment où l’on sait réaliser des traitement élémentaires, il est très facile de grouper le tout dans des scripts et ainsi automatiser son travail ( le mot magique du SEO)
  • Tous les autres outils en ligne de commande que vous trouverez s’interfaçerons très simplement avec ceux-ci
  • Si vous administrez des sites, vous serez content de retrouver ces différentes commandes que vous aurez apprises et que vous saurez maîtriser

Dans cet article, je ne donnerai peu d’exemples d’utilisation des commandes, mais essentiellement la procédure d’installation sous Windows qui servira de référence pour les autres articles détaillant l’utilisation de ces outils.

Comme vous l’avez compris, si vous êtes sous Linux ou sous Mac… vous êtes déjà bien nés, donc ceci ne vous concerne pas.

Les principaux packages à installer

Ces packages sont ceux que j’utilise quotidiennement, ou tout du moins assez souvent pour les avoir sur ma machine en permanence.

Coreutils

le package de base, il contient la majorité des fonctions unix courantes pour le traitement de texte et beaucoup d’autres choses

Findutils

Contient en particulier la commande « find » qui vous permettra de rechercher des fichiers/dossiers par patterns sur votre ordinateur et d’effectuer des actions dessus

Grep

Un Must-Have : permet de filtrer des textes selon des patterns plus ou moins avancés. Très utiles notamment pour filtrer des mots clés, des urls, des logs et encore plein d’autres chose. C’est un de mes meilleurs amis, je pense qu’il sera bientôt le vôtre ( je ne suis pas jaloux)

Sed

Un outil qui permet de faire des suppressions/remplacement de patterns dans des lignes de texte. Personnellement j’ai détourné son utilisation pour faire de la catégorisation de keyword ou d’url… On verra bientôt comment

gawk

Gawk est une évolution de awk et permet de traiter des fichiers texte de type tabulaire en appliquant des conditions par colonne. En réalité c’est même un langage de scripting complet permettant une grande puissance de traitement pour qui a le courage de se plonger sans sa doc

wget

wget un utilitaire de téléchargement en ligne de commande… mais pas que ! Il permet, entre autres, de crawler et d’aspirer entièrement un site en convertissant les liens internes pour les faire pointer en local

C’est parti pour l’installation !

Téléchargement des packages

Commencez déjà par télécharger l’ensemble des packages :

Installation des packages

Logiquement, vous devriez pouvoir installer les packages dans n’importe quel ordre, mais j’ai l’habitude de commencer par coreutils. A noter que votre profil utilisateur doit avoir des droits d’admin sur la machine pour réaliser l’installation. Si cela n’est pas le cas, il faudra passer par votre administrateur système qui se fera une joie (ou pas) de le faire pour vous.

Double-cliquez simplement sur un package pour l’installer et suivez la procédure. Personnellement je n’ajoute pas les programmes dans le start menu, cela n’a pas de réelle utilité

installation gnu coreutils sur windows - étape 2 installation gnu coreutils sur windows - étape 2 installation gnu coreutils sur windows - étape 3 installation gnu coreutils sur windows - étape 4 installation gnu coreutils sur windows - étape 5 installation gnu coreutils sur windows - étape 6 installation gnu coreutils sur windows - étape 7 installation gnu coreutils sur windows - étape 8

A la fin de l’ensemble des installations, vous devriez avoir l’ensemble des programmes installés dans C:\Program Files (x86)\GnuWin32

Une documentation est également disponible pour la plupart des programmes au format html dans ce répertoire C:\Program Files (x86)\GnuWin32\man\html

Rendre les programmes exécutables de n’importe quel endroit de votre machine

Par défaut, lorsque vous appelez un programme en ligne de commande, Windows va chercher dans le répertoire courant s’il trouve ce programme et sinon chercher dans la variable PATH de l’environnement, les différents répertoires contenant des exécutables sur la machine.

Etant donné que l’on ne va pas s’amuser à copier nos exécutables à chaque fois dans le répertoire de travail qui nous intéresse, on va donc ajouter le répertoire des exécutables GNU à notre variable PATH sur la machine.

On a en général deux variables PATH sur la machine, le PATH système et le PATH utilisateur. En réalité les deux sont mergés, avec le PATH utilisateur qui est ajouté au PATH système. Bien que ceci semble de moindre importance, cela a un impact sur la résolution des conflits, lorsque deux programmes avec le même nom sont présents et déclarés dans le PATH : Windows exécutera le premier trouvé, en passant par le PATH système, puis le PATH utilisateur.

Certaines commandes GNU doublonnent des noms de programmes windows, comme find ou sort, et ainsi il faudra déclarer le répertoire des exécutables en PREMIER dans le PATH système pour que le programme GNU soit appelé prioritairement. Cela « peut » éventuellement générer des problèmes dans de rares cas, mais personnellement je n’en ai jamais eus. Si tel était le cas il vous faudra simplement déplacer le répertoire GNU dans la variable PATH ou simplement le supprimer temporairement.

Ajouter les exécutables GNU au PATH

Le répertoire à ajouter au PATH de windows est le suivant : C:\Program Files (x86)\GnuWin32\bin

Ici les captures d’écran sont données avec windows 10. Si vous avez une version antérieure, il y aura quelques différences mais vous devriez ne pas trop vous perdre.

Commencez par chercher « ordinateur » dans la barre de recherche du menu et trouvez l’icône « Ce PC »… sur les versions antérieures ce sera l’icône « ordinateur », puis clic-droit « Propriétés »

path1

puis allez dans les « paramètres systèmes avancés

path2

puis dans « variables d’environnement »

path3

Normalement vous devriez vous retrouver avec un écran similaire au mien, dans lequel vous pourrez vois la variable PATH utilisateur et la variable PATH système. Sélectionnez la variable PATH système et cliquez sur modifier

Path4

C’est là ou vous devriez avoir la plus grande différence de présentation si vous êtes sur une version antérieure de Windows. Sur Windows 10, la variable est présentée comme un tableau, avec chaque élément sur une ligne. Sur les versions antérieures, il s’agit d’un champ texte, ou chaque répertoire est séparé par un point virgule « ; ».

Vous devrez donc éditer ce champ, en ajoutant C:\Program Files (x86)\GnuWin32\bin au tout début, suivi d’un « ; » –> C:\Program Files (x86)\GnuWin32\bin;

sur Windows 10, c’est un peu plus propre. Cliquez sur « Nouveau »

Path5

puis ajoutez C:\Program Files (x86)\GnuWin32\bin

Path6

et ensuite déplacez cette valeur en cliquant sur « Déplacer vers le haut » jusqu’à ce qu’elle se retrouve au dessus de la première ligne contenant « system32 » puis validez sur ok

Path7

Validez et fermez tout… normalement on est ok !

Tester que tout fonctionne correctement

Maintenant vient l’heure de tester la configuration. On va donc lancer la console depuis un répertoire.

Rendez vous dans un répertoire de votre PC contenant un fichier texte puis en maintenant la touche SHIFT, faites un clic doit sur un espace vide du dossier ( pas sur un fichier donc) et cliquez sur « ouvrir une fenêtre de commande ici »

console1

Vous devriez vous retrouver à présent avec une belle console ouverte et au niveau de l’arborescence où vous aviez cliqué ( chez moi E:\clients)

console2

Maintenant on peut tester deux-trois commandes de base. Supposons que votre fichier texte s’appelle monfichier.txt, testez les commandes suivantes ( sans les guillemets)

  • « cat monfichier.txt » –> affichera l’ensemble du fichier dans la console
  • « head monfichier.txt » –> affichera les 10 premières lignes
  • « tail monfichier.txt » –> affichera les 10 dernières lignes du fichier
  • « wc -l monfichier.txt » –> affichera le nombre de lignes du fichier
  • « head -n 2 monfichier.txt » –> affichera les 2 premières lignes du fichier
  • « tail -n 3 monfichier.txt » –> affichera les 3 dernières lignes du fichier
  • « head -n 5 monfichier.txt > sortie.txt » –> créera le fichier sortie.txt et recopiera les 5 premières lignes de monfichier.txt dedans (sans afficher dans la console)
  • « tail -n 4 monfichier.txt >> sortie.txt » –> ajoutera à la suite de sortie.txt les 4 dernières lignes de monfichier.txt (sans afficher dans la console)
  • « head monfichier.txt | tail -n 2 » –> ici on prends les 10 premières lignes qu’on passe ensuite à la commande « tail » qui ne récupérera que les 2 dernières, on affiche donc les lignes 9 et 10
  • « head monfichier.txt | tail -n 2 > sortie.txt » –> comme précédemment, mais on rediriger la sortie vers « sortie.txt », en l’écrasant
  • « head monfichier.txt | tail -n 2 >> sortie.txt » –> presque pareil, sauf qu’on ajoute à sortie.txt, donc si vous avez tapé les commandes dans l’ordre, sortie.txt contient à présent deux fois les lignes 9 et 10

Si vous êtes arrivés jusque là et que tout fonctionne, félicitations ! Tout ceci peut paraître un peu obscur pour le moment, mais je rentrerai dans plusieurs tutos plus fonctionnels ensuite, et cette installation vous servira ainsi de référence. N’hésitez pas, en attendant, à parcourir les manuels présents, qui vous donneront au moins un aperçu de ce qu’il est possible de réaliser avec ces outils.


Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

2 commentaires sur “La puissance des outils linux sous windows