ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

cygwin termianl 添加到右键菜单

2021-10-30 14:32:22  阅读:142  来源: 互联网

标签:chere bin shell mintty cygwin64 右键 termianl cygwin


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增加的;
右键菜单

参考资料:

标签:chere,bin,shell,mintty,cygwin64,右键,termianl,cygwin
来源: https://www.cnblogs.com/leaver/p/15484842.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有