WindowsでCygwin64ビットを実行しています。
Cygwinインストールに付属の「Cygwin64ターミナル」デスクトップショートカットを使用してmintty
のインスタンスを起動すると、正常に実行され、インストールされているすべてのコマンドが機能します。
ただし、mintty.exe
に含まれている場所からC:\cygwin64\bin
を起動すると、command not found
エラーが発生します。
また、テンキーを押すとデスクトップディレクトリでmintyy.exeインスタンスを起動するAutoHotKeyスクリプトが設定されています。この方法でmintyy
を起動すると、command not found
エラーも発生します。 cd
を他のディレクトリに移動したり、cd
を単独で実行したりしても、これは修正されません。重要なのは、minttyインスタンスが最初に実行された場所だけです。
エラーを表示するコマンドのいくつかは次のとおりです。
killall
man
info
wc
which
ssh
clear
これらのほとんどは基本のCywginパッケージの一部として含まれているため、Cygwinインストールの一部として確実にインストールされるため、ここで何が起こっているのかよくわかりません。
動作するコマンド一般的にターミナルでhelp
を実行したときにリストされているコマンドに制限されているようです。これがそのコマンドの全体の出力です。
$ help
GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)
These Shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the Shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
job_spec [&] history [-c] [-d offset] [n] or hist>
(( expression )) if COMMANDS; then COMMANDS; [ Elif C>
. filename [arguments] jobs [-lnprs] [jobspec ...] or jobs >
: kill [-s sigspec | -n signum | -sigs>
[ arg... ] let arg [arg ...]
[[ expression ]] local [option] name[=value] ...
alias [-p] [name[=value] ... ] logout [n]
bg [job_spec ...] mapfile [-d delim] [-n count] [-O or>
bind [-lpsvPSVX] [-m keymap] [-f file> popd [-n] [+N | -N]
break [n] printf [-v var] format [arguments]
builtin [Shell-builtin [arg ...]] pushd [-n] [+N | -N | dir]
caller [expr] pwd [-LP]
case Word in [PATTERN [| PATTERN]...)> read [-ers] [-a array] [-d delim] [->
cd [-L|[-P [-e]] [-@]] [dir] readarray [-n count] [-O Origin] [-s>
command [-pVv] command [arg ...] readonly [-aAf] [name[=value] ...] o>
compgen [-abcdefgjksuv] [-o option] [> return [n]
complete [-abcdefgjksuv] [-pr] [-DE] > select NAME [in WORDS ... ;] do COMM>
compopt [-o|+o option] [-DE] [name ..> set [-abefhkmnptuvxBCHP] [-o option->
continue [n] shift [n]
coproc [NAME] command [redirections] shopt [-pqsu] [-o] [optname ...]
declare [-aAfFgilnrtux] [-p] [name[=v> source filename [arguments]
dirs [-clpv] [+N] [-N] suspend [-f]
disown [-h] [-ar] [jobspec ... | pid > test [expr]
echo [-neE] [arg ...] time [-p] pipeline
enable [-a] [-dnps] [-f filename] [na> times
eval [arg ...] trap [-lp] [[arg] signal_spec ...]
exec [-cl] [-a name] [command [argume> true
exit [n] type [-afptP] name [name ...]
export [-fn] [name[=value] ...] or ex> typeset [-aAfFgilnrtux] [-p] name[=v>
false ulimit [-SHabcdefiklmnpqrstuvxPT] [l>
fc [-e ename] [-lnr] [first] [last] o> umask [-p] [-S] [mode]
fg [job_spec] unalias [-a] name [name ...]
for NAME [in WORDS ... ] ; do COMMAND> unset [-f] [-v] [-n] [name ...]
for (( exp1; exp2; exp3 )); do COMMAN> until COMMANDS; do COMMANDS; done
function name { COMMANDS ; } or name > variables - Names and meanings of so>
getopts optstring name [arg] wait [-n] [id ...]
hash [-lr] [-p pathname] [-dt] [name > while COMMANDS; do COMMANDS; done
help [-dms] [pattern ...] { COMMANDS ; }
ただし、さらに紛らわしいことに、ping
はこのリストの一部ではなく、機能します。
誰かがここで何が起こっているのか分かりますか?
C:\cygwin64\
にファイルCygwin.bat
があるはずです(Windowsのターミナル別名CMDでbash
を実行します)、mintty
の代わりに使用するか、mintty
consoleの場合、cygwinの環境を正しくセットアップするには、\full\path\to\mintty -
(ダッシュ-
文字はコマンドの一部です!!!)として起動する必要があります。 「AutoHotKeyスクリプト」でこれを修正して、問題を解決してください。mintty
の末尾のダッシュ-
文字は、bash -l
と同じように機能します。これはログインシェルとして使用されます。最後にダッシュなしでmintty
を使用すると、cygwin環境をセットアップせずに通常のexeファイルとして動作しますが、-
オプションを使用すると、システムへの通常の「ログイン」をエミュレートします。killall man info wc which ssh clear
cygwin
インストールファイルsetup.exe
を再度実行してインストールし、検索フィールドにこれらのプログラムを入力すると、インストール済みかどうかがリストに表示されます。それらをインストールすることを確認し、インストール済みとしてマークされていない場合は次に進みます。ping
を呼び出すとき、cygwinではなくWindowsバージョンのpingを実行します。ping
をインストールしたときにcygwin
パッケージをインストールした場合は、それが配置されているフルパスで呼び出す必要があります。C:\cygwin64\bin\ping.exe
(またはcygwinのターミナル内にいる場合は/bin/ping
)、それ以外の場合はウィンドウバージョンのping
が実行されます。Cygwinは、2つの操作モードで使用できます。1つは、Windowsプログラムまたはbatファイルから直接cygwinのユーティリティを呼び出す場合(たとえば、batファイルでgrep
を使用する場合)、2つ目の操作モードは、 unixベースのオペレーティングシステムをエミュレートします。これを行うには、仮想オペレーティングシステム(別名cygwin)にログインする必要があります。 mintty - ターミナル(またはbash -l
)は、実際のUNIXベースのオペレーティングシステムにログインすると、すべての環境をそのまま正しくセットアップします。
PATHを適切に設定するには、mintty
にログインシェルとしてシェルを実行するように指示する必要があります。
可能な方法:
C:\cygwin64\bin\mintty.exe -
C:\cygwin64\bin\mintty.exe /bin/bash -l
詳細については、man mintty
を参照してください。-
または適切なbashコマンドがない場合でも、PATHはCygwinディレクトリのないWindowsのものです。