- ベストアンサー
Linuxの環境変数についての疑問
Tacosanの回答
「コンソールA のシェル」と「コンソールB のシェル」は「同じプログラムの別のプロセス」です. んで, 環境変数はプロセスごとに設定されるので「コンソールA のシェル」で環境変数を設定しても (別のプロセスである) 「コンソールB のシェル」には反映されません.
関連するQ&A
- macportsの環境変数
macportsをインストールし、環境変数のPATHを export PATH=/opt/local/bin:/opt/local/sbin:$PATH と入力した後すぐにenvを入れるときちんと変更が保存されてるように見えるのですが、ターミナルを再起動しenvで確認すると毎回変更前の設定に戻っています。 どのようにすればこのPATHの変更を今後全てのターミナルウィンドウに反映する事が出来ますか?
- 締切済み
- Mac
- 環境変数にアカウントに通っているパス以外のパスを反映させたいです
情報自動収集用のシェルを組みましたが、 現在使用しているアカウントにパスが通っていない為、環境変数にパスを通そう(追加)と思っています。envを使用したことが無く、現在確認するためのUNIX環境が再編中のため検証ができずに困っております。私の調べましたところ export PATH = $PATH:/追加したい目的のパス もしくは PATH = $PATH:/追加したい目的のパス export PATH 上記コマンドをシェル実行前に実施すればいいのではないかと考えているのですが、 (1)上記コマンドを使用することで現在使用しているアカウントに検索するパスが追加されますでしょうか? (2)また上記コマンドを実施する際はルート権限が必要なのでしょうか? 自分のテスト環境が整っておらず恐縮ですが、御教授頂けないでしょうか、宜しく御願い致しますm(__)m
- ベストアンサー
- Solaris系OS
- 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端末を使用しています。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- sedコマンドの使い方 linux
linux勉強中です。 やりたいことは以下です。 sample.txtというファイルには1行ごとにファイルパスが記載されています。 パスの中にhogeが複数含まれており、2番目のhoge以下のパスを取得したい。 (例)sample.txt home/user1/hoge/…/…/…/hoge/…/…/hoge/test.jsp home/user1/hoge/…/…/…/hoge/…/…/hoge/…/test2.jsp : の場合だと /hoge/…/…/hoge/test.jsp /hoge/…/…/hoge/…/test2.jspをアウトプットとして出したい。 以下の構文を書いたのですがこれだと最後のhoge以下のパスは取れるのですが真ん中のが取れず… grep 'hoge' sample.txt | sed s/'.*hoge'/'hoge'/g > output.txt sedで出来るのかなと思っているのですが、もっといいやり方などあればご教授ください。 よろしくお願いします
- 締切済み
- Linux系OS
- コンパイラの環境変数の設定について
borlandのbcc32というコンパイラをダウンロードしてインストールしました。 環境変数の設定とか言うのがあるのですが、「path」に追加するらしいですね。 昨日は「path」に書いてある字を全部消してから書きました。 今本を読みながら手順を確認してたら「元から書いてあったやつは重要なので消さずに追加だけすること」とありました。 しかしもう消してしまってありません。 なんて書いてあったかも思えていません。 しかし不具合がありません。 本には消すなと書いてありましたが、不具合がないので放っておいてもいいのでしょうか? とても心配です。
- 締切済み
- Windows Vista
- シェルによる環境変数の設定方法
シェルによる環境変数の設定方法に関して質問があります。 ・二つのシェルファイルA.shとB.shがあります。 ・A.shの中でexportを使って環境変数を設定しています。 ・B.shの中でA.shを呼んでいます。 この場合、B.shを実行したコンソールにはA.shで設定した環境変数が設定されません。 B.shを実行したコンソールに別ファイルA.shが設定した環境変数を設定するには どのようにすればよいのでしょうか? 分かる方がいたら教えて下さい。宜しくお願い致します。
- ベストアンサー
- Linux系OS
- VB6.0でシステム環境変数PATHへ、%XXX%設定後、ログオフ以外で反映する方法について
1.OS Windows2000 Professional SP4 2.プログラム VB6.0 3.質問内容 システム環境変数を登録後、ログアウトなしで、反映できない。 MS文書番号104011で、SendMessageTimeoutで、変更を通知しても %XXXX%で、PATHに追加登録した内容が展開されない。 なお、regedt32.exeで、%XXXX%は、REG_EXPAND_SZで登録を確認 4.事象 1)登録内容 プログラムにて、システム環境変数に以下登録 A=C:\tmp <= 新規 AA=%A%\work <= 新規 PATH=現状項目;%A%\tmpi <= 既存へ追加 2)プログラム実施結果 コマンドプロンプトで、確認を行うと、 AA=C:\tmp\work に、展開されているが、 PATH=現状項目;%A%\tmpi と、展開されていない。また、この状態で、C:\tmp\tmpi に、 バッチを作成しC:\から、起動しても、PATHが通っていないため、 「プログラムが見つからない」というエラーがでます。 また、SendMessageTimeoutで、通知しても、コマンドプロンプトから PATHを確認しても、PATH=現状項目;%A%\tmpi となり、展開 されていない。 3)リブートすると、展開されるようです。 ※regedt32で、確認すると、PATHには、現状項目;%A%\tmpi で 登録されています。 5.疑問 リブートせずに、通知させる方法はないでしょうか? 特に、新規に登録したシステム環境変数はOKで、追加で登録したPATHに 反映できないのは、なぜでしょうか? 以上 アドバイスのほど、よろしくお願いします。
- 締切済み
- Windows NT・2000
- 他のアカウントの環境変数を読み込ませ、自作シェルを動作させたいです。
複数ファイル収集用のシェルを作成(他人作)、起動しましたが、現在使用できるアカウントではパスが通っていないため、目的のファイルの一部が収集できない状態で困っています。シェルの中身を見ましたがパスの指定がなかったため取得できていない状態でした。シェルの中身を書き換えることは他人様作成の為できませんので、、、他のパスの通っているアカウントの環境変数を読み込んだ後、そのシェルを起動したいのですがコマンド(env?)等やり方を教えてもらえないでしょうか。なお読み込ませたい環境変数はパスだけです。宜しく御願い致します。m(__)m
- 締切済み
- Solaris系OS
- 複数の文字列を検索
あるログファイルの文字列を取得して。検索でヒットした文字列行 を返すスクリプトを作成しております。 検索:"OK" 日付 対象行 : OK! Tue Jul 19 文字列"OK"は普通に # grep "OK" ログファイルPath で検索できますが、 文字列と日付を両方引っ掛ける場合は・・・ grep -e "OK" -e env LANG=c date -u +"%a %b $d" ログファイルPath 当然コマンドエラーになります。 dateコマンドから日付を取得して、grepにて引っ掛ける方法を知りたいので すが、お分かりになる方、ご教授お願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- 自作の起動スクリプトについて
/etc/init.dの下に自作の起動スクリプトを作成しようとしています。 そのなかで、rootユーザではなく、特定のユーザでサービス起動しようとしています。 特定のユーザで起動するためには、環境変数を設定する必要があるのですが、どのように設定するのでしょうか。 たとえば、 -- export USER=hoge export ENV1=abc export ENV2=def su - $USER -c "サービス起動コマンド" -- ここでは、$USERに対して、環境変数$ENV1と$ENV2を設定して、サービスを起動しようとしています。
- 締切済み
- Linux系OS
お礼
ユーザーごとに環境変数が設定されるものと思っていました。 プロセスごとであれば納得です。 ありがとうございました。