web-dev-qa-db-fra.com

Ouvrez Cygwin dans un dossier spécifique

Comment créer un raccourci Cygwin qui ouvrira Cygwin dans un dossier spécifique? Cela éviterait de devoir taper

cd /cygdrive/c/Users/Tom/Desktop/

chaque fois que je lance Cygwin.

215
Randomblue

Lorsque vous installez Cygwin (ou si vous l’avez déjà installé, téléchargez-le à nouveau et lancez à nouveau le programme d'installation pour exécuter une mise à jour), assurez-vous de sélectionner le package chere dans la catégorie "Coquilles".

Une fois Cygwin lancé, ouvrez un terminal Cygwin (en tant qu'administrateur) et tapez la commande suivante: chere -i -t mintty -s bash.

Vous devriez maintenant avoir "Invite Bash ici" dans le menu contextuel du clic droit de Windows.

( mintty est le terminal par défaut de Cygwin. Si vous ne le choisissez pas avec l'option -t, votre "invite de commande ici" utilisera le même terminal que l'invite de commande Windows, ce qui évite les redimensionnement.)

384
two7s_clash

Voici ce que j'utilise. Il ne nécessite pas de bricolage de paquets ou de registre chere. Fonctionne sur Windows 7.

Allez dans votre dossier "Envoyer à":

C:\Users\<your_user_name>\AppData\Roaming\Microsoft\Windows\SendTo

Créez un raccourci nommé Bash Here ayant ceci dans le champ Target:

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico  C:\cygwin\bin\bash.exe  -l -c "cd \"$0\" ; exec bash"

Dans l'explorateur Windows, vous cliquez avec le bouton droit sur un dossier et sélectionnez Send To > Bash Here.

Et voici le truc opposé, ouvrir un explorateur Windows dans votre répertoire bash actuel. Créez cet alias:

alias winx='/cygdrive/c/Windows/Explorer.exe /e,\`cygpath -w .\`'

Remarque: la partie cygpath -w . ci-dessus est encadrée par des points arrière.

Il suffit maintenant de taper winx à l'invite bash, et un explorateur Windows apparaît.

Remarque: si winx vous dirige vers votre dossier de documents, essayez

alias winx='/cygdrive/c/Windows/Explorer.exe /e,`cygpath -w $PWD`'
93
LindseyD

Depuis le terminal cygwin, exécutez cette commande:

echo "cd your_path" >> ~/.bashrc

Le script .bashrc est exécuté lorsque vous ouvrez une nouvelle session bash. Le code ci-dessus avec modification de la ton chemin répertoire lorsque vous ouvrez une nouvelle session cygwin.

30
bschwagg

J'ai créé un fichier .reg qui place l'option "Open Cygwin Here" dans le menu contextuel. Cela dépend du paquet "chere" de Cygwin, que vous pouvez installer avec apt-cyg si vous ne l'avez pas installé lors de la configuration initiale.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cygwin_bash\command]
@="C:\\cygwin\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"

Pour cygwin64 ou les installations sans chere, vous pouvez utiliser la commande suivante dans une entrée de registre (en supposant que Windows soit dû à votre chemin, en supposant que le répertoire d'installation de cygwin est c:\cygwin64)

C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd "`cygpath "%V"`"; bash'

Fonctionne sous Windows 7 et 8 Fichier de registre disponible au téléchargement ici: http://tomkay.me/blog/Cygwin64---Open-Here-18

Windows Registry Editor Version 5.00
; Open cygwin to folder
; http://tomkay.me - Tom Kay

[HKEY_CLASSES_ROOT\Folder\Shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Folder\Shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"

[HKEY_CLASSES_ROOT\Directory\Background\Shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\Shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"
17
Tom Kay

Si vous souhaitez utiliser ce répertoire par défaut, ajoutez simplement une instruction cd à votre fichier ~/.profile.

Ce que j'ai tendance à faire est d'utiliser cette méthode pour définir mon répertoire habituel, ainsi que de définir des alias pour mes cas courants:

alias tom="cd /users/tom"

ou votre équivalent. Cela me permet de changer de répertoire très rapidement.

12
paxdiablo

J'utilise et Icon pour lancer mon cygwin sans le package chere.

  1. Créez un raccourci sur mon bureau pour le terminal cygwin.
  2. Cliquez avec le bouton droit de la souris sur l'icône et sélectionnez Propriétés.
  3. Sur l'onglet de raccourci, utilisez ceci pour la CIBLE: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. Pour START IN, indiquez le chemin du dossier/dossiers où vous souhaitez lancer cygwin. c'est-à-dire C:\some\dir\name\here
8
Doug

Comme le dit two7s_clash, vous devez d'abord installer le paquet chere et le programme d'installation menthe:

  1. Ouvrez le terminal Cygwin en tant qu'administrateur
  2. apt-cyg install chere
  3. chere -i -t mintty

Vous pouvez maintenant ouvrir cygwin dans un répertoire spécifique en cliquant avec le bouton droit de la souris dans l’explorateur Windows (menu contextuel) et en sélectionnant "Invite Bash ici".

Vous pouvez également ouvrir cygwin à partir d'un répertoire spécifique à l'aide de la commande windows Invite:

  1. Ouvrir l'invite de commande Windows
  2. Naviguez (cd) dans un répertoire personnalisé
  3. Exécuter C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    Cette commande ouvrira cygwin avec le répertoire en cours extrait de la commande Invite.

FreeCommander

Cette commande peut également être utilisée pour ouvrir cygwin à partir d’un gestionnaire de fichiers personnalisé, comme FreeCommander.

Pour ouvrir cygwin avec le répertoire actuel provenant de FreeCommander, procédez comme suit:

  1. Outils -> Outils favoris -> Outils favoris modifier ... (Ctrl + Maj + Y)
  2. Ajouter une nouvelle barre d'outils (+ icône), Raccourci: Insérer

    • Nom: cygwin
    • Programme ou dossier: C:\cygwin64\bin\mintty.exe
    • Dossier de démarrage: %ActivDir%
    • Paramètre: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

Vous pouvez ajouter un raccourci personnalisé pour ouvrir cygwin depuis FreeCommander:

  1. Outils -> Définir les raccourcis clavier
  2. Faites défiler jusqu'à "Outil favori 01" (ou "Outil favori N")
  3. Attribuer une nouvelle touche de raccourci: j'utilise Ctrl + Shift + T

Excellente référence: MinTTY Wiki, article Conseils: commencer dans un répertoire particulier

8
nexayq

Pour créer un raccourci Windows qui lance un terminal Cygwin dans un répertoire de votre choix, procédez comme suit:

  • Cliquez avec le bouton droit sur le bureau Windows, sélectionnez "Nouveau", puis "Raccourci".

  • Pour l'emplacement de l'élément, entrez le texte suivant, en modifiant le chemin mintty selon vos besoins et en remplaçant le nom du répertoire souhaité à l'endroit indiqué.

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd DESIRED-DIRECTORY; exec bash'
    

    Par exemple, le PO utiliserait le texte suivant:

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash'
    
  • Cliquez sur Suivant'.

  • Entrez le nom souhaité pour le raccourci et cliquez sur 'Terminer'.

Plusieurs raccourcis peuvent être placés sur le bureau pour ouvrir les terminaux Cygwin dans divers répertoires fréquemment consultés.

Inspiré par la solution publiée sur Comment ouvrir un Cygwin Shell dans un répertoire spécifique de Netbeans? à superutilisateur.com .

5
Patrick Kelly

Recherchez le fichier Cygwin.bat et créez le contenu de la manière suivante:

@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"

Ajoutez le chemin à cygwin.bat à l'environnement PATH.

Maintenant, dans n'importe quel dossier, vous pouvez taper dans la barre d'adresse:

cygwin

Aussi, vous pouvez le taper lorsque vous êtes dans cmd.exe

4
Geograph

J'ai créé un script d'édition de registre pour ouvrir Cygwin dans n'importe quel dossier sur lequel vous cliquez avec le bouton droit de la souris. C'est sur mon GitHub.

Voici mon GitHub

Exemple de code RegEdit de Github pour ordinateurs 64 bits:

REGEDIT4

[HKEY_CLASSES_ROOT\Directory\Shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_CLASSES_ROOT\Directory\Shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\Shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\Shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
3
umer936

J'ai utilisé les lignes de code suivantes pour démarrer zsh dans le répertoire actuel de Win7.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cygwin_bash]
@="Open Cygwin Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cygwin_bash\command]
@="\"C:\\Programmieren\\cygwin64\\bin\\mintty.exe\" -i /Cygwin-Terminal.ico /bin/zsh --login -c 'cd \"%V\";zsh'"

notez que j'ai utilisé% V au lieu de% L ou% 1 (car les deux n'ont pas fonctionné pour moi)

3
H. Hess

Lorsqu'une nouvelle installation est nécessaire, je crée une "variable d'environnement utilisateur" Windows nommée HOME et lui attribue le chemin d'accès, où que se trouve "Mes documents".

Le programme d’installation de cygwin détecte la variable HOME, le traduit automatiquement en cygpath et le sélectionne comme répertoire ~.

Cela a bien fonctionné pour chaque poste de travail que j'ai utilisé professionnellement au cours des 5 dernières années (environ 3 ou 4, Win7). J'ai toujours été le seul utilisateur sur ces machines, je ne peux pas dire quel est l'effet.

3
Adam.at.Epsilon

Ouvrez le terminal Cygwin en tant qu'administrateur

En PowerShell (avec Chocolatey):

choco install cyg-get

Dans cygwin va installer le menu clic-droit

cyg-get install chere
chere -i

Maintenant, vous pouvez cliquer avec le bouton droit de la souris et utiliser "Invite Bash ici" dans n’importe quel dossier.

2
Jonathan

Dans la réponse qui utilise le registre, j'ai constaté que sous Windows 2008 R2 SP1, vous devez supprimer l'arrière-plan du chemin. De plus, puisque chere et xhere ne font pas partie de cygwin64, voici une solution qui fonctionne pour les deux systèmes, combinant le registre et les solutions Envoi à. Remplacez 'E:\cygwin64' par votre emplacement d'installation:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Shell\cygwin_bash\command]
@="E:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico --exec /bin/bash.exe --login -c \"cd '%1' ; exec bash -rcfile ~/.bashrc\""
1
mpersico

Vous pouvez simplement ouvrir le terminal cygwin et écrire: cd et, après avoir glissé, déposez le dossier que vous voulez et entrez!

1
Panagiotis

Sur ma machine Windows, cela ne prenait pas:

chère-menthe

Parce que Mintty Shell n’était pas disponible, mais vous pourriez avoir le choix entre plusieurs autres obus comme cendres bash cmd dash mksh pdksh posh tcsh zsh passwd.

alors j'ai utilisé:

chere -i -s bash

1
user3065757

Vous pouvez ajouter l'icône au shell en ajoutant un champ Icon au chemin d'accès à votre fichier Cygwin.ico.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cygwin_bash]
@="Cygwin"
"Icon"="\"C:\\cygwin64\\Cygwin.ico\""

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"
1
STEELIX

J'ai créé le fichier de commandes et l'ai placé dans le répertoire/bin de Cygwin. Ce script a été développé pour permettre d’installer/désinstaller les entrées de registre pour l’ouverture des dossiers et des lecteurs sélectionnés dans Cygwin. Pour plus de détails, voir le lien http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html .

update: Cette solution fait la même chose que les premières suggestions mais toutes les manipulations avec le registre Windows sont cachées dans le script.

Effectuer la commande pour installer

cyghere.bat /install

Effectuer la commande pour désinstaller

cyghere.bat /uninstall
0
jsxt

C’est la seule solution de registre Cygwin64 qui a fonctionné pour moi dans Windows 8.1:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Shell\mintty]
@="Mintty from Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Shell\mintty\command]
@="C:\\cygwin64\\bin\\mintty.exe -h always -e /usr/bin/ash -c 'cd  \"$(/usr/bin/cygpath \"%L\")\";  exec /usr/bin/bash  '"

Assurez-vous de modifier votre chemin 'C:\cygwin64' si nécessaire.

0
Smyrnian

Créez un fichier bash dit move.sh qui a le code suivant C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Ceci démarre Cygwin et exécute le runFile.sh présent dans le répertoire bin de Cygwin. Supposons que vous souhaitiez naviguer vers un répertoire spécifique, par exemple E:\code alors runFile.sh a le code suivant cd E: cd code

0
LeelaPrasad4648