CYGWIN
- Sommaire :
- Généralités | Installation | Administration | Programmation | Exemples d’utilisation
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 :
- Disposer d’un compilateur C/C++ pour Windows (cf infra l’option -mno-cygwin)
- Pouvoir tester simultanément un traîtement en invite de commande pour Windows et un script shell pour exécution sous Linux et Unix.
- Utiliser la formidable bibliothèque des outils libres GNU. Comme simple exemple voir notre page SSH sur postes Windows, en 7 mn. [http://www.dg77.net/tekno/securite/sshwin32.htm]
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 : récupération préalable des packages ou installation directe de ces derniers depuis le site de Cygwin. La première méthode est conseillée, on procèdera dans un deuxième temps à l’installation depuis les packages téléchargés (option "...from Local Directory").
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 :
- Ouvrir une session donnant les droits d’administrateur
- Modifications dans les variables d’environnement : sous Windows 98, adapter le fichier autoexec.bat ; sous Windows 2000 ou NT : Démarrer > Paramètres > Panneau de configuration > Système > Avancé > Variables d’environnement
- Ajouter une variable système dont le nom est CYGWIN et la valeur ntsec tty
- Ajouter à la fin de la variable PATH la valeur " ;c:\cygwin\bin "
- Appliquer immédiatement cet ajout : set PATH=%PATH%;c:\cygwin\bin
- Les commandes UNIX peuvent maitenant être lancées directement !
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
Les classiques et surpuissantes commandes bash deviennent accessibles. 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 ; par exemple : set CYGW=C:\cygwin\bin\. Le but est d’utiliser Cygwin et non pas la commande « DOS » qui porte le même nom.
- Somme de contrôle (checksum)
- openssl md5 [fichier] > [sortie.txt]
- Résultat (exemple) : MD5(fichier.txt)= 54fff2e624298228e0717ea239538202
- 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