如何创建一个Cygwin快捷方式,该快捷方式将在特定文件夹中打开Cygwin?这样就不必输入
cd /cygdrive/c/Users/Tom/Desktop/
每次我启动Cygwin。
sudo
,则可能无法获得预期的结果。在这种情况下,请以管理员用户身份在Windows计算机上登录。
如何创建一个Cygwin快捷方式,该快捷方式将在特定文件夹中打开Cygwin?这样就不必输入
cd /cygdrive/c/Users/Tom/Desktop/
每次我启动Cygwin。
sudo
,则可能无法获得预期的结果。在这种情况下,请以管理员用户身份在Windows计算机上登录。
Answers:
在安装Cygwin时(或者如果已经安装了Cygwin,则再次下载它并再次开始安装以运行更新),请确保选择chere
“外壳”类别下的软件包。
启动Cygwin后,打开Cygwin终端(以管理员身份)并键入命令:chere -i -t mintty -s bash
。
现在,您应该在Windows右键单击上下文菜单中具有“此处提示提示”。
(mintty是Cygwin的默认终端。如果未选择该-t
选项,则“此处的Bash提示”将使用与Windows Command Prompt相同的终端,以防止水平调整大小。)
-t
,例如,打开要使用的薄荷糖chere -i -t mintty
chere -i -t mintty -f
以强制覆盖。您仍然需要以管理员身份运行cygwin。
-s bash
后使chere -i -t mintty -s bash
此功能对我来说很有效
这是我用的。它不需要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
。
这是相反的技巧,在当前bash目录中打开Windows资源管理器。创建此别名:
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`'
winx
别名在我的Cygwin设置中不起作用。我不得不删除这两个反斜线和替换.
用$PWD
为它工作。
alias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
cygstart .
与当前文件夹,或任何文件夹语法打开资源管理器cygstart ..
,cygstart /your/path
等等
C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bash
保持文件句柄对$0
目录保持打开状态。更糟糕的是ALT+F2
,即使已经更改了工作目录,生成窗口()的副本也会打开另一个文件句柄到$0
。这可能会干扰某些可能要$0
在任何过程中删除/修改的操作。如果访问时遇到“权限被拒绝”错误,$0
则可能是原因
在cygwin终端上,运行以下命令:
echo "cd your_path" >> ~/.bashrc
当您打开新的bash会话时,将运行.bashrc脚本。当您打开一个新的cygwin会话时,上面的代码将更改为your_path目录。
>
字符。然后我注销了:-)
我制作了一个.reg文件,在右键单击上下文菜单中放置了“在此处打开Cygwin”选项。它取决于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"
apt-cyg
,我对这个工具
对于cygwin64或没有杂项的安装,您可以在注册表项中使用以下命令(假设您的路径是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'"
cygpath \"%V\"
\“;'”
如果要将该目录作为默认目录,只需cd
在~/.profile
文件中添加一条语句即可。
我倾向于使用该方法设置我的常规目录,并为我的常见情况定义别名:
alias tom="cd /users/tom"
或您的同等学历。这使我可以非常快速地更改目录。
~/.profile
文件中,或者只运行一次?
~/.profile
是一种可能)。
bash
如果您进行了足够深入的研究,则手册页中都有这些规则)。这就是为什么我说这.profile
是一种可能性。
我使用和Icon启动不带chere
软件包的cygwin 。
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
C:\some\dir\name\here
-c
只要在“开始于”中提供路径,追加到“目标”中就没有任何区别。2.此解决方案会产生一个问题PATH
。cygwin无法/usr/local/bin:/usr/bin
在系统PATH中添加前缀,从而无法调用其某些二进制文件。配置可能位于/etc/profile
>>`if [$ {CYGWIN_NOWINPATH-addwinpath} =“ addwinpath”]; 然后`
正如two7s_clash所说,您首先需要安装chere
软件包和设置薄荷味:
apt-cyg install chere
chere -i -t mintty
现在,您可以在Windows资源管理器(上下文菜单)中单击鼠标右键,在特定目录中打开cygwin,然后选择“此处提示提示”。
您也可以使用Windows命令提示符从特定目录打开cygwin:
cd
)到自定义目录执行 C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
该命令将打开cygwin,并从命令提示符中获取当前目录。
此命令还可用于从自定义文件管理器(如FreeCommander)打开cygwin。
要使用从FreeCommander获取的当前目录打开cygwin,请执行以下操作:
添加一个新的工具栏(+图标),快捷方式:插入
C:\cygwin64\bin\mintty.exe
%ActivDir%
C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
您可以从FreeCommander添加自定义快捷方式以打开cygwin:
很好的参考:MinTTY Wiki,文章提示:从特定目录开始
若要创建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终端。
受到在如何从Netbeans的特定目录中打开Cygwin shell上发布的解决方案的启发?在superuser.com上。
我使用以下代码行在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(因为两者都不适合我)
我已经制作了一个注册表编辑脚本,以在您右键单击的任何文件夹中打开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\""
您可以通过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"
在我的Windows计算机上,它没有采取以下措施:
切尔-i -t薄荷
因为没有可用的薄荷壳,但是您可以选择其他各种壳,例如ash bash cmd dash mksh pdksh posh tcsh zsh passwd。
所以我用了:
切尔-i -s bash
在使用注册表的答案中,我发现在Windows 2008 R2 SP1上,您需要将Background从路径中删除。此外,由于chere和xhere并非cygwin64的一部分,因此,这是一种对注册表和“发送至”解决方案都适用的解决方案。将“ 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 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”路径。
我已经创建了批处理文件,并将其放在Cygwin的/ bin目录中。该脚本经过开发,因此可以安装/卸载用于在Cygwin中打开所选文件夹和驱动器的注册表项。有关详细信息,请参阅链接http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html。
更新:此解决方案与早期建议相同,但是所有使用Windows Registry的操作都隐藏在脚本中。
执行命令安装
cyghere.bat /install
执行命令卸载
cyghere.bat /uninstall
我还遇到了git问题,该问题曾经用来“窃取”我的cygwin命令-所以我需要运行,
C:\cygwin\bin\mintty.exe -
但是在 以admin身份安装chere
并执行后chere -i -t mintty -f
(见上文),您可以简单地使用:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
我在Total Commander中将其添加为自定义按钮(右单击面板>添加...),效果很好。
创建一个move.sh
包含以下代码的bash文件,
C:\cygwin64\bin\run.exe -p /bin bash runFile.sh
这将启动Cygwin并执行Cygwin runFile.sh
的bin目录中的内容。假设您要导航到特定目录,E:\code
那么runFile.sh具有以下代码cd E:
cd code
最后是一个独立于Cygwin本身的答案。
这利用了以下事实:如果我在目录上C:\\Cool
并且调用命令C:\\Cygwin\\bin\\mintty.exe
,mintty
它将在当前目录(即)上自动打开C:\\Cool
。
首先,您将需要创建C:\\Cygwin\\silent_run.vbs
具有以下内容的文件:
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
接下来,要安装此答案,您将使用Windows注册表文件。为此,只需将以下文件的内容放入名为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"
现在,修复所有硬编码的路径,即,修复C:\\Cygwin
Cygwin安装所在的实际位置。
然后,只需打开文件C:\\Cygwin\\AddMinttyToContextMenu.reg
以安装新的注册表项即可。
该文件的C:\\Cygwin\\AddMinttyToContextMenu.reg
工作方式如下:首先打开a 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
键已在当前目录中打开,然后,我们可以直接调用C:\\Cygwin\\bin\\mintty.exe
以使其开箱即用。
参考文献:
我不知道为什么我必须浪费这么多时间,但这在赢得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
,它将在该文件夹中生成薄荷。
最好像下面这样:
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"