• 締切済み

シェルの習得方法について

 システムの運用を行うことになり、Bシェルで作られたスクリプトの編集、追加を行うことになりました。  以前、コマンドラインでシェルを叩いたり、作られたスクリプトの値を変更する程度の作業は行っていました。  しかし今回は要求に合わせて設計(記述する内容)、作成、テストまでを行うことになり、経験の無い私はシェルの勉強をはじめました。  シェルを習得するために入門UNIXシェルプログラミングを読み、基本的な書き方や、シェル変数、リダイレクションについて大まかな概略は理解できたのですが、読んだだけで友人にはスクリプトの例を見たり、自分でスクリプトを作っていくことを進められましたが、何から手をつけ、どのように習得していけばよいか判らない状況です。 是非、習得方法をご存知の方が居られましたら、アドバイスお願いします

みんなの回答

回答No.4

> 要求は口頭ベースで”ファイルを自動的にバックアップしてくれ” キーワードは、「自動的」ですねぇ~ >今回は要求に合わせて設計 基本は、文書ベースで仕様を提出してもらい、仕様書として仕様を纏め、依頼者の承認を受けてから詳細設計&開発というのが懸命な手順です。 口頭ベースで「自動的」って、最も危険です。 発言者の「自動」と、開発者の「自動」で、どの位の認識に差が生じるか不明ですが・・・最後まで揉める原因です。 >何から手をつけ、どのように習得 バックアップという目標があるらな、手動でバックアップを実施して、バックアップ関連コマンドの機能とオプションを確認することが第1歩です

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.3

>要求がでてから設計するために参考書やサイトを見て一から調べて対応するのではなく、要求を聞いた時点で、ある程度設計、作成、の目安が立てれる様シェルの習得を進めて行きたい思っています なるほどね。 シェルというよりコマンドを覚えるのがメインになりそうです。 今の段階では全体の設計を含めて考えるのは難しいので初級編ということで。 1.基本的な構文を習得(ここのフェーズはすでに終了)   簡単なルールをまずは覚えます。   環境変数、引数の扱いや、ファイル操作を重点的に(数えるほどしかありませんが・・・) 2.シェルスクリプト、UNIXコマンドでどんなことができるか、目次読みやナナメ読みで全体像を把握   要件を聞いた時点で、どこを参照したら書けそう、このコマンドを使えばできそう位でいいです。LPIの試験では無いので、一つ一つ暗記する必要はありません。必要になったら読み返すなり、man を読むなりすればよいのです。全体を通して、こんなことができるんだなぁというのを把握します。 3.解説を見てもわからないものを実際に動かしてみる   実際にサーバーで動いているものを読むのもいいかもしれません。

meskono
質問者

お礼

度々返信まことにありがとうございます。 アドバイスの通り、まずはルールの確認をしながら、家に居るときなどは、全体像を把握するため、サンプルスクリプトを実機で動かす中でコマンドでどんなことができるか確認していこうと思います。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.2

バックアップでしたら、前回バックアップした内容から 追加や変更されたファイルやだけを選んでコピーする スクリプトを作ってみては如何ですか? それからバックアップの世代管理を自分なりに考えて、 それを実現するスクリプトとか。 更に言えば業務のことがある程度分かっていたら、バック アップはどうあるべきかを考えながら色々な方法を試す のもいいでしょう。 仕様を渡された時に、問題点とかが直ぐに指摘できるかも しれません。

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

最終的に何ができれば良いか決まっていますか? もしくは、何ができるか確認する段階ですか? 要求に合わせてテストまでとなっていますが、「要求」が固まっていない段階で勉強するのは難しいです。まずは要求を固めてください。 最終目標があると、勉強しなければならない項目が見えるので習得が楽です。

meskono
質問者

補足

ご返信ありがとうございます >最終的に何ができれば良いか決まっていますか? についてですが、 要求は口頭ベースで”ファイルを自動的にバックアップしてくれ”などその時々ことなります。 ですので、要求がでてから設計するために参考書やサイトを見て一から調べて対応するのではなく、 要求を聞いた時点で、ある程度設計、作成、の目安が立てれる様シェルの習得を進めて行きたい思っていますが、何から手をつけ、どのように習得していけばよいか判らない状況です。 ご存知でしたらアドバイスお願いします

関連するQ&A

  • kshについて

    現在AIXなどのUNIX系のシステムの運用(AIXがほとんどです。)をやっているものです。 AIXのコマンドを勉強しようと思い、その一環でというか、シェルを作ったり、作られたシェルを 解析することでコマンドの勉強になると思い、シェルについて勉強しようと思っています。 そこで、シェルについての本を探しているのですがどのような本が良いでしょうか? 皆さんが実際に読んでみてよいと思った本を教えてください。 ちなみにkshです。 探してみたのは、 入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界 ブルース ブリン (著) UNIXシェルスクリプトハンドブック 関根 達夫 (著) です。 よろしくお願いします。

  • シェルスクリプトのBシェル(Bourne)に出てくる、$0,$1,$2

    シェルスクリプトのBシェル(Bourne)に出てくる、$0,$1,$2...のような位置パラメタや、$?,$$,$!,$-のような特殊変数がありますが、これはPerlやRubyもあるようですが、意味や効果、やり方等は同じでしょうか。 当方はPHP,JavaScriptしか触れていませんし、PHPやJavaScriptは、そのような位置パラメタや特殊変数は見当たりませんでした…。 つまり、PerlやRubyはUNIXのコマンドから誕生したスクリプト言語ということでしょうか。 こういった位置パラメタや特殊変数はPerlやRuby以外に他の言語にもありますでしょうか。PythonとかCとかJavaとか…。 また、Bシェルを学んでいる途中ですが、シェルスクリプトの中にはbourne以外にもbashやC Shell,zsh,Perlがありますが、何故Perlが入っているのでしょうか。 Perlをやっている方は別途シェルスクリプトをやる必要はないということでしょうか。

  • シェルスクリプトについて

    とあるUNIXサーバが1台あるとします。 でそのマシン上の管理プログラムが同一マシン上にある 「シェルスクリプト(bash)」をキックするとします。 となるとそのシェルスクリプトの実行者(?)は Unixにログオンしているユーザーになるのでしょうか?。 目的としてはそのログインしているユーザーの環境変数 をシェルから参照したいのですが・・ 考え方がWindowsなもので。。すみませんが よろしくお願いします。

  • シェルスクリプトのbashとperlについて

    シェルスクリプトのbashとperlについて 今さら気づいたのですが、PerlもUNIXのコマンドやシェルスクリプトとして使用できるということでしょうか。 RubyやPHPをUNIXのコマンドやシェルスクリプトとして使用することはできますでしょうか。 学ぶとしたら、bashとPerlのどちらが良いでしょうか。 また、シェルスクリプトはどんな用途や利点がありますでしょうか。 Webアプリケーションによるバックアップやログをタイマーでセットして自動的に取得したりすることは可能でしょうか。

  • 環境変数とシェル変数

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

  • 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がシェルスクリプトであることは理解して おります。 ご存じの方、ご教授頂ければ幸いです。何卒宜しくお願い申し 上げます。

  • perlスクリプト内でシェルコマンドを実行するには??

    タイトル通りなのですが、perlスクリプト内でシェルコマンドを実行させる方法が分からなく、困っています。 実行したいシェルコマンドはUNIXのcrontab なのですが・・。 また、perlスクリプト内以外でシェルコマンドを実行する方法はあるのでしょうか?? どなたか分かる方いらっしゃいましたらご教授いただけると幸いです。よろしくお願いします。

    • ベストアンサー
    • Perl
  • CシェルプログラミングをCygwinで?

    csh環境でのスクリプト作成をしたいのですが、UNIX環境をWindows上で実現できる?Cygwinというものがあると知りました。Cygwinにおいてシェルプログラミングは、本物のUNIXのようにできるものなのですか? シェルがLinuxRedHat並に動作すれば充分なのですが、不足する機能などはないのですか? またシェルプログラミングを学ぶ上で充分なのか判断できないので経験者または専門家の方ご教授願います。 またCygwinは起動させると重いんでしょうか? Cygwinを分かりやすく説明しているサイトなども教えて頂けるとうれしいです。よろしくお願いします。

  • DOSコマンドのダブルクォーテーションの扱い

    DOSコマンドでダブルクォーテーションを検索し、 リダイレクションをすることが出来なくて困っています。 例えば findstr "\"!" a.txt は出来ますが findstr "\"!" a.txt >b.txt とするとリダイレクションが出来ません。 grepも同じようです。 またunixコマンドではシングルクオートは、「囲まれた中身をそのままの文字として利用」し、ダブルクオートは、「囲まれた中身に$HOME など $ で始まる文字列があれば、 それを環境変数、シェル変数といった、値に置き換えてから、利用する」という明確な違いがありますが、DOSコマンドでは明確な違いはあるのでしょうか? unixのshellをDOSコマンドに移植しています。 DOSコマンドの参考Webもあまり見つからなくて困っています。 もし参考になりそうなWeb等ありましたら教えてください。

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

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