ターミナルコマンド整理

# 必要そうなコマンドを整理する
1. 基本コマンド
2. パーミッション変更関連
3. viエディタ関連
4. mySQL関連
5. PHP関連
6. cakePHP関連

## 1. 基本コマンド

<strong>🌹カレントディレクトリ内のファイルやディレクトリを表示</strong>
```console:console
$ ls
```
<br>

<strong>🌹隠しファイルを含めてファイルやディレクトリを表示</strong>
```console:console
$ ls -a
```
<br>

<strong>🌹隠しファイルを含む全てのファイルやディレクトリの詳細を表示</strong>
```console:console
$ ls −la
```
<br>

<strong>🌹★★ディレクトリに移動</strong>
```console:console
$ cd ★★
```
<br>

<strong>🌹ホームディレクトリに移動</strong>
```console:console
$ cd ~/
```
<br>

<strong>🌹一つ上の階層のディレクトリに移動</strong>
```console:console
$ cd ..
```
<br>

<strong>🌹カレントディレクトリのパスを表示</strong>
```console:console
$ pwd
```
<br>

<strong>🌹★★.htmlという中身が空のファイルを作る</strong>
```console:console
$ touch ★★.html
```
<br>

<strong>🌹★★ディレクトリを作成</strong>
```console:console
$ mkdir ★★
```
<br>

<strong>🌹★★.htmlというファイルを相対パスで☆☆/に移動</strong>
```console:console
$ mv ★★.html  ☆☆/
```
<br>

<strong>🌹★★.htmlというファイルを☆☆.htmlに名前変更</strong>
```console:console
$ mv ★★.html ☆☆.html
```
<br>

<strong>🌹★★.htmlを相対パスで☆☆/というディレクトリの中にコピー</strong>
```console:console
$ cp ★★.html ☆☆/
```
<br>

<strong>🌹★★.htmlを☆☆.htmlという名前でコピー</strong>
```console:console
$ cp ★★.html ☆☆.html
```
<br>

<strong>🌹★★というディレクトリとその中身を絶対パスで/☆☆/にそっくりコピー</strong>
```console:console
$ cp −r ★★ /☆☆/
```
<br>

<strong>🌹★★.htmlを削除</strong>
```console:console
$ rm ★★.html
```
<br>

<strong>🌹★★というディレクトリとその中身を削除</strong>
```console:console
$ rm -r ★★
```
<br>

<strong>🌹これまで実行してきたコマンドの履歴を表示</strong>
```console:console
$ history
```
<br>

<strong>🌹phpのバージョンを確認する</strong>
```console:console
$ php -v
```


## 2. パーミッション変更関連

<strong>🌹カレントディレクトリ内のファイル全てのパーミッション情報などを表示</strong>
```console:console
$ ls -l
```
<br>

<strong>🌹★★.htmlをパーミッション764に設定</strong>
```console:console
$ chmod 764 ★★.html
```

下記の数字を、「自分」「グループ」「他人」にそれぞれ設定。
例えば「自分」は全権限○、「グループ」と「他人」は読み権限のみ○の場合は744。

| 数字 | 読 | 書 | 実行 |
|:------------:|:------------:|:------------:|:------------:|
| 7 | ○ | ○ | ○ |
| 6 | ○ | ○ | × |
| 5 | ○ | × | ○ |
| 4 | ○ | × | × |
| 3 | × | ○ | ○ |
| 2 | × | ○ | × |
| 1 | × | × | ○ |
| 0 | × | × | × |

## 3. viエディタ関連

<strong>🌹viエディタで★★.htmlを開く</strong>
（ファイルが存在しない場合はファイルを作成して開く）
```console:console
$ vi ★★.html
```

| viコマンド | 説明 |
|:-----------|:-----------|
| i | 現在のカーソル位置から編集する |
| X | カーソルがある一文字を削除する |
| o | カーソルがある行の次に1行挿入する |
| dd | カーソルがある行を削除する |
| :wq | 保存して終了する |
| :w | 保存する（終了はしない） |
| :q | 保存せずに終了する |

## 4. mySQL関連（mySQLログイン前）

<strong>🌹mysql立ち上げ</strong>
```console:console
$ mysql.server start
```
<br>

<strong>🌹mysql終了</strong>
※立ち上げて使い終わったら<font color="Red">必ず</font>終了！
```console:console
$ mysql.server stop
```
<br>

<strong>🌹mysqlが今動いているかどうか確認</strong>
※これで「ERROR! MySQL is not running」が出たら動作してないってこと。
```console:console
$ mysql.server status
```
<br>

<strong>🌹rootでログイン</strong>
```console:console
$ mysql -u root -p
```
<br>

<strong>🌹自分で設定したsqlログインIDでログイン</strong>
※この後パスワード聞かれるので自分で決めたパスワードを入れてEnter
```console:console
$ mysql -u 自分で設定したsqlログインID -p
```

## 5. mySQL関連（mySQLログイン後）

<strong>🌹データベースを作成</strong>
```sql:mysql
mysql> CREATE DATABASE [データベース名];
```
<br>

<strong>🌹[ユーザ名]にデータベースのGRANT OPTIONを除く全ての権限を付与</strong>
```sql:mysql
mysql> GRANT ALL PRIVILEGES ON [データベース名].* TO [ユーザ名]@localhost;
```
<br>

<strong>🌹データベース一覧を表示</strong>
```sql:mysql
mysql> SHOW DATABASES;
```
<br>

<strong>🌹[データベース名]を使用する</strong>
```sql:mysql
mysql> USE [データベース名];
```
<br>

<strong>🌹USE [データベース名]した状態でsqlファイルをインポート</strong>
```sql:mysql
mysql> SOURCE /パス/ファイル名.sql;
```
<br>

<strong>🌹テーブル一覧を表示</strong>
```sql:mysql
mysql> SHOW TABLES;
```
<br>

<strong>🌹[テーブル名]の中身のカラム一覧を表示</strong>
```sql:mysql
mysql> DESC [テーブル名];
```
<br>

<strong>🌹データ型を調べる</strong>
```sql:mysql
mysql> SHOW COLUMNS FROM [テーブル名];
```
<br>

<strong>🌹- [テーブル名]の中の[フィールド名]のNULLを許可（空入力を許可）※NOT NULLにする場合は上記をNOT NULLに。</strong>
```sql:mysql
mysql> ALTER TABLE [テーブル名] MODIFY [フィールド名] TEXT NULL;
```
<br>

<strong>🌹テーブルの中身を全部表示</strong>
```sql:mysql
mysql> SELECT * FROM [テーブル名];
```
<br>

<strong>🌹カラムの順番を変える</strong>
```sql:mysql
mysql> ALTER TABLE [テーブル名] MODIFY [順番を変えたいカラム名] AFTER [移動後に上に来るカラム名];
```
<br>

<strong>🌹テーブルを削除</strong>
```sql:mysql
mysql> DROP TABLE [テーブル名];
```
<br>

<strong>🌹テーブル内のフィールドを削除</strong>
```sql:mysql
mysql> ALTER TABLE [テーブル名] DROP COLUMN [フィールド名];
```
<br>

<strong>🌹テーブルの[id]が9番目（○番目）を削除する</strong>
```sql:mysql
mysql> DELETE FROM [テーブル名] WHERE [id] = 9;
```
<br>

<strong>🌹既存テーブルにカラムを追加する</strong>
```sql:mysql
mysql> ALTER TABLE [テーブル名] ADD [新規カラム名] [型] オプション;
```
<br>

<strong>🌹既存テーブルにカラムを追加する（指定したフィールドの後ろに）</strong>
```sql:mysql
mysql> ALTER TABLE [テーブル名] ADD [列名][属性] AFTER 列名Ａ;
```
<br>

<strong>🌹カラムの後に別のカラムを追加</strong>
```sql:mysql
mysql> ALTER TABLE [テーブル名] ADD [カラム名] [型] NULL AFTER [このカラムの後に追加、の時のカラム名];
```
<br>

<strong>🌹mysqlにログインしていない状態でデータベースをエクスポート</strong>
```console:console
$ mysqldump -u [ユーザ名] -p [データベース名] > /出力先ディレクトリ/ファイル名.sql
```
<br>

<strong>🌹ユーザ一覧表示</strong>
```sql:mysql
mysql> SELECT user, host FROM mysql.user;
```

<br>

<strong>🌹mysqlを終了</strong>
```sql:mysql
mysql> exit
```

## 6. PHP関連

<strong>🌹パスワードをハッシュ化する</strong>
```console:console
$ php -r "echo password_hash('パスワード',PASSWORD_DEFAULT)"
```

## 7. cakePHP関連

<strong>🌹cakePHP立ち上げ</strong>
```console:console
$ bin/cake server
```
<br>

<strong>🌹ArticlesControllerを作る</strong>
```console:console
$ bin/cake bake controller Articles
```
# まとめ
上記のコマンドは私がよく使う、個人的ベストセレクションな一覧なので、「これ一般的じゃないよ」「あの一般的なコマンドないの！？」と思う方もいるかもしれませんが、あしからず。

この記事でまとめたコマンド一覧は、下記の記事「cakePHP4でカートを作ってみる」の制作工程の1つでまとめたものになります。

https://qiita.com/may9create/items/28aeef20dd59bcdaa6b5