如何创建一个Cygwin快捷方式,在特定文件夹中打开Cygwin?这样就不必输入
cd /cygdrive/c/Users/Tom/Desktop/
每次我启动Cygwin。
答案 0 :(得分:377)
当您安装Cygwin时(或者如果您已经安装了Cygwin,再次下载并再次开始安装以运行更新),请确保选择“Shells”类别下的chere
包。 / p>
启动Cygwin后,打开一个Cygwin终端(作为管理员)并输入命令:chere -i -t mintty -s bash
。
现在,您应该在Windows右键单击上下文菜单中有“Bash Prompt Here”。
(mintty是Cygwin的默认终端。如果你没有选择-t
选项,你的“Bash Prompt Here”将使用与Windows命令提示符相同的终端,这会阻止水平大小调整。)
答案 1 :(得分:92)
这是我使用的。它不需要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资源管理器中,右键单击文件夹&amp;选择Send To > Bash Here
。
这是相反的技巧,在你当前的bash目录中打开一个Windows资源管理器。创建此别名:
alias winx='/cygdrive/c/Windows/explorer.exe /e,\`cygpath -w .\`'
注意:上面的cygpath -w .
部分包含在后面的标记中。
现在只需在bash提示符下键入winx
,然后会弹出一个Win Explorer。
注意:如果winx将您引导至您的文档文件夹,请尝试
alias winx='/cygdrive/c/Windows/explorer.exe /e,`cygpath -w $PWD`'
答案 2 :(得分:30)
从cygwin终端运行以下命令:
echo "cd your_path" >> ~/.bashrc
打开新的bash会话时会运行.bashrc脚本。打开新的cygwin会话时,上面的代码更改为 your_path 目录。
答案 3 :(得分:28)
我创建了一个.reg文件,在右键单击上下文菜单中放置“Open 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"
答案 4 :(得分:17)
对于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'"
答案 5 :(得分:12)
如果您想将该目录作为默认目录,只需在cd
文件中添加~/.profile
语句即可。
我倾向于使用该方法设置我的常用目录,并为我的常见情况定义别名:
alias tom="cd /users/tom"
或您的同等人物。这让我可以非常快速地更改目录。
答案 6 :(得分:8)
正如two7s_clash所说,你首先需要安装chere
包并设置mintty:
apt-cyg install chere
chere -i -t mintty
现在,您可以在Windows资源管理器(上下文菜单)中单击鼠标右键打开特定目录中的cygwin,然后选择&#34; Bash Prompt Here&#34;。
您也可以使用Windows命令提示符从特定目录打开cygwin:
cd
)到自定义目录执行C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
此命令将打开cygwin,当前目录取自命令提示符。
此命令也可用于从自定义文件管理器打开cygwin,如FreeCommander。
要使用从FreeCommander获取的当前目录打开cygwin,请执行以下操作:
添加新工具栏(+图标),快捷方式:插入
C:\cygwin64\bin\mintty.exe
%ActivDir%
C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
您可以添加自定义快捷方式以从FreeCommander打开cygwin:
答案 7 :(得分:8)
我使用和Icon在没有chere
包的情况下启动我的cygwin。
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
C:\some\dir\name\here
答案 8 :(得分:5)
要创建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终端。
受How to open a Cygwin shell at a specific directory from Netbeans?在superuser.com上发布的解决方案的启发。
答案 9 :(得分:4)
查找文件Cygwin.bat并制作如下内容:
@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"
将cygwin.bat的路径添加到环境路径。
现在,您可以在任何文件夹中输入地址栏:
cygwin
您也可以在cmd.exe
中键入它答案 10 :(得分:3)
当需要全新安装时,我创建一个名为HOME
的Windows“用户环境变量”,并为其指定“我的文档”所在的路径。
cygwin安装程序检测到HOME
变量,自动将其转换为cygpath并选择它作为我的〜目录。
这对我过去5年专业使用的每个工作站都很好(大约3或4,Win7)。我一直是这些机器上唯一的用户,不能说效果是什么。
答案 11 :(得分:3)
我使用以下代码行在Win7的当前目录中启动zsh。
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(因为两者都不适用于我)
答案 12 :(得分:3)
我已经制作了一个注册表编辑脚本,可以在右键单击的任何文件夹中打开Cygwin。它在我的GitHub上。
来自Github的64位计算机的 示例RegEdit
代码:
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\""
答案 13 :(得分:2)
以管理员身份打开Cygwin终端
在powershell中(使用chocolatey):
choco install cyg-get
在cygwin中 将安装右键菜单
cyg-get install chere
chere -i
现在您可以右键单击并在任何文件夹中使用“Bash Prompt Here”。
答案 14 :(得分:1)
您只需打开cygwin终端并输入:cd,然后拖动n放下您要结束输入的文件夹即可!
答案 15 :(得分:1)
在我的Windows机器上没有采取:
chere -i -t mintty
因为没有薄荷壳,但你可以选择各种其他的外壳,比如灰烬cmd dash mksh pdksh posh tcsh zsh passwd。
所以我用过:
chere -i -s bash
答案 16 :(得分:1)
在使用注册表的答案中,我发现在Windows 2008 R2 SP1上,您需要将Background从路径中删除。此外,由于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\""
答案 17 :(得分:0)
将以下代码另存为文件:cygwin_bash.reg
这将在当前目录中添加打开Cygwin,同时在指定文件夹中打开Cygwin。
使用“ .bashrc
”代替“ .bash_profile
”配置。由于exec bash
。对交互式非登录外壳执行.bashrc
。参见:https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\z_cygwin_bash]
@="Cygwin Here"
"Icon"="C:\\cygwin64\\Cygwin.ico"
[HKEY_CLASSES_ROOT\Directory\Background\shell\z_cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; exec bash'"
[HKEY_CLASSES_ROOT\Directory\shell\z_cygwin_bash]
@="Cygwin Here"
"Icon"="C:\\cygwin64\\Cygwin.ico"
[HKEY_CLASSES_ROOT\Directory\shell\z_cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; exec bash'"
答案 18 :(得分:0)
最后一个独立于Cygwin本身的答案。
这利用了以下事实:如果我位于目录C:\\Cool
上并调用命令C:\\Cygwin\\bin\\mintty.exe
,则mintty
将在当前目录(即{{1})上自动打开}。
首先,您需要创建具有以下内容的文件C:\\Cool
:
C:\\Cygwin\\silent_run.vbs
接下来,要安装此答案,您将使用Windows注册表文件。为此,只需将以下文件的内容放入名为Function EnquoteString(argument)
EnquoteString = Chr(34) & argument & Chr(34)
End Function
arglist = ""
With WScript.Arguments
For Each arg In .Unnamed
' Wscript.Echo "Unnamed: " & arg
If InStr(arg, " ") > 0 Then
' arg contains a space
arglist = arglist & " " & EnquoteString(arg)
Else
arglist = arglist & " " & arg
End If
Next
End With
CreateObject("Wscript.Shell").Run Trim( arglist ), 0, False
C:\\Cygwin\\AddMinttyToContextMenu.reg
现在,将所有硬编码路径(即Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020
[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here\Command]
@="\"C:\\Cygwin\\bin\\mintty.exe\" -w max"
[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020
[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here\Command]
@="cmd.exe /c cd /d \"%V\" && wscript \"C:\\Cygwin\\silent_run.vbs\" \"C:\\Cygwin\\bin\\mintty.exe\" -w max"
)固定到安装Cygwin的实际位置。
然后,只需打开文件C:\\Cygwin
以安装新的注册表项即可。
文件C:\\Cygwin\\AddMinttyToContextMenu.reg
的工作方式如下:首先打开一个C:\\Cygwin\\AddMinttyToContextMenu.reg
,切换到您所在的目录,然后调用cmd.exe
以使用以下命令打开C:\\Cygwin\\silent_run.vbs
终端行选项C:\\Cygwin\\bin\\mintty.exe
,即最大程度地打开它。
打开-w max
终端需要脚本C:\\Cygwin\\silent_run.vbs
,而无需保持打开的第一个C:\\Cygwin\\bin\\mintty.exe
打开。
cmd.exe
的第一项不使用C:\\Cygwin\\AddMinttyToContextMenu.reg
,因为默认情况下,C:\\Cygwin\\silent_run.vbs
键已在当前目录中打开,因此,我们可以直接调用HKEY_CLASSES_ROOT\Directory\Background\shell
使其开箱即用。
参考文献:
答案 19 :(得分:0)
创建一个bash文件,说$pdo = DB::connection()->getPdo();
$pdo->exec("CREATE TABLE tmp_products (id INT NOT NULL, alias VARCHAR(255) NOT NULL, include VARCHAR(255) NULL, exclude VARCHAR(255) NULL, PRIMARY KEY (id));");
,其中包含以下代码
move.sh
这将启动Cygwin并执行Cygwin的bin目录中的C:\cygwin64\bin\run.exe -p /bin bash runFile.sh
假设您要导航到特定目录,请说runFile.sh
然后runFile.sh具有以下代码E:\code
答案 20 :(得分:0)
您可以通过在Icon
文件的路径中添加Cygwin.ico
字段来将图标添加到shell中。
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"
答案 21 :(得分:0)
我创建了批处理文件并将其放到Cygwin的/ bin目录中。开发此脚本是为了允许安装/卸载用于在Cygwin中打开所选文件夹和驱动器的注册表项。有关详细信息,请参阅链接http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html。
更新:此解决方案与早期建议相同,但所有使用Windows注册表的操作都隐藏在脚本中。
执行命令安装
cyghere.bat /install
执行卸载命令
cyghere.bat /uninstall
答案 22 :(得分:0)
这是在Windows 8.1中唯一适用于我的Cygwin64注册表解决方案:
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”路径。
答案 23 :(得分:-1)
可能是最简单的一个:
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
,它将在该文件夹中生成薄荷。
答案 24 :(得分:-1)
我不知道为什么我要浪费这么多时间,但这对我来说对胜利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\""
答案 25 :(得分:-1)
我还有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中将其添加为自定义按钮(右键单击面板&gt;添加...)并且它的效果非常好。
答案 26 :(得分:-1)
基于@LindseyD回答我创建了一个简单的BAT文件,在当前目录中打开cygwin,它可能很有用(对我来说)。假设你在PATH中有cygwin的bin目录。
FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'
答案 27 :(得分:-1)
@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"
将上述命令复制到文本文件中,并将其另存为“您感兴趣的文件夹”中的.bat。 它应该在“你感兴趣的文件夹”中打开cygwin。
答案 28 :(得分:-2)
最好这样做:
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"