次の違いは何ですか?
./executable
そしてexecutable
。いくつかの実行可能ファイル(Linux以外のコマンド)が時々必要ない理由は何ですか./
?
makefile(物理コード)を介して実行可能ファイルをインストールした場合は、それらをアンインストールして最新バージョンをインストールするにはどうすればよいですか?コードを削除するだけでrm
十分ですか?この場合、実行可能ファイルの実行には必要ありません。./
答え1
UNIX環境(およびDOSやWindowsなどの他のシステムでも)では、シェルは特定のディレクトリで実行可能ファイルを見つけます。 Unix環境ではPATH
変数として定義されます。PATH
次のコマンドを実行して、変数のディレクトリを確認します。
$ echo $PATH
結果は次のようになります。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
ご覧のとおり、変数はコロンで区切られたディレクトリのリストです。たとえば、コマンドを実行すると、ls
システムはリストの最初のディレクトリ(たとえば/usr/local/sbin
)から実行可能ファイルを検索します。ここで指定されたファイルが見つからない場合は、ls
見つかるまで次のディレクトリを試してください。したがって、ls
コマンドが存在する場合は/usr/bin
実行されます。あるいは、シェルがどこからでもコマンドを見つけることができない場合、コマンドが見つからないというエラーが表示されます。
しかし、実行可能ファイルを呼び出す別の方法があります。ls
2つのディレクトリに名前が付けられた2つのプログラムがあり、PATH
2番目のプログラムを実行したいとします。これを行う方法はおそらくランニングなので、/usr/bin/ls
希望の方法を指定できます。
これは.
現在のディレクトリへのショートカットです。したがって、/home/user
にいる場合は./configure
ショートカットです/home/user/configure
。
PATH
その場所を見つけて削除すると、ファイルを削除できます。ただし、ほとんどの最新のディストリビューション(rpm、dpkg、pacmanなど)で利用可能なパッケージマネージャを使用して、システムにインストールされているバイナリを管理することをお勧めします。 Makefileが複数の実行可能ファイルを生成する場合は、この方法で削除するのが簡単になります。また、makefileはいくつかのライブラリファイルや他のいくつかのエントリを生成することができるので、パッケージ管理ツールを使用する方が簡単です。場合によっては、Makefileがアンインストールルーチン(make uninstallなど)を呼び出すことができますが、どのくらいの頻度で発生するのかわかりません。プログラムを新しいメイクファイルに更新すると、新しいメイクファイルは古いmake install
バイナリを置き換えることができますが、これは保証されません。
を実行すると、いつでもコマンド実行可能ファイルが何であるかを確認できますwhich
。たとえば、どこにいるのか知りたい場合ls
:
$ which ls
/usr/bin/ls