実行可能ファイルがあります。他のコマンドのように名前だけでターミナルで実行可能ファイルを実行したい。
実行可能ファイルを/usr/local/bin
に入れるか、PATH
を~/.bashrc
に追加できます。両方とも機能します。
何が良いですか?違いはありますか?
たとえば、実行可能なmyscript
があるとします。端末から実行する必要があります、
/path/to/myscript
ユーザーレベルの変更
その実行可能ファイルのPATH
を~/.bashrc
に追加すると、どこからでも名前付きでのみ実行可能ファイルを実行できます( Avinash Raj 前述)
myscript
ただし、変更はユーザーレベルで影響を受けます。つまり、他のユーザーがいる場合は、名前だけで実行可能ファイルにアクセスできません。適切な許可がある場合は、実行可能ファイルを次のように実行する必要があります。
/path/to/myscript
また、ルートのPATH
にないため、スクリプトをSudoとして実行することはできません。Sudo
として実行するには、使用する必要があります。
Sudo /path/to/myscript
システムレベルの変更
スクリプトを/usr/local/bin
に配置すると、システム全体およびすべてのユーザーがアクセスできます。その場合、どのユーザーでも実行可能ファイルとして実行できます(適切なアクセス許可がある場合)
myscript
その場合、実行可能ファイルをSudo
として実行することもできます。
Sudo myscript
次に、必要に応じて1つの方法を選択します。
$PATH
ファイルの~/.bashrc
変数にファイルの場所を追加すると、任意の場所からのみ実行できますが、/usr/bin/
に配置すると、システム上のすべてのユーザーが実行できます任意の場所からそのファイル。
何故ですか?なぜなら、あなたの~/.bashrc
ファイルはユーザーとしてしか見えないからです。したがって、行われる変数の変更はすべてユーザーに限定されます。一方、そのファイルを/usr/bin
に追加すると、すべてのユーザーに対してファイルがそこに残り、誰かが削除しない限り、/usr/bin
変数に$PATH
が存在するため、すべてのユーザーが実行できますどこからでも。
実行可能ファイルを/usr/bin
または/usr/local/bin
に配置すると、名前(your-program
の代わりに/usr/local/bin/your-program
)を指定するだけでそのプログラムを実行できます。
代わりに、プログラムを含むディレクトリを~/.bashrc
ファイルにPATH
に追加すると、そのディレクトリにある実行可能ファイルは、名前を入力するだけで起動できます。
@souravcの答えを補完するように...
「ユーザーレベルの変更」では、~/.bashrc
ファイルを編集する代わりに、ディレクトリ$HOME/bin/
を作成し、そこにスクリプトを配置するだけです。
ディレクトリはPATH
(少なくともUbuntu 12.04以降)に自動的に追加されます。つまり、そのディレクトリ内のすべてのスクリプト/実行可能ファイルを簡単に実行できます。
myscript
ちょうど2セントです。 :)
PS- @souravc answerへのコメントとしてこれを投稿しようとしましたが、十分な評判がありませんでした。 :-(