前回の続き——コマンドそのものの文法へ

前回の続き——コマンドそのものの文法へ

前回のB-07では、コマンドの通り道、つまり窓口であるターミナルと、通訳であるシェルの役割を見ました。今回は、その通り道を流れるコマンドそのものの文法を読み解きます。バイブコーディングでは、AIが長い一行のコマンドを提示してくることがよくあります。その一行を部品に分けて読めるようになることが、この講義の役割です。

このスライドのポイント

  • B-07: コマンドの通り道(窓口=ターミナル、通訳=シェル)を見た
  • 今回: その通り道を流れるコマンドそのものの文法を読む
  • AIは長い一行のコマンドを提示してくる。その一行を部品に分けて読めるようになる

4つの用語の定義

4つの用語の定義

4つの用語を定義します。コマンドとは、命令の名前です。何をするかを表します。引数とは、命令の対象です。何に対して行うかを指定します。オプションとは、命令の調整です。どのように行うかを変えるもので、多くは「-」や「--」で始まります。そして終了コードとは、コマンドが終わったときに残す数字で、0が成功、0以外が失敗を意味します。人間は画面の文字で結果を読みますが、機械はこの数字で成否を判定している、という点を押さえてください。

このスライドのポイント

  • コマンド=命令の名前(何をするか)
  • 引数=命令の対象(何に対して)
  • オプション=命令の調整(どのように。「-」や「--」で始まる)
  • 終了コード=コマンドが終わったときに残す数字。0=成功、0以外=失敗

なぜ文法を読める必要があるか

なぜ文法を読める必要があるか

この文法を知らないと、AIが出した長いコマンドが一枚岩に見えて、どこが対象でどこが調整なのか分かりません。すると、一部だけを変えたいときにも手が出せなくなります。また、後のカテゴリで扱う自動化は、終了コードで成功か失敗かを判定しながら進みます。ですから、この数字の意味を知らないと、その仕組みそのものが読めなくなってしまいます。

このスライドのポイント

  • 分解できないと、AIが出した長いコマンドが一枚岩に見える
  • どこが対象でどこが調整か分からず、一部だけ変えたいときに手が出ない
  • 自動化(後のカテゴリで扱う)は終了コードで成否を判定して進む。この数字を知らないと仕組みが読めない

コマンド行の構造——3つの部品への分解

コマンド行の構造——3つの部品への分解

コマンド行は3つの部品に分解できます。例として、ls スペース ハイフンエル スペース /Users/tanaka を見ます。先頭の ls がコマンドで、何をするかを表します。続く ハイフンエル はオプションで、詳しく表示するという調整です。最後の /Users/tanaka は引数で、対象となる場所を指します。このように並びを部品に区切って読むと、一行の意味が見えてきます。

このスライドのポイント

  • 例: ls -l /Users/tanaka を3部品に分解
  • ls =コマンド(何をするか)
  • -l =オプション(詳しく表示する、という調整)
  • /Users/tanaka =引数(対象の場所)

部品を差し替えると振る舞いが変わる

部品を差し替えると振る舞いが変わる

同じ ls というコマンドでも、引数を変えれば別の場所の中身を見られます。オプションを変えれば、表示のされ方が変わります。つまり、コマンドの名前は固定でも、引数とオプションを差し替えることで振る舞いを調整できるのです。部品ごとに意味が分かれば、AIが出したコマンドの一部だけを直せます。全体を書き直してもらうのではなく、対象の場所や表示の仕方といった一箇所だけを、自分の手で安全に変えられるようになります。これが、コマンドを恐れず扱えるようになる近道です。

このスライドのポイント

  • 同じ ls でも、引数を変えれば別の場所の中身を見られる
  • オプションを変えれば、表示のされ方が変わる
  • 部品ごとに意味が分かれば、AIのコマンドの一部だけを直せる

技術サンプルカード

技術サンプルカード

技術サンプルを見ます。種別はコマンドで、読み取り専用です。目的は、コマンドの3部品と、終了コードの読み方を確かめることです。macOSとLinuxでは、ls ハイフンエル で project の中身を詳しく表示し、その後 echo ドルはてな と打つと、直前の終了コードが返り、0なら成功です。Windows PowerShellでは、Get-ChildItem で同じことを行い、ドルLASTEXITCODE で直前の終了コードを確認します。いずれも表示のみで、何も変更しません。

混同しやすい概念——引数とオプション

混同しやすい概念——引数とオプション

混同しやすいのが、引数とオプションです。引数は対象そのもの、つまり何に対して命令するかを表します。オプションは動き方の調整、つまりどのように命令するかを表します。見分ける手がかりとして、オプションは「-」で始まることが多い、という点を覚えておくとよいでしょう。この2つを区別できると、コマンドのどこをいじれば何が変わるかが分かります。逆に混同したままだと、対象を変えたつもりで動き方を変えてしまう、といった取り違えが起きます。

このスライドのポイント

  • 引数=対象そのもの(何に対して命令するか)
  • オプション=動き方の調整(どのように命令するか)
  • 見分けの手がかり: オプションは「-」で始まることが多い

バイブコーディングでの確認点

バイブコーディングでの確認点

バイブコーディングでは、AIが提示した長いコマンドを、実行前に部品分解して説明させましょう。特に注意したいのは、引数、つまり対象の場所です。それが本番のパスや大事なフォルダを指していないかを、実行前に確かめます。これはB-06で見た、どの環境に対する操作かの確認とセットで行うと安全です。AIへの質問例は、このコマンドを、コマンド・オプション・引数に分解して説明してください、です。

このスライドのポイント

  • AIの提示した長いコマンドは、実行前に部品分解して説明させる
  • 特に引数(対象)が本番のパスや大事なフォルダを指していないか見る
  • B-06の「どの環境か」の確認とセットで行う

まとめと次回

まとめと次回

最後に一問一答です。終了コードの0は、成功と失敗のどちらでしょうか。(間)答えは成功です。0以外が失敗を表します。30秒まとめとして、コマンドは名前、引数は対象、オプションは調整、終了コードは成否を示す数字、と押さえてください。次回のB-09では、コードの外に置く値、つまり環境変数と設定ファイルへ進みます。関連資料は「エラー文の読み方」と「Git・GitHub 完全入門」です。

このスライドのポイント

  • 一問一答: 終了コード0は成功と失敗のどちら?
  • 答: 成功(0以外が失敗)
  • 30秒まとめ: コマンド=名前/引数=対象/オプション=調整/終了コード=成否の数字
  • 次回: B-09 環境変数と設定ファイルへ
  • 関連資料: 「エラー文の読み方」「Git・GitHub 完全入門」