Открыть Cygwin в определенной папке

Как создать ярлык Cygwin, который откроет Cygwin в определенной папке? Это избавило бы от необходимости печатать

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

каждый раз, когда я запускаю Cygwin.

26 ответов


когда вы устанавливаете Cygwin (или если вы уже установили его, загрузите его снова и запустите установку снова, чтобы запустить обновление), убедитесь, что вы выбрали chere пакет в категории "оболочки".

после запуска Cygwin откройте терминал Cygwin (как администратор) и введите команду:chere -i -t mintty -s bash.

Теперь у вас должно быть "Bash Prompt Here" в контекстном меню правой кнопки мыши Windows.

(mintty является терминалом Cygwin по умолчанию. Если вы не выбираете его с -t опция, ваш "bash Prompt Here" будет использовать тот же терминал, что и Командная строка Windows, что предотвращает горизонтальное изменение размера.)


вот что я использую. Это не требует chere пакет или реестр возиться. Работает на Windows 7.

перейдите в папку "отправить":

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

создать ярлык с именем Bash Here имея это в \" ; exec bash"

в Проводнике Windows щелкните правой кнопкой мыши папку и выберите Send To > Bash Here.

и вот противоположный трюк, открывая Проводник Windows в вашем текущем bash dir. Создать это псевдоним:

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

Примечание:cygpath -w . часть выше заключена в клещи.

теперь просто введите winx в приглашении bash, и там появляется Win Explorer.

Примечание: Если winx направляет вас в папку "Документы", попробуйте

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

Я сделал .файл reg, который помещает опцию "Открыть Cygwin здесь" в контекстное меню правой кнопкой мыши. Это зависит от пакета Cygwin "chere", который вы можете установить с помощью АПТ-типа Cyg Если вы не установили его в начальной установке.

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"

С терминала cygwin выполните следующую команду:

echo "cd your_path" >> ~/.bashrc

The .сценарий bashrc запускается при открытии нового сеанса bash. Код выше с изменением на путь_к_файлу каталог при открытии нового сеанса cygwin.


для cygwin64 или установки без chere вы можете использовать следующую команду в записи реестра (предполагая, что windows из-за вашего пути, также предполагая, что каталог установки cygwin c:\cygwin64)

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

работает на Windows 7 и 8 Файл реестра доступен для скачивания здесь: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'"

Если вы хотите иметь этот каталог по умолчанию, просто добавьте cd заявление .

что я склонен делать, это использовать этот метод, чтобы установить мой обычный каталог, а также определить псевдонимы для моих общих случаев:

alias tom="cd /users/tom"

или эквивалент. Это позволяет мне очень быстро менять каталоги.


как сказал two7s_clash, вам сначала нужно установить chere пакет и установка mintty:

  1. откройте терминал Cygwin как администратор
  2. apt-cyg install chere
  3. chere -i -t mintty

теперь вы можете открыть cygwin в определенном каталоге правой кнопкой мыши в Проводнике Windows (контекстное меню) и выбрать "Bash Prompt Here".

вы также можете открыть cygwin из определенного каталога с помощью команды windows подсказка:

  1. Откройте командную строку windows
  2. перейдите (cd) в пользовательский каталог
  3. выполнить C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    эта команда откроет cygwin с текущим каталогом, взятым из командной строки.

FreeCommander

эта команда также может быть использована для открытия cygwin из пользовательского файлового менеджера, например FreeCommander.

чтобы открыть cygwin с текущим каталогом, взятым из FreeCommander, сделайте следующее:

  1. инструменты -> инструменты -> инструменты редактирования... (Ctrl + Shift + Y)
  2. добавить новую панель инструментов (значок+), клавиша: Insert

    • имя: cygwin
    • программы или папки: C:\cygwin64\bin\mintty.exe
    • папку пуск: %ActivDir%
    • : C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

вы можете добавить пользовательский ярлык, чтобы открыть cygwin из FreeCommander:

  1. инструменты - > определить сочетания клавиш
  2. прокрутите вниз до " любимый инструмент 01 "(или"любимый инструмент N")
  3. назначить новую клавишу быстрого доступа: я использую Ctrl + Shift + T

отличная ссылка: MinTTY Wiki, советы по статье: запуск в определенном каталоге


Я использую и значок для запуска моего cygwin без .

  1. создайте ярлык на моем рабочем столе для терминала cygwin.
  2. R-щелкните значок и выберите Свойства.
  3. на вкладке Ярлык используйте это для цели: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. для начала введите путь к папке dir/, где вы хотите запустить под Cygwin. т. е. C:\some\dir\name\here

я использовал следующие строки кода для запуска zsh в текущем каталоге в 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'"

обратите внимание, что я использовал %V вместо %L или %1 (так как оба не работали для меня)


найти файл Cygwin.летучая мышь и сделать содержание, как это:

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

добавить путь к cygwin.летучая мышь к окружающей среде путь.

теперь в любой папке можно ввести в адресную строку:

cygwin

Также вы можете ввести его, когда вы в cmd.exe


когда требуется новая установка, Я создаю "переменную среды пользователя" Windows с именем HOME и присваивает ему путь туда, где находятся" Мои Документы".

установщик cygwin обнаруживает HOME переменная, автоматически переводит это в cygpath и выбирает это, чтобы быть моим каталогом~.

это отлично работало для каждой рабочей станции, которую я профессионально использовал последние 5 лет (около 3 или 4, Win7). Я всегда был единственным пользователем на этих машинах, не могу сказать, каков эффект.


Я сделал сценарий редактирования реестра, чтобы открыть Cygwin в любой папке, которую вы щелкните правой кнопкой мыши. Это на моем GitHub.

вот мой GitHub


откройте терминал Cygwin как администратор

в powershell (с помощью chocolatey):

choco install cyg-get

в cygwin Установим меню правой кнопкой мыши

cyg-get install chere
chere -i

теперь вы можете щелкнуть правой кнопкой мыши и использовать "Bash Prompt Here" в любой папке.


в ответе, который использует реестр, я обнаружил, что в Windows 2008 R2 SP1 вам нужно удалить фон из пути. Кроме того, поскольку chere и xhere не являются частью cygwin64, вот решение, которое работает для обоих, объединяя реестр и отправку в решения. Заменить 'E:\cygwin64' с вашего места установки:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash] @="Открыть С Cygwin Вот"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash\command] @="E:\cygwin64\bin\mintty.exe-i / Cygwin-терминал.ico --exec/bin / bash.exe --login-c \ " cd '%1'; exec bash-rcfile ~/.bashrc следующее\""


это единственное решение реестра Cygwin64, которое работало для меня в 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  '"

убедитесь, что вы изменили свой 'C:\cygwin64-путь по мере необходимости.


Я создал пакетный файл и поместил его в каталог Cygwin /bin. Этот скрипт был разработан таким образом, что позволяет устанавливать/удалять записи реестра для открытия выбранных папок и дисков в Cygwin. Подробнее см. ссылку http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html.

update: это решение делает то же самое, что и ранние предложения, но все манипуляции с реестром Windows скрыты в скрипте.

выполните команду для установки

cyghere.bat /install

выполните команду для удаления

cyghere.bat /uninstall

вы можете добавить значок в оболочку, добавив Icon поле установлено в путь к вашему .

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"

на моей машине Windows это не принималось:

chere-i-t mintty

потому что оболочка mintty была недоступна, но у вас может быть выбор различных других оболочек, таких как ash bash cmd dash mksh pdksh posh tcsh zsh passwd.

Так что я использовал :

chere-i-s bash


создайте файл bash say move.sh, который имеет следующий код C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Это запускает Cygwin и выполняет runFile.sh присутствует в каталоге bin Cygwin Предположим, вы хотите перейти к определенному каталогу say E:\code тогда runFile.sh имеет следующий код cd E: cd code


вы можете просто открыть Cygwin терминал и написать: cd и после перетаскивания N падение папки, которую вы хотите end enter!


@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"

копировать команды в текстовый файл и сохраните его в качестве .bat в любой из "вашей папки интересов". Он должен открыть cygwin в "интересующей вас папке".


на основе ответа @LindseyD я создал простой файл BAT, который открывает cygwin в текущем каталоге, это может быть полезно (для меня это так). Предполагая, что у вас есть каталог bin cygwin в PATH.

FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'

у меня также была проблема с git, который использовал, чтобы "украсть" мои команды cygwin-поэтому мне нужно было запустить
C:\cygwin\bin\mintty.exe -
но после установки chere и исполнителем chere -i -t mintty -f как админ (см. выше), вы можете просто использовать :
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
Я добавил Это в Total Commander как пользовательскую кнопку (щелкните правой кнопкой мыши на панели > добавить ...) и это работает очень хорошо.


Я не знаю, почему я должен был так много времени, но это работает для меня на Win 10, 64-разрядная:

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\""

вероятно, самый простой:

1) создайте файл foo.Редж!--3-->

2) вставить содержимое:

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) выполнить foo.Редж!--3-->

теперь просто щелкните правой кнопкой мыши в любой папке, нажмите кнопку open mintty и он будет порождать мяту в этой папке.


лучше сделать, как показано ниже:

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"