3

私はオンラインで答えを見つけようとしましたが、残念ながら手ぶらで出てきました。'./'を他のキーワードと組み合わせて検索すると、多くのヒットが発生しますが、役に立たなかったものはありません...

とにかく、おそらくお分かりのように、私はMacOにかなり慣れていません。シェルからmongoを実行しています。/ binフォルダーにcdして、mongoデーモンを次のコマンドで起動します。

'./mongod'

'mongod'と入力すると、次のエラーが発生します。

'-bash:mongod:コマンドが見つかりません'

何ですか

'./'

'./mongod'は?なぜそれが必要なのですか?mongodと入力してmongoを実行できないのはなぜですか。結局のところ、私は正しいディレクトリにいます。

4

2 に答える 2

6

結局、私は正しいディレクトリにいます

しかし、そのディレクトリはPATH. 問題の要点は、シェルが何かを実行したいときに、ディレクトリのリスト ( という変数で指定) を調べることPATHです。そして、現在のディレクトリはそのリストにありません

于 2012-08-17T21:08:39.590 に答える
2

cnicutarによる回答で説明されているように、シェルは、入力したコマンドを、PATH環境変数にリストされているディレクトリ内の実行可能ファイルと照合しようとします。

現在のディレクトリを に追加することもできますがPATH、これはおそらくお勧めできません。この記事では、Linux がデフォルトで追加しない理由をいくつか説明します。

可能性のあるセキュリティホールを塞ぐための手段です。明示的に呼び出さない限り、現在のディレクトリでコマンドを実行することはできません。

すなわち ./myscript.sh

悪質なシェル スクリプトを作成する厄介者を阻止するには、スクリプトを /tmp などの無害な場所に配置し、root にスクリプトを実行させます。root は悪質なスクリプトを実行しますか? スクリプトに「ls」という名前が付けられていて、root がリストを作成した場合、スクリプトは自動的に実行されます。

于 2012-08-17T21:21:20.980 に答える