システム内のどこからでもCプログラム(Ubuntu 10.10)をどのように実行できますか?

システム内のどこからでもCプログラム(Ubuntu 10.10)をどのように実行できますか?

友達の皆さん、私の環境変数PATHに私のCプログラムのパスを追加したいと思います。私のCプログラム名は「md5」です。これにより、どこからでも(たとえば、すべてのディレクトリ)実行できます。

私のmd5プログラムはにあります/home/ahuq/MappingServer/md5_program。だから私がしたことは次のとおりです。

export PATH=$PATH:/home/ahuq/MappingServer/md5_program

実行中のシェルから。これにより一時的な変更のみが行われ、md5一時的にどこからでもプログラムを実行できます。

root@ahuq-kitchen:/home/ahuq# md5 -sanis
MD5 ("anis") = 38a1ffb5ccad9612d3d28d99488ca94b

しかし、私はこの変化を永久に作りたいと思います。

PATH=$PATH:/home/ahuq/MappingServer/md5_programその行を and ファイルの末尾に入れようとします。シェルを終了し、再び入ります。しかし、これはうまくいきませんでした。/home/ahuq/.bashrc/home/ahuq/.profile

root@ahuq-kitchen:/home/ahuq# md5 -sanis
No command 'md5' found, did you mean:
Command 'cd5' from package 'cd5' (universe)
Command 'mdu' from package 'mtools' (main)
Command 'mdb' from package 'mono-debugger' (universe)
md5: command not found

PATH上記のファイルの間違った場所に宣言を入れた可能性があります。これら2つのファイルにはif-else-fi構造がたくさんあります。PATHこれらの構造にステートメントを入力する必要がありますか?ただログアウトする必要がありますか、または変更を適用するにはシステムを再起動する必要がありますか?

答え1

パスを正しい位置に置いたようです。ただし、パスのどこかにスペースがあると機能しない可能性があります。精度を確保するために、次のことを試すことができます。

export PATH="$PATH:/home/ahuq/MappingServer/md5_program"

/usr/local/binまたはアプリケーションをmd5sum

答え2

ドットファイルを見なければ確かに言うのは難しいですが、引用した内容から.profileファイルと.bashrcファイルに追加するときに「エクスポート」を省略しました。

答え3

あなたの質問から:

root@ahuq-kitchen:/home/ahuq# md5 -sanis

しかし、ユーザーの.bashrcだけを編集したと言われました。

すべてのユーザーにグローバルパスが必要な場合は編集できます(/etc/bash.bashrc権限の問題により他のユーザーがホームディレクトリで実行できない場合は問題が発生する可能性があります)。または、md5rootユーザーとローカルユーザーにのみ変更を適用する必要がある場合は、/root/.bashrc編集を検討してください。

あるいは、より好ましくは、ルートとしてUbuntuのすべての人のための基本的なコマンドであるコマンドをmd5インストール/コピーすることを検討することができます。/usr/local/bin$PATH

次のことができます。

$ sudo cp /home/ahuq/MappingServer/md5_program/md5 /usr/local/bin
$ sudo chown root:root /usr/local/bin/md5
$ sudo chmod 755 /usr/local/bin/md5

答え4

また、私のパスに実行可能ファイルを追加する際にいくつかの問題があります。私に役立ったexport PATH=$PATH:/home/ahuq/MappingServer/md5_programのは~/.bash_profile

残念ながら、なぜそうなのかわかりませんが、met .bashrcは機能しませんが、.bash_profileは機能します。

関連情報