[🔰初心者向け]難易度別Linuxの学習環境

## はじめに
こんにちは！ITスクールRareTECHにてCS（Customer Support）を担当している池村です。
今回は難易度別にLinuxを触れる環境について解説します。

正直Linuxを触れる環境はたくさんあるのですが、初学者でもとっつきやすいものから紹介していきます。

## 難易度0
#### Macのターミナル
一番簡単ですが、Macユーザー限定の学習方法です。
細かくいうとMacはLinuxではないのですが、Linuxとほぼ同じコマンドを使うことが可能です。ただWindowsの方は使えないので、お使いのPCに左右されるところが難点です。

Macのターミナルの画面はこのようになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/9b65809e-e2c7-412d-f60d-73634ba73b88.png)


## 難易度1
### エンベーダー
無料のアカウント作成だけでも、Linuxの環境を触れるアプリです。
ブラウザで動作するので、ご自身のシェルを触ることなくコマンドの練習が可能です。

https://envader.plus/


コマンドの詳細がかなり細かく書かれているので、初学者もまずここからといった学習環境になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/89e16ebf-0c0b-05e7-2637-1542e2e328e9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/9453aeae-436a-553f-45e2-e0ee5d70f9ba.png)

### WSL（Windowsの方限定）
Windowsの方がご自身のPCでLinuxを触りたい時に使います。
WindowsでUbuntuを使いたい時は以下のコマンドをパワーシェル or コマンドプロンプトで叩いてください。

```Bash:WSL
wsl --install -d Ubuntu
```

インストールは完了したでしょうか？Ubuntuが起動して、Linuxユーザー情報の入力が求められるはずです。UsernameとPassword（2回）を入力してみてください。 
※Passwordの入力は、画面に何も表示されないので間違わないよう打ち込みましょう。

正しく入力が完了すると、以下のような画像になると思います。

![step26_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/837035de-cbcd-e08e-4e9a-ea5068b3f176.png)

`exit`で出ることもできます。

再度入る時は以下のコマンドで入ることができます。
```Bash:入り方
wsl -d Ubuntu
```

## 難易度2
### Dockerコンテナで触ってみる
Dockerを触ったことがある人は、こちらの方法が手軽に色々なディストリビューションを触れると思います。コンテナを作るのも削除するのも簡単ですしね。

コンテナを扱うにはDockerの理解が必須なので割と難易度は高いですが、色々なLinuxを触ってみたい！といった用途で使うにはかなりおすすめです。

ディストリビューションは多すぎるので、これら全てを確認するのは現実的ではありません。、気になるものは積極的にコンテナを立ち上げて学習できるのがDockerの良いところですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/72091fd7-c27a-3612-ad13-6ce4595ffdfc.png)


Dockerの学習をしたい方はこちらの記事で学習してみてください。

https://qiita.com/ikemura-ren/items/dae9f599254b90167b06


### VirtualBoxを使ってみる
VirtualBoxはDockerとはまた違った仮想化技術です。DockerがOSのイメージを

VirtualBoxを使ってみたい人は以下の記事を参照してください。知り合いの方の記事ですが、とてもわかりやすいのでオススメです！

https://qiita.com/free-honda/items/ca757d6414a8ea344ea1

### 自身のPCにLinuxを入れてみる
例えばUbuntu

https://jp.ubuntu.com/download

自身の古いPCなどをLinuxOSで書き換えることで、自身のPCをLinuxにすることができます。私は手元にそんなPCがないので実証はできませんが、それほど難易度は高くない印象です。

:::note warn
インストール時に「ディスク全体を使う」や「Erase disk and install Linux」を選択すると、ハードディスクの内容がすべて削除され、Windowsは消えますのでご注意ください。
:::


## 難易度3
### Cloud環境で触ってみる
AWSでもGCPでもいいので、一つサーバーを立てることができれば、そちらもオススメです。ただ、最初にCloudサービスを使うのは初学者にとって難易度が高いものと考えたので難易度3としました。

AWSで手っ取り早くLinuxを触るならEC2ですね。サーバーを建てることができるサービスです。
アカウントの作成等はご自身で調べてみましょう。今回はあくまでLinuxを触れる場所の紹介ですので。

:::note info
AWSで色々いじるなら別の方の記事を見た方が良いです。少なくともこの記事内で詳しく説明する気がありませんので。
:::


1. インスタンスの作成
右上の**インスタンスの起動**ですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/c8eb3e95-a048-ef47-1286-daaeee98b4c2.png)
次にサーバー名をつけて、Linuxのディストリビューションを選びます。今回はAmazon linuxにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/698f4eeb-bfc8-6f99-1d0e-bda2931450fc.png)


1. ssh接続用のキーを作成
進むと、キーペアを作成とあるので、作成します。名前をつけてそのまま作成しちゃってください。勝手にダウンロードフォルダに入ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/af49a527-9864-ada4-2338-d2273fafa0fc.png)

1. VPCとセキュリティグループの設定
今回はデフォルトのVPCを使います。VPCまで作るとかなりかかりますので。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/c0ed0795-0cfb-f6b7-baf1-27ccdf9a864c.png)

:::note warn
細かくいうとセキュリティグループのsshポートを開ける必要がありますが、今回は説明を省きます。
:::


1. 最後に起動ボタンをポチッと

では今回はssh接続でサーバーにアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/801ee106-288a-3f80-4742-2be5f0600394.png)

鍵はダウンロードフォルダにありますので、説明の通り権限周りを変更して接続してみます。
無事接続できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/6918cd7b-7c0a-d9b9-ae33-f92a3afed0df.png)

自分だけのサーバーではありますので、色々いじり放題です。
AWSには無料枠がありますので、しばらくは料金もかかりませんが、本当はお金がかかるものだと思ってください。

## 自作PC
これは私自身がハードウェアに精通していないので詳しくは書けないのですが、なんとなく難易度高そう、、と思っている分野です。自作PCにLinuxを入れれば本当にあなた専用のLinuxPCが完成するでしょう。
![9EAFA1B1-F130-4EDF-AE3C-5144C631FC5A.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798971/6cbeaadc-352a-d2bb-4ff3-f4a847478152.png)



## まとめ
今回は難易度別のLinux学習環境について共有しました。私の完全主観での難易度訳ではありますが、最初にLinuxを学習しようと考えている方はレベル0~1をやってみることをオススメします。

どんなエンジニアになろうとも、シェルをいじる能力は必須です。ある程度でも学習は進めていきましょう。コーディングだけしていては見えないものも見えてきますよ。