人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

再び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’
ってやったらどうなりますか?

●質問者: nakeyouguisu
●カテゴリ:ウェブ制作
✍キーワード:Linux N/A name root 環境
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● mutsuju
●30ポイント

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を通すか絶対パスでコマンドを実行する方がよろしいのではないかと思います。

◎質問者からの返答

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

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


2 ● dev_zer0
●30ポイント

echo $PATH

と打ってみて下さい。

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

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

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

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

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

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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ