cygwin termianl 添加到右键菜单
作者:互联网
edit datetime:2021.1030
FAQ:
-
问题1:
安装cygwin之后,从开始菜单打开终端,目录一直固定在/home/user中,通过修改windows注册表的形式,可以实现在指定位置右键打开cygwin终端,就像右键打开cmd终端一样:请参考链接2,但是仍然存在一个问题,进入目录后,提示ls等命令找不到;所有又引出了一个新的问题,环境变量PATH没有正确设置;或者说,进入的shell不是login shell; -
问题2:
"Cygwin64 Terminal"工具的实际执行命令为:软件路径\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
,说明实际是执行的mintty工具,这是一个shell模拟终端,基于putty;
最后的"-"表示用mintty工具以loginshell登录(具体请参考mintty手册),根据shell的原理,会最终切换到固定的用户目录下:admin@admin-PC: ~$
,按照参考链接2,添加的右键菜单中的命令为:软件路径\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c "cd %V"
,其中%V表示右键时所在的目录,此时由于不是login shell所以提示bash: ls: command not found
,
解决方法:
1:把cygwin64\bin 目录添加到win系统PATH中
按照参考链接2仅仅修改了目录,此时如果cygwin64\bin在PATH中的话,那么ls等命令也可以执行,所以执行ls命令是没有问题。但是可能.bashrc中的别名命令可能失效。(本方法没有尝试,因为我不想把上述路径加入path,我想继续保持原生cmd的默认path)
2:修改mintty的执行命令
按照参考链接1的 #Starting in a particular directory
在添加了右键菜单的基础上,修改注册表中cygwin -> command的默认值为:
软件路径\cygwin64\bin\mintty.exe --dir "%V" /bin/env CHERE_INVOKING=1 /bin/bash -l
3:通过cygwin的包chere实现
按照参考链接1的 #Creating a folder context menu entry for mintty
Cygwin's chere package can be used to create folder context menu entries in Explorer, which allow a shell to be opened with the working directory set to the selected folder.
The following command will create an entry called Bash Prompt Here for the current user that will invoke bash running in mintty. See the chere manual (man chere) for all the options.
chere -1 -i -c -t mintty
通过上面的说明,所以需要打开cygwin安装工具,安装chere package;
安装完成后,在cygwin64\bin目录下就存在chere工具了
参考提供的例子:./chere -il -t rxvt -s tcsh
修改为如下:./chere -il -t mintty -s bash
第一个是注册表增加的;
第二个是chere增加的;
参考资料:
- 参考链接1:如下两个内容是一样的
https://github.com/mintty/mintty/wiki/Tips
https://github-wiki-see.page/m/mintty/mintty/wiki/Tips (这是一个老链接,现在请参考上面的,我是从这里查询到的) - 参考链接2:https://blog.csdn.net/ding_yingzi/article/details/80146975
介绍了如何在windows的注册表中修改右键显示的菜单选项;
标签:chere,bin,shell,mintty,cygwin64,右键,termianl,cygwin 来源: https://www.cnblogs.com/leaver/p/15484842.html