回答:
簡単な答えは、どのディレクトリに関係なくプログラムを実行するには、検索パスにプログラムのディレクトリが必要であるということです。この問題は、プログラムを既にそのパスにあるフォルダーに入れるか、新しいフォルダーをパスに追加することで解決できます-どちらでも機能します。最良の答えは以下に依存します:
このプログラムは、ソースから自分でコンパイルしたダウンロードプログラムですか?
おそらくインストールメカニズムが既にあるでしょう。プログラムをコンパイルしたフォルダーで、rootとして「make install」を実行します
このプログラムは、コンピューターの標準プログラムの一部として利用できるようにするダウンロードプログラムですか?
この種のアプリケーションを標準フォルダーに入れるのは理にかなっています。そのようなプログラムに/ usr / local / binなどのディレクトリを使用することは非常に一般的です。これを行うには、rootアクセスが必要です。
これは、自分用に作成したプログラムであるか、コンピュータに特別な特権がありません。
ホームディレクトリに「bin」というフォルダを作成し、そこにプログラムを配置します。ログインスクリプトを編集して、このフォルダへのフルパスを追加する必要がある場合があります(例:/ usr / home / jeremy / bin)
現在のディレクトリを検索パスに追加することはできますが、すべての新しいプログラムでこれを実行し続ける必要があり、長期的にはより多くの作業が必要になります。
/binディレクトリ内のファイルへのリンクを配置することは、複数の理由で行うのに最適ではありません。
/binディレクトリは、システムを実行するために必要なプログラム(のようなもののために予約されることになっているchmod、mkdirなど)。あなたが実際に実行可能ファイルを配置(インストール)することができ/usr/bin/、さらには/usr/local/bin/。もちろん、その時点でプログラムを手動でインストールしました。ディストリビューションは、プログラムの残りの部分を追跡しません。必要に応じて手動でアップグレードし、必要に応じて手動で削除する必要があります。また、どのパッケージに依存しているのかを知る必要があります(プログラムを既に使用しているように聞こえるので、大事になりますが、一般的には...)。
他のユーザーが使用することを期待するプログラムを設定する場合を除き、それは私が通常行うことではありません:私は自分のホームディレクトリにbinディレクトリを作成し、シェルプロファイルを編集~/bin/してPATH環境変数に追加します。システムの残りの部分から分離されているため、その方法でインストールしたプログラムを追跡する方が簡単です。
fooシェルが現在あるディレクトリでコマンドを実行する場合、基本的に2つのオプションがあります。
タイプ./fooシェルプロンプトで。
.ディレクトリ(.「現在のディレクトリ」の名前)をPATH環境変数に追加します。これを行う方法は、使用しているシェルによって異なります。
2.はマルチユーザーシステムのセキュリティリスクであることに注意してください。cdディレクトリに移動する/tmpと、悪意のあるユーザーがlsそこに名前の付いたマルウェアバイナリを作成したと想像してください。