第3章 AI開発エージェントを端末で使う

この章では、端末の中で動く AI を使えるようにします。ブラウザで AI に質問した経験がある方も多いと思いますが、ここで使うのは少し違う道具です。質問に答えるだけでなく、作業ディレクトリの中にファイルを作り、書き換えます。

本書は特定の製品に手順を固定しません。どの製品を選んでも共通する使い方を、この章で身につけます。

3.1 AI開発エージェントとは何か

AI 開発エージェント は、端末の中で動き、ファイルの読み書きとコマンドの実行ができる AI です。ブラウザのチャットとの違いは、成果物の受け渡し方にあります。

ブラウザのチャットに「Python でじゃんけんを作って」と頼むと、コードが画面に表示されます。そのコードは、自分でコピーして、エディタに貼り付けて、ファイルとして保存する必要があります。

AI 開発エージェントに同じことを頼むと、janken.py というファイルが作業ディレクトリに作られます。コピーも貼り付けもありません。

多くの AI 開発エージェントは、内部で ChatGPT や Claude、Gemini といった AI を利用しています。考えている中身は、ブラウザのチャットと同じものです。違うのは、コードやファイルをどこで、どうやってやりとりするかです。

受け渡し方の違いを、図3-1に示します。

ブラウザのチャットでは画面のコードを自分でコピーして貼って保存する4段階が要るのに対し、AI開発エージェントでは依頼するとファイルが作業ディレクトリに直接作られることを比べた図。ブラウザのチャットAI 開発エージェント画面にコードが出る自分でコピーするエディタに貼るファイルとして保存する依頼するjanken.py が作業ディレクトリに作られる

図3-1: 成果物の受け渡し方の違い

違いをまとめると表3-1になります。

表3-1: ブラウザのチャットとAI開発エージェント

ブラウザのチャット

AI 開発エージェント

動く場所

ブラウザ

端末

コードの受け取り方

画面に表示される

ファイルとして作られる

既存ファイルの参照

貼り付けて渡す

自分で読みに行く

コマンドの実行

できない

許可すればできる

「既存ファイルの参照」と「コマンドの実行」の2つが、この章で気をつけたい点です。AI がファイルを読み書きし、コマンドを実行できるということは、便利である反面、意図しない変更も起こりうるということです。そのための確認方法を 3.7 と 3.8 で扱います。

3.1.1 候補と選び方

端末で動く AI 開発エージェントには、いくつもの製品があります。代表的なものを表3-2に挙げます。

表3-2: 端末で動くAI開発エージェントの例

名前

使うアカウント

特徴

Claude Code

Anthropic

ソフトウェア開発の現場でよく使われている

Codex CLI

OpenAI(ChatGPT)

ChatGPT を使っているなら試しやすい

Gemini CLI

Google

Google アカウントだけで始められる

OpenCode

使うモデルの提供元

オープンソース。モデルを自分で選ぶ

Aider

使うモデルの提供元

オープンソース。変更を小さく積み重ねる使い方

表3-2の「使うアカウント」の列が、選ぶときの最初の手がかりになります。すでに持っているアカウントで使えるものを選ぶのが、いちばん手間が少ない方法です。

使えるアカウントの種類が変わることもあります。選ぶ前に、その製品の公式ページで確認してください。

料金と無料の範囲は、本書では書きません。条件が変わりやすく、書いた時点で古くなるからです。実際、この1年のあいだにも、無料で使えるようになった製品と、無料の範囲が終わった製品の両方があります。選ぶ前に、その製品の公式ページで最新の条件を確認してください。

条件を確認するときに見るのは、次の4点です。

  1. 端末で動くか。エディタに組み込まれた製品は、本書の環境では使えません。

  2. ファイルの作成と変更ができるか。質問に答えるだけの製品では、第3章から先の手順が進みません。

  3. コマンドを実行できるか。できなくても本書は読み進められますが、あると 3.8 の確認の練習ができます。

  4. やめやすいか。月額制のサブスクリプションを契約する前に、無料の範囲か少額で試せると安全です。

3番目については、実行の前に確認を求める製品を選んでください。確認なしで実行する設定を持つ製品もありますが、その設定は本書では使いません。理由は 3.8 で扱います。

決められないときは、Google アカウントで始められるものを試してみてください。新しくアカウントを作らずに済み、合わなければ別の製品に移れます。本書の手順は、どの製品を選んでも変わりません。

インストール方法は製品ごとに違うので、それぞれの公式の手順に従ってください。どの製品も、Ubuntu の端末でコマンドを1行か2行実行すれば入ります。

起動のしかたも短いコマンドです。Claude Code なら claude、Gemini CLI なら gemini のように、決まった1語を打ちます。実際に起動する手順は 3.3 で扱います。

用意できない場合や、うまく動かない場合の進め方は 3.10 にまとめてあります。先にそちらを読んでから戻ってきてもかまいません。

3.2 TUIとは何か

AI 開発エージェントの多くは TUI という形式の画面を持っています。TUI は Text User Interface の略で、文字だけで作られた操作画面です。

第2章で使ったコマンドは、実行すると結果を表示して終わります。TUI は違います。起動すると画面を占有し、入力欄や履歴が表示され、終了するまでそこにとどまります。たとえば、画面の上のほうに過去のやりとりが流れ、下に入力欄が固定されている、という見た目です。マウスは使わず、キーボードだけで操作します。

一度入ると元の画面に戻れないように見えますが、抜け方は 3.9 で扱います。まずは安心して読み進めてください。

ふつうのコマンドとの違いは、図3-2のとおりです。

ふつうのコマンドは打つ・結果が出る・プロンプトに戻るで終わるのに対し、TUI は起動して画面を占有し、終了するまで入力と応答をくり返すことを比べた図。ふつうのコマンド(第2章)TUI打つ結果が出るプロンプトに戻る起動する画面を占有する打つ / 答えが返る終了するとプロンプトに戻る 終了するまで繰り返す

図3-2: 実行して終わるコマンドと、とどまる TUI

窓やボタンがないだけで、やっていることは対話です。入力欄に文章を打ち、Enter を押すと、AI が答えます。その答えの中に「ファイルを作りました」「このコマンドを実行してよいですか」といった報告が混ざります。

3.3 プロジェクトディレクトリで起動する

AI 開発エージェントは、起動したディレクトリを作業場所として扱います。その外側のファイルは、頼まない限り見に行きません。外側を読ませたいときは、場所を明示して頼むことになります。

見える範囲は図3-3のようになります。

AI開発エージェントは起動したディレクトリ rpg とその中のファイルを作業範囲とし、ほかのディレクトリは頼まない限り見に行かないことを示した図。/home/tarorpg ← ここで起動するほかのディレクトリ(頼まない限り見に行かない)plan.txtmain.py

図3-3: AI が作業場所として扱う範囲

そのため、起動する前に作業場所へ移動します。第2章で作った ~/rpg へ移動してから起動します。

cd ~/rpg

移動できたことを pwd で確認します。

taro@ubuntu:~/rpg$ pwd
/home/taro/rpg

そのうえで、AI 開発エージェントを起動します。起動コマンドは製品ごとに違い、Claude Code なら claude、Gemini CLI なら gemini のように1語を打って Enter です。

claude

画面が切り替わり、入力欄が表示されれば起動できています。本書では以降、製品名を書かずに「AI 開発エージェントを起動します」とだけ書きます。

この確認を省かないでください。ホームディレクトリで起動すると、AI から見える範囲が広くなりすぎます。作業に関係のないファイルまで読み書きの対象に入ってしまうので、目的のディレクトリで起動する習慣をつけます。

3.4 AIに質問する

依頼の書き方には型があります。次の3つを書くと、返ってくる答えが安定します。

  1. 目的: 何をしたいのか

  2. 制約: 守ってほしい条件

  3. 出力: どんな形で返してほしいか

たとえば、次のように書きます。

このディレクトリに、作りたいゲームの機能をメモしたファイルを作ってください。

- ファイル名は plan.txt
- ターミナルで遊ぶRPGの機能を5つ、箇条書きで書く
- 実装の話は書かず、遊ぶ人から見た説明にする

制約を書かないと、返ってくるものが毎回変わります。「ゲームのメモを作って」だけでは、ファイル名も、項目数も、粒度も AI が決めます。その結果が気に入らなければ、また頼み直すことになります。

依頼文は、TUI の画面下にある入力欄に、日本語のまま打ち込んで Enter を押します。改行の入れ方は製品によって違うので、慣れるまでは1行にまとめて書いてもかまいません。

最初から完璧な依頼文を書く必要はありません。返ってきたものを見て、不足している条件を追加していくほうが早いです。本書では、章が進むごとに依頼文の例を載せます。

3.5 AIにファイルを作成させる

3.4 の依頼を実行すると、AI が plan.txt を作ります。「plan.txt を作成しました」といった報告と、書いた内容が画面に表示されます。

作られたと言われたら、そのまま信じずに自分で確認します。

まず、ファイルがあるかどうかを ls で見ます。

taro@ubuntu:~/rpg$ ls
plan.txt

次に、中身を cat で表示します。cat は、ファイルの中身を画面に出すコマンドです。

taro@ubuntu:~/rpg$ cat plan.txt
# ターミナル探検RPG やりたいこと

- プレイヤーの名前を入力できる
- 探索すると敵に出会う
- 敵と戦って勝つと経験値がもらえる
- どうぐを拾って使える
- 冒険の記録を保存して、次に遊ぶときに続きから始められる

依頼した5項目が入っています。内容も、遊ぶ人から見た説明になっています。

AI 開発エージェントの画面にも、作ったファイルの内容が表示されます。それでも cat で確認する意味があります。

画面に出ているのは AI が「こう書いた」と示している内容で、保存された結果そのものではありません。書き込みが途中で失敗していることも、別の場所に作られていることもあります。本書では、ファイルの状態は端末のコマンドで確かめるという進め方をとります。

3.6 AIにファイルを変更させる

既にあるファイルを変更するときは、変更する範囲を限定して依頼します。

plan.txt に、次の1行を最後に追加してください。
ほかの行は変更しないでください。

- レベルが上がると体力と攻撃力が増える

「ほかの行は変更しないでください」という一文が効きます。これを書かないと、依頼していない変更が混ざることがあります。たとえば、文体を整えたり、項目の順番を入れ替えたりといった変更です。

変更が終わったら、また cat で確認します。

taro@ubuntu:~/rpg$ cat plan.txt
# ターミナル探検RPG やりたいこと

- プレイヤーの名前を入力できる
- 探索すると敵に出会う
- 敵と戦って勝つと経験値がもらえる
- どうぐを拾って使える
- 冒険の記録を保存して、次に遊ぶときに続きから始められる
- レベルが上がると体力と攻撃力が増える

最後に1行増え、ほかの行はそのままです。依頼どおりの変更になりました。

3.7 変更されたファイルを確認する

確認の方法を表3-3に整理します。使うコマンドは3つです。

表3-3: ファイルを確認するコマンド

コマンド

用途

ls

ファイルがあるかどうかを見る

ls -l

大きさと更新日時を見る

cat ファイル名

中身をすべて表示する

ls -l を使うと、更新日時がわかります。

taro@ubuntu:~/rpg$ ls -l
合計 4
-rw-r--r-- 1 taro taro 350  9月  7 22:01 plan.txt

先頭の 合計 4 は、このディレクトリが使っているディスクの量を表す行です。いまは気にしなくてかまいません。

その下の行が、ファイル1つぶんの情報です。左から、種類と権限、リンク数、所有者、グループ、大きさ(バイト)、更新日時、名前です。

いまは 大きさと更新日時 の2つだけ見えていれば十分です。「変更したはずなのに更新日時が古い」なら、変更が保存されていません。

残りの項目が気になる場合は、AI に「ls -l の各列の意味を教えてください」と聞いてみてください。先に進みたい場合は、飛ばしてかまいません。

ファイルが長くなってくると、cat では画面から流れてしまいます。そのときは less を使います。

less plan.txt

less の中では、↓ で1行進み、スペース で1画面進み、q で終了します。

第40章では、変更前と変更後の差分だけを見る方法も扱います。いまの段階は、cat で全体を読む方法で十分です。

3.8 AIが実行したコマンドを確認する

AI 開発エージェントは、コマンドの実行もできます。多くの製品では、実行する前に「このコマンドを実行してよいか」と確認が出ます。

確認は、たとえば Run this command? (y/n) のような形で表示されます。文言は製品によって違いますが、実行してよいかを聞かれている点は同じです。

確認が出たら、コマンドを読んでから答えます。判断の目安は、次のとおりです。

  • そのまま実行してよい: ls、cat、pwd、uv run python … のように、読むだけ、または動かすだけのもの

  • 手を止めて確認する: rm、mv、sudo、> を含むもの

後者の4つは、いずれも元に戻しにくい変更を起こします。判断の分かれ目を図3-4に示します。

実行してよいか聞かれたら「元に戻せるか」で判断し、読むだけ・動かすだけの ls / cat / pwd / uv run python はそのまま実行、消す・上書きする・権限を変える rm / mv / sudo / > は手を止めて確認する、という分かれ道の図。実行してよいか聞かれたそのコマンドは元に戻せるかそのまま実行してよいls / cat / pwd / uv run python手を止めて確認するrm / mv / sudo / > 読むだけ・動かすだけ消す・上書きする・権限を変える

図3-4: 実行してよいコマンドの見分け方

  • rm(削除): Windows のごみ箱にあたる仕組みがありません。消したファイルは元に戻せません

  • mv(移動と改名): 移動先に同じ名前のファイルがあると、確認なしで上書きされます

  • sudo(管理者権限で実行): システム全体のファイルを変更できます

  • >(ファイルへの上書き保存を表す記号): 既存の内容を消して書き直します

これらのコマンドが提案されたときは、実行を承認する前に AI に聞き返します。

そのコマンドは、どのファイルを消しますか。
消さずに済む方法があれば、そちらを教えてください。

こうしたコマンドを AI が提案することがあります。悪意があるわけではなく、不要になったファイルを片付けようとしただけ、ということもあります。問題になるのは、読まずに承認したときだけです。

自動で承認する設定を持つ製品もあります。本書の範囲では、その設定は使わないでください。何が実行されたかを目で見ることが、この章の目的です。

3.9 AIセッションを終了する

TUI を終了するには、多くの製品で次のいずれかが使えます。

  • /exit や /quit のようなコマンドを入力する

  • Ctrl + D を押す

  • Ctrl + C を2回押す

終了すると、第2章で見たプロンプトに戻ります。

taro@ubuntu:~/rpg$

作ったファイルは、終了しても残ります。消えるのは、画面上のやりとりだけです。

会話を再開したときに前回の内容が引き継がれるかどうかは、製品によって違います。引き継がれない前提で進めるのが安全です。そのために、決めた仕様や作業の途中経過は、plan.txt のようなファイルに書いておきます。第17章では、この考え方でゲームの仕様書を作ります。

3.10 AIが使えない場合の代替手段

AI 開発エージェントを用意できない場合でも、本書は読み進められます。本書のコードはすべて紙面に載せてあり、手で入力しても同じものができます。

代わりの手段は2つあります。

  • 端末で動くテキストエディタで、自分でファイルを作る

  • フロントマシンのブラウザでチャットに質問し、返ってきたコードを自分で保存する

どちらの場合も、ファイルを作って保存する作業は自分で行います。そのためのエディタは、端末の中で動きます。

3.10.1 端末で動くエディタ

文字だけの画面で動くエディタのうち、よく使われるのは次の2つです。

  • nano: 画面の下に操作の一覧が出る。はじめての人でも迷いにくい

  • vi: ほぼすべての Linux に入っている。操作にくせがある

vi は、たいていの Linux に最初から入っています。Ubuntu 24.04 でも入っています。いっぽう nano は、入っていない場合があります。

手元にあるかどうかは、--version を付けて実行すると確かめられます。

taro@ubuntu:~/rpg$ nano --version
bash: nano: コマンドが見つかりません

コマンドが見つかりません と出たら、入っていません。本書を書くのに使った Ubuntu 24.04 では、この状態でした。

まず nano の使い方を説明します。そのあと 3.10.3 で、vi でも同じことをやってみます。手元の Ubuntu に nano がなく、追加するのも避けたい場合は、3.10.3 から読んでください。

使い慣れたエディタがすでにあるなら、それを使ってかまいません。本書はどのエディタでも進められます。ここで扱うのは、何も用意していない状態から始める場合の話です。

3.10.2 nano でファイルを作る

nano がなければ、入れます。

taro@ubuntu:~/rpg$ sudo apt install nano
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
提案パッケージ:
  hunspell
以下のパッケージが新たにインストールされます:
  nano
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 9 個。
281 kB のアーカイブを取得する必要があります。
この操作後に追加で 909 kB のディスク容量が消費されます。
取得:1 http://ports.ubuntu.com/ubuntu-ports noble-updates/main arm64 nano arm64
7.2-2ubuntu0.2 [281 kB]
281 kB を 2秒 で取得しました (115 kB/s)
以前に未選択のパッケージ nano を選択しています。
(データベースを読み込んでいます ... 現在 16514 個のファイルとディレクトリがイン
ストールされています。)
.../nano_7.2-2ubuntu0.2_arm64.deb を展開する準備をしています ...
nano (7.2-2ubuntu0.2) を展開しています...
nano (7.2-2ubuntu0.2) を設定しています ...
update-alternatives: /usr/bin/editor (editor) を提供するために自動モードで /bin/
nano を使います
update-alternatives: /usr/bin/pico (pico) を提供するために自動モードで /bin/nano
 を使います

sudo は 3.8 で見たとおり、管理者の権限で実行するという意味です。パスワードを聞かれたら、第2章で Ubuntu を用意したときに決めたものを入れてください。

練習用のファイルを1つ作ります。ファイル名を付けて nano を実行すると、そのファイルが開きます。ないファイル名を指定した場合は、新しく作るところから始まります。

nano memo.txt

画面が切り替わり、図3-5の状態になります。

nano で新しいファイルを開いたところ

図3-5: nano で新しいファイルを開いたところ

見るところは3つです。

  • いちばん上の帯: エディタの名前と、開いているファイル名

  • まん中の広い部分: ここに文字を書く

  • いちばん下の2行: 使えるキーの一覧

下の一覧にある ^G や ^O の ^ は、Ctrl キーを表します。^O は「Ctrl を押しながら O」という意味です。

そのまま文字を打ちます。矢印キーでカーソルを動かし、Enter で改行し、Backspace で消せます。ふだん使っているエディタと同じ感覚で書けます。

3行ぶん打つと、図3-6のようになります。

3行を入力したところ

図3-6: 3行を入力したところ

いちばん上の帯で、ファイル名のうしろに * が付いていることを確かめてください。* は「まだ保存していない」という印です。

保存します。Ctrl を押しながら O を押すと、図3-7の状態になります。

Ctrl + O を押すと、書き込み先を聞かれる

図3-7: Ctrl + O を押すと、書き込み先を聞かれる

下から3行目に「書き込むファイル: memo.txt」と出ました。このまま Enter を押せば、その名前で保存されます。別の名前で保存したいときは、ここで書き換えます。

Enter を押すと、図3-8になります。

3行が書き込まれた

図3-8: 3行が書き込まれた

「3 行を書き込みました」と出ました。ファイル名のうしろの * も消えています。

エディタを終了します。Ctrl を押しながら X を押すと、端末に戻ります。

保存できたかどうかは、cat で確かめます。

taro@ubuntu:~/rpg$ cat memo.txt
探索で出す敵
- スライム
- ゴブリン

もう一度開いて、内容を変えてみます。同じように nano memo.txt と打つと、図3-9のように出ます。

開き直すと、保存した内容が出る

図3-9: 開き直すと、保存した内容が出る

「3 行を読み込みました」と出て、さっき書いた内容が表示されました。

最終行の末尾にカーソルを移し、図3-10のように1行足します。下矢印キーを2回押して3行目へ移り、End キーで行末へ移ります。そこで Enter を押してから、新しい行を打ちます。

4行目を足したところ

図3-10: 4行目を足したところ

また * が付きました。Ctrl + O、Enter、Ctrl + X の順に押して、保存して終了します。

taro@ubuntu:~/rpg$ cat memo.txt
探索で出す敵
- スライム
- ゴブリン
- オオコウモリ

新しく作って保存し、開き直して書き足し、また保存するところまでできました。

nano で使うキーは、当面は表3-4の4つで足ります。

表3-4: nano でよく使うキー

キー

画面の表示

すること

Ctrl + O

^O 書き込み

保存する

Ctrl + X

^X 終了

終了する

Ctrl + K

^K 切り取り

カーソルのある行を切り取る

Ctrl + U

^U 貼り付け

切り取った行を貼り付ける

保存せずに Ctrl + X を押すと、こう聞かれます。

変更されたバッファを保存しますか?
 Y はい
 N いいえ       ^C 取消

Y で保存、N で保存せずに終了、Ctrl + C で終了そのものを取り消します。

3.10.3 vi で同じことをする

vi は、Ubuntu 以外の Linux も含め、ほぼどこにでも入っています。サーバに接続したら nano がなかった、という場面はよくあります。そのときのために、最低限の操作を覚えておくと困りません。

vi には、nano にはない考え方があります。モードです。

  • ノーマルモード: キーが「命令」として働く。起動直後はこちら

  • 挿入モード: キーが「文字」として入る

ふつうのエディタは、いつでも挿入モードのようなものです。vi は、この2つを行き来しながら使います。

ファイルを開きます。

vi memo2.txt

図3-11の画面になります。

vi で新しいファイルを開いたところ

図3-11: vi で新しいファイルを開いたところ

左端に ~ が縦に並んでいます。これは「ファイルの終わりより先」を表す印で、中身ではありません。

いちばん下の行に "memo2.txt" [新] と出ています。新しいファイルだという意味です。

i を押します。これで挿入モードに入り、図3-12のように表示が変わります。

i を押すと、いちばん下に -- 挿入 -- が出る

図3-12: i を押すと、いちばん下に -- 挿入 -- が出る

いちばん下の行が -- 挿入 -- に変わりました。この表示が出ているあいだは、打った文字がそのまま入ります。

3行ぶん打つと、図3-13のようになります。

挿入モードで3行を入力したところ

図3-13: 挿入モードで3行を入力したところ

Esc キーを押します。これでノーマルモードに戻り、図3-14のように表示が変わります。

Esc を押すと -- 挿入 -- が消える

図3-14: Esc を押すと -- 挿入 -- が消える

-- 挿入 -- が消えました。ここから先、打ったキーは命令として扱われます。

保存して終了します。:wq と打つと、図3-15のようにいちばん下の行に出ます。

:wq はいちばん下の行に表示される

図3-15: :wq はいちばん下の行に表示される

: を押した時点で、いちばん下の行に : が出ます。ここが命令を打ち込む場所です。w が書き込み(write)、q が終了(quit)で、Enter を押すと実行されます。

端末に戻ったら、cat で確かめます。

taro@ubuntu:~/rpg$ cat memo2.txt
探索で出す敵
- スライム
- ゴブリン

開き直して、1行足します。

vi memo2.txt

図3-16のように、保存した内容が読み込まれます。

開き直したところ

図3-16: 開き直したところ

いちばん下に "memo2.txt" 3L, 49B と出ています。3行、49バイトを読み込んだ、という意味です。

G を押すと最終行へ移り、o を押すとその下に新しい行を作って挿入モードに入ります。続けて文字を打つと、図3-17のようになります。

G と o で行を足したところ

図3-17: G と o で行を足したところ

Esc を押してノーマルモードに戻り、:wq と打って Enter で保存します。

taro@ubuntu:~/rpg$ cat memo2.txt
探索で出す敵
- スライム
- ゴブリン
- オオコウモリ

vi で使うキーは、当面は表3-5の6つで足ります。

表3-5: vi でよく使うキー

キー

モード

すること

i

ノーマル

カーソルの位置から挿入モードに入る

o

ノーマル

下に新しい行を作って挿入モードに入る

Esc

挿入

ノーマルモードに戻る

G

ノーマル

最終行へ移る

:wq

ノーマル

保存して終了する

:q!

ノーマル

保存せずに終了する

困ったら Esc を押してください。どのモードにいるかわからなくなったときは、まず Esc です。ノーマルモードに戻るので、そこから :q! と打てば、変更を捨てて抜けられます。

画面の見た目は、入っている vi の種類によって少し変わります。ここに載せたのは、Ubuntu 24.04 に入っている vim のものです。最小構成の vim.tiny では ~ に色が付かず、右下の表示も 全て ではなく All になります。それでも、キーの操作は同じです。

練習で作った memo.txt と memo2.txt は、もう使いません。消しておいてかまいません。

rm memo.txt memo2.txt

3.10.4 ブラウザのチャットを使う

本書に載せた「AI に依頼する場合」の依頼文は、ブラウザのチャットにもそのまま貼り付けられます。返ってきたコードを、Ubuntu 側で nano か vi を使って保存してください。このときは、AI がファイルを直接作らない分、保存先とファイル名を自分で管理することになります。

コードをコピーして貼り付けるときは、端末アプリの貼り付け操作を使います。Windows Terminal では Ctrl + V、macOS のターミナルでは Cmd + V です。古いコマンドプロンプト(cmd.exe)では Ctrl + V が効かず、右クリックで貼り付ける必要があります。

nano に貼り付けるときは、そのまま貼り付けて大丈夫です。vi に貼り付けるときは、先に i を押して挿入モードに入ってください。ノーマルモードのまま貼り付けると、1文字ずつが命令として実行され、画面がめちゃくちゃになります。そうなったら Esc を押し、:q! で抜けてやり直してください。

どちらの方法でも、実行するコマンドは同じです。本書の実行コマンドは、AI を使うかどうかに関係なく動きます。

3.11 ハンズオン問題

問題3-1(easy / prompt-design)自分の環境について質問する

AI 開発エージェントを ~/rpg で起動し、次の質問をしてください。返ってきたコマンドを実際に実行し、表示された内容と AI の説明が合っているかを確かめてください。

実行コマンド

cd ~/rpg

依頼文

いまいるディレクトリにあるファイルの一覧と、それぞれの大きさを知りたいです。
使うコマンドと、表示された各項目の意味を教えてください。
コマンドは実行せず、まず提案だけしてください。

実行例

taro@ubuntu:~/rpg$ ls -l
合計 4
-rw-r--r-- 1 taro taro 350  9月  7 22:01 plan.txt

ヒント

  1. 「実行せず、提案だけしてください」と書くと、内容を先に読めます。

  2. 製品によっては、この指示を守らずに実行してしまうことがあります。その場合は、実行された結果と AI の説明を照らし合わせてください。

  3. 表示された項目の意味がわからなければ、そのまま聞き返します。

  4. 大きさの単位はバイトです。

確認

AI の説明にある項目名と、自分の画面に出た値を1つずつ対応づけてください。説明と画面が食い違っていたら、画面のほうが正しいと考えます。

解答と解説

AI からは ls -l が提案されるはずです。実行すると、次のように表示されます。

taro@ubuntu:~/rpg$ ls -l
合計 4
-rw-r--r-- 1 taro taro 350  9月  7 22:01 plan.txt

各項目の意味は次のとおりです。

  • -rw-r--r--: 種類と権限

  • 1: リンク数

  • taro taro: 所有者とグループ

  • 350: 大きさ(バイト)

  • 9月  7 22:01: 更新日時

  • plan.txt: 名前

解説

依頼文に「実行せず、まず提案だけ」と書いたのが要点です。こう書いておくと、コマンドの中身を読んでから実行するかどうかを決められます。第3章 3.8 で扱う「実行前に確認する」の練習になっています。

いま覚えておく必要があるのは、大きさと更新日時の2つだけです。権限やリンク数は、本書の範囲では使いません。

AI の説明と画面の表示が食い違うことがあります。そのときは画面のほうが正しいと考えてください。AI の説明は一般論として正しくても、使っている環境では違うことがあります。

問題3-2(easy / prompt-design)ファイルを作らせて、確認する

AI 開発エージェントに、~/rpg の中に memo.txt を作らせてください。内容は、第2章で覚えたコマンドを4つ、それぞれの意味を1行で書いたものにします。作られたら、cat で中身を確認してください。

依頼文

このディレクトリに memo.txt というファイルを作ってください。

- 内容は pwd、ls、cd、mkdir の4つのコマンドの説明
- 1コマンドにつき1行、「コマンド名: 説明」の形式で書く
- 説明は Ubuntu の端末を初めて使う人向けにする

実行コマンド

cat memo.txt

ヒント

  1. 依頼文には、ファイル名、行数、書式の3つを入れます。

  2. 生成された内容が長すぎたら、「1行30文字以内で」と条件を足して頼み直します。

  3. ls でファイルができたことを先に確かめます。

確認

cat memo.txt の結果を読み、4つのコマンドの説明が第2章の内容と合っているかを確かめてください。違っていると感じた箇所があれば、実際にそのコマンドを打って、どちらが正しいかを確認してください。

解答と解説

taro@ubuntu:~/rpg$ cat memo.txt
pwd: いまいるディレクトリを表示する
ls: そこにあるファイルとディレクトリを一覧する
cd: 別のディレクトリへ移動する
mkdir: 新しいディレクトリを作る

解説

依頼文に、ファイル名、項目の数、書式の3つを入れました。この3つを書いておくと、返ってくるものが安定します。書かないと、ファイル名も項目数も AI が決めることになり、やり直しが増えます。

作られたと言われても、ls と cat で自分で確かめてください。AI 開発エージェントの画面に表示された内容と、ディスクに保存された内容は別のものです。

内容が第2章の説明と食い違っていたら、そのコマンドを実際に打って確かめます。たとえば mkdir の説明が怪しければ、mkdir --help を見れば決着します。