質問: unixのシェル、環境設定について教えてください。 こんにちは。 unixについて詳しく勉強したいとおもっています。 コマンドなど基本的なファイル操作についてはある程度わかるのですが、unixの環境設定、環境変数、シェルなどの物につまづいています。 「環境変数って一体なんだよ!」 「シェルのbシェル、cシェルって・・・」 こんな感じです。 これらについて初心者でもわかるような本、サイトを教えてください。 あと、初心者すぎて恥ずかしい質問なのですが、unix系osにはいろいろな種類があるのは知っているのですが、「unix」という名前のosはあるのでしょうか? また、teratermを使っているのですが、これって何ていう名前のosなのでしょうか? 最後に、会社なのでは、solarisとlinuxどちらが多く使われているのでしょうか? これらの質問に詳しい諸先輩方アドバイスの方をよろしくお願いします。
回答: まず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に接続するだけです。