• 締切済み

環境変数の設定(PATH)

今、環境変数の設定(PATHの設定)を行っています。 OSは、RedHat9です。 スーパーユーザーのPATHは、 echo $PATHコマンドで見ると /usr/local/sbin:/usr/bin:/home/user1/test となっている。 しかし.bash_profileをみると PATHには、/usr/local/sbin:/usr/binしか 設定しておらず、 ユーザー(user1)の.bash_profileにも /home/user1/testをPATHに設定していない。 どこかでPATH設定を行っていると思いますが わかりません。 PATHの設定は、.bash_profileを設定するとは わかっているのですが、 スーパーユーザーの.bash_profileの記述と echo $PATHで見たPATHの構成がことなるのは なぜでしょうか? よろしくお願い致します。

みんなの回答

  • notnot
  • ベストアンサー率47% (4851/10265)
回答No.2

どこかでsourceコマンドでファイルを読み込んでいてそこで設定されているのだと思います。.bashrc とか。 一時的に、/etc/profile の先頭にでも set -x と書いて、実行コマンドの表示をさせるようにするとどこで設定しているのかわかると思います。

  • anights
  • ベストアンサー率72% (35/48)
回答No.1

bashが最初に読み込むのは/etc/profileです。 その後に、~/.bash_profileです。 この辺りは # man bash で分かります。 最近のRedHatでは、/etc/profileから /etc/profile.d/*.shも読み込んでいます。

関連するQ&A

  • パス(PATH)の設定ファイルについて

    OSはRed Hat Linux 9 を使用しております。 また、シェルはbashを使用しております。 ユーザがシステムにログインする際は、通常ですと /etc/profile ~/.bash_profile ~/.bash_login ~/.profile ファイルを読込、パス(PATH)の設定を行うと思いますが、 sshでrootユーザでシステムにログインした際は、 「echo $PATH」の結果は以下でした。 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/sbin su -で再度rootユーザでログインした際、もしくは、他ユーザからsu -でログインすると 「echo $PATH」の結果は以下でした。 /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/sbin ログインの仕方でパス(PATH)に違いがあります。 また、「/usr/local/bin」をパス(PATH)として設定している記述が 上記ファイルに見当たりません。 http://sakaguch.com/PastBBS/0038/B0018808.html http://oshiete1.goo.ne.jp/kotaeru.php3?q=800405 等のサイトを参考に、以下ディレクトリ配下を確認しましても /etc/profile.d /etc/rc.d/init.d /etc/rc.d/rc3.d 「/usr/local/bin」をパス(PATH)として設定している記述が 見当たりません。 ログインの仕方でパス(PATH)に何故違いがあるのか、 また「/usr/local/bin」をパス(PATH)として設定している記述がある ファイルをご存知の方ご教授頂きたく思います。 宜しくお願いします。

  • シェル変数(path)の挙動がわかりません

    シェル変数の挙動がわからなくて困っています。 以下のような3ファイルがあります。 % cat /tmp/test_config.sh #!/opt/local/bin/zsh path=($path /tmp) % cat /tmp/test.sh #!/opt/local/bin/zsh . /tmp/test_config.sh echo $PATH echo $path /tmp/test2.sh % cat /tmp/test2.sh #!/opt/local/bin/zsh echo $PATH echo $path which test.sh これを、所有者のユーザで実行するのとsu -c で実行するので挙動が変わります。 % /tmp/test.sh /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/tmp /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/local/bin /opt/local/sbin /tmp /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/tmp /usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/local/bin /opt/local/sbin /tmp /tmp/test.sh % sudo su - hogehoge -c /tmp/test.sh /bin:/usr/bin:/usr/ucb:/usr/local/bin:/tmp /bin /usr/bin /usr/ucb /usr/local/bin /tmp /bin:/usr/bin:/usr/ucb:/usr/local/bin /bin /usr/bin /usr/ucb /usr/local/bin test.sh not found この挙動の違いは、何から産まれるんでしょう? .zshrc でそういう設定ができるんでしょうか? .zshenv は使ってません。 (なお、環境変数$PATHを使えば目的は果たせると言うのはわかっています)

  • 環境変数について質問です。

    AIXでユーザー別に環境変数を設定したいと思っています。 PATHで/usr/local/bin、/usr/local/sbin を設定したいのですが、 既存のユーザーへ一度に登録する方法はありますでしょうか? やはり$HOME/.profile ヘ上記のPATHを記載するしかないでしょうか。 また、これから新規でユーザーを作成した際に上記のPATHを設定する方法はありませんでしようか。 AIXではログイン時は/etc/profile → $HOME/.profile となるようですが、 /etc/profile に記載した内容は上書きされてしまうということでしょうか。 すみませんが、どうぞよろしくお願いいたします。

  • 環境変数PATH

    $PATHの中を変更したいです。 [root@****]# echo $PATH /usr/kerberos/sbin: /usr/kerberos/bin: /usr/local/bin: /bin:/usr/bin: /usr/java/jre1.6.0_14/bin: /home/takosu/bin: /usr/java/jre1.6.0_14/bin 「# echo $PATH」を行うと上記の様に表示されますが、 何故か「/usr/java/jre1.6.0_14/bin」が二つ表示されているので 一つを消したいんですが如何すれば良いでしょうか? ご回答宜しくお願い致します。

  • sshdコマンドへのpathの貼りかた

    Linuxに関して質問があります。ターミナルでsshdを入力すると、 [xyz@localhost ~]$ sshd bash: sshd: command not found と出ます。 echo $PATHをやると、 [xyz@localhost ~]$ echo $PATH /usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/xyz/bin:/sbin とでます。 pathが通っていないのだと思うのですが、 .bash_profileに何と追記すれば良いのでしょうか?御教示下さい。宜しくお願い致します。

  • JAVAの環境変数が初期化されてしまいます

    Linux初心者です。 JDK6.0をインストールして、環境変数を次のように設定しました。 export JAVA_HOME=/usr/local/jdk1.6.0 export PATH=$JAVA_HOME/bin:$PATH これで一旦はjavacやjavaコマンドが使えるようになるのですが、 bashを再起動すると、また使えなくなるので再設定しなければなりません。 調べてみた所、homeディレクトリの.bash_profileを変更すると 再設定の必要がなくなると書いていたので、 # set PATH so it includes user's private bin if it exists if [ -d ~/bin ] ; then PATH=~/bin:"${PATH}" → export JAVA_HOME=/usr/local/jdk1.6.0 → export PATH=$JAVA_HOME/bin:$PATH fi と記述してみたのですが、やはりbash再起動後のPATHに 上記のパスは含まれていません。 私の記述方法が間違っているのでしょうが、 どうすれば自動的にパスを通すように設定できるのでしょうか? ターミナルはubuntu6.10からGNOME端末を使用しています。 よろしくお願いします。

  • 環境変数pathについて

    環境変数pathについてお聞きしたいことがあります。たとえば /usr/local/bin:/bin:/usr/bin: このような場合、/usr/local/binと/binと/usr/binに入力されたコマンドのプログラム ファイルを探しに行くというような解釈をしているのですが、 /usr/local/binがあるならば/binや/usr/binといったようなpathは必要ないような気がします。なぜこのような書き方をするのでしょうか? お忙しいところ申し訳ございませんがよろしくお願いします。

  • PATH環境変数

    RedHat7.2のPATHで質問 環境変数PATHに/usr/X11R6/binというのは最初から きられているのでしょうか。

  • 環境変数の設定

    OS:MacOS10.4.7 ant version:1.6.5 antの設定で困っています。macでの環境変数の設定(パスを通す)はどうすれば良いのか困っています。 現段階ではantをusr/localで展開し、シンボリックリンクを作成。 次段階の環境変数の設定で~/etc/csh.cshrcに setenv ANT_HOME /usr/local/ant set path=( $path $ANT_HOME/bin ) を加えたのですがantが動作しません。 どなたか解決方法・間違え点ありましたら教えてください。 宜しくお願いします!!

  • パスがうまく通らないので、パスについて教えてください。

    パスがうまく通らないので、パスについて教えてください。 ▽やりたいこと http://okwave.jp/qa/q6132108.html ▽知りたいこと  →パスを通すとは、具体的に、どこのことを指すのでしょうか? 1)php infoのinclude_path(ブラウザで確認) Configuration PHP Core include_path .:/usr/local/lib/php 2)php infoのPATH(ブラウザで確認) Environment Variable Value PATH /command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin 3)echo $PATH(SSHで確認) 出力すると、1)とも2)とも異なる結果となります…。 パスを通すとは、具体的に、どこのことを指すのでしょうか? また、上記それぞれの意味、及び内容が違う理由を、教えてください。

    • ベストアンサー
    • PHP