- PR -

exportコマンドの実体はどこにあるのでしょうか?

1
投稿者投稿内容
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-05-29 10:51
いつもお世話になっております。
koaraと申します。

環境パスを設定するexportコマンドが
一般ユーザーでは使えるのに、rootで使えないサーバーがあり困っています。

一般ユーザー$ export
とすると
設定されている環境パスの一覧が表示されます。

root# export
とすると
export: コマンドが見つかりません。
と表示されます。

一般ユーザー、rootとも
which exportを実行すると
which: no export in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/username/bin:/root/bin:/sbin:/usr/sbin)
と表示されます。

exportの実体はどこにあるのでしょうか?

PHPでoci8.soが使えなくて試行錯誤していたのですが、
これが原因でLD_LIBRARY_PATHが設定できなかったようです。
あと少しで解決できそうです、アドバイスよろしくお願いします。
NeXT
大ベテラン
会議室デビュー日: 2004/04/06
投稿数: 215
お住まい・勤務地: 江戸
投稿日時: 2006-05-29 11:35
man export
してみるとわかるかと思いますが,シェル(sh, bash, ksh)のビルトインコマンドです。

Red Hat Enterprise Linux ES release 3 や 同 4 では BASH_BUILTINS(1) に,
Solaris9 では set(1) にそれぞれ記述されていました。

> 環境パスを設定するexportコマンドが
> 一般ユーザーでは使えるのに、rootで使えないサーバーがあり困っています。

一般ユーザは sh 等の export があるログインシェルを,
スーパーユーザ(root) は csh 等のexport がないログインシェルを
利用しているのではないでしょうか。
echo $SHELL 等で確認してみては如何でしょう。

例えば csh では
setenv LD_LIBRARY_PATH /usr/loca/lib
とするようです。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-05-29 12:00
NeXT様 ご回答ありがとうございます。

>一般ユーザは sh 等の export があるログインシェルを,
>スーパーユーザ(root) は csh 等のexport がないログインシェルを
>利用しているのではないでしょうか。
>echo $SHELL 等で確認してみては如何でしょう。

仰られた通り一般ユーザーは bash スーパーユーザー(root) は csh でした。

>man export
>してみるとわかるかと思いますが,シェル(sh, bash, ksh)のビルトインコマンドです。

ビルトインコマンドだったんですね、気が付きませんでした。
そう言われてみれば
.bashrc
.bashprofile
に書きますね。

ヘルプというと、Windowsのイメージからキーワードを入れても
ヒットしないと思ってしまっていてmanも使ってないかったのですが、
これから必ず見るようになりそうです。

>例えば csh では
>setenv LD_LIBRARY_PATH /usr/loca/lib
>とするようです。

setenv LD_LIBRARY_PATH /usr/lib/oracle/10.1.0.4/client/lib
を実行して env で確認したら設定出来ていました。
NeXT様どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)