開発環境とは — エディタ・ターミナル・実行環境

この記事は、プログラミングやバイブコーディングをする上で最低限身につけたほうがよい IT の実践的な知識を 1 から身につける「IT 基礎知識講座の一部」です。
エディタで書き、ターミナルから渡し、実行環境が動かします。この 3 つの役割と、打ち込んだ 1 行をシェルがどう読み取り、どこのファイルを探すのかを図解で確かめます。

この記事は、開発環境を扱います。

開発環境は、エディタ・ターミナル・実行環境という 3 つのソフトウェアをまとめた呼び方です。

この 3 つを 1 つの画面にまとめたものが統合開発環境(IDE。Integrated Development Environment)で、代表的なものに Visual Studio Code・IntelliJ IDEA・Xcode があります。

  • エディタ・ターミナル・実行環境の 3 つが、それぞれ何をするか
  • ターミナルの名前が OS ごとに違うことと、画面の読み方
  • 打ち込んだ 1 行をシェルがどう読み取り、どのファイルを探すか
  • 渡された app.js を、実行環境が上から 1 行ずつ実行するまで

開発環境とは — エディタ・ターミナル・実行環境の 3 つ

開発環境(development environment。ソースコードを書き、コマンドで指示して動かすためのソフトウェアの組み合わせ)は、3 つをまとめた呼び方で、そういう名前のソフトウェアが 1 つあるわけではありません。

my-app という予約アプリを作るときの、パソコンの中
自分のパソコン
開発環境(一度用意すれば使い回す)
エディタ
  • app.js の中身を打ち込んで保存する
  • Visual Studio Code などのソフトウェア
ターミナル
  • node app.js のような 1 行を打ち込む画面
  • OS に最初からインストールされている
実行環境
  • node や python という名前のソフトウェア
  • 公式サイトからインストールする
my-app(作る予約アプリのフォルダ)
  • app.js — 自分が書いたソースコード
  • 画像や設定のファイルもここに置く
  • 別のアプリを作るときは、別のフォルダを作る
外側が自分のパソコン。上の枠の 3 つは一度用意すれば使い回す。下の my-app は、作るアプリごとに 1 つ作るフォルダ。

上の枠の 3 つは一度インストールすれば使い回せます。

毎回新しく作るのは、下の枠の my-app のようなフォルダだけです。

エディタは文字を書くだけの画面ではなく、ファイルの一覧もターミナルも同じ画面に並べて出せます。

手順書の「コードエディタ」「IDE」も、同じものと考えてかまいません。

エディタの画面に出ているもの
エディタの画面
左側 — ファイルの一覧
  • my-app の中のファイルが並ぶ
  • app.js をクリックすると右側に開く
中央 — 文字を打ち込む場所
  • app.js の中身がここに出る
  • 保存するまでファイルは変わらない
下側 — ターミナル
  • ここに node app.js と打てる
  • 別に開いたターミナルと同じもの
プログラミング用のエディタは、1 つの画面の中にファイルの一覧と編集する場所とターミナルを並べて出せる。

3 つのソフトウェアは、1 台のパソコンの中でつながって動きます。

囲みの全体が 1 台のパソコンで、3 つはその中で役割を分けています。

エディタが作るのはファイルまでで、動かすのは実行環境です。

ターミナルは、その実行環境に「このファイルを実行して」と伝える入り口で、結果が出るのも同じターミナルです。

開発環境は 3 つのソフトウェアのまとまり

開発環境とは、書く・打ち込む・動かす、の 3 つを合わせた呼び方です。

書くのがエディタ、打ち込むのがターミナル、動かすのが実行環境で、この 3 つは一度インストールすれば次のアプリでも使い回せます。

ターミナル — Mac は「ターミナル」、Windows は「コマンドプロンプト」

ターミナル(terminal。コマンドを文字で打ち込み、結果を文字で受け取る画面のソフトウェア)は、OS に最初からインストールされています。

ただし、名前が OS ごとに違います。

OS ごとのターミナルの名前
==MacWindowsLinuxターミナルコマンドプロンプト端末ターミナルアプリケーションの中にあるPowerShellという名前もある配布ごとに名前が違う
上段が OS、中段がその OS でのターミナルの名前、下段が探すときの手がかり。二重線で結んだ 3 つは、名前が違うだけで同じものです。

名前は違っても、見え方はどれも同じです。

文字だけが並ぶ画面に 1 行打ち込み、Enter を押すと、すぐ下の行に結果が出ます。

ターミナルの画面に出ている 3 つの部分
ターミナルの画面
行頭のプロンプト
  • $ や # や > などの記号
  • その手前に今いるフォルダの名前が出ることが多い
自分が打ち込む 1 行
  • プロンプトの右に文字を打つ
  • Enter を押すまで何も起きない
返ってくる文字
  • 結果もエラーも、下の行に文字で出る
  • 出し終わると、また次のプロンプトが出る
文字だけが並ぶ画面で、行頭のプロンプトの右に 1 行打ち込み、Enter を押すと下の行に結果が返る。

実際の画面は、次のように行頭の記号の右へ 1 行打ち込み、その下に結果が返る形です。

pwd は今いるフォルダの場所を、ls はそのフォルダの中にあるものを返します。

$ pwd
/home/you/my-app

$ ls
app.js  package.json

ターミナルは、文字を打ち込んで結果を映すための画面です。

打ち込んだ 1 行を実際に読み取り、どのプログラムを動かすかを決めているのは、その画面の中で動くシェル(shell。打ち込まれた 1 行を読み取り、先頭の名前のプログラムを探して起動するプログラム)です。

手順書に出てくる bash や zsh は、このシェルの名前です。

シェルは、打ち込んだ 1 行を先頭と後ろの 2 つに分けて扱います。

打ち込んだ 1 行は、先頭と後ろで行き先が分かれる
打ち込んだ 1 行node app.js先頭の node後ろの app.jsシェルが探して起動する起動した相手が読んで実行するcommandnot foundCannot findmodule
シェルは 1 行を 2 つに分けます。先頭の名前でプログラムを探し、後ろのファイル名はそのプログラムに渡します。右端が、それぞれ見つからなかったときに出る文字です。

シェルは先頭の node でプログラムを探し、後ろの app.js をそのプログラムに渡します。

このとき app.js を探すのは、シェルが今開いているフォルダの中だけで、これをカレントディレクトリ(current directory。シェルが今開いているフォルダ)といいます。

行頭のプロンプト(prompt。入力を受け付けていることを示す記号)の手前に、その名前が出ることが多くあります。

シェルが今いるフォルダと、app.js の探し方
自分のパソコン
my-app(今シェルが開いているフォルダ)
  • ターミナルの行頭に my-app と表示される
  • app.js はここにあるので node app.js が動く
ダウンロード(別のフォルダ)
  • ここに app.js があっても node app.js は動かない
  • cd my-app と打つと、上の枠が今いるフォルダになる
シェルが今開いているフォルダがカレントディレクトリ。node app.js の app.js は、そのフォルダの中だけを探す。

同じ node app.js でも、今いるフォルダが違うと結果が変わります。

app.js は my-app の中に置いてあります。

シェルが今いるフォルダapp.js を探す場所node app.js の結果
my-appmy-app の中 → 見つかるapp.js が実行される
ダウンロードダウンロードの中 → 見つからないCannot find module
cd my-app のあとmy-app の中 → 見つかるapp.js が実行される

手順書がコマンドの前に cd を置くのは、この探す場所を変えるためです。

cd の後ろに移動先を書くと、そのあとの 1 行は移動した先のフォルダで動きます。

$ cd my-app

$ pwd
/home/you/my-app

打ち込む 1 行は、先頭に何を書いたかで起きることが決まります。

ここまでの内容は、手順書に出てくるコマンドを読むための最低限です。

もっと深く学びたい場合は、Linux 入門講座 で、ブラウザのターミナルにコマンドを打ちながら進む演習ができます。

パスとディレクトリ移動 から始めると、この記事の cd の話がそのまま続きます。

打ち込んだ 1 行を読むのはシェル

打ち込んだ 1 行を読むのは、画面ではなく中で動くシェルです。

うまくいかないときは、command not found なら先頭の名前が見つかっていない、Cannot find module なら後ろのファイルが今いるフォルダに無い、と分けて読みます。

実行環境 — app.js の中身を上から順に実行する

シェルから app.js を渡された実行環境は、その中身を上から 1 行ずつ読み、書いてある順番で実行します。

次の 3 行を node app.js で動かすと、画面には 2 行だけが出ます。

console.log("こんにちは");
const price = 1200;
console.log(price + " 円");

画面に出るのは、表示を指示した行の分だけです。

実行環境は上から 1 行ずつ読むだけ

実行環境がしていることは、app.js を上から 1 行ずつ読んで、書いてあるとおりにするだけです。

表示を指示した行だけが画面に文字を出し、読むのはシェルから渡された app.js だけです。

QUIZ

理解度チェック

まずは1問ずつ答えてみましょう。

Q1ターミナルに打ち込んだ 1 行を読み取り、先頭の名前のプログラムを探して起動するものはどれですか。

Q2node app.js と打ったのに app.js が見つからないと出ました。最初に確かめるのはどれですか。

Q3ターミナルで node app.js と打ったとき、app.js の中身を上から順に実行するのはどれですか。