Cygwin

Utilisation

 

Pourquoi utiliser Cygwin ?

Cygwin peut être utilisé bien différement dans des secteurs différents.

Navigation DOS

Si on a mis le repertoire "bin" de Cygwin dans le path du DOS, on a accès au "bash". C'est-à-dire qu'à tout moment dans une fenêtre DOS on peut taper bash et entre dans un nouveau shell. Ce shell nous positionne dans le même répertoire et on a toujours accès aux commandes DOS. Mais on a aussi la possibilité d'utiliser l'autocompletion qui est bien plus pratique pour naviguer sous DOS dans les répertoires.

Remarque : cela peut se réveler très pratique, par exemple, dans le cas de développement en Java, pour lequel on utilise souvent la fenêtre DOS.

Outils de manipulation de fichiers

Cygwin est livré avec beaucoup d'outils de manipulation de fichiers bien connus du monde UNIX. Parmis ces outils on peut citer "grep" qui permet de faire de la recherche de motifs dans un ou plusieurs fichiers, "sed" qui permet de faire des remplacements de motifs dans des fichiers, "awk" qui permet de faire des scripts très performents de manipulation de fichiers, "find" qui permet de faire de la recherche recursive de fichiers...
Bien que Windows intègre petit à petit des options permettant de faire des actions basiques similaire, Cygwin apporte d'une part une performance bien plus poussée de ses outils (il suffit de voir le nombre d'options pour chaque programme), d'autre part une possibilité de mixer plusieurs de ces outils via des scripts shell, ce qui est impossible sous Windows.

Remarque : si le répertoire "bin" de Cygwin se trouve dans le path du DOS on peut utiliser tous ces outils sous DOS.

Administration

Cygwin peut être très pratique pour un administrateur qui a développé quelques outils (programmes ou scripts) de configuration et qui veut pouvoir administrer son réseau à distance. En effet, il pourra installer un serveur telnet ou ssh sous Cygwin et prendre ainsi le contrôle des machines à distance et être sous environnement UNIX. Ce qui permet de pouvoir lancer des scripts d'administrations développés sous UNIX sur les postes Windows.

Developpement

Cygwin fournit de puissants outils de développement.
Le célèbre compilateur Gnu GCC, tout d'abord, devient l'un des rares compilateurs gratuit sous Windows. Il permet tout d'abord de recompiler des sources de programmes UNIX sous Windows, mais aussi de compiler des sources développées sous Windows.
En effet il integre à la fois les API UNIX et les API Win32. Il permet donc de compiler des programmes fournissant une GUI (Graphic User Interface) sous Windows à des API UNIX.
Il permet notement la construction de librairies dynamiques (DLL, Dynamic Link Library), qui peuvent être utilisables sous Windows, par des programmes entierement Win32 par exemple.
GCC permet aussi de faire de la "cross compilation", c'est-à-dire de la compilation de sources sur une machines pour créer un programme executable sur une autre machine. On peut donc développer sous Wndows un programme executable sous UNIX, ou même sous Windows NT sur PowerPC...
Cygwin fournit aussi un puissant debugger : GDB. Tout comme GCC, GDB est un puissant outil de développement qui devient l'un des rares gratuits sous Windows.

Système d'exploitation

Cygwin fournit un shell, un compilateur, un editeur...
Il permet donc en théorie de recompiler et de développer n'importe quel programme. De plus depuis peu, il fournit XFree86 4.2.0, qui est le serveur X de UNIX, c'est-à-dire le programme qui permet d'afficher des fenêtres graphiques. Il est la base d'un "window-manager" (gestionnaire de fenêtre). Il est fournit avec un certain nombre d'utilitaire "X" : xterm, xhost, xkill... Depuis un an environ (debut 2001), un projet a pour but de porter KDE (un des window-managers de Linux) sous Cygwin. Il est déjà disponible en version beta.

Quelques impressions d'écran de KDE sous Windows : cliquez ici.

Cygwin peut être utilisé comme serveur. En effet on peut y installer de nombreux serveurs gratuits et plus sécurisés que sous Windows :
Apache, proftpd, sshd, Oracle...

 

Comment utiliser Cygwin ?

Après l'installation, il y a une icône sur le bureau :
    

Quand on clique dessus, une fenêtre DOS apparaî:t avec un "bash" lancé en tant que $USER (l'utilisateur Windows qui est loggé) :

Ensuite l'utilisation est la même qu'une console sous Linux.

Naviguer dans l'arboresence Windows

Quand on a lancé Cygwin, on ne peut que se déplacer dans les répertoires sous "/", le répertoire d'installation de Cygwin. Si on veut aller ailleurs sur le disque dur ou sur d'autre disque dur il suffit de faire df :
cette commande affiche les différents systèmes qui ont été montés dans l'arborescence. Sur une machine ayant deux disques dur (ou un disque dur partitionné en 2), on peut voir par exemple :
	Filesystem           1k-blocks      Used Available Use% Mounted on
	C:\outils\cygwin\bin   2096832         0   2096832   0% /usr/bin
	C:\outils\cygwin\lib   2096832         0   2096832   0% /usr/lib
	C:\outils\cygwin       2096832         0   2096832   0% /
	c:                     2096832         0   2096832   0% /cygdrive/c
	d:                     2096832   1235936    860896  59% /cygdrive/d
	
Les deux dernières lignes nous apprennent que le disque C: est accessible dans le répertoire "/cygdrive/c", de même pour D: : "/cygdrive/d". Il suffit donc de faire cd /cygdrive/<lettre du lecteur> pour accéder aux lecteurs Windows.

Remarque : le répertoire "/cygdrive" n'existe pas. Il n'est pas visible sous "/". Si on fait cd /cygdrive Cygwin repond une erreur "No such file or directory". Il n'est utilisable que pour être traversé.

Prendre les droits de superutilisateur

Théoriquement on n'a pas besoin d'avoir les droits "root" car Cygwin est mono-utilisateur : toute l'arborescence est au nom de l'utilisateur Windows qui a installé Cygwin. Mais en pratique certains logiciels demandent d'être "root" pour s'installer. Il faut donc connaî:tre la technique pour devenir superutilisateur sur un système qui ne possède pas de superutilisateur (la commande su n'existe même pas).
Il faut modifier le fichier "/etc/passwd". Il suffit juste de remplacer le UID (User ID) et le GID (Group ID) par des "0" (UID et GID de "root"). Après cela on relance Cygwin et on est maintenant reconnu comme superutilisateur.