サーバー・Linux入門【2026】ターミナルとコマンドでAIエージェントが動く“場所”を知る
第4章では、AIエージェントがAPIを通じて外の世界とやり取りする「手足」の仕組みを学びました。では、そのプログラム自体はどこで動いているのでしょうか? 答えはサーバーです。そしてサーバーを操作する道具がターミナル(黒い画面)とコマンド。Claude CodeやCodex CLIのようなコーディングエージェントは、まさにこのターミナルでコマンドを実行するAIです。この章を読むと、AIが「このコマンドを実行してもいいですか?」と聞いてきたとき、自信を持って承認・拒否できるようになります。
- サーバーは「24時間動き続け、頼まれたら応えるコンピューター」。物理サーバー・VPS・クラウド・コンテナは「どう借りるか・どう区切るか」の違い
- サーバーの多くはLinuxで動き、画面ではなくターミナルとコマンドで操作する。基本コマンドは10個ほど覚えれば十分
- Claude Code等のコーディングエージェントは「ターミナルでコマンドを実行するAI」。
rm -rf・sudo・curl ... | shなどの意味が分かれば、AIの操作を安全に承認・拒否できる
サーバーとは?「24時間動き続けるコンピューター」
サーバー(server)は、英語の「serve(仕える・提供する)」から来た言葉で、頼まれたら応える役のコンピューターのことです。特別な機械というより「役割」の名前で、実は中身は私たちのパソコンとほぼ同じ部品(CPU・メモリ・ストレージ)でできています。
パソコンとの一番の違いは使われ方です。
- 24時間365日、電源が入りっぱなし(夜中にWebサイトを見る人もいるため)
- 画面の前に人がいない(データセンターに置かれ、遠隔で操作する)
- インターネットから届く「お願い(リクエスト)」を待ち続け、答え(レスポンス)を返す
第1章で学んだ「ブラウザ → サーバー → 表示」の流れの、あの「サーバー」です。レストランにたとえると、パソコン(ブラウザ)はお客さん、サーバーはいつ注文が来てもいいように24時間待機している厨房です。
AIエージェントも同じです。社内チャットボットなら、その司令塔プログラム(第3章のバックエンド)はどこかのサーバーの上で24時間動いていて、質問が来るたびにClaudeなどのAPIを呼び出しています。


localhost:3000 がそれじゃ。ただしPCを閉じたら止まるし、外からは見えん。だから本番は「24時間動くサーバー」を借りるんじゃよ物理サーバー・VPS・クラウド・コンテナの違い
「サーバーを用意する」と一口に言っても、方法はいくつかあります。違いは「1台まるごとか、区切って使うか」「誰が管理するか」「どう借りるか」です。住まいにたとえると分かりやすくなります。
| 種類 | 住まいのたとえ | 中身 | 向いている場面 |
|---|---|---|---|
| 物理サーバー(オンプレミス/専用サーバー) | 一戸建てを建てる・買う | 実物のコンピューター1台を自社で持つ、または丸ごと借りる | 大規模・特殊な要件、社内規定でデータを外に出せない場合 |
| VPS(仮想専用サーバー) | マンションの一室を借りる | 1台の物理マシンを「仮想化」で区切り、1区画を自分専用として月額で借りる | 個人開発・小規模サービス。Linuxの練習にも |
| クラウド(AWS・Google Cloud・Azure等) | 必要な分だけ部屋・設備を借り、使った分だけ払うサービス付き住宅 | 仮想サーバーに加え、DB・ストレージ・AIなどの部品を必要な時に必要な量だけ借りる | 成長するサービス、アクセスの増減が大きいサービス(第6章で詳しく) |
| コンテナ(Docker等) | 家具付きの「ユニット」ごと持ち運べる部屋 | アプリと動作に必要な環境をひとまとめにした箱。どのサーバーに置いても同じように動く | 「自分のPCでは動いたのに本番で動かない」を防ぎたいとき |
ここで出てきた仮想化(かそうか)とは、「1台の実物のコンピューターを、ソフトウェアの力で何台ものコンピューターに見せかける技術」です。マンションが1つの建物を壁で区切って多くの世帯が住めるようにしているのと同じ発想です。VPSもクラウドの仮想サーバーも、この仮想化の上に成り立っています。
OSの話:なぜサーバーはLinuxが多いのか
OS(オーエス/Operating System)は、コンピューターの土台となる基本ソフトです。パソコンならWindowsやmacOS、スマホならiOSやAndroidがOSです。
そして、Webサーバーの世界で広く使われているOSがLinux(リナックス)です。Ubuntu(ウブントゥ)、Debian(デビアン)、Amazon Linux、Red Hat Enterprise Linux などは、どれもLinuxの「種類(ディストリビューション)」です。Linuxが選ばれる主な理由は次のとおりです。
- 無料で使える(オープンソース):何百台並べてもOSのライセンス料がかからないディストリビューションが多い
- 軽い:画面(GUI)なしで動かせるので、そのぶんCPUやメモリを本来の仕事に回せる
- コマンドで全部操作できる:手順を文字で書けるので、自動化・複製がしやすい
- 情報とツールが豊富:サーバー用ソフトやクラウドサービスの多くがLinuxを前提に作られている
ちなみに、macOSのターミナルはLinuxと同じUnix系の流れをくむため、基本コマンドはほぼ同じように使えます。Windowsの場合は、Windowsの中でLinuxを動かせる公式機能WSL(Windows Subsystem for Linux)を使えば、同じ練習ができます。

ターミナルと基本コマンド
ターミナルは、文字(コマンド)を打ち込んでコンピューターに命令するための画面です。「黒い画面」「コンソール」「シェル」「CLI(コマンドラインインターフェース)」などとも呼ばれます(厳密には少しずつ意味が違いますが、最初は同じものと思ってOKです)。
ターミナルを開くと、次のような1行が表示されて入力を待っています。これをプロンプトと呼びます(AIへの指示文の「プロンプト」とは別物です)。
user@my-pc:~/projects$ 「userというユーザーが、my-pcというコンピューターの、~/projectsという場所にいて、命令を待っています」という意味です。~(チルダ)は自分のホームフォルダを表す記号、$ は「ここから入力してね」の合図です。
まず覚える基本コマンド一覧
サーバー操作もAIエージェントの操作も、ほとんどはこの表のコマンドの組み合わせです。危険度の列は、AIが実行しようとしたときの注意の目安です。
| コマンド | 意味(由来) | できること | 危険度 |
|---|---|---|---|
pwd | print working directory | 今いる場所(フォルダ)を表示 | 安全 |
ls | list | 今いる場所のファイル一覧を表示(ls -la で隠しファイルや詳細も) | 安全 |
cd | change directory | 別のフォルダへ移動(cd .. で1つ上へ) | 安全 |
mkdir | make directory | 新しいフォルダを作る | ほぼ安全 |
cat | concatenate | ファイルの中身を表示 | 安全(ただし秘密ファイルの表示は注意) |
cp | copy | ファイルをコピー | 注意(同名ファイルを上書きすることがある) |
mv | move | ファイルの移動・名前の変更 | 注意(同名ファイルを上書きすることがある) |
rm | remove | ファイルを削除 | 危険(多くの環境でゴミ箱を通らず消える) |
grep | global regular expression print | ファイルの中から文字列を検索 | 安全 |
curl | client URL | URLにアクセスしてデータを取得・送信(APIを叩く) | 内容次第(送信先・送る中身を確認) |
ssh | secure shell | 遠くのサーバーに安全にログインして操作 | 注意(本番サーバーに入る操作) |
実際に打ってみる:1行ずつの意味
次は「作業用フォルダを作って、メモを書いて、中身を確認する」までの一連の流れです。(# から後ろはコメント=説明書きで、実行されません)
pwd # ① 今どこにいるか確認
/home/user
mkdir my-agent # ② my-agent というフォルダを作る
cd my-agent # ③ その中に移動
echo "hello agent" > memo.txt # ④ memo.txt を作って文字を書き込む(> は「ファイルへ書き出す」)
ls # ⑤ ファイル一覧を見る
memo.txt
cat memo.txt # ⑥ 中身を表示
hello agent
cp memo.txt memo-backup.txt # ⑦ バックアップをコピーで作る
mv memo-backup.txt old.txt # ⑧ 名前を old.txt に変える
grep "agent" memo.txt # ⑨ memo.txt から "agent" を含む行を探す
hello agent青い文字の行は、コマンドを実行した結果(出力)です。注目してほしいのは④の > です。> は「ファイルに書き出す(すでにあれば中身を上書き)」、>> は「末尾に追記」という意味です。AIが提案したコマンドに > が入っていたら、「どのファイルが上書きされるか」を見るクセをつけましょう。
rm(削除)はなぜ危険なのか
rm は削除コマンドです。WindowsやMacでファイルを消すとまずゴミ箱に入りますが、ターミナルの rm は多くの環境でゴミ箱を通らずに消えます。さらに、よく一緒に使われるオプション(コマンドの後ろに付ける追加指示)が危険度を上げます。
-r(recursive):フォルダの中身ごとすべて削除-f(force):確認なしで強制的に削除
つまり rm -rf フォルダ名 は「このフォルダを中身ごと、確認なしで消す」という最強の削除命令です。パスを1文字間違えたり、変数が空になったりすると、意図しない広い範囲が消えることがあります。
rm -rf /やrm -rf ~のように、ルート(システム全体)やホームフォルダを対象にしたものは論外rm -rf *の*は「今いる場所のすべて」。今どこにいるか(pwd)次第で被害が変わる- AIが削除を提案したら、対象のパスを読み上げて確認し、心配なら先に
lsで中身を見る・Gitにコミットしておく(第7章)
curl と ssh:外の世界とつながるコマンド
curl は、ブラウザを使わずにURLへアクセスするコマンドです。第4章で学んだAPIを試すときによく使います。
# Webページ(またはAPI)の中身を取ってきて表示する
curl https://example.com
# -I を付けると、中身ではなく「ヘッダー」(ステータスコードなど)だけ見られる
curl -I https://example.com
HTTP/2 200ssh は、遠くにあるサーバーに暗号化された通信でログインするコマンドです。VPSやクラウドの仮想サーバーを操作するときの基本です。
# ubuntu というユーザーで、203.0.113.10 のサーバーにログイン(IPは説明用の例)
ssh ubuntu@203.0.113.10
# ログインに成功すると、プロンプトがサーバー側のものに変わる
ubuntu@my-server:~$ログインには、パスワードではなくSSH鍵(秘密鍵と公開鍵のペア)を使うのが一般的です。秘密鍵は家の鍵そのものなので、人に渡したり、GitHubに上げたり、AIとのチャットに貼り付けたりしてはいけません。
パーミッション(権限)とsudo
Linuxでは、ファイルごとに「誰が・読める/書ける/実行できるか」が決まっています。これをパーミッション(権限)と呼びます。ls -l で表示される -rw-r--r-- のような記号がそれで、r=読む(read)、w=書く(write)、x=実行(execute)です。最初は「ファイルには鍵のかかり方が設定されている」と理解すれば十分です。
そして、鍵を無視してなんでもできる管理者(root)の権限で1回だけコマンドを実行するのが sudo(スードゥー)です。
# 管理者権限でパッケージ一覧を更新する(Ubuntuの例)
sudo apt updatesudo は「マスターキーを借りる」操作です。システム全体の設定やソフトのインストールに必要な一方、間違えたときの被害もシステム全体に及びます。「Permission denied(権限がありません)」と出たときに、理由を考えずに sudo を付けて押し通すのは悪いクセです。
プロセスとポート:localhost:3000とは?
サーバーの中では、たくさんのプログラムが同時に動いています。実行中のプログラム1つ1つをプロセスと呼びます。Webサーバー、データベース、AIエージェントの司令塔プログラム……それぞれが1つ以上のプロセスです。
外からリクエストが届いたとき、どのプロセスに渡せばいいかを区別する番号がポートです。住所(IPアドレス)が「建物」なら、ポートは「部屋番号」です。
| ポート番号 | よくある用途 |
|---|---|
| 80 | HTTP(暗号化なしのWeb) |
| 443 | HTTPS(暗号化ありのWeb。普段見ているサイトはほぼこれ) |
| 22 | SSH(サーバーへのログイン) |
| 3000・5173・8000・8080 など | 開発中のアプリでよく使われる番号(ツールごとの慣習) |
AIエージェントにWebアプリを作ってもらうと、最後に「http://localhost:3000 を開いて確認してください」と言われることがよくあります。これは次の意味です。
- localhost:「このコンピューター自身」を指す特別な名前(IPアドレスでは
127.0.0.1) - :3000:そのコンピューターの3000番の部屋(ポート)で待っているプログラム
つまり「あなたのPCの中で起動した開発用サーバーに、あなたのブラウザからアクセスしてね」という意味です。自分のPCの中の話なので、他の人が同じURLを開いても見えません。他の人に見せるには、サーバーやクラウドにデプロイ(公開)する必要があります(第6・7章)。
npm run dev # 開発用サーバーを起動(Node.jsのプロジェクトでよくある)
Local: http://localhost:3000
# 止めるときは Ctrl + C(ターミナルで実行中のプロセスを中断する合図)

環境変数と.env:APIキーの置き場所
環境変数とは、そのターミナル(やサーバー)の中で使える「名前付きのメモ」です。プログラムは実行時にこのメモを読みにいけます。AIエージェント開発で一番よく使うのが、APIキーを環境変数に入れておく使い方です。
# ANTHROPIC_API_KEY という名前でAPIキーをメモする(値はダミー)
export ANTHROPIC_API_KEY="sk-ant-xxxxxxxx"
# メモされたか確認(中身を画面に出すので、人前や録画中はやらない)
echo $ANTHROPIC_API_KEYClaudeの公式SDK(Python・TypeScript)は、何も指定しなければこの ANTHROPIC_API_KEY という環境変数を自動で読みにいきます。つまり、コードの中にキーを書かなくて済むのです。
ただし export はそのターミナルを閉じると消えてしまいます。そこで、プロジェクトごとに .env(ドットenv)というファイルに書いておき、プログラム起動時に読み込む方法がよく使われます。
# 1行に「名前=値」。このファイルは絶対にGitに入れない
ANTHROPIC_API_KEY=sk-ant-xxxxxxxx# Gitで管理しない(GitHubに上げない)ファイルを列挙する
.env
.env.*パッケージ管理:npmとpip
プログラムを作るとき、すべてを自分で書く必要はありません。世界中の開発者が作った便利な部品(パッケージ/ライブラリ)をダウンロードして使えます。その出し入れを担当するのがパッケージマネージャーで、アプリストアのプログラム版のようなものです。
| 言語 | パッケージマネージャー | Claude SDKを入れるコマンド |
|---|---|---|
| JavaScript / TypeScript(Node.js) | npm | npm install @anthropic-ai/sdk |
| Python | pip | pip install anthropic |
npmの場合、インストールした部品の一覧は package.json に記録され、実物は node_modules フォルダに入ります。node_modules は巨大になるのでGitには入れず、他の人は npm install で同じ部品を再現します。Pythonでは、プロジェクトごとに部品を分ける仮想環境(venv)を使うのが定番です。
ログの見方:エラーは「最後の数行」を読む
ログとは、プログラムが「いつ・何をしたか・何に失敗したか」を書き残す記録です。サーバーには画面がないので、何が起きたかを知る手段はほぼログだけです。
エラーが出ると、ターミナルに長い英文が流れて焦りますが、読むコツは1つ。一番下の数行(とくに Error を含む行)から読むことです。上のほうは「どこを通ってきたか」の経路で、原因は最後に書かれていることが多いのです。
Traceback (most recent call last):
File "agent.py", line 3, in <module>
import anthropic
ModuleNotFoundError: No module named 'anthropic' # ← ここが本題最後の行は「anthropic という部品(モジュール)が見つかりません」という意味。つまり pip install anthropic を忘れているか、別の仮想環境で実行している、と当たりがつけられます。
サーバーのログファイルを見るときによく使うコマンドも覚えておきましょう。
tail -n 50 app.log # ログファイルの最後の50行を表示
tail -f app.log # 新しく書き込まれる行をリアルタイムで表示し続ける(止めるのは Ctrl + C)
grep "ERROR" app.log # ERROR を含む行だけを抜き出す
Docker(コンテナ)の考え方
開発でよくある悲劇が「自分のPCでは動いたのに、サーバーでは動かない」です。原因の多くは、OSの違い、言語のバージョン違い、入っている部品の違いといった環境の差です。
これを解決するのがDocker(ドッカー)に代表されるコンテナ技術です。アプリと、それが動くのに必要なもの(OSの一部・言語・パッケージ・設定)を丸ごと1つの箱に詰めて、どこでも同じように動かします。名前の由来である輸送用コンテナのたとえがぴったりで、中身が何であれ、規格が同じ箱ならトラックでも船でも運べます。
| 用語 | 意味 | たとえ |
|---|---|---|
| Dockerfile | 箱の作り方を書いた設計書(テキスト) | レシピ |
| イメージ | 設計書から作った「箱のひな形」 | 冷凍した料理 |
| コンテナ | イメージを実際に起動して動いているもの | 温めて食卓に出した料理 |
FROM python:3.12-slim # Pythonが入った軽量Linuxを土台にする
WORKDIR /app # 箱の中の作業フォルダ
COPY requirements.txt . # 必要な部品リストをコピー
RUN pip install -r requirements.txt # 部品をインストール
COPY . . # アプリのコードをコピー
CMD ["python", "agent.py"] # 起動時に実行するコマンドコンテナは、AIエージェントにとって「安全な作業部屋(サンドボックス)」としても重要です。AIにコードを実行させるとき、あなたのPC本体ではなくコンテナの中でやらせれば、万一おかしなコマンドが実行されても被害を箱の中に閉じ込めやすくなります。コーディングエージェントやAIのコード実行機能の多くが、こうした隔離された環境を使う考え方を取り入れています。
AIエージェントとの関係:コマンドが分かると「承認」できる
ここまでの知識が一番生きるのがこのセクションです。Claude Code(Anthropic)やCodex CLI(OpenAI)などのコーディングエージェントは、ひと言でいえば「ターミナルでコマンドを実行するAI」です。ファイルを読み(cat 相当)、検索し(grep 相当)、編集し、テストを実行し(npm test など)、エラーを見て直す——人間がターミナルでやっていることを、AIが自分で進めます。
多くのコーディングエージェントは、ファイルの変更やコマンドの実行の前に許可を求める設定を用意しています(どこまで自動で許可するかは設定で変えられます)。この③で「はい」を押すかどうかを決めるのは、あなたです。コマンドの意味が分からないと、全部「はい」を押すか、全部怖くて止めるかの二択になってしまいます。
AIが提案したら立ち止まるべきコマンド
| コマンドの形 | 何が起きるか | 確認すること |
|---|---|---|
rm -rf ○○ | フォルダを中身ごと確認なしで削除 | 対象パスは正しいか/Gitにコミット済みか |
sudo ○○ | 管理者権限で実行(システム全体に影響) | 本当に管理者権限が必要な作業か |
curl ○○ | sh(| bash) | ネットから取ってきたスクリプトを中身を見ずに即実行 | 公式ドキュメントに載っている配布元か。心配ならまず中身を表示して読む |
chmod -R 777 ○○ | 誰でも読み書き実行できる状態にする | 権限を広げすぎていないか(エラー回避の雑な対処になっていないか) |
git push --force | リモートの履歴を上書き(第7章) | 他の人の変更を消さないか |
cat .env/env | 秘密情報を画面(=AIの入力)に表示 | APIキーをAIや記録に出す必要があるか |
知らないホストへの curl・ssh | 外部へデータを送る・外部に接続する | 送信先はどこか、何を送っているか |
|(パイプ)は、左のコマンドの出力を右のコマンドに渡す記号です。curl URL | sh は「URLから取ってきた文字列を、そのままプログラムとして実行する」という意味になります。有名ツールの公式インストール手順でも使われる書き方ですが、配布元を信用できるかどうかがすべてです。
Claude Codeなら「許可リスト」で線を引ける
毎回すべてを確認するのは大変なので、コーディングエージェントには「このコマンドは確認なしでOK」「これは禁止」をあらかじめ決めておく設定があります。たとえばClaude Codeでは、プロジェクトの .claude/settings.json の permissions に、allow(許可)・ask(毎回確認)・deny(禁止)を書けます。
{
"permissions": {
"allow": ["Bash(npm run test:*)", "Bash(node build.js)"],
"ask": ["Bash(git push:*)"],
"deny": ["Read(./.env)", "Bash(curl:*)"]
}
}1行ずつ読むと、「テストの実行と node build.js は確認なしで実行してよい」「git push は毎回確認する」「.env を読むことと curl での通信は禁止」という意味です。コマンドの意味が分かって初めて、この線引きが自分でできるようになります。書き方の細部は変わることがあるので、実際に設定するときは公式ドキュメントで確認してください。

ls や cat みたいに「見るだけ」のコマンドは自動で許可して、rm や sudo は毎回確認、みたいに分けるといいんですね。
自社事例:公開前にターミナルで2つのチェックを走らせる
AIエージェント研究所の「公開前チェック」
本サイトはHTMLとCSSだけの静的サイトですが、公開前には必ずターミナルで2つのNode.jsスクリプトを実行する運用にしています。どちらも数十行〜百数十行程度の小さなプログラムです。
node build.js # ① 全ページに共通フッターを流し込む
node keihyo-check.js # ② 景表法まわりの機械チェック- ① build.js:
partials/footer.htmlを正本として、全HTMLの<!-- FOOTER:START -->と<!-- FOOTER:END -->の間に流し込みます。フッター(アフィリエイト表記)を入れられないページが1つでもあると、エラーで止まる(終了コード1)ように作ってあり、表記漏れのまま公開されるのを防ぎます - ② keihyo-check.js:PR表示の有無と位置、★評価の根拠注記、評価操作を促す表現、
target="_blank"のリンクにnoopenerがあるか、断定的な口コミ表現などを機械的にチェック。要修正(HARD)があれば止まり、要確認(WARN)は表示だけにしています
ポイントは「終了コード」です。ターミナルのコマンドは終わるときに「成功(0)/失敗(0以外)」の番号を返します。失敗で止まるように作っておけば、AIエージェントに作業を任せたときも、AI自身がエラーを読んで直し、もう一度実行することができます。実際、本サイトの更新作業の多くはClaude Codeとの共同作業で、AIがこの2つを実行してから人間が確認する流れです。
また、build.js などのスクリプトやフッターの下書きは配信対象から外し、APIキー等の秘密情報は .gitignore でコミットしない設定にしています。仕組みの全体は【自社事例】AIエージェントでメディアサイトを運用する仕組みで解説しています。
🤖 AIエージェントとやってみよう
ChatGPTやClaudeに、そのまま貼り付けて使えるプロンプト例です。実行前に「何をするコマンドか」を説明させるのが上達のコツです。
① 自分専用の「コマンド練習メニュー」を作ってもらう
私はターミナル初心者です。OSは【Mac/Windows(WSL)】です。
pwd, ls, cd, mkdir, cat, cp, mv, grep を安全に練習できる手順を作ってください。
条件:
- 練習用フォルダ(~/practice)の中だけで完結すること
- 1ステップごとに「打つコマンド」「そのコマンドの意味」「期待される表示」を書くこと
- rm は最後に1回だけ、練習用ファイル1つを消す形で使い、危険な点も説明すること② AIが提案したコマンドを「翻訳」してもらう
コーディングエージェントが次のコマンドを実行してよいか聞いてきました。
初心者向けに、1語ずつ意味を分解して説明し、
危険度(安全/注意/危険)と、実行前に確認すべきことを教えてください。
コマンド:
【ここに貼る。例:find . -name "*.log" -mtime +7 -delete】③ エラーログを読んで原因を絞り込んでもらう
次のエラーが出ました。APIキーなどの秘密情報は伏せてあります。
1. どの行が本当の原因を示しているか
2. 考えられる原因を可能性の高い順に3つ
3. それぞれを確かめるためのコマンド(見るだけの安全なものから)
を教えてください。
実行したコマンド:【例:python agent.py】
エラーの最後の15行:
【ここに貼る】よくあるつまずき
| 症状・メッセージ | よくある原因 | まず試すこと |
|---|---|---|
command not found | ツールが未インストール/スペルミス | 綴りを確認。node -v などでインストール済みか確認 |
No such file or directory | 今いる場所が違う/ファイル名の打ち間違い | pwd と ls で現在地と中身を確認 |
Permission denied | 権限が足りない | すぐ sudo を付けず、なぜ権限が必要かをAIに聞く |
Port 3000 is already in use | 前に起動したサーバーが残っている | 元のターミナルで Ctrl + C。別ポートで起動 |
| APIキーが読めない(401など) | 環境変数が設定されていない/別のターミナルで設定した | export したターミナルと同じ場所で実行しているか、.env の読み込み設定を確認 |
| ターミナルが止まって戻らない | サーバーなど「動き続ける」プロセスを起動した | 正常な動作のことが多い。止めるなら Ctrl + C、作業は別のターミナルで |
ファイル名や場所にスペースが入っていると、コマンドが「2つの別の言葉」と誤解することがあります。フォルダ名は半角英数字とハイフンにしておくのが無難です。
よくある質問
Windowsしか持っていなくてもLinuxのコマンドを練習できる?
できます。Windowsには、Windowsの中でLinuxを動かせるWSL(Windows Subsystem for Linux)という公式の仕組みがあります。またMacのターミナルはLinuxと同じ系統(Unix系)なので、この記事のコマンドの多くはそのまま使えます。
コマンドを覚えていなくても、AIに聞けば大丈夫では?
「コマンドを書く」のはAIに任せて構いません。ただし、AIエージェントが実行しようとするコマンドを承認するかどうかを決めるのは人間です。pwd・ls・cd・rm・sudoなど代表的なコマンドの意味と危険度だけは、自分で分かるようにしておくのがおすすめです。
rm -rf はなぜそんなに危険なの?
rm はファイルを削除するコマンドで、-r はフォルダの中身ごと、-f は確認なしで強制的に、という意味です。多くの環境でゴミ箱を経由せずに消えるため、場所の指定を1文字間違えるだけで大事なファイルが復元困難になります。AIエージェントがこのコマンドを提案したら、対象のパスを必ず確認してください。
APIキーは .env に書けば安全?
.env はAPIキーをコードに直接書かないための仕組みで、それ自体が暗号化されているわけではありません。.gitignore に .env を追加してGitにコミットしないこと、他人に共有しないこと、漏れたらすぐにキーを無効化して作り直すことをセットで守るのが基本です。
まとめ|コマンドが読めれば、AIに安心して任せられる
サーバーは「24時間動き続けるコンピューター」で、その多くはLinuxの上で、ターミナルとコマンドで操作されています。環境変数・ポート・ログ・コンテナといった言葉も、AIエージェントを作る・動かすうえで毎日のように出てきます。
そして2026年のいま、ターミナルでコマンドを打つのは人間だけではありません。コーディングエージェントが実行するコマンドを読み、「読むだけは任せる、書く・消す・送るは確認する」と判断できることが、AIに安全に仕事を任せるための基礎体力です。次の第6章「クラウド入門」では、このサーバーをどこから・どう借りるかを、AWS・Google Cloud・Azureとサーバーレスを例に学びます。
IT基礎シリーズ(全7章)
基礎を身につけたら、次は「仕事」につなげる
独学で進めるのも十分可能ですが、「最短で実務レベルにしたい」「転職・副業につなげたい」なら、次の記事も参考にしてください。
- AIが快適に動くノートパソコンの選び方&おすすめ3選【2026】:開発・AIエージェントを動かすならメモリ16GB以上が目安
- AI・IT業界への転職ガイド【2026】:作ったものをポートフォリオに。未経験からの進め方と転職エージェントの選び方