Ouvrez Cygwin dans un dossier spécifique
Comment puis-je créer un raccourci Cygwin qui ouvrira Cygwin dans un dossier spécifique? Cela éviterait d'avoir à taper
cd /cygdrive/c/Users/Tom/Desktop/
Chaque fois que je lance Cygwin.
26 réponses
Lorsque vous installez Cygwin (ou si vous l'avez déjà installé, téléchargez-le à nouveau et redémarrez le programme d'installation pour lancer une mise à jour), assurez-vous de sélectionner le paquet chere
dans la catégorie "Shells".
Après le lancement de Cygwin, ouvrez un terminal Cygwin (en tant qu'administrateur) et tapez la commande: chere -i -t mintty -s bash
.
Maintenant, vous devriez avoir "Bash Prompt Here" dans le menu contextuel de Windows.
(mintty est le terminal par défaut de Cygwin. Si vous ne choisissez pas avec le -t
option, votre "invite Bash ici" utilisera le même terminal que L'invite de commande Windows, ce qui empêche le redimensionnement horizontal.)
Voici ce que j'utilise. Il ne nécessite pas chere
paquet ou registre bricoler. 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, cliquez avec le bouton droit sur un dossier et sélectionnez Send To > Bash Here
.
Et voici l'astuce inverse, ouvrir un explorateur Windows dans votre répertoire bash actuel. Créer cet alias:
alias winx='/cygdrive/c/Windows/explorer.exe /e,\`cygpath -w .\`'
Note: la partie cygpath -w .
ci-dessus est incluse dans en arrière-tiques.
Maintenant, il suffit de taper winx
à l'invite bash, et un explorateur Win apparaît là-haut.
Remarque: Si winx vous dirige vers votre dossier documents, essayez
alias winx='/cygdrive/c/Windows/explorer.exe /e,`cygpath -w $PWD`'
J'ai fait un .fichier reg qui met une option" Ouvrir Cygwin ici " dans le menu contextuel du clic droit. Cela dépend du paquet Cygwin "chere", que vous pouvez installer en utilisant apt-cyg Si vous ne l'avez pas installé dans 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"
Depuis le terminal cygwin, exécutez cette commande:
echo "cd your_path" >> ~/.bashrc
Le .bashrc script est exécuté lorsque vous ouvrez une nouvelle session bash. Le code ci-dessus avec changement dans le répertoire your_path lorsque vous ouvrez une nouvelle session cygwin.
Pour cygwin64 ou les installations sans chere, vous pouvez utiliser la commande suivante dans une entrée de registre (en supposant que windows en raison de votre chemin, en supposant également que le répertoire d'installation de cygwin est c:\cygwin64)
C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd "`cygpath "%V"`"; bash'
Fonctionne sur Windows 7 et 8 Fichier de registre disponible en 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'"
Si vous voulez avoir 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, plus de définir des alias pour mes cas courants:
alias tom="cd /users/tom"
Ou votre équivalent. Cela me permet de changer les répertoires très rapidement.
Comme two7s_clash l'a dit, vous devez d'abord installer chere
package et configurer mintty:
- ouvrez le terminal Cygwin en tant qu'administrateur
apt-cyg install chere
chere -i -t mintty
Vous pouvez maintenant ouvrir cygwin dans un répertoire spécifique avec un clic droit de la souris dans L'Explorateur Windows (menu contextuel) et sélectionnez "Bash Prompt Here".
Vous pouvez également ouvrir cygwin à partir d'un répertoire spécifique à l'aide de l'invite de commande windows:
- ouvrir la commande windows invite
- naviguez (
cd
) vers le répertoire personnalisé -
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 courant extrait de l'invite de commande.
FreeCommander
Cette commande peut également être utilisée pour ouvrir cygwin à partir du gestionnaire de fichiers personnalisé, comme FreeCommander.
Pour ouvrir cygwin avec le répertoire courant extrait de FreeCommander, procédez comme suit:
- Outils - > Outils favoris - > outils favoris modifier... (Ctrl +Maj + Y)
-
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 à partir de FreeCommander:
- Outils - > Définir les raccourcis clavier
- Faites défiler jusqu'à "outil favori 01" (ou "outil favori N")
- Attribuer nouvelle touche de raccourci: - je utiliser Ctrl + Maj + T
Grande référence: MinTTY Wiki, conseils d'article: commencer dans un répertoire particulier
J'utilise et L'icône pour lancer mon cygwin sans le paquet chere
.
- Créez un raccourci sur mon bureau pour le terminal cygwin.
- R-cliquez sur l'icône et sélectionnez propriétés.
- dans l'onglet Raccourci, utilisez ceci pour la cible:
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
- pour démarrer, placez le chemin du répertoire/dossier où vous voulez
Lancez cygwin. c'est à dire
C:\some\dir\name\here
J'ai utilisé les lignes de code suivantes pour démarrer zsh dans le répertoire courant dans 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 (puisque les deux ne fonctionnaient pas pour moi)
Trouver le fichier Cygwin.bat et faire du contenu comme ceci:
@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"
Ajoute un chemin à cygwin.bat à l'environnement chemin.
Maintenant dans n'importe quel dossier vous pouvez taper à la barre d'adresse:
cygwin
Vous pouvez également le taper lorsque vous en cmd.exe
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 de "mes Documents".
Le programme d'installation de cygwin détecte la variable HOME
, La traduit automatiquement en cygpath et la sélectionne comme mon répertoire~.
Cela a bien fonctionné pour chaque poste de travail que j'ai utilisé professionnellement les 5 dernières années (environ 3 ou 4, Win7). J'ai toujours été le seul utilisateur sur ces machines, ne peut pas dire ce que le l'effet est.
J'ai fait un script d'édition de Registre pour ouvrir Cygwin dans N'importe quel dossier que vous faites un clic droit. C'est sur mon GitHub.
Ouvrez le terminal Cygwin en tant Qu'Administrateur
Dans powershell (en utilisant chocolatey):
choco install cyg-get
Dans cygwin Installera menu clic droit
cyg-get install chere
chere -i
Maintenant, vous pouvez faire un clic droit et utiliser "bash Prompt Here" dans n'importe quel dossier.
Dans la réponse qui utilise le registre, j'ai trouvé que sur 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, combinant le registre et les solutions Send To. Remplacer "E:\cygwin64" avec votre emplacement d'installation:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT \ Directory \ shell \ cygwin_bash] @ = "Ouvrir Cygwin Ici "
[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\""
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 'C:\cygwin64' chemin si nécessaire.
J'ai créé le fichier batch et l'ai placé dans le répertoire /bin de Cygwin. Ce script a été développé de sorte qu'il permet d'installer/désinstaller les entrées de Registre pour ouvrir les dossiers et les 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.
Mise à jour: 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.
Exécutez la commande pour installer
cyghere.bat /install
Exécutez la commande pour désinstaller
cyghere.bat /uninstall
Vous pouvez ajouter l'icône au shell en ajoutant un champ Icon
défini sur le 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"
Sur ma machine Windows, il ne prenait pas:
Chere-i-t mintty
Parce que mintty shell n'était pas disponible, mais vous pourriez avoir le choix entre divers autres shells comme ash bash cmd dash mksh pdksh posh tcsh zsh passwd.
J'ai Donc utilisé :
Chere-i-s bash
Créez un fichier bash par exemple move.sh
qui a le code suivant
C:\cygwin64\bin\run.exe -p /bin bash runFile.sh
Cela démarre le 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
Vous pouvez simplement ouvrir le terminal cygwin et écrire: cd et après glisser-déposer le dossier que vous voulez mettre fin à entrer!
@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"
Copiez les commandes ci-dessus dans un fichier texte et enregistrez-les sous .bat dans l'un des "votre dossier d'intérêt". Il devrait ouvrir cygwin dans votre "dossier d'intérêt".
Basé sur la réponse @ LindseyD j'ai créé un fichier BAT simple, qui ouvre cygwin dans le répertoire courant, cela peut être utile (pour moi c'est le cas). En supposant que vous avez le répertoire bin de cygwin dans PATH.
FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'
J'ai aussi eu un problème avec git, qui avait l'habitude de "voler" mes commandes cygwin-donc j'avais besoin de courir C:\cygwin\bin\mintty.exe -
mais après avoir installé chere
et exécuté chere -i -t mintty -f
en tant qu'administrateur (voir ci-dessus), vous pouvez simplement utiliser : C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
J'ai ajouté ceci dans Total Commander en tant que BOUTON PERSONNALISÉ (clic droit sur Panneau > ajouter ...) et il fonctionne très bien.
Je ne sais pas pourquoi j'ai eu autant de temps, mais cela fonctionne pour moi sur win 10, 64 bit:
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:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
Probablement le plus simple:
1) Créer un fichier foo.reg
2) insérer le contenu:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty]
@="open mintty"
[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty\command]
@="cmd /C mintty"
3) Exécuter foo.reg
Maintenant, faites un clic droit dans n'importe quel dossier, cliquez sur open mintty
et il va apparaître mintty dans ce dossier.
Mieux faire comme ci-dessous:
HKEY_CLASSES_ROOT\Directory\shell\BashHere
Enter Data: Bash Here
HKEY_CLASSES_ROOT\Directory\shell\BashHere\command
Enter Data:
cmd.exe /c C:\cygwin\bin\bash.exe --login -c "cd '%1'; exec /bin/bash"