# 3章【CLIの使い方を学ぼう】
## 未消化リスト
- 新規画像作成箇所リストの作成
- この時点でGit Bashを導入してしまう。
- 追加で、以降コマンドプロンプトを利用しているところ(AI教養)を修正する。
- [階層構造のイメージ画像改修](#check_4)
- これに伴い、以降の「ファイル6」などの説明文にも改修が必要
---
## 学習の目標
これから、カリキュラムを進めていく中でCLI(コマンドラインインターフェース)を利用していくことになります。
本章ではCLIとは何なのかを知り、またCLIの最低限の使い方を学ぶことで、今後のカリキュラムをスムーズに進められるようになりましょう。
<br>
## CLI、GUIとは
CLIとは「コマンドラインインターフェース(Command Line Interfase)」と言われるものです。
CLIでは「コマンド」という、キーボードによる文字入力を行い、コンピューターに命令をしていきます。
コンピューターは受け取った命令に対する結果を文字として出力します。
【Mac(ターミナル)】

【Windows(Git Bash)】

カリキュラムで使用するCLIツールについて、
Macは「ターミナル」、Windowsは「Git Bash」を使用します。
WindowsのCLIは他にも「コマンドプロンプト」「PowerShell」などがありますが、
本カリキュラムではGit Bashを使用していきます。
CLIに対して、GUI(グラフィカルユーザーインターフェース/Graphical User Interface)というものが存在します。
GUIは普段みなさんが使っているMacならFinder、Windowsならエクスプローラーなど様々なアプリケーションがGUIに該当します。
GUIではマウスを動かし、ボタンを押すなどで完結するため、操作性がよく扱いやすいです。
エンジニアでない限り、CLIを使う場面はあまりないかもしれません。
<br>
## CLIの起動方法
まずはCLIの起動方法について学習します。
Mac、Windowsでそれぞれ異なるので、ご自身の環境に合う方を確認して下さい。
#### Macの場合
Macでターミナルを開くには、画面右上の虫眼鏡マークをクリックしてSpotlightを起動し、そこで「ターミナル」と入力します。
すると、左端に黒いアイコンがついている「ターミナル」というソフトウェアが見つかるので、クリックして起動しましょう。

起動すると以下のような画面が表示されます。
なお、外観モードなどの設定によって白背景または黒背景のターミナルが表示されます。
白黒どちらでも内容に違いはありません。
カリキュラムでは黒背景のターミナルで統一していきます。

#### Windowsの場合
Git Bashを利用するために、Gitをインストールしていきます。
以下のURLにアクセスし、インストーラをダウンロードしてください。
[ダウンロード](https://git-scm.com/download/win)
ダウンロードできるファイルには、32-bit、64-bit の2種類あります。
以下、Microsoft サイトの手順で自身のPCがどちらにあたるのかを確認してください。
[Microsoft ヘルプ](https://support.microsoft.com/ja-jp/windows/32-%E3%83%93%E3%83%83%E3%83%88%E3%81%A8-64-%E3%83%93%E3%83%83%E3%83%88%E3%81%AE-windows-%E3%82%88%E3%81%8F%E5%AF%84%E3%81%9B%E3%82%89%E3%82%8C%E3%82%8B%E8%B3%AA%E5%95%8F-c6ca9541-8dce-4d48-0415-94a3faa2e13d)
「64-bit Git for Windows Setup.」もしくは「32-bit Git for Windows Setup.」をクリックします。
ダウンロードしたファイルをダブルクリックし、インストールを開始します。
- Information - ライセンスの確認画面
- Nextをクリック
- Select Destination Location - インストールフォルダの指定画面
- Nextをクリック
- Select Components - コンポーネントの選択画面
- Nextをクリック
- Select Start Menu Folder - ショートカット作成選択画面
- 何も変更せずにNextをクリック
- Choosing the default editor used by Git - テキストエディタ設定画面
- Use Vim (the ubiquitous text editor) as Git's default editor を選択
- Nextをクリック
- Adjusting the name of the initial branch in new repositories - ブランチ初期名の設定画面
- let Git decide を選択
- Nextをクリック
- Adjusting your PATH environment - Windows 環境変数の設定画面
- Git from the command line and also from 3rd-party software を選択
- Nextをクリック
- Choosing HTTPS transport backend - 暗号化データ通信の設定画面
- Use the OpenSSL library を選択
- Nextをクリック
- Configuring the line ending conversions - 改行オプションの設定画面
- Checkout as-is, commit as-is を選択
- Nextをクリック
- Configuring the terminal emulator to use with Git Bash - Git Bash の設定画面
- Use MinTTY(the default terminal of MSYS2)を選択
- Nextをクリック
- Choose the default behavior of git pull - git pull の設定画面
- Default(fast-forward or merge)を選択
- Nextをクリック
- Choose a credential helper - 認証情報を保持するヘルパーの設定画面
- Git Credential Manager を選択
- Nextをクリック
- Configuring extra options - その他の設定画面
- Enable file system caching, Enable symbolic links を選択
- Nextをクリック
- Configuring experimental options - 試験的なオプションの設定画面
- 何もチェックを入れずに Install をクリック
- Completing the Git Setup Wizard - インストール完了画面
- 何もチェックを入れずに Finish をクリック
以上でGitのインストールが完了します。
インストールが完了したら、
デスクトップに作成されているショートカットからGit Bashを起動しましょう。
<br>
## CLIの用語
これからCLIを利用していくにあたり、重要な用語が複数あります。
### ディレクトリ
CLIを利用するときは、「今、自分はどこにいるのか?」が重要になります。
GUIのときとは異なり、必ずフォルダのどこかにいる状態です。
なお、フォルダのことを、CLIでは「**ディレクトリ(directory)**」と呼びます。ディレクトリは、フォルダと同じ意味です。
#### 階層構造(ツリー構造)
<p><img src="https://wals.s3.amazonaws.com/uploads/wals2_content_img/365/01_14.png"></p>
ファイルやディレクトリには、「**階層構造**」があります。
パソコンにあるデータを、自身でフォルダを作って管理している方も多いと思います。
普通に使っていると、フォルダ(ディレクトリ)の中にさらにフォルダ(ディレクトリ)を作って分類していくことがほとんどだと思います。
このフォルダ(ディレクトリ)の中にさらにフォルダ(ディレクトリ)がある状態は、「階層構造」または「ツリー構造」と呼ばれます。
CLIでは、コマンドで階層構造の中を移動したり、ディレクトリを新しく作成したりします。
<span id="check_4" style="background-color: #ff0;">「フォルダ(ディレクトリ)」が4回も出てきてくどいのでは?</span>
- 画像がわかりにくいので簡略化/使いまわせるように
- たなしゅんに相談
- その上で表記をディレクトリに統一
#### カレントディレクトリ
「カレントディレクトリ(current directory)」とは、現在いるディレクトリのことです。
「作業ディレクトリ」とも呼びます。
(currentは「現在の」という意味です。)
CLIで操作する場合は、「今、自分がどこで作業しているか?」を認識するようにしてください。
カレントディレクトリを確認するコマンドは「pwd」になり、こちらについては次章以降で詳しく学習していきます。
間違ったディレクトリで作業を行うと、エラーの発生する原因になりますので十分注意していきましょう。
#### ホームディレクトリ
CLIを起動したときに最初にいるディレクトリを「ホームディレクトリ(home directory)」と呼び、
~(チルダ)で表されます。
### パス
パソコンの中にあるデータは階層構造で成り立っていることは説明しました。
その階層構造において、あるファイルやディレクトリの場所を指すものが「**パス**」にあたります。
パスには「**絶対パス**」と「**相対パス**」が存在します。
#### 絶対パス
下の画像を見てください。
<p><img src="https://wals.s3-ap-northeast-1.amazonaws.com/curriculum/cli/tree.png"></p>
画像の赤枠の部分を上から順番にパスで表記すると以下のようになります。
```
/ #先頭
/フォルダ1
/フォルダ1/フォルダ4
/フォルダ1/フォルダ4/フォルダ6
/フォルダ1/フォルダ4/フォルダ6/xxx.txt
```
この中で先頭にあたる部分を「**ルートディレクトリ(root directory)**」といいます。
また、パスをルートディレクトリから表記したものを「**絶対パス**」と言います。
(rootは「根」という意味です。先ほどのツリー構造と関連し、根から広がっていくイメージになります。)
#### 相対パス
絶対パスに対して「**相対パス**」というものがあります。
相対パスでは現在位置からの目的パスを表記します。
画像の例で自分の現在位置がフォルダ6にいるとします。
フォルダ6からフォルダ4の中のファイルへのパスを表記すると、以下のようになります。
```
../xxx.txt
```
「../」という表記は**現在位置の一つ上の階層**になります。<br>
※カレントディレクトリをパス表記する場合には「./」と、ドットは一つになります。
それではフォルダ6からフォルダ5の中のファイルへのパスを表記すると、以下のようになります。
```
../../フォルダ5/xxx.txt
```
### コマンド
CLIでは「**コマンド(command)**」という、キーボードによる文字入力を行い、コンピューターに命令をしていきます。
様々なコマンドが存在し、例えばカレントディレクトリを表示する「pwd」、ディレクトリを移動する「cd」コマンドなどがあります。
コマンドの種類については、次章で学習します。
<br>
## 本章のまとめ
CLIの起動方法と、操作に欠かせない用語について学習しました。
一度で全てを覚える必要はありません。
学習を進めていきながら、徐々に理解を深めていきましょう。
[前の章へ](/IKMvyZacQNCg6z3zGApH8w) | [一覧](/bvG7awAKQPWGcQ8TRyCI4w) | [次の章へ](/meDA9ubyRKypATiXrXPunQ)