Cygwinを特定のフォルダーで開くCygwinショートカットを作成するにはどうすればよいですか?これは入力する必要がなくなります
cd /cygdrive/c/Users/Tom/Desktop/
Cygwinを起動するたびに。
sudo
、期待した結果が得られない可能性があります。この場合、Windowsマシンに管理ユーザーとしてログインします。
Cygwinを特定のフォルダーで開くCygwinショートカットを作成するにはどうすればよいですか?これは入力する必要がなくなります
cd /cygdrive/c/Users/Tom/Desktop/
Cygwinを起動するたびに。
sudo
、期待した結果が得られない可能性があります。この場合、Windowsマシンに管理ユーザーとしてログインします。
回答:
Cygwinをインストールするとき(またはすでにインストールしている場合は、もう一度ダウンロードしてセットアップを再開し、更新を実行します)、chere
「シェル」カテゴリの下のパッケージを選択していることを確認してください。
Cygwinが起動したら、Cygwinターミナルを(管理者として)開き、次のコマンドを入力しますchere -i -t mintty -s bash
。
これで、Windowsの右クリックコンテキストメニューに「Bash Prompt Here」が表示されます。
(minttyはCygwinのデフォルトのターミナルです。この-t
オプションを選択しない場合、「Bash Prompt Here」はWindowsコマンドプロンプトと同じターミナルを使用するため、水平方向のサイズ変更ができなくなります。)
-t
たとえば、使用するminttyを開くchere -i -t mintty
chere -i -t mintty -f
して上書きを強制した場合。それでも、管理者としてcygwinを実行する必要があります。
-s bash
、makeに追加すると、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プロンプトで、そして勝利エクスプローラがポップアップ表示されます。
注: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
、任意のプロセスで削除/変更する必要がある一部の操作に干渉する可能性があります。これにアクセスするときに「Permission Denied」エラーが発生した場合$0
は、原因である可能性があります
cygwinターミナルから、次のコマンドを実行します。
echo "cd your_path" >> ~/.bashrc
.bashrcスクリプトは、新しいbashセッションを開いたときに実行されます。上記のコードは、新しいcygwinセッションを開いたときにyour_pathディレクトリに変更されます。
>
文字が。次に、ログアウトしました:-)
右クリックのコンテキストメニューに[Open Cygwin Here]オプションを配置する.regファイルを作成しました。これは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またはchereなしのインストールの場合は、レジストリエントリで次のコマンドを使用できます(パスが原因でウィンドウが想定され、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
は1つの可能性です)。
bash
十分に掘り下げると、manページにすべてがあります)。それが.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
パッケージをインストールしてminttyをセットアップする必要があります:
apt-cyg install chere
chere -i -t mintty
これで、Windowsエクスプローラー(コンテキストメニュー)で右クリックして特定のディレクトリでcygwinを開き、[Bash Prompt Here]を選択できます。
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を開くためのカスタムショートカットを追加できます。
自分で選択したディレクトリにCygwinターミナルを起動するWindowsショートカットを作成するには、次のことを試してください。
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シェルを開く方法に投稿されたソリューションに触発されましたか?で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'"
%Lまたは%1の代わりに%Vを使用したことに注意してください(どちらも私にとって機能しなかったため)
新規インストールが必要な場合は、Windowsという「ユーザー環境変数」という名前の HOME
、「マイドキュメント」が存在する場所のパスを割り当てます。
cygwinインストーラは、 HOME
変数をこれを自動的にcygpathに変換し、これをmy〜ディレクトリとして選択します。
これは、過去5年間にプロで使用したすべてのワークステーション(約3または4、Win7)で正常に機能しました。私は常にこれらのマシンで唯一のユーザーであり、その効果については言えません。
右クリックしたフォルダでCygwinを開くためのレジストリ編集スクリプトを作成しました。私のGitHubにあります。
RegEdit
64ビットマシン用のGithubのサンプルコード:
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マシンでは、それはかかりませんでした:
chere -i -t mintty
minttyシェルは利用できませんでしたが、ash bash cmd dash mksh pdksh posh tcsh zsh passwdなど、他のさまざまなシェルを選択できる場合があります。
だから私は使用しました:
chere -i -s bash
レジストリを使用する答えで、Windows 2008 R2 SP1では、バックグラウンドをパスから削除する必要があることがわかりました。さらに、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レジストリでのすべての操作はスクリプト内に隠されています。
インストールするコマンドを実行します
cyghere.bat /install
アンインストールするコマンドを実行します
cyghere.bat /uninstall
move.sh
次のコードを持つbashファイルsay を
作成します。C:\cygwin64\bin\run.exe -p /bin bash runFile.sh
これにより、Cygwinが起動し、Cygwin runFile.sh
のbinディレクトリでpresentが実行されます。特定のディレクトリに移動したいとします。たとえば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
はcmd.exe
、最初にa 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
直接呼び出すだけですぐに機能します。
参照:
なぜそんなに多くの時間を浪費しなければならなかったのかは分かりませんが、これはwin 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
と、そのフォルダにminttyが生成されます。