• ベストアンサー

bashはそんなに便利なのか?

 Linuxだけでなく、Mac OS Xでもbashがデフォルトのシェルになりましたが、bashはそんなに便利なんでしょうか? 今まで(t)cshしか使ってきませんでしたが、乗換える価値があるのか、ご意見をお聞かせください。

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

  • ベストアンサー
  • rentahero
  • ベストアンサー率53% (182/342)
回答No.1

# デフォルトのシェルがそんなに偉いのかなあと。 結論から言うと、両方使えると良いでしょう。 私はRedHatを使うときもまずchshで/bin/tcshにします。でも、スクリプトではbourne shです。なぜかというと、やはりshは、スクリプトに便利な機能が多いので。 どうせスクリプトでは、 #!/bin/sh って書くんだし、どっちでも好きなほうを使えばいいのです。 ちなみに私の知り合いは/usr/local/bin/fdshを使ってます。

JF1Msf
質問者

補足

さっそくのご解答ありがとうございます。 すみませんが、教えていただきたいところはここの部分です。">やはりshは、スクリプトに便利な機能が多いので。" よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • rentahero
  • ベストアンサー率53% (182/342)
回答No.3

今読み直してみたら、fdshについての説明が何も無い。 fdshというのは、フルスクリーンファイラ付のシェルです。一度試してみても良いかもしれません。 FreeBSDのportsだとports/shells/fdに入ってます。

全文を見る
すると、全ての回答が全文表示されます。
  • kalze
  • ベストアンサー率47% (522/1092)
回答No.2

ログインシェルが何かとかにもよるところがありますね。 歴史的というとちょっと大げさですが、これまでの経緯からbashの方がメジャーなのがありますし、Linuxなどのデフォルトのログインシェルとシェルスクリプトの文法が同じってのもありますし。 本来のUNIXの標準シェルはshです。 shから派生したシェルがBシェル系です。 そしてshがシェルスクリプトを記述するための標準シェルでした。 でも、shはユーザーのコマンド入力用のシェルとしては低機能だったので、ヒストリ機能、エイリアス機能、ジョブコントロール機能などを備えて文法をC言語風に改変したcshが開発されました。 それからはcshがUNIXの新しい標準シェルとして受け入れられましたが、cshの文法はshと異なっているて、cshでシェルスクリプトを記述するにはちょっと問題がありました。 そのためにコマンド入力用とシェルスクリプト用とで2つのシェルを頭を切り替えながら使う必要があったと。 その後、Bシェル系として、shの上位互換を保ちながらcshの各機能を取り入れ、さらにタブによるファイル名やコマンド名の補完機能、コマンドライン編集機能を備えたbashが登場しました。 bashの登場以降、Bシェル系が復権。 Cシェル系でもcshの機能拡張版としてタブによる補完機能やコマンドライン編集機能を備えたtcshが登場しましたが。 bashのメリットとしては、bashがログインシェルの場合、コマンドライン上のシェル文法とシェルスクリプト上の文法が一致することでしょう。 Linuxの標準シェルにもなっていますので、ユーザーは今後も増え続けるとおもわれますので、何かとやりやすいこともあるかもしれません。 Linuxではshはbashへのシンボリックリンクですし。 まぁやりやすい方を使うのが一番かとおもわれます。

JF1Msf
質問者

補足

> bashがログインシェルの場合、コマンドライン上のシェル文法とシェルスクリプト上の文法が一致することでしょう。 なるほど、ありがとうございます。この点、納得です。 それからbashの場合、Unicode textが扱えるとか聞いたことがあります。 Mac OS Xが10.2から10.3になるにあたり、デフォルトのシェルをtcshからbashに変えていますが、bashに変えるなりのもっと説得力のある理由があるような気がしているのですが、いかがでしょうか。 機能的な面だけでなく、マーケット上の理由もあるのかもしれませんが。 では、なぜbashがLinuxのデフォルトになったのかは、ご存知でしょうか。あれこれとすみません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • tcsh のプロンプト

    csh のプロンプトは % だと思うのですが、tcsh のプロンプトはデフォルトでは > なのでしょうか?ログインシェルを tcsh にしたのですが、プロンプトが % でないので、なんだか bash を使ってるような気分です。これやっぱり bash になってませんか? 環境は、FreeBSD です。

  • Linuxのシェル(sh,bash等)について

    Linux上でコマンドを実行するとき、その窓口となるものが、シェル(sh,bash)という認識です。 つまり、 (1)CUI環境でLinuxを操作する上で、シェル以外でコマンドを実行する事はありうるのか? (2)Windowsのコマンドプロンプトも一種のシェルと言えるか 以上、2点についてお教え頂きたいです。 宜しくお願いします。

  • sh及びbash環境

    こんにちは。 主題の件について教えて下さい。 当方、shやbash環境は初めてのものです。 今までcshやtcshを使っていました。 よって、今の環境には不慣れであり、色々教えて下さい。 質問(1) コンソール(ターミナル)を起動した時、変なディレクトリがデフォルトになっています。 この起動時ディレクトリを編集する方法を教えて頂けますでしょうか? 質問(2) viエディタで日本語を入力したいのですが 何をインストールすれば日本語入力が可能になりますでしょうか? 質問(3) cshやtcsh環境にすることも可能なのでしょうか? 以上、宜しくお願いします。

  • Bashシェルスクリプトの書き方

    Bashシェルスクリプトの書き方 ↓のx.shはどこが間違っているのでしょうか? $ cat x.sh #!/bin/bash function x() { local dir if $1; then dir=$1 else dir="." fi `find $dir -type d` } ↓こうなります $ source x.sh $ x dir dir: command not found bash: .: ./dir: はディレクトリです

  • 標準入力からシェル変数及び環境変数に値を設定する(bash)

    標準入力からシェル変数及び環境変数に値を設定する方法で、cshの場合は「set 変数=$<」ということは確認しているのですが、bashの場合はどのようにすればよろしいのでしょうか?ご教授お願いいたします。

  • なぜLinuxでKornシェルが使えるのでしょうか?

    Linux初心者です。 シェルについてわからないことがあり、質問させていただきます。 Linux(Red Hatを使っています)の /bin/shと/bin/cshは、それぞれ/bin/bash、/bin/tcshのシンボリックリンクファイル、 なのに対して、なぜkshだけは/bin/kshそのままなのでしょうか? また、KornシェルはAT&T社が開発したものだそうですが、 これはLinuxで使う際にライセンスの問題に触れないのでしょうか? よろしくお願いいたします。

  • LinuxでKornシェルが使えるのは何故でしょうか。

    Linux初心者です。 シェルについてわからないことがあり、質問させていただきます。 Linux(Red Hatを使っています)の /bin/shと/bin/cshは、それぞれ/bin/bash、/bin/tcshのシンボリックリンクファイル、 なのに対して、なぜkshだけは/bin/kshそのままなのでしょうか? また、KornシェルはAT&T社が開発したものだそうですが、 これはLinuxで使う際にライセンスの問題に触れないのでしょうか? よろしくお願いいたします。

  • シェルについて

    cshやbash、zsh、tcshなど色々ありますがどう違うのでしょうか。 これまであまり考えずにSoalrisやLinuxにログインして普通に作業してきましたが、ただtabやバックスペースが使用できないというだけでzshやtcshにして使用してきました。 ただこれだけ色々シェルがあるとしたら使用方法がいろいろ違うのではないかと思っております。 シェルスクリプトを作成する時の文法が違うとかでしょうか。

  • bashが評価されない

    mac標準の古い/bin/bashならスクリプトしっかり動きます 新しい/usr/local/bin/bashではほとんど動きません /usr/local/bin/bash -x デバッグモードで確認すると最初と最後のみ評価されてスクリプトのほとんどが評価されていません 単純な100行程のスクリプトなのに原因がわかりません 何故評価されないのか考えられる要素はありますか

  • X11のxtermが.bash_profileを読み込まないのはなぜ?

    Mac OS X Leopardを使っています。 X11R7.2のターミナルを起動すると、 ~/.bashrc は読み込まれますが、 ~/.bash_profile は読み込まれません。 X11でないTerminalではちゃんと読み込まれますが、 なぜでしょうか? 理由を教えていただけると嬉しいです。

    • ベストアンサー
    • Mac