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工具以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的登錄檔中修改右鍵顯示的選單選項;