Linuxを基本からまとめてみた【EC2構築(Linux機)】

## Linuxのコマンドとは？

- Linuxは、ネットワークを通じて、コマンド(テキスト)で動くように設計されている

## AWS EC2(Elastic Compute Cloud)インスタンスとは？

- Amazon Elastic Compute Cloud (EC2) は、Amazon Web Services (AWS) で提供されるクラウドコンピューティングサービスで、EC2 を使用すると、オンプレミスのサーバーと同じように、スケーラブルなコンピューティング容量をインターネット経由で利用できる

- EC2 インスタンスとは、仮想マシン (VM) として機能するコンピューティング環境のこと 

## AWS EC2(Elastic Compute Cloud)インスタンス作成

①『EC2インスタンス』⇨『アジアンパシフィック(東京)』
②『インスタンスの起動』
- Amazon Linux 2023 AMI
- セキュリティグループの設定を追加　『タイプ:HTTP/任意の場所』　
- 新しいキーペアの作成(キーペア名を入力) ⇨　『キーペアのダウンロード』
※ ダウンロードしたファイルは必ず保存する

③『インスタンスの起動』⇨『全てのインスタンスを表示』
※ ステータスチェックタブの2/2のチェックに合格しましたと表示されているのを確認する

## EC2インスタンスの状態と費用

- アカウント作成後、１年間は１インスタンスは無料
- 使用しない場合は、『チェックボックスにチェック』⇨『インスタンスの状態』⇨『停止』⇨ 使用する場合は、『開始』
- 全く使用しない場合は、『チェックボックスにチェック』⇨『インスタンスの状態』⇨『終了』
※ 終了は、再作成が必要　停止は、再作成が不要


## EC2インスタンスの再作成

- 削除する場合、『チェックボックスにチェック』⇨『インスタンスの状態』⇨『終了』⇨『削除』
- インスタンスの状態『terminated』だと再作成ができる ⇨ 『インスタンスの作成』⇨
『Amazon Linux 2023 AMI』⇨ セキュリティグループの割り当て:既存のセキュリティグループを選択し、既存にチェックを入れる ⇨ 以前作成したキーペアファイルを再作成して利用する

## EC2インスタンス(Linux仮想サーバ)にリモート接続する

Tera Term（テラターム）とは、Windows用のターミナルエミュレータソフトウェアで、主にSSHやTelnetといったプロトコルを使用してリモートサーバーやネットワークデバイスにアクセスするために利用される。

```sample.AWS
PC

↕︎　遠隔操作

EC2インスタンス
Linux
Name:WebServer
```
① Tera Termをインストールする

② ttermpro.exeをクリックして起動する

## Linuxサーバにログインとログアウト

① Tera Termが起動できる状態とweb.pemを確認する

② EC2 ⇨ 実行中のインスタンス ⇨ IPv4パブリックIPをコピーする

③ Tera Termを起動し、IPv4パブリックIPをコピーを Host:に貼り付ける ⇨ OK

④ User nameは、必ず『ec2-user』にする ⇨ Use RSA/DSA/ECDSA/EDにチェックを入れ、
『...』をクリックし、web.pemを選択し、『開く』⇨ ログイン画面が開く

⑤ ログアウトをする場合は、exitと入力する

## ディレクトリ(フォルダ)操作

(1) 作業ディレクトリ(フォルダ)を確認
- $はコマンド(命令)待ちの状態
- Linuxもディレクトリ(フォルダ)とファイルがある
- 現在のフォルダを確認する　※ 今のディレクトリ(フォルダ)を意識する
```
//現在のディレクトリのフルパスが表示
$ pwd
```
(2) ディレクトリ(フォルダ)の作成と確認、移動、名前変更、削除、強制削除

```
//ディレクトリの作成
$ mkdir

//ディレクトリの確認
$ ls

//ディレクトリの名前変更
$ mv mv [元のディレクトリ名] [新しいディレクトリ名]

//ディレクトリの削除
$ rmdir

$ rm -r [ディレクトリ名]
※ rm -rは、全てを削除するので使う時は注意する
```
## ファイル操作
(1) ファイルの作成と名前変更、削除、強制削除
```
//ファイルの作成
$ touch [ファイル名].txt

//ファイルの名前変更
$ touch [ファイル名].txt

//ファイルの削除
$ rm [ファイル名].txt
```
(3) ファイルのプロパティ

```
$ ls -l
```
## viでテキストファイルを編集する
- viとは、Linuxのテキストファイル編集ソフトのこと
- 2つのモードがある
- コマンドモード
- 文字入力モード

(1) 強制終了する

① ログインする
② $ touch searchman.txt をする
③ $ vi searchman.txt をする
④ 強制終了する ⇨ ESCを2,3回押す ⇨ :q! ⇨ Enter

(2) 文字の入力と保存

① $ vi searchman.txt をする
② 起動直後：コマンドモード　:set showmodeで最下行にコマンドが打てる
③ i文字を打つとINSERTで文字入力モードになる
④ ESCでコマンドモードに切り替える　最下行にコマンドが打てる　⇨ Enter

※ :wq! ⇨ Enter　保存しないで強制終了
※ :wq ⇨ Enter　保存終了
※ :w ⇨ Enter　上書き保存終了

(3)文字を削除する

① x: 文字削除
② dd: 行削除

## Linuxの検索

(1) 検索用のファイルを作成する

① ログインする
② vi pre.txt ⇨ Enter
③ iを押して、Insertモードにする
④ :wq ⇨ Enter　

(2)ファイルの中身を閲覧し検索する

```
$ view pre.txt ⇨ Enter  ※view 閲覧のみ
```
(3)ファイルを開かずにファイルの中の文字列を閲覧し検索する

```
$ grep yama pre.txt ⇨ Enter  ※grep 検索の必須コマンド
```
(4) 検索した文字列をファイルにする(リダイレクション)

```
$ grep yama pre.txt > kekka.txt ⇨ Enter 
$ view kekka.txt ⇨ Enter リダイレクション:結果をファイルにする

$ grep yama pre.txt >> kekka.txt ⇨ Enter 

※ >　新規ファイル作成
※ >>　既存ファイルに追加
```
(5) ２重検索する(パイプ)

```
$ grep yama pre.txt | grep gata ⇨ Enter 
※ | を使って２重検索
```
(6)ファイル検索

```
$ mkdir tohoku
$ touch tohoku/yamagata.txt
$ touch tohoku/miyagi.dat

$find tohoku -name yamagata.txt -print ※ファイル検索　findコマンド
$find ./ -name '*.dat' -print
```




## 参考サイト
[【初級エンジニア必須スキル Linux コマンド】複雑な環境構築を AWS に任せてLinuxの基本操作を手軽にマスター](https://www.udemy.com/course/linuxawslinux/learn/lecture/16101659#overview)
[touchコマンドについて詳しくまとめました 【Linuxコマンド集】](https://eng-entrance.com/linux-command-touch)