Utiliser Cygwin pour passer des commandes Linux dans Windows 10

Vous avez installé CygWin sur Windows 10 afin d'exécuter des commandes Linux dans Windows.
Vous n'avez jamais utilisé ce dernier et souhaitez débuter avec ce dernier.
Mais quelles sont les commandes de bases ? Comment accéder aux fichiers Windows depuis CygWin.

Cet article vous guide pour apprendre à utiliser l'environnement CygWin avec les bases et vous faire gagner du temps.

Utiliser Cygwin pour passer des commandes Linux dans Windows 10

Utiliser Cygwin pour passer des commandes Linux dans Windows 10

Installer Cygwin

L'installation n'est pas compliquée.
Un article complet vous guide pour installer CygWin sur votre PC en Windows 10 :

Les composants CygWin

Voici les composants CygWin après l'installation :

  • CygWin64 Terminal : un terminal et shell pour passer les commandes Linux
  • GNOME Flashback (Metacity) : L'environnement de bureau GNOME Nécessite d'avoir installé les paquets. On peut faire de même avec KDE
  • User Script : exécute l'environnement X Cygwin/X
  • XWin Server : Execute un serveur X
Utiliser Cygwin sur Windows 10

Cygwin/X est une implémentation du système X Window qui fonctionne sous Microsoft Windows. Il fait partie du projet Cygwin et est installé à l'aide du système de configuration standard de Cygwin. Cygwin / X est un logiciel gratuit, sous licence X11.

Les commandes de bases Linux dans cygwin

On retrouve les mêmes commandes que sur Linux :

CommandesDescription
cat Afficher le contenu d'un fichier
lsLister le répertoire actuel
dirSimilaire à "ls"
pwdAfficher le répertoire de travail actuel
cd répertoireRemplacer le répertoire de travail actuel par "répertoire"
cd ..Remplacer le répertoire de travail actuel par son répertoire "parent"
cd /Remplacer le répertoire de travail actuel par son répertoire «racine»
mkdirCréer un nouveau dossier
rm *Supprimer un fichier
man commandeAffiche le man (aide) de la commande
Les commandes de bases sur Cygwin

Bref, il y a toutes les commandes basiques (kill, mount, etc)
Reportez-vous à cet article complet :

Recherche de fichiers Cygwin avec des applications Windows, et vice versa

La notation des fichiers sur CygWin et Unix diffèrent de Windows.
Notamment les chemins utilisent / et non \

Si vous avez besoin d'utiliser un programme Cygwin pour lire ou écrire un fichier situé en dehors de c:\cygwin, vous pouvez utiliser un chemin commençant par /cygdrive/c/ à cet effet.
Si vous avez un lecteur Windows d:, utilisez /cygdrive/d/ de la même manière pour accéder à son contenu depuis les programmes Cygwin.
Par exemple, un fichier Windows natif appelé c:\Users\utilisateurs\Mes documents\hello.c peut être trouvé par un programme Cygwin dans /cygdrive/c/Mes\Documents/hello.c

Ainsi pour se rendre sur le disque C depuis le terminal cygwin :

cd /cygdrive/c

Voici les équivalences de l'arborescence Windows et CygWin pour accéder trouver vos fichiers facilement.

Chemin dans WindowsChemin dans CygWin
c:\cygwin64/
C:\/cygdrive/c
D:\/cygdrive/d
c:\cygwin64\bin/bin
c:\cygwin64\etc/etc
c:\cygwin64\home/home
c:\cygwin64\lib/lib
c:\cygwin64\tmp/tmp
c:\cygwin64\usr/usr
c:\cygwin64\var/var
Les chemins d'accès dans CygWin et Windows

cygwin fournit l'utilitaire cygpath pour convertir les chemins :

cygpath -u 'c:\cygwin\cygbuild\build.mak'
/cygdrive/c/cygwin/cygbuild/build.mak

Pour vous y retrouver dans l’arborescence Linux, vous pouvez consulter cette page :

On retrouve celle-ci dans c:\cygwin64 :

Ainsi si vous placez un fichier dans l'arborescence CygWin, on récupère ce dernier depuis le terminal.
De quoi par exemple décompresser une archive avec depuis 7zip dans Windows pour y accéder depuis CygWin.

Les commandes cygwin

cygwin possède des commandes internes.
Voici une liste avec les explications :

CommandesDescriptions
cygcheckRépertoriez les informations système, vérifiez les packages installés ou interrogez la base de données des packages.
Équivalent de dpkg ou rpm
cygpathConvertir les chemins de format Unix et Windows ou afficher les informations de chemin du système
cygstartDémarrer un programme ou ouvrir un fichier ou une URL
CygserverCygserver est un programme conçu pour s'exécuter en tant que service d'arrière-plan. Il fournit aux applications Cygwin des services qui nécessitent un arbitrage de sécurité ou qui doivent persister lorsqu'aucune autre application cygwin n'est en cours d'exécution.
cygrunsrvcygrunsrv est une implémentation d'un démarreur de service NT / W2K, similaire aux programmes INSTSRV, u SC de Windows
Les commandes et utilitaires cygwin

cygcheck

Pour obtenir la version d'un paquet à partir du binaire, on utilise l'option -f

cygcheck -f /usr/bin/less

Lister tous les fichiers d'un paquet :

cygcheck -l less

Les autres options de cygcheck :

  • L'option -c vérifie la version et l'état des packages Cygwin installés. Si vous spécifiez un ou plusieurs noms de packages, cygcheck limitera sa sortie à ces packages, ou sans argument, il répertorie tous les packages
  • L'option -r amène cygcheck à rechercher dans votre registre des informations pertinentes pour les programmes Cygwin
  • L'option -v rend la sortie plus détaillée.
  • L'option -r amène cygcheck à rechercher dans votre registre des informations pertinentes pour les programmes Cygwin

cygstart

Démarrez Bash dans une nouvelle fenêtre :

cygstart bash

Ouvrez le site malekal.com dans votre navigateur par défaut:

cygstart https://www.malekal.com

Imprimer un fichier texte :

cygstart --print README.txt

Ouvrez un document Word dans une fenêtre agrandie :

cygstart --maximize ~ /projects/dossier/document.doc

cygrunsrv

Démarrer un service Windows :

cygrunsrv -S <svc_name>
cygrunsrv --start <svc_name>

Supprimer un service Windows :

cygrunsrv -R <svc_name>
cygrunsrv --remove <svc_name>

Arrêter un service Windows :

cygrunsrv -E <svc_name>
cygrunsrv --stop <svc_name>

Exécuter un script Shell dans Windows 10

Pour exécuter un script Shell dans Windows 10 :

  • Ouvrez le terminal Cygwin
  • Exécuter le script avec ./ au début. Par exemple pour exécuter script.sh :
 ./script.sh

Mais on peut aussi exécuter le script Shell sans la console et terminal.
En effet, il est possible d'appeler les binaires cygwin directement dans Windows.
Ainsi pour exécuter un script Shell depuis Windows 10 sans un terminal cygwin :

C:\cygwin64\bin\dos2unix script.sh
C:\cygwin64\bin\bash script.sh

Cela permet d'intégrer ce dernier dans un script BATCH / CMD.

Pour faciliter les appels des commandes cygwin dans Windows, vous pouvez ajouter le chemin dans la variable d'environnement PATH :

 set PATH=C:\cygwin64\bin;%PATH%

Ici on part du principe que cygwin est installé dans C:\cygwin64.
A adapter selon votre configuration.