UNIXのPATH設定に関する問題

このQ&Aのポイント
  • UNIX上で共用のユーザーを使用しています。しかし、PATHの設定が長くなりすぎて、Windowsの立ち上げ時にエラーメッセージが表示されるようになりました。
  • 共用ユーザーなので.cshrcなどを変更することができないため、ホームディレクトリに環境設定ファイルを作成し、Windowsを開いた際にそれを読み込むようにしています。
  • しかし、不要なパスの削除や同じパスの重複を防ぐ方法がわかりません。どのように設定すれば良いでしょうか?
回答を見る
  • ベストアンサー

UNIXのPATH設定

UNIX上で共用のユーザーを使用しています。 いろいろやっていて、PATHの設定が長くなりすぎたようで、WINDOW立ち上げ時に”語句が長すぎます”というメッセージが出力されるようになってしまいました。 共用ユーザーということで.cshrcなどを勝手にさわるのは トラブルのもとなので、自分用の環境設定ファイルをホームdirに用意してWINDOWを開いたらそれを”source”するようにしています。そのような使用法でPATHを追加するのは簡単ですが、他人が追加してしまった不用なpathの削除が簡単にできないかと思います。 それと、もしうっかりして同じpathを2つ追加してしまった場合などすでに、今追加しようとするPATHが既に追加されている場合は追加しないようなPATHの設定法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

今設定されているPATHを echo $path >path.txtとでもして、保存して、あとは編集するだけですよね? set path = (\ /usr/local/bin \ /usr/X11R6/bin \ /usr/bin \ /bin \ ~/bin \ ) というように整形すればその後の更新は大して手間でもないでしょう。それにpathの順番は重要ですから、同じpathが複数回でてきてどこにあるか分からないという状態はまずいです。 また一気に全部羅列するひつようもないですね。 常に使うpathをまずかいて、あとは set path=($path /hoge/hage) とやれば後ろに追加できますし set path=(/hoge/hage $path) とやれば前にも追加できますね どうしてもというなら set path=`echo $path|sed -e 's|/usr/bin/X11||'` こんなことをすれば/usr/bin/X11がpathから消えてくれます。重複の削除も手間をかければ出来ますけれど、それをやるくらいならちゃんと設定ファイルを作るべきです。

Kasaoka-Taroh
質問者

お礼

いろいろな人間が、同一ユーザーを使用するとどうしてもPATHの混乱が生じてしまうのですが、なるべく整備するようにします。sedを使用したPATHの整理はなるほどと思いました。ありがとうございました。参考にさせていただきます。

その他の回答 (1)

回答No.1

いったんunset PATHしてから、好きなパスだけ一から追加すればいいのでは?

Kasaoka-Taroh
質問者

補足

勝手なようですが、PATHが増えてくると、その中の不用と思えるPATHを探すのは比較的簡単なのですが、 必要なPATHを全てあらいだすのは非常にしんどい作業となってしまいます。1からPATHを作りなおすのではなく不用と思えるPATHのみを削除はできないでしょうか...その方がありがたいのですが..

関連するQ&A

  • PATH設定について

    PATHの設定について質問します。 他の質問で同じようなものがあったのですが、どうも よく分からない為、教えて下さい。 PATHの設定をスタートアップファイルに追加したいのですが、シェルによって違うのは分かったんですが。 具体的にわかりません。bashの場合は、ホームディレクトリに.profileを作成するのでしょうか。また.cshrcとか.tchrcとか.loginとか関係しているのでしょうが、どこをどう追加すればいいのか教えていただけませんでしょうか。初心者ですみませんが宜しくお願いします。

  • UNIXシェルの設定ファイルについて

    solaris8使用してるのですが2つほど質問があります。 1. rootのシェルの設定ファイル(.cshrcとか.profileにあたるもの?) ってどこにあるのでしょうか? su でroot になったときや、rootでcshと打ち込んだときなど はどこのファイルの設定を読むのでしょうか? 2. 一般ユーザを新規に追加した場合にその新規ユーザの シェルの設定ファイルってどこからもってきたものなんでしょうか? デフォルトのファイルのようなものをコピーしてくる感じなのでしょうか? ご存知の方よろしくお願いします。

  • UNIXのパス表現にしたい

    UNIXのパス表現で /user/model/study と表現する絶対パス名を WindowsNT又は2000で同様な表現方法をする設定は ありますか? 例えば(WinDOSプロンプトから) cd \user\model\study を cd /user/model/study でアクセスできるような方法を教えて下さい。 SUBSTコマンドの応用で実現しようと しましたが上手くいきませんでした。 ちょっと急ぎの為、皆さんのお力をお借りしたく 宜しくお願い申し上げます。

  • rootにpathを通す方法

    こんにちは、kaituyoと申します。 Solaris8でのpathの通し方の質問です。一般ユーザーの場合ですとHOMEディレクトリの中の「.cshrc」ファイルにpathを書きこみシェルを再実行させればコマンドが使えるようになりました。しかし、rootでログインすると使えません。それで、rootにもpathを通そうかしたら「.cshrc」が見つかりません。  rootでpathを通してコマンドを実行できるようにはどうしたらいいのでしょうか? よろしくお願いします。

  • UNIXにおけるHULFTのユーザー権限設定方法について

    UNIXにおけるHULFTのユーザー権限設定方法について UNIX上で稼働させる場合のHULFTの使用ユーザーを 設定する方法と設定内容が記載されるファイルを教えてください。

  • PATHとLD_LIBRARY_PATHの設定

    solarisまたはlinuxで、ソースインストールする際のPATHとLD_LIBRARY_PATHについての質問です。 1. ソースインストールする際に、事前にPATHやLD_LIBRARY_PATHを設定してから、 ./configure → make をするよう説明しているサイトがありますが、 インストールするときだけPATHやLD_LIBRARY_PATHを変更しても問題ないのでしょうか? たとえば、インストール時に$ export LD_LIBRARY_PATH=/lib:/usr/libとしてインストールしたけど、 実際にサービスを起動する際はLD_LIBRARY_PATHは未設定というような状態のことです。 2. ソースインストールする際、./configureとmakeを実行する一般ユーザのPATHやLD_LIBRARY_PATHの示すパスと、 make installを実行するrootユーザのPATHやLD_LIBRARY_PATHの示すパス(または順番)が異なっていても大丈夫でしょうか? たとえば、一般ユーザはLD_LIBRARY_PATH=/lib:/usr/libだけど、 rootユーザはLD_LIBRARY_PATH=/usr/local/lib:/lib というような状態のことです。 3. exportなどによる一時的な設定ではなく、profieや/etc/ld.so.conf(solarisではcrleによる)などで 固定で設定する場合、注意することはありますか? 個人的に思っているのは、パスの先頭に追加すると既存サービスなどに影響を与える可能性があるので、 最後尾に追加していくことぐらいです。 以上です。よろしくお願いします。

  • pathの設定

    初歩的な質問かもしれませんが、教えてください。 Linux(CentOS)で最新のバージョンの、とあるtool(mpich)を入れたのですが、.bashrcや.bash_profileにpathを記述してもrootが設定した旧バージョンの方にpathが通ってしまいます。また、 $which 新しいtoolのとあるコマンド(mpirun) としても旧バージョンのpathが表示されてしまいます。このような場合どうすれば、新しくインストールした方にpathが通るのでしょうか?私は一般ユーザーでroot権限はありません。また、OSはCentOSでシェルはbashを使用しています。どなたかお分かりになる方がいらっしゃれば、よろしくお願いします。

  • perlとcygwinをインストールしてwindowsにPathを設定

    perlとcygwinをインストールしてwindowsにPathを設定しようとしましたが、 ユーザーの環境変数を C:\cygwin\bin\; C:\xampp\perl\bin\; のように設定しましたが、コマンドプロンプトからは実行できませんでした。 システムの環境変数に追加しようとしましたが、 Pathがいっぱいで追加できませんでした。 Pathがいっぱいの場合、どのように追加したらいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • シェルススクリプト内のパス指定について

    プログラムを実行するシェルスクリプト内に以下のように絶対パスで環境変数の設定用のシェルスクリプトが絶対パスで書かれているのですが、この場合だと環境が変わるたびにシェルスクリプト内のパスを書き換えなければなりません。 /dir1/dir2/dir3/setenv.sh 相対パスにすれば書き換える必要はなくなるのですが、お作法上は相対パスで書くことは問題ない(良いと)されているのでしょうか? ../../dir/setenv.sh

  • .cshrc ファイルに追加したい

    UNIX上でOracleを利用するために、.cshrcファイルの最後にsource /user/local/bin/cwmucsenvと言うものを追加したいのですが、どうやって追加したらいいのかわかりません。 ファイルの呼び出し方法、追加方法を教えていただきたいです。よろしくお願いします。