./なしでコマンドを実行する

./なしでコマンドを実行する

私は多くの人にとっては簡単ですが、日常的なWindowsユーザーである私にとってはかなり混乱している可能性があることを理解しようとしています。

私はフォローしていますドッカーの取り付けMac OS Xの場合

ステップの1つは次のとおりです。

$ chmod +x boot2docker

次のステップは、次のようにboot2dockerを使用することです。

$ boot2docker init

しかし、これは私には効果がありません。うまくいくのは次のとおりです。

 $ ./boot2docker init

したがって、このチュートリアルでは暗黙的に実行する必要があると仮定します。./それとも、bashでこれを入力せずに何かを実行する方法はありますか?

答え1

違いは、Windowsには.常にシングルユーザーシステムであったDOSから継承したパスが暗黙的にあることです。

Mac OS Xは、マルチユーザーシステムであるUnixに基づいて構築されています。セキュリティ上の理由から、.パスに暗黙的に存在しません。

.パスにないときに現在のディレクトリでコマンドを実行するには、コマンドの前に./現在のディレクトリでコマンドを実行することをシェルに明示的に知らせる必要があります。このシンボルは、パスに./あるかどうかに関係なく適用されます。削除すると、.パスにある場合にのみ./機能します。.したがって、文書には通常この./セクションが含まれます。

.パスに含めると、セキュリティにどのような影響がありますか?

ホームディレクトリcd ~jokerに入力したとします。joker次に入力して、lsどのファイルが存在するかを確認します。.パスの先頭にある場合は、ユーザーアカウントで何でもできるjokerホームディレクトリに呼び出されるスクリプトがある可能性があります。ls

.それがルートの最後のエントリであれば、それほど悪くないでしょう。以前のシナリオでは、lsホームディレクトリにあるコマンドではなく実際のコマンドを実行しました。jokerしかし、間違ったlsコマンドを入力した可能性があります。指が滑ってタイピングしている可能性がありますks。これによりks、古いディレクトリが見つかりませんが、シェルがホーム.ディレクトリに到達すると、最終的にコマンドをホームディレクトリに見つけることができます。ksjoker

関連情報