再びLINUX環境周りについて質問です。今、こんな風になっています。

[root@*** /]# type apachectl
apachectl is hashed (/usr/sbin/apachectl)
[root@*** /]# find -name ”apachectl”
./usr/sbin/apachectl
./usr/local/apache2/bin/apachectl

apachectlを./usr/sbin/apachectlに割り当てているものはなんでしょうか?
./usr/local/apache2/bin/apachectlに割り当てたいのですが、
.bashrcに
alias apachectl=’./usr/local/apache2/bin/apachectl’
ってやったらどうなりますか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/02/02 14:17:39
  • 終了:--

回答(2件)

id:mutsuju No.1

mutsuju回答回数551ベストアンサー獲得回数352005/02/02 14:53:46

ポイント30pt

PATHの評価順はどうなっていますか?

/usr/local/apache2/bin にPATHが通っていなければ記載のようになると思います。

/usr/sbin/ と /usr/local/apache/bin にhoge.shを作り擬似的に評価してみたら(/usr/sbinにだけPATH通っています)

%hoge.sh < /usr/sbin/hoge.sh が実行される

で、alias hoge.sh ’./usr/local/apache/bin/hoge.sh’ をやって

%hoge.shをやると

./usr/local/apache/bin/hoge.sh: Command not found.

になりました。頭のdotを取って

alias hoge.sh ’/usr/local/apache/bin/hoge.sh’ をやると

%hoge.sh

hoge /usr/local/apache/bin

になりました。

結論としては、aliasはPATH環境変数をオー払い度するという理解でよろしいのではないかと。しかしaliasより先にPATHを通すか絶対パスでコマンドを実行する方がよろしいのではないかと思います。

id:nakeyouguisu

うっかりapachectlでコマンドを打つと意図したものとは違うapacheが立ち上がってしまうため、aliasを切ろうと思いました。

「aliasよりPATHを通せば」ということは、環境変数を設定するファイルがあるんでしょうね。なるほど。まずはそこからですか…。

2005/02/02 15:46:06
id:dev_zer0 No.2

dev_zer0回答回数332ベストアンサー獲得回数252005/02/02 15:02:11

ポイント30pt

echo $PATH

と打ってみて下さい。

シェルは上記のパスの順番で一致するファイル名を検索しにいきます。

おそらく、./usr/sbin/が/usr/local/apache2/binよりも前にあるはずです

> alias apachectl=’./usr/local/apache2/bin/apachectl’

上記の手で問題ないと思います

apachectl=’/usr/local/apache2/bin/apachectl’

こっち(/userの前に「.」がない)方が期待している動作だと思います。

id:nakeyouguisu

”./”は私のうっかりミスです。ごめんなさい気がつきませんでした。だから前述の方も”./”で試されたのですね。申し訳ない。

PATHは通っていませんでした。

/usr/sbin/をおなざりにするわけにもいかないので、aliasで試してみようと思います。PATHはPATHで通し方ぐらい知らないのはどうかと思うので、また機会をみて基礎コマンド入門レベルの質問をすると思います。その際はよろしくお願いします。

2005/02/02 15:51:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません