Le web de Dominique Guebey – Bazar informatique

Page web  : http://www.dg77.net/tekno/manuel/cygwin.htm


   D o m i n i q u e   G u e b e y    J u n g l e      Bazar informatique

CYGWIN

Sommaire

Généralités :

Cygwin est un projet dont le but est de faire tourner sous MS Windows les programmes Unix. C’est avant tout un portage sous Windows du compilateur GCC. De ce fait on dispose de la plupart des commandes shell classiques dans une "fenêtre DOS".

Cygwin a plus d’un attrait ; entre autres :

Installation :

Site de Cygwin : http://www.cygwin.com. On télécharge un programme setup.exe qu’on lance ensuite pour choisir le mode d’installation : installation directe des packages depuis le site de Cygwin, ou récupération préalable. Dans ce dernier cas, on procèdera ensuite à l’installation depuis les packages téléchargés (option "…from Local Directory").

On peut commencer par une installation minimale (groupe de packages BASE et SHELLS), qu’on accroîtra au fil des besoins. Si des packages supplémentaires doivent être installés pour cause de dépendance, le programme de setup les détectera et les incluera automatiquement.

On disposera alors d’un raccourci sur le "bureau" pour ouvrir un fenêtre "shell" mais cette ouverture n’est même pas indispensable, il suffit d’avoir "l’invite de commande" DOS et d’avoir fait quelques aménagements. Cygwin étant supposé installé dans c:\cygwin :

Administration :

adduser n’est pas supporté, il faut utiliser la gestion d’utilisateur de Windows. Lancer /etc/group et /etc/passwd pour créer les groupes et psw.

Accès aux unités windows dans le Shell Unix : voir sous /cygdrive, par exemple  cd  /cygdrive/c  puis  ls  -l  liste les dossiers du volume C:\

Programmation :

Compilation c
 gcc -c  nom_programme.c  crée un nom_programme.o
 gcc -o  nom_programme  nom_programme.o  crée un nom_programme.exe
Compilation c pour exécution sous Windows sans Cygwin
 gcc -c  -mno-cygwin  nom_programme.c 
 gcc -o  nom_programme  -mno-cygwin  nom_programme.o 
Commande de vérification de portabilité
 objdump -p  nom_programme.exe  |  grep  "DLL Name" 
Compilation c++
 c++ -c  nom_programme.cpp 
 c++ -o  nom_programme  nom_programme.o 

Erreur à l’exécution "EOF in Backquote substitution" : on a lancé le premier module .o (compilé mais pas lié).

Exemples d’utilisation

À utiliser sans réserve

Avec Cygwin, les classiques et surpuissantes commandes bash deviennent accessibles sous le très répandu système Windows. Voir aussi notre page http://www.dg77.net/tekno/manuel/utilit.htm

Dans certains exemples, on utilise une valeur d’environnement pour indiquer le chemin d’accès aux fonctions de Cygwin. Initialisation : set CYGW=C:\cygwin\bin\ (adapter le chemin à votre propre système). Le but est d’utiliser Cygwin et non pas la commande « DOS » qui porte le même nom.

Horodatage
%CYGW%date
Résultat (exemple) : Mon Aug 7 12:41:22 2008
%CYGW%date --rfc
Résultat (exemple) : Mon, 07 Aug 2008 12:51:04 +0100
Tri et élimination de doublons dans un fichier texte
::   D'abord transformer backslash/antislash en slash : 
set TRAV=%TMP%
set TRAV=%TRAV:\=/%
%CYGW%sort -u %TRAV%listfic.txt > %TRAV%sortie.txt
SSL
Somme de contrôle (checksum)
openssl md5 [fichier] > [sortie.txt]
Résultat (exemple) : MD5(fichier.txt)= 54fff2e624298228e0717ea239538202
SSH

Liaisons cryptées : Voir la page ad-hoc. [http://www.dg77.net/tekno/securite/sshwin32.htm].

CURL
Récupération de l’adresse internet sur le site https//ifconfig.me, puis affichage et sortie avec horodatage dans un fichier log quelconque :
CURL -s ifconfig.me/ip > intip.txt
SET /p INTIP=<intip.txt
ECHO %INTIP%
ECHO Mon adresse internet le %DATE% à %TIME% : %INTIP% >> d:\save\var\log\rasplog.txt
Traîtement de signatures GnuPG
CURL [url du fichier signature] | gpg --import