すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

AWS Cloud9でターミナルの使い方を学ぼう

この記事で出来るようになること

ターミナル(端末エミュレータ)とは、コマンド(命令文)を入力してコンピュータを操作するソフトウェアのことです。

コマンドは、キーボードから「文字」を打ち込みます。

ターミナル操作

上の動画のように、ターミナルの画面に表示されるのも「文字だけ」です。

この記事ではターミナルの使い方だけではなく、ITの基礎知識である「ファイル管理」を一緒に学ぶことで、ターミナル操作についてより深く理解することができます。

ぴっかちゃん

Cloud9を導入していない場合は、どうすればよいのかな

Cloud9を導入していない方は、「AWS Cloud9を導入しよう」で用意しましょう!

ぴかわかさん

ターミナルとは何か学ぼう

ターミナルについては前回のカリキュラムでも少し触れましたが、ターミナルの特徴について改めて把握しておきましょう。

ターミナルとは

ターミナルとは、コマンド(命令文)を入力してコンピュータを操作するソフトウェアのことです。コマンドの入力も画面に表示される結果の出力も「文字だけ」です。

CUIとGUI

ターミナルのように、文字だけで操作を行う方式のことをCUI(Character-based User Interface)と呼びます。

ターミナル操作

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

GUI操作

CUIとGUIで同じ操作を行えるのか

CUIとGUIは操作の方式が違うだけなので、基本的には同じ操作を行うことができます。

例)GUIでファイルを作成する場合は、以下のようにファイルシステムに移動して「作成場所で右クリック > メニュー > New File」で作成します。

CUIとGUIで同じ操作を行う1

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

CUIとGUIで同じ操作を行う2

ぴっかちゃん

同じ結果なら、なんで直感的でわかりやすいGUIじゃなく、ターミナルを使うんだろう...。

その答えは、次のターミナルを使う理由で詳しく解説するよ!

ぴかわかさん

ターミナルを使う理由を知ろう

ターミナルを使う理由には、以下のCUIのメリットが要因になっています。

  • 素早い操作が可能
  • 目的ごとに画面を切り替える必要がない
  • 文字ベースなので操作記録が残せる
  • 容量が軽い

Cloud9はIDEなので、通常の開発環境よりは画面切り替えの手間が少なく同じ操作画面で利用できますが、

それでもターミナルで操作する方が効率的に作業を進めることができます。

作業の効率化や細かい操作を行える

GUIのマウス作業よりも、ターミナルでのコマンド入力の方が素早い操作が可能です。

例)GUIで複数のファイルを作成する場合は、以下のようにファイルシステムに移動して「作成場所で右クリック > メニュー > New File」を繰り返す必要があります。

Finderで複数のファイルを作成

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

ターミナル | ファイルを複数作成する
1
touch sample1.txt sample2.txt sample3.txt

ターミナルで複数フォルダを作成する

他にも処理を自動化しやすかったり、細かい操作を行うなどメリットがたくさんあります。

このようにGUIよりも効率的に作業を進めることができるので、開発には欠かすことができない必須ツールとなります。

ぴっかちゃん

ターミナルでは「作業の効率化」や「細かい操作」が可能になるんだね!

それでは、実際に手を動かしながらターミナルを起動していこう!

ぴかわかさん

ターミナルを起動してみよう

Cloud9のターミナルを起動してみましょう。

Cloud9の再起動が必要な方は、「ダッシュボードからCloud9の開き方」を参考にCloud9を開きましょう。

Cloud9の初期画面

初期画面では、画像のようにターミナルが起動している状態となります。

Cloud9を立ち上げた初期画面

ターミナルを新しく開く場合

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

新規ターミナルを開く方法

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

ターミナルを閉じる方法

ターミナルを最大化する場合

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

ターミナルを最大化

最大化した状態で右側にあるアイコンをクリックすると、元に戻ります。

ターミナルの起動や操作方法は以上です。
次はターミナルの画面について学びましょう。

ターミナルの画面を確認しよう

ターミナル起動後は、以下の内容が表示されます。

ターミナルの画面説明

プロンプト(コンピューターに命令できる状態を示す)が表示されます。
$の後にコマンドを入力することができます。

項目 説明
ユーザ名 IAMでログインしているアカウントの名前
カレントディレクトリ いま選択して作業しているディレクトリのこと
プロンプト コンピューターに命令できる状態を示す
ぴっかちゃん

カレントディレクトリっていまいちピンとこないなぁ....。

それは、次の「ファイル管理」を学ぶと理解することができるよ!

ぴかわかさん

ファイル管理について学ぼう

初心者にとってターミナル操作をすることは、少し難しく感じる部分もあるかと思います。

ファイル管理の知識を身につけることで、ターミナル上でコマンドを実行する際にスムーズに対象ファイルを指定することができます。

事前準備

それでは、ファイル管理で使用するフォルダやファイルを揃えていきましょう。

以下のコマンドをターミナルで実行してください。
ターミナル | 必要なファイルを揃える
1
mkdir sample_dir && touch sample_dir/sample_file{1..2}.txt

コマンドを実行すると、動画のようにフォルダやファイルが生成されるはずです。

フォルダやファイルを生成

※コマンドについては、後述しています。

準備ができたので、ファイル管理について学んでいきましょう!

ぴかわかさん

ディレクトリとは

コンピュータで扱われるデータは、ファイルという単位で記録されます。

そして、複数のファイルを格納して整理できる入れものディレクトリと呼びます。
ディレクトリには、ファイルだけではなくディレクトリ自体も格納することができます。

ディレクトリとファイルの関係

Cloud9の階層構造を確認しよう

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

Cloud9のファイル階層

environmentのディレクトリに見覚えがない方もいるかと思いますが、実は環境名のディレクトリ(pikawaka)のことなのです。

よく見ると、pikawakaの横に/home/ec2-user/environmentと表示されています。
Cloud9を開いて確かめてみましょう。

環境名のディレクトリの正式名称

ポイント
  1. environmentは、環境名(pikawaka)のディレクトリのこと
  2. Cloud9の起動後は、environmentという場所にいる

ディレクトリの種類

次はディレクトリの種類と役割について学びましょう。

ディレクトリには、主に「ルートディレクトリ」「カレントディレクトリ」「ホームディレクトリ」があります。

Cloud9の階層構造と照らし合わせながら、ディレクトリについて理解していきましょう。

ぴっかちゃん

各ディレクトリの役割を理解すると、ターミナル操作がよくわかるよ!

ルートディレクトリとは

ルートディレクトリとは、階層構造の1番上にあるディレクトリのことです。
/という記号で表します。

ルートディレクトリ

それでは、Cloud9の階層構造で確認してみましょう。

以下のように1番上にあるディレクトリがルートディレクトリです。
ルートディレクトリは、/という記号で表しています。

Cloud9のルートディレクトリ

ポイント

ルートディレクトリ(/)とは、ファイル階層の最初のディレクトリのこと

カレントディレクトリとは

カレントディレクトリとは、自分が今選択して作業しているディレクトリのことです。

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

カレントディレクトリ

ポイント

カレントディレクトリとは、いま選択して作業しているディレクトリのこと

ホームディレクトリとは

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

Cloud9の場合は、ec2-userというディレクトリがホームディレクトリになります。

ホームディレクトリ

environmentの1つ上の階層がホームディレクトリのec2-userだね

ぴかわかさん
ポイント

ホームディレクトリ(~)とは、ユーザが自由に使えるディレクトリのこと

改めてターミナル画面を確認してみよう!

ターミナル起動後のカレントディレクトリは、~/environmentと表示されます。

ターミナル起動後のカレントディレクトリ

パスの概念で説明しますが、ディレクトリとディレクトリの間は/で表します。

つまり~/environmentは、ホームディレクトリ(~)の下(/)にあるenvironmentにいることを指しています。

ホームディレクトリ

そして、常にenvironmentがカレントディレクトリを表示しているわけではありません。作業場所を変更すれば、カレントディレクトリの表示も変わります。

以下のコマンドをターミナルで実行してください。

※cdコマンドは、カレントディレクトリの位置を変更してくれるコマンドです。

ターミナル | カレントディレクトリをsample_dirに変更する
1
cd sample_dir

動画のようにカレントディレクトリの表示も変わります。

カレントディレクトリを変更する

次に、以下のコマンドをターミナルで実行してみましょう。

ターミナル | カレントディレクトリを親ディレクトリに変更する
1
cd ..

すると、以下のようにカレントディレクトリがenvironmentに戻ります。

カレントディレクトリを戻す

このように作業場所を変更すれば、カレントディレクトリの表示も変わります。

ぴっかちゃん

ターミナル操作では、今どこで作業しているかを表示するカレントディレクトリが重要になるよ

次のパス(path)も、ターミナルでコマンド実行する際に知っておくべき重要な概念だよ!

ぴかわかさん

パス(path)とは

パス(path)とは、ファイルやディレクトリの場所を示す文字列のことです。
コンピュータ内で「どこにあるファイルなのか」を特定するために使われます。

GUIの場合は、以下のようにパスを意識することなく直感的にファイルを選択できますね。

GUIでファイルを選択する場合

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

ターミナルでファイル指定する場合

このパスには、「絶対パス」と「相対パス」の2種類があります。

絶対パスとは

絶対パスとは、ルートディレクトリから目的ファイルまでの場所を全て記述する方式です。

絶対パス

絶対パスには、以下のルールがあります。

絶対パスのルール

1. ルートディレクトリは、/で表す
2. ディレクトリとディレクトリ(ファイル)の間は、/で表す

上記のルールに従って、目的ファイルの絶対パスを考えてみましょう。

絶対パスは、ルートディレクトリから目的ファイルである「file3」までの経路を全て記述します。ルールを適用させると「file3」の絶対パスは、/dir2/file3になりますね。

file3の絶対パス

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

sample_file2.txtの絶対パス

絶対パスは、ルートディレクトリから目的ファイルまでの経路を全て記述すればよいので、「sample_file2.txt」の絶対パスは、以下の通りです。

sample_file2.txtの絶対パス
1
/home/ec2-user/environment/sample_dir/sample_file2.txt
ぴっかちゃん

絶対パスは、ルートディレクトリから始まると覚えておこう!

実際にやってみよう!

それでは、絶対パスでsample_dirにカレントディレクトリを変えてみましょう。

以下のコマンドを実行してください。
ターミナル | 絶対パスでsample_dirに作業場所を変える
1
cd /home/ec2-user/environment/sample_dir

動画のようにカレントディレクトリが~/environment/sample_dirに変更されているはずです。

sample_dirの絶対パスでカレントディレクトリを移動する

最後にカレントディレクトリをenvironmentに戻しておきましょう。
こちらもcdコマンドを使って絶対パスで指定してみてください。

解答をみる
ターミナル | 絶対パスでenvironmentに作業場所を変える
1
cd /home/ec2-user/environment

相対パスとは

相対パスとは、カレントディレクトリから目的ファイルまでの場所を記述する方式です。

相対パス

相対パスには、以下のルールがあります。

相対パスのルール

1. ディレクトリとディレクトリの間は、/で表す
2. カレントディレクトリは.で表す
3. 親ディレクトリ(1つ上のディレクトリ)は..で表す

上記のルールに従って、目的ファイルの相対パスを考えてみましょう。

相対パスは、カレントディレクトリから目的ファイルである「file3」までの経路を記述します。ルールを適用させると「file3」の相対パスは./file3です。

相対パス

次にCloud9の階層構造で相対パスを考えてみましょう。

カレントディレクトリが「environment」で目的ファイルが「sample_file2.txt」の場合、相対パスはどのように記述できるでしょうか。

Cloud9で考える相対パス

相対パスは、カレントディレクトリから目的ファイルまでの経路を記述すればよいので、「sample_file2.txt」の相対パスは、以下の通りです。

カレントディレクトリがenvironmentの場合のsample_file2.txtの相対パス
1
./sample_dir/sample_file2.txt

そして、相対パスの先頭にある ./ は省略することができます。

先頭の./を省略した場合
1
sample_dir/sample_file2.txt

先頭の./は、省略することが多いので覚えておきましょう!

ぴかわかさん
実際にやってみよう!

それでは、相対パスでsample_dirにカレントディレクトリを変えてみましょう。

カレントディレクトリが「environment」の場合、sample_dirの相対パスは、./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の場合

sample_dirの親ディレクトリであるenvironmentは、..で表すことができます。また先頭の./は省略することができます。

以下のコマンドを実行してください。
ターミナル | 相対パスでenvironmentにカレントディレクトリを変更する
1
cd ..

実行すると、動画のようにカレントディレクトリをenvironmentに変更することができます。

親ディレクトリに移動する

ファイル管理の説明は以上になります。
最後に以下のコマンドを実行して、フォルダやファイルを削除しておきましょう!

ターミナル | カリキュラム用のフォルダとファイルを削除する
1
rm -r sample_dir

実行すると、冒頭で生成したフォルダやファイルが削除されます。

フォルダやファイルが削除

ポイント
  1. パス(path)とは、ファイルやディレクトリの場所を示す文字列のこと
  2. 絶対パスとは、ルートディレクトリから目的ファイルまでの場所を全て記述する方式のこと
  3. 相対パスとは、カレントディレクトリから目的ファイルまでの場所を記述する方式のこと

ターミナルでよく使うコマンドを確認しよう

ターミナルを利用する際によく使うコマンドを一部紹介します。

コマンド 説明
ls ファイルやディレクトリの一覧(リスト)を表示する
mkdir フォルダを作成する
touch ファイルを作成する
rm ファイルを削除する
cp ファイルをコピーする
mv ファイルを移動する
pwd カレントディレクトリを表示する
cd カレントディレクトリの位置を変更する

よく使うコマンドは、操作する内に自然と覚えるので安心してください。

ぴかわかさん

参考記事

さいごに

この章では「ターミナル」の特徴や使い方、ディレクトリの種類・絶対パスと相対パスのファイル管理について学びました。この概念をきちんと理解できていれば、ターミナルでコマンドを実行する際に「どこにいるのか、何をしているのか」という混乱もなくなります。

この記事のまとめ

  • ターミナルとは、コマンドを入力してコンピュータを操作するアプリケーションのこと
  • カレントディレクトリとは、自分が今選択して作業しているディレクトリのこと
  • パスとは、ファイルやディレクトリの場所を示す文字列のこと