• ベストアンサー
  • 困ってます

UNIXのシェル、環境設定について教えてください。

こんにちは。 UNIXについて詳しく勉強したいとおもっています。 コマンドなど基本的なファイル操作についてはある程度わかるのですが、UNIXの環境設定、環境変数、シェルなどの物につまづいています。 「環境変数って一体なんだよ!」 「シェルのBシェル、Cシェルって・・・」 こんな感じです。 これらについて初心者でもわかるような本、サイトを教えてください。 あと、初心者すぎて恥ずかしい質問なのですが、UNIX系OSにはいろいろな種類があるのは知っているのですが、「UNIX」という名前のOSはあるのでしょうか? また、Teratermを使っているのですが、これって何ていう名前のOSなのでしょうか? 最後に、会社なのでは、SolarisとLinuxどちらが多く使われているのでしょうか? これらの質問に詳しい諸先輩方アドバイスの方をよろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数242
  • ありがとう数3

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

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

まずUNIXの件ですが、最初にAT&Tベル研で開発されたときの名前がUNIXです。その後いくつかバージョンアップを重ねversion 6とかversion 7とかが出た後、BSDとSystem IIIに分かれました。現在のUNIXの(米国内での)商標を持っているのはSCOで、SCO UnixWareなどとして販売されています。 シェルとは何ぞやというのはいいですよね?基本的にはキー入力されたコマンド列を解釈して実際のプログラムを起動するプログラムです。 Bシェル(Bourne shell)はversion 6ぐらいのころにだいたい今の形になりました。BSDが分かれたころにCの文法に近い方がスクリプトを書きやすいのではということでcshが開発されました。結局シェルスクリプトとしてはBシェルのシェアが圧倒的ですし文法も整っているので書きやすいのですが。Bシェル、Cシェルなどいろいろありますが、別に機能が大きく違うわけではありません。文法の好みで選ぶことがほとんどです。ログインシェルとしては、コマンド行の修正のしやすさとかそういう使いやすさを補ったbash, zsh, tcshなどを使うことが多いです。 シェルでいうところの変数というのは、シェルスクリプトやコマンド行の解釈をする上で何度もでてくるような文字列を記憶しておく場所です。一部の特定の変数はシェルの動作を指定するのに使ったりします(どこからプログラムを探すかを決めるPATHなど)。この変数のうち指定したものは環境変数といわれ、シェルの中だけでなくシェルから起動されたプログラムでも参照することができます。PATHも環境変数なので子供のプログラムもどこからプログラムを探し出すべきか知ることができます。PRINTER環境変数はlprコマンドにデフォルトのプリンタ名を教えます。MOREやLESSの環境変数は、moreやlessのデフォルトのコマンドラインオプションを変更します。そのほか、プログラムごとにさまざまな環境変数を使うことになっているので、それぞれはマニュアルを見ないとわかりません。自分で好きな変数を用意して使ってもかまいません。 TeraTermはWindows上の端末ソフトです。これはOSではありません。どこか別のマシンの別のOSに接続するだけです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

返答ありがとうございます。 環境変数以外はだいぶ解かりました。 ちょっと、環境変数などはとっつきにくい感じもしますがまた勉強したいと思います。

関連するQ&A

  • 環境変数とシェル変数

    UNIXのシェルスクリプトで使用するシェル変数と環境変数とはどういった違いがあるのでしょうか?どのように使い分ける必要があるのでしょうか?また、このような使い方をすると間違いがおこりやすいといった具体的な例など教えていただければ助かります。

  • シェルによる環境変数の設定方法

    シェルによる環境変数の設定方法に関して質問があります。 ・二つのシェルファイルA.shとB.shがあります。 ・A.shの中でexportを使って環境変数を設定しています。 ・B.shの中でA.shを呼んでいます。 この場合、B.shを実行したコンソールにはA.shで設定した環境変数が設定されません。 B.shを実行したコンソールに別ファイルA.shが設定した環境変数を設定するには どのようにすればよいのでしょうか? 分かる方がいたら教えて下さい。宜しくお願い致します。

  • Apache2で子プロセスのシェルの環境変数を設定したい

    はじめまして、お世話になります。 先ほどまでSolarisの方で質問をしていたのですが、どうにも過疎のようでしたので、改めてこちらで質問させていただきます。よろしくお願いします。 現在Solaris10の上にApache2を載せ、そのうえでとあるPHPプログラムを動かしているのですが、そのプログラムの機能の拡張を施そうとしたところ、動作がうまくいかなくて困っています。 問題点を調べた結果、そのプログラムが呼び出しているプログラム(ImageMagickのconvert)が動作するために環境変数の設定が必要なのに、それが設定されていないということが原因であるようでした。 そこで質問なのですが、Apache2の子プロセスで使用される(シェルの)環境変数を設定するにはどのようにしたら良いのでしょうか? サーバに不慣れな上、Solarisに触るのも初めてで、おまけにシェルが単なるshのためますます設定が分かりません。 ちょっとしたことでも構いませんので、どうか知恵をお貸しください。 Thanks in Advance.

その他の回答 (1)

  • 回答No.1

B、Cシェルについては、 『プロフェショナルシェルプログラミング』(アスキー出版局) という本がいいと思います。 多少文章は硬いけど、ゆっくり読んでいけば読めるでしょう。 UNIXというOSは…たしかにあったんだけど現在どうなってるのかな…。 権利関係があっちに行ったりこっちに行ったりしているので、わからなくなりました。 詳しい人の解答を待ちます。

参考URL:
http://www.amazon.co.jp/exec/obidos/ASIN/4756116329/

共感・感謝の気持ちを伝えよう!

質問者からのお礼

返信ありがとうございます。 UNIXというOSあったんですね 自分の中ではほぼないと思って書いた質問だったのですけど・・・ どうもありがとうございました。

関連するQ&A

  • 環境変数って何ですか?

    自慢になりませんが、パソコンのことは何もわかりません。 こないだBorland C++とかいうのをインストールしたときに、普通の手順でインストールは済んだんですが、うまく動かず人に聞いたところ「パスが通ってないんじゃない?」といわれ、その人に「環境変数」とかいうのを変更してもらったら万事うまくいったんですが・・・。 (1)環境変数って何ですか? (2)「パスが通ってない」とはどういう意味ですか? もちろんパソコン用語辞典で調べてはみたんですが、 「OSのシェルなどに設定されている、システムの属性を記録している変数。変数の名前と意味はあらかじめ決まっているため、環境変数を読み込めばシステムの設定がある程度分かるようになっている(以下略)」 さっぱりわかりません。OSはどもかく、シェルがよくわかってません。どうか初心者向けの解説を乞う次第です。

  • 運用日付の環境変数への設定について

    お世話になります。 環境変数の設定に関して、分からない事があり、質問させて頂きます。 A,B、2つのサーバ(共にRedHat Linux)があり、Bサーバに作成したアプリを配置しています。 そのアプリ内で環境変数から、運用の為の日付を取得しています。 Bサーバの環境変数に運用日付をセットしたいのですが、 運用日付は、他のシステムと同じにする為Aサーバ内の DBから取得する。という要件です。 Aサーバにシェルを配置し、その中でSQLを発行して運用日付を取得し、 Bサーバの環境変数にセットしたいと考えていますが、 このような処理は可能なのでしょうか? 可能であるならばどのように、他サーバの環境変数にセットするのでしょうか? #Aサーバに配置するシェルは毎日(運用上)日付が変わる度に起動されるものにする予定です。 ご教授下さい。宜しくお願いします。

  • シェルからJavaを起動したい

    シェルからJavaを起動したい 上記ですけど、Linuxで毎回「java パッケージ名.クラス名」を打つのは面倒なので、 シェルスクリプトのファイルを作って、それを実行するだけで起動できるようにしようと思っています。 が、クラスが見つからないってエラーが出て実行できませんでした。 (「java パッケージ名.クラス名」を実行しているディレクトリにシェルを作ってます) 恐らく環境変数などの設定がシェルの中にいるのではないかと思いますが、 シェルスクリプトとかLinuxの環境には疎い為、どういった記述が必要なのか解りません。 どなたか例を提示して頂けないでしょうか? ちなみに、一般的なJavaの環境変数や、 プロジェクト特有・jarファイル等の環境変数は設定済みです。 それから、シェルは以下のように記述してます。 #!/bin/sh java パッケージ名.クラス名 よろしくお願いします。

  • 環境変数の設定変更について

    現在、ss10を使用してSolaris勉強中の者です。 かなり初歩的な質問で恐縮なのですが、どうしてもブート時に自分が設定しておいた環境変数を 読み込ませることができません。 (起動中に環境変数を変更する方法は問題ありませんが、再起動した時点でクリアされてしまいます) 色々と検索した結果、/sbin/rc~の中を変更すればいいのかなと思ったのですが、 それでも変化が見られません。 どなたかご存知の方ご教授お願いします。 環境: OS:Solaris8(sparc) ハード:ss10

  • Unixの事について教えてください。

    こんにちは。 これからUnixを勉強したいと思っています。 家に3台のPCがあるので、サーバー構築を始めに勉強しようと思っています。 ですが、私の周りにはUnixを使っている人がいません。 私も、まったくの初心者です。 色々と検索したり雑誌を買ったりしまして、 UnixやLinuxでも、色々な種類がある事を知りまして 大変なものを勉強しようとしている事に気づきました・・・ すごく、漠然とした質問なんですが、 これからUnix(Linuxは考えていません)を学んでいくのに 適しているOSメーカー(SolarisやFreeBSD等)や サーバーを構築するのにあたって、お勧めする本やサイト等を 教えていただけないでしょうか。 やるきはあるのですが、踏み出す場所がわかりません。 よろしくお願いします。

  • Bシェル・Cシェルについて

    会社でシェルを使うことになりました。 OSはSolarisなので、basshが使えると考えていましたが、bashはNGと回答が来てしまいました。 回答はBシェルまたはCシェルを使うということでした。 bashはBシェルの拡張版でLinuxの標準シェルであるという事は知っています。 Bシェルだけの機能を使うのはかなり困難な気がしますし意識して作ったことがありません。 bashかBシェルか意識して使うにはどうすればよいでしょうか?

  • unixのsourceコマンドについて教えて下さい

    環境変数設定で ファイル(hoge.env)に #!/bin/csh set TEST=a と書きます。 unix> source hoge.env と実行すると、$TESTに環境変数が入ることを確認できますが ファイル(hoge.csh)に #!/bin/csh source hoge.env と書き実行すると、環境変数が設定されません。 最近まで、hoge.cshと実行し問題なく環境変数が設定されていたのですが今日は、これまでと違い環境変数が入りません。 こんなことってあるのでしょうか? OSはSunOS 5.8です 以上よろしくお願いします。

  • UNIXのシェル

    シェルに関して質問です。 0526とか0525のところは一日ごとにフォルダが作成されます。 unix\yasu\0526\hobby\test.txt unix\yasu\0526\hobby\test.txt unix\tomo\0525\hobby\test.txt unix\tomo\0525\hobby\test.txt ./check.sh MMDD 実行するときにMMDDのところに日付を入れてフォルダがあればコマンド1を実行するようにしたいです。 引数に指定した文字を判定するにはどうしたらいいのでしょうか? よろしくお願いします。 ----------------------------- #シェルの名前は「check.sh」です #! /bin/sh if [ $1 = "日付" ] ; then コマンド1 else コマンド2 fi -----------------------------

  • csh (tcsh)での環境変数の長さの制限について教えて下さい。

    Solaris8 (SPARC)上でJavaでいろいろ開発をしているのですが、 シェルの環境変数の長さに制限があるようで困っています。 具体的には、あちこちに散在しているjarファイルを参照する必要 があるので、環境変数 $CLASSPATHが非常に長くなっていて、 現在の設定以上に CLASSPATHを追加しようとすると「Word too long」 というエラーが出て設定できません。 1つの環境変数の長さの制限を変更することは可能でしょうか? もしくはなにか回避策があれば教えて下さい。 使用しているシェルは tcsh です。

  • cシェルについて(その1)

    質問です。 以下のように表記されている場合 @ XXXnum=0 XXXchk: @ XXXnum++ if ($XXXnum > 3 ) then goto XXXerror とある場合、XXXnumはふつうの変数(環境変数等ではなく) と考えてOKなのでしょうか? (@マークについてよく解らないもので) またCの様に(関数の)頭で宣言しなくて宜しいのでしょうか? また、XXXchk:とは関数のくくりで終わる場合単に、 end の表記だけでよいのでしょうか? (XXXchk:が関数の頭だとするとこれの中にも一つ同じ様な表記があって  endが一個しかないのも疑問なんですが) cシェルと言うよりシェル全般に関して初心者なんで、宜しくお願いいたします。