Как создать ярлык Cygwin, который откроет Cygwin в определенной папке? Это избавит вас от необходимости вводить
cd /cygdrive/c/Users/Tom/Desktop/
каждый раз при запуске Cygwin.
Как создать ярлык Cygwin, который откроет Cygwin в определенной папке? Это избавит вас от необходимости вводить
cd /cygdrive/c/Users/Tom/Desktop/
каждый раз при запуске Cygwin.
При установке 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
, имеющий это в поле Target
:
C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bash"
В проводнике Windows щелкните правой кнопкой мыши папку и выберите Send To > Bash Here
.
И вот противоположный трюк, открывающий проводник Windows в текущем каталоге bash. Создайте этот псевдоним:
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 Here" в контекстном меню правой кнопки мыши. Это зависит от пакета Cygwin "chere", который вы можете установить с помощью apt-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
.bashrc script запускается при открытии нового сеанса bash. Код выше с изменением каталога your_path при открытии новой сессии cygwin.
Для cygwin64 или установок без такой возможности вы можете использовать следующую команду в записи реестра (предполагая, что окна связаны с вашим путем, также если в каталоге установки 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
в ваш файл ~/.profile
.
То, что я обычно делаю, это использовать этот метод для установки моего обычного каталога, а также определить псевдонимы для моих общих случаев:
alias tom="cd /users/tom"
или ваш эквивалент. Это позволяет мне быстро менять каталоги.
Как сказал two7s_clash, сначала нужно установить пакет chere
и настроить mintty:
apt-cyg install chere
chere -i -t mintty
Теперь вы можете открыть cygwin в определенном каталоге, щелкнув правой кнопкой мыши в проводнике Windows (контекстное меню) и выбрав "Bash Prompt Here".
Вы также можете открыть cygwin из определенного каталога с помощью командной строки Windows:
cd
) в пользовательский каталог Выполните C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
Эта команда откроет cygwin с текущим каталогом, взятым из командной строки.
Эту команду также можно использовать для открытия cygwin из пользовательского файлового менеджера, например, FreeCommander.
Чтобы открыть cygwin с текущим каталогом, взятым из FreeCommander, сделайте следующее:
Добавить новую панель инструментов (+ значок), ярлык: Вставить
C:\cygwin64\bin\mintty.exe
%ActivDir%
C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
Вы можете добавить собственный ярлык для открытия Cygwin из FreeCommander:
Отличная ссылка: MinTTY Wiki, статья Советы: Начиная с определенного каталога
Я использую и Icon для запуска моего cygwin без пакета chere
.
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
C:\some\dir\name\here
Найдите файл Cygwin.bat и создайте контент следующим образом:
@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"
Добавьте путь к cygwin.bat в среду PATH.
Теперь в любой папке вы можете ввести адресную строку:
cygwin
Также вы можете ввести его, когда вы в cmd.exe
Я использовал следующие строки кода для запуска 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 (так как оба не работали для меня)
Когда требуется новая установка, я создаю переменную пользовательского окружения Windows с именем HOME
и назначает ей путь где бы ни находились "Мои документы".
Установщик cygwin обнаруживает переменную HOME
, автоматически переводит ее в cygpath и выбирает ее как каталог ~.
Это отлично работает для каждой рабочей станции, которую я профессионально использовал за последние 5 лет (около 3 или 4, Win7). Я всегда был единственным пользователем на этих машинах, не могу сказать, что это за эффект.
Я сделал скрипт редактирования реестра, чтобы открыть Cygwin в любой папке, которую вы щелкнули правой кнопкой мыши. Это на моем GitHub.
Пример кода RegEdit
из Github для 64-битных машин:
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\""
Открыть терминал Cygwin в качестве администратора
В powershell (с использованием шоколада):
choco install cyg-get
В cygwin Будет установлено меню правой кнопки мыши
cyg-get install chere
chere -i
Теперь вы можете щелкнуть правой кнопкой мыши и использовать "Bash Prompt Here" в любой папке.
В ответе, использующем реестр, я обнаружил, что в Windows 2008 R2 SP1 необходимо удалить фон из пути. Кроме того, поскольку chere и xhere не являются частью cygwin64, вот решение, которое работает как для объединения реестра, так и для решений Send To. Замените "E:\cygwin64" на место установки:
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\""
На моей Windows-машине он не принимал:
chere -i -t mintty
Поскольку оболочка mintty недоступна, но у вас может быть выбор из разных других оболочек, таких как ash bash cmd dash mksh pdksh posh tcsh zsh passwd.
поэтому я использовал:
chere -i -s bash
Вы можете просто открыть терминал cygwin и написать: cd и после перетаскивания n отпустить нужную папку и войти!
Это единственное решение для реестра 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. Этот script был разработан таким образом, что позволяет устанавливать/удалять записи реестра для открытия выбранных папок и дисков в Cygwin. Подробнее см. Ссылку http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html.
update: это решение аналогично ранним предложениям, но все манипуляции с реестром Windows скрыты в script.
Выполните команду для установки
cyghere.bat /install
Выполните команду для удаления
cyghere.bat /uninstall
Вы можете добавить значок в оболочку, добавив поле Icon
к пути к вашему файлу 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"
Создайте файл bash, скажем move.sh
, который имеет следующий код
C:\cygwin64\bin\run.exe -p /bin bash runFile.sh
Это запускает Cygwin и выполняет runFile.sh
, присутствующий в каталоге bin Cygwin
Предположим, вы хотите перейти в конкретный каталог, скажем E:\code
то runFile.sh имеет следующий код cd E:
cd code
Чтобы создать ярлык Windows, который запускает терминал Cygwin в каталоге по вашему выбору, попробуйте следующее:
Щелкните правой кнопкой мыши на рабочем столе Windows, выберите "Создать", а затем выберите "Ярлык".
Для определения местоположения элемента введите следующий текст, изменив mintty
путь по мере необходимости и подставив имя нужного каталога, где указано.
C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd DESIRED-DIRECTORY; exec bash'
Например, OP будет использовать следующий текст:
C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash'
Нажмите кнопку "Далее'.
Введите желаемое имя для ярлыка и нажмите "Готово".
На рабочем столе можно разместить несколько ярлыков для открытия терминалов Cygwin в различных часто используемых каталогах.
Вдохновлено решением, опубликованным на Как открыть оболочку Cygwin в определенном каталоге из Netbeans? на superuser.com.
@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 в текущем каталоге, он может быть полезен (для меня это). Предполагая, что у вас есть каталог cygwin bin в 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 в качестве настраиваемой кнопки (щелкните правой кнопкой мыши на панели > добавить...), и он работает очень хорошо.
Я не знаю, почему мне пришлось потратить столько времени, но это работает для меня на выигрыше 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.reg
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.reg
Теперь просто щелкните правой кнопкой мыши в любой папке, нажмите open mintty
, и в этой папке появится 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"