ターミナル(端末エミュレータ)とは、コマンド(命令文)を入力してコンピュータを操作するソフトウェアのことです。
コマンドは、キーボードから「文字」を打ち込みます。

上の動画のように、ターミナルの画面に表示されるのも「文字だけ」です。
この記事ではターミナルの使い方だけではなく、ITの基礎知識である「ファイル管理」を一緒に学ぶことで、ターミナル操作についてより深く理解することができます。
Cloud9を導入していない場合は、どうすればよいのかな
Cloud9を導入していない方は、「AWS Cloud9を導入しよう」で用意しましょう!
ターミナルとは何か学ぼう
ターミナルについては前回のカリキュラムでも少し触れましたが、ターミナルの特徴について改めて把握しておきましょう。
ターミナルとは
ターミナルとは、コマンド(命令文)を入力してコンピュータを操作するソフトウェアのことです。コマンドの入力も画面に表示される結果の出力も「文字だけ」です。
CUIとGUI
ターミナルのように、文字だけで操作を行う方式のことをCUI(Character-based User Interface)と呼びます。

一方、以下のようにコンピュータの画面上に表示されるウィンドウ、ボタン、アイコンをマウスなどで操作を行う方式のことをGUI(Graphical User Interface)と呼びます。

CUIとGUIで同じ操作を行えるのか
CUIとGUIは操作の方式が違うだけなので、基本的には同じ操作を行うことができます。
例)GUIでファイルを作成する場合は、以下のようにファイルシステムに移動して「作成場所で右クリック > メニュー > New File」で作成します。

同様に「ターミナル(CUI)」でtouchコマンド(新しいファイル作成)を実行した場合も、以下の動画のように同じ結果を得ることができます。

同じ結果なら、なんで直感的でわかりやすいGUIじゃなく、ターミナルを使うんだろう...。
その答えは、次のターミナルを使う理由で詳しく解説するよ!
ターミナルを使う理由を知ろう
ターミナルを使う理由には、以下のCUIのメリットが要因になっています。
- 素早い操作が可能
- 目的ごとに画面を切り替える必要がない
- 文字ベースなので操作記録が残せる
- 容量が軽い
Cloud9はIDEなので、通常の開発環境よりは画面切り替えの手間が少なく同じ操作画面で利用できますが、
それでもターミナルで操作する方が効率的に作業を進めることができます。
作業の効率化や細かい操作を行える
GUIのマウス作業よりも、ターミナルでのコマンド入力の方が素早い操作が可能です。
例)GUIで複数のファイルを作成する場合は、以下のようにファイルシステムに移動して「作成場所で右クリック > メニュー > New File」を繰り返す必要があります。

一方ターミナルでは、以下のコマンドを実行するだけで同じ操作を行うことができます。
1
touch sample1.txt sample2.txt sample3.txt

他にも処理を自動化しやすかったり、細かい操作を行うなどメリットがたくさんあります。
このようにGUIよりも効率的に作業を進めることができるので、開発には欠かすことができない必須ツールとなります。
ターミナルでは「作業の効率化」や「細かい操作」が可能になるんだね!
それでは、実際に手を動かしながらターミナルを起動していこう!
ターミナルを起動してみよう
Cloud9のターミナルを起動してみましょう。
Cloud9の再起動が必要な方は、「ダッシュボードからCloud9の開き方」を参考にCloud9を開きましょう。
Cloud9の初期画面
初期画面では、画像のようにターミナルが起動している状態となります。

ターミナルを新しく開く場合
新しくターミナルを開く場合は、以下のように「+」をクリックして「New Terminal」で開くことができます。

ターミナルを閉じる場合は、以下のようにタブの「×」をクリックします。

ターミナルを最大化する場合
ターミナルは、右側にあるアイコンをクリックすると最大化することができます。

最大化した状態で右側にあるアイコンをクリックすると、元に戻ります。
ターミナルの起動や操作方法は以上です。
次はターミナルの画面について学びましょう。
ターミナルの画面を確認しよう
ターミナル起動後は、以下の内容が表示されます。

プロンプト(コンピューターに命令できる状態を示す)が表示されます。
$の後にコマンドを入力することができます。
| 項目 | 説明 |
|---|---|
| ユーザ名 | IAMでログインしているアカウントの名前 |
| カレントディレクトリ | いま選択して作業しているディレクトリのこと |
| プロンプト | コンピューターに命令できる状態を示す |
カレントディレクトリっていまいちピンとこないなぁ....。
それは、次の「ファイル管理」を学ぶと理解することができるよ!
ファイル管理について学ぼう
初心者にとってターミナル操作をすることは、少し難しく感じる部分もあるかと思います。
ファイル管理の知識を身につけることで、ターミナル上でコマンドを実行する際にスムーズに対象ファイルを指定することができます。
事前準備
それでは、ファイル管理で使用するフォルダやファイルを揃えていきましょう。
1
mkdir sample_dir && touch sample_dir/sample_file{1..2}.txt
コマンドを実行すると、動画のようにフォルダやファイルが生成されるはずです。

※コマンドについては、後述しています。
準備ができたので、ファイル管理について学んでいきましょう!
ディレクトリとは
コンピュータで扱われるデータは、ファイルという単位で記録されます。
そして、複数のファイルを格納して整理できる入れものをディレクトリと呼びます。
ディレクトリには、ファイルだけではなくディレクトリ自体も格納することができます。

Cloud9の階層構造を確認しよう
Cloud9の階層構造を簡単に表現すると、以下のようになります。
ディレクトリがたくさんありますが、起動後はenvironmentにいることがわかります。

environmentのディレクトリに見覚えがない方もいるかと思いますが、実は環境名のディレクトリ(pikawaka)のことなのです。
よく見ると、pikawakaの横に/home/ec2-user/environmentと表示されています。
Cloud9を開いて確かめてみましょう。

ディレクトリの種類
次はディレクトリの種類と役割について学びましょう。
ディレクトリには、主に「ルートディレクトリ」「カレントディレクトリ」「ホームディレクトリ」があります。
Cloud9の階層構造と照らし合わせながら、ディレクトリについて理解していきましょう。
各ディレクトリの役割を理解すると、ターミナル操作がよくわかるよ!
ルートディレクトリとは
ルートディレクトリとは、階層構造の1番上にあるディレクトリのことです。
/という記号で表します。

それでは、Cloud9の階層構造で確認してみましょう。
以下のように1番上にあるディレクトリがルートディレクトリです。
ルートディレクトリは、/という記号で表しています。

カレントディレクトリとは
カレントディレクトリとは、自分が今選択して作業しているディレクトリのことです。
例えば、以下のように「sample_dir」を選択して「sample_file2.txt」の名前を変更していたとします。このときのカレントディレクトリは、「sample_dir」です。

ホームディレクトリとは
ホームディレクトリとは、アカウントを持つユーザが自由に使えるディレクトリのことです。~(チルダ)という記号で表します。
Cloud9の場合は、ec2-userというディレクトリがホームディレクトリになります。

environmentの1つ上の階層がホームディレクトリのec2-userだね
改めてターミナル画面を確認してみよう!
ターミナル起動後のカレントディレクトリは、~/environmentと表示されます。

パスの概念で説明しますが、ディレクトリとディレクトリの間は/で表します。
つまり~/environmentは、ホームディレクトリ(~)の下(/)にあるenvironmentにいることを指しています。

そして、常にenvironmentがカレントディレクトリを表示しているわけではありません。作業場所を変更すれば、カレントディレクトリの表示も変わります。
※cdコマンドは、カレントディレクトリの位置を変更してくれるコマンドです。
1
cd sample_dir
動画のようにカレントディレクトリの表示も変わります。

次に、以下のコマンドをターミナルで実行してみましょう。
1
cd ..
すると、以下のようにカレントディレクトリがenvironmentに戻ります。

このように作業場所を変更すれば、カレントディレクトリの表示も変わります。
ターミナル操作では、今どこで作業しているかを表示するカレントディレクトリが重要になるよ
次のパス(path)も、ターミナルでコマンド実行する際に知っておくべき重要な概念だよ!
パス(path)とは
パス(path)とは、ファイルやディレクトリの場所を示す文字列のことです。
コンピュータ内で「どこにあるファイルなのか」を特定するために使われます。
GUIの場合は、以下のようにパスを意識することなく直感的にファイルを選択できますね。

ターミナルの場合は、パスを使ってファイルを選択する必要があります。

このパスには、「絶対パス」と「相対パス」の2種類があります。
絶対パスとは
絶対パスとは、ルートディレクトリから目的ファイルまでの場所を全て記述する方式です。

絶対パスには、以下のルールがあります。
1. ルートディレクトリは、/で表す
2. ディレクトリとディレクトリ(ファイル)の間は、/で表す
上記のルールに従って、目的ファイルの絶対パスを考えてみましょう。
絶対パスは、ルートディレクトリから目的ファイルである「file3」までの経路を全て記述します。ルールを適用させると「file3」の絶対パスは、/dir2/file3になりますね。

次にCloud9の階層構造で絶対パスを考えてみましょう。
目的ファイルが「sample_file2.txt」の場合、絶対パスはどのように記述できるでしょうか。

絶対パスは、ルートディレクトリから目的ファイルまでの経路を全て記述すればよいので、「sample_file2.txt」の絶対パスは、以下の通りです。
1
/home/ec2-user/environment/sample_dir/sample_file2.txt
絶対パスは、ルートディレクトリから始まると覚えておこう!
それでは、絶対パスでsample_dirにカレントディレクトリを変えてみましょう。
1
cd /home/ec2-user/environment/sample_dir
動画のようにカレントディレクトリが~/environment/sample_dirに変更されているはずです。

最後にカレントディレクトリをenvironmentに戻しておきましょう。
こちらもcdコマンドを使って絶対パスで指定してみてください。
相対パスとは
相対パスとは、カレントディレクトリから目的ファイルまでの場所を記述する方式です。

相対パスには、以下のルールがあります。
1. ディレクトリとディレクトリの間は、/で表す
2. カレントディレクトリは.で表す
3. 親ディレクトリ(1つ上のディレクトリ)は..で表す
上記のルールに従って、目的ファイルの相対パスを考えてみましょう。
相対パスは、カレントディレクトリから目的ファイルである「file3」までの経路を記述します。ルールを適用させると「file3」の相対パスは./file3です。

次にCloud9の階層構造で相対パスを考えてみましょう。
カレントディレクトリが「environment」で目的ファイルが「sample_file2.txt」の場合、相対パスはどのように記述できるでしょうか。

相対パスは、カレントディレクトリから目的ファイルまでの経路を記述すればよいので、「sample_file2.txt」の相対パスは、以下の通りです。
1
./sample_dir/sample_file2.txt
そして、相対パスの先頭にある ./ は省略することができます。
1
sample_dir/sample_file2.txt
先頭の./は、省略することが多いので覚えておきましょう!
それでは、相対パスでsample_dirにカレントディレクトリを変えてみましょう。
カレントディレクトリが「environment」の場合、sample_dirの相対パスは、./sample_dirですが、./は、省略することができます。
1
cd sample_dir
動画のようにカレントディレクトリがsample_dirに変更されます。

カレントディレクトリは、sample_dirのまま次に進みましょう。
親ディレクトリを含む場合の相対パスの書き方
それでは、以下のような「file1」の相対パスはどのように記すことができるでしょうか?

今回は、カレントディレクトリから目的ファイルの間に親ディレクトリがあります。
親ディレクトリは..で記述すればよいので、カレントディレクトリがdir2の場合の相対パスは、./../dir1/file1になります。

相対パスの場合は先頭の ./ を省略できるので、./../dir1/file1は../dir1/file1と記述することができます。
現在のカレントディレクトリはsample_dirのままなので、相対パスでenvironmentにカレントディレクトリを変えてみましょう。

sample_dirの親ディレクトリであるenvironmentは、..で表すことができます。また先頭の./は省略することができます。
1
cd ..
実行すると、動画のようにカレントディレクトリをenvironmentに変更することができます。

ファイル管理の説明は以上になります。
最後に以下のコマンドを実行して、フォルダやファイルを削除しておきましょう!
1
rm -r sample_dir
実行すると、冒頭で生成したフォルダやファイルが削除されます。

ターミナルでよく使うコマンドを確認しよう
ターミナルを利用する際によく使うコマンドを一部紹介します。
| コマンド | 説明 |
|---|---|
| ls | ファイルやディレクトリの一覧(リスト)を表示する |
| mkdir | フォルダを作成する |
| touch | ファイルを作成する |
| rm | ファイルを削除する |
| cp | ファイルをコピーする |
| mv | ファイルを移動する |
| pwd | カレントディレクトリを表示する |
| cd | カレントディレクトリの位置を変更する |
よく使うコマンドは、操作する内に自然と覚えるので安心してください。
参考記事
さいごに
この章では「ターミナル」の特徴や使い方、ディレクトリの種類・絶対パスと相対パスのファイル管理について学びました。この概念をきちんと理解できていれば、ターミナルでコマンドを実行する際に「どこにいるのか、何をしているのか」という混乱もなくなります。
この記事のまとめ
- ターミナルとは、コマンドを入力してコンピュータを操作するアプリケーションのこと
- カレントディレクトリとは、自分が今選択して作業しているディレクトリのこと
- パスとは、ファイルやディレクトリの場所を示す文字列のこと
この記事で学んだことをTwitterに投稿して、アウトプットしよう!
Twitterの投稿画面に遷移します