• ベストアンサー

shはシェルなのかコマンドなのか?

http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424 で $ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin $ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm と、shと打ち込むと最後の.binが消えますが、shは シェルなのか、それともコマンドなのかどちらなの でしょうか? 手元にあるlinuxの入門書には「shはシェルの一種である」 と記述があります。googleで検索をしてみましたが、 コマンドであるような記述もあり、混乱しております。 また、その入門書には「シェルを切り替えるには、コマンドライン でシェルの名前を入力します。exitコマンドで、元のシェル に戻ります」とあり、その文章の下には実際にshと打ち込んでexit で元に戻る様が書いてあるので実際に試してみました。 [root@localhost ~]# sh sh-3.2# exit exit [root@localhost ~]# この記述のせいでますますわからなくなりました。 なお、最後のbinがシェルスクリプトであることは理解して おります。 ご存じの方、ご教授頂ければ幸いです。何卒宜しくお願い申し 上げます。

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

  • ベストアンサー
  • vmi_jp
  • ベストアンサー率100% (2/2)
回答No.4

shを始めとするシェルには2つの側面があります。 1) インタラクティブ(対話的)シェル 「sh」だけで起動した場合はこの状態です。最初はキーボードからの入力待ち状態で、1行コマンドを入力してリターンを押すと即座に実行し、コマンドが終了すると、再度入力待ち状態に戻ります。 2) コマンドインタープリタ 「sh ファイル名」で起動した場合はこの状態です。キーボードの代わりに、ファイルからコマンドを読み取り/実行を繰り返します。最後まで処理を終えるか、ファイル内で終了コマンドを読み取った段階で終了します。 シェルスクリプトというのは、要は、一連の処理手順を手で入力する代わりにファイルにまとめて一気に実行できるようにしたものと思えば良いでしょう。

keepuandu
質問者

補足

ご回答ありがとうございます。 1は、上記の質問を例に出すと sh-3.2# であり、 2は、 $ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin と、vmi_jp様のご回答で認識したのですが、間違いないでしょうか? もしよろしければご回答頂ければ幸いです。どうぞ宜しくお願い申し上げます。

その他の回答 (4)

  • vmi_jp
  • ベストアンサー率100% (2/2)
回答No.5

>>No.4 その理解でOKです。

keepuandu
質問者

補足

ご回答有り難う御座います。 >その理解でOKです。 vmi_jp様、有り難う御座います。これで、完全に理解することが出来ました。 有難う御座いました。

  • dev_null
  • ベストアンサー率67% (37/55)
回答No.3

コマンドとは、コンピュータに与える命令のことを一般的にさすのではないでしょうか。 シェルとは、コマンドを実行するインターフェイスを提供するものです。 つまり、シェルとはコマンドを実行する「インターフェイス」であって、 コマンドはコンピュータに与える「命令」ということになると思います。 例えば、firefox はコマンドですか? ブラウザですか? 前者は、firefoxを起動するというコマンド(命令)で firefox あくまでブラウザではないでしょうか?

keepuandu
質問者

補足

ご回答有り難う御座います。 わかりやすいご説明、有り難う御座います。まだ初心者の初心者なので、わからない部分が補強されるような説明でした。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

javacはコンパイラなのかコマンドなのかどちらですか? WindowsのFreeCellはゲームなのかプログラムなのかどちらですか? のどちらかにでも答えられるようであれば、その回答の単語を入れ替えれば 「shはシェルなのかコマンドなのかどちらですか?」の回答になります。

keepuandu
質問者

補足

ご回答有り難う御座います。 >javacはコンパイラなのかコマンドなのかどちらですか? >WindowsのFreeCellはゲームなのかプログラムなのかどちらですか? 今の私のレベルでは、どちらも説明できません。もっと勉強を重ねてみたいと思います。ご回答有難う御座いました。

noname#29459
noname#29459
回答No.1

なんか、ソフトウェアを作っている人の質問とは、思えませんけど。 ”shとは、シェルですか?コマンドですか?” shとは、シェル(shell)であり、コマンドです。 もーすこし、噛み砕いて言うと、shの実態は、/bin/sh にある、コマンドインタプリタです。これは、UNIXの始まりのときから、ありました。 [root@localhost ~]# の状態で、入力をうけてしょりするのも、機動済みの/bin/sh その状態で、shとやると、もう1段 /bin/shが起動されて、それが、入力を受けます。  その状態で、exitとすると、その入力を受けていた/bin/shが成仏して、もとの/bin/shが、入力を受けるようになる。

keepuandu
質問者

補足

ご回答有り難う御座います。 >なんか、ソフトウェアを作っている人の質問とは、思えませんけど。 まだいわゆる「hello world!」レベルなので、「ソフトウェアを作っている」レベルにも達していない初心者の初心者です。 >shとは、シェル(shell)であり、コマンドです。 shはシェルであり、同時にコマンドでもあるのですね。「どちらなのか?」ではなく、「どちらでもある」とは思いもしませんでした。 また、コマンドインタプリタという言葉もsilvercat9様のご回答で初めて知りました。その下のご回答も丁寧に有難う御座います。大変勉強になりました。

関連するQ&A