コマンドラインを使うための基本

# 最初に
普段様々な便利ツールを使って仕事をしていますが、コマンドラインもできるとやれることの幅が広がるため、基本的な使用方法をまとめてみました。
コマンドラインについては、オプションをつけると色々できますし、ほかのコマンドとの組み合わせで色々できるのでもっと知りたいって人は、どんどん検索してみてください。

<font color="red">:warning:操作についてはMacで検証しているため、Windowsでの動作は保証しかねます。ご注意ください。</font>
#コマンドを使うときの基本的なこと



## <font color="mediumseagreen"><i class="fa fa-pencil"></i></font> コマンドは半角か全角なのか？
スペースも文字も半角です。

## <font color="mediumseagreen"><i class="fa fa-pencil"></i></font> ファイル名の指定方法がわからない
絶対パス・または相対パスで入れられます。
<pre>//testフォルダへ移動する
$ cd test

//rootへ移動する
$ cd /

//testフォルダへ移動する
$ cd /home/sample/test/</pre>

あまり遠いパスのファイルの操作をするときに不安になることもあるので、慣れない場合は、cdで地道に同じ階層まで移動。そこでコマンド操作をするのが初心者は安心感があると思います。
ちなみにパスはtest/test2/test3/のように、複数分の階層のパスを書いてもOKです。




# 具体的な使い方


## <font color="tomato"><i class="fa fa-flag"></i></font> CASE1　階層の移動
作業をするフォルダへ移動するためのコマンドです。
コマンドラインを使用するときは、その対象があるフォルダへ移動するか、使用するコマンドの対象ファイルやフォルダへのパスを含めて書く必要があります。

パスがわかれば移動は必要ありませんが、最初は移動して同じ階層でコマンドラインを使うほうが安心だと思います。
コマンドに慣れるためにも、まずはこのcdコマンドで移動から始めてみるといいと思います。

<pre>
//cdはchange directory。testフォルダへ移動します。
$ cd test

//これは一つ上の階層にもどる
$ cd ../ 

//これは２つ上の階層にもどる
$ cd ../../
</pre>

## <font color="tomato"><i class="fa fa-flag"></i></font> CASE2　移動してたらどこにいるかわからなくなった
黒い画面を開いていると、今どこ見てる？ってことがよくあるので、そのときの現在位置をパスで表示するpwdコマンドと、慣れ親しんだFinderでも確認できる方法です。

```text:現在のパスが表示されます
$ pwd
```

```text:結果
/Users/user_name/Desktop
```

pwdだけで位置を察すことができなかった人は、open .でFinderを開くと安心感がでるかもしれないです。

```text:Finderが開きます
$ open .
```


## <font color="tomato"><i class="fa fa-flag"></i></font> CASE3　次の階層がわからなくなった
cd コマンドで移動していたんだけど、次のフォルダってなんだっけ？ってときに。
ローカル環境を見ていて、Finderで確認できればいいんですが、場合によってはサーバーを見ている場合は難しいと思うので、現在の階層のファイルやフォルダを表示します。

```text:フォルダ内を表示
$ ls
```

```text:結果
sample.png	test.txt
```
または

```text:フォルダ内を表示、さらに詳細情報も表示
$ ls -la
```

```text:結果
total 16
drwxr-xr-x   4 user_name  test  136 11  8 19:34 .
drwx------+ 23 user_name  test  782 11  8 19:33 ..
-rw-r--r--   1 user_name  test    5 11  8 19:34 sample.png
-rw-r--r--   1 user_name  test    5 11  8 19:33 test.txt
```

## <font color="tomato"><i class="fa fa-flag"></i></font> CASE4　さっきのコマンドを思い出したい
過去のコマンドがずらっと表示されます。
<pre>$ history</pre>

```text:結果
  513  mkdir sample
  514  ls
  515  cd sample/
  516  ls
  517  vim test.txt
  518  vim sample.png
  519  ls
  520  ls -la
  521  ls
  522  history 
```

##  <font color="tomato"><i class="fa fa-flag"></i></font> CASE5　ファイルの移動
<pre>$ mv 【移動元ファイル名】 【移動先ファイル名】</pre>
【移動先ファイル名】を元のファイルと違う名前に変更すると、リネームが同時にできます。

### 1：下の階層へファイルを移動する
<pre>//index.htmlを、testフォルダの中へ移動する
$ mv index.html test/index.html

または

//index.htmlを、testフォルダの中へ移動する
$ mv index.html test/.  

でも同じ結果になります。
</pre>


###2：下の階層へファイルをリネームして、移動する
```text:index.htmlを、testフォルダにtest.htmlへリネームして移動する
$ mv index.html test/test.html
```




##  <font color="tomato"><i class="fa fa-flag"></i></font> CASE6　ファイルの表示・編集
ローカルのファイルは基本的にエディターで開けばいいのですが、サーバーで直接ファイルを見たいときなどに使えます。
また、たまに「.」から始まるファイルとか、エディターじゃ普通に開けないものがあります。
Gitだと.gitignoteという、Gitの管理対象から外すための指定をするファイルなども拡張子が無いのですがこれで開けます。

###1：表示
```text:index.htmlの中身を表示する
$ cat index.html
```
###2：編集
<pre>//index.phpをエディターで開く
$ vim index.php

 ※vimはviでもOKです。

【vimの画面で】
//インサートモードに入る（編集状態）
i

//ノーマルモードに戻る
esc

//保存して終了
:wq

または

 //保存しないで終了
:q</pre>

違いはcatがファイルの中身の表示だけを行い、vimはエディターが起動するので編集も可能なコマンドになります。
vimの場合は、ファイルがない場合は新規でファイルを作成できてしまうので、なれない方はcatのほうがいいです。
ちなみにvimはカスタマイズもできる高機能なエディター（らしい）ので、これを使いこなすとサーバーのファイルを直接コーディングすることもできます。

上記にも記載しましたが、vimで開いた場合は【esc】→【:q】で保存せずに終了することができます。（【:q】に関しては同時に押す必要はありません、【:】 → 【q】の入力でOKです）
普通のローカルファイルを開くエディターと違って、保存などもコマンドで操作するため操作が慣れないと大変かもしれません。
vimをもっと使ってみたい方は、使い方は別途検索してみてください！


##  <font color="tomato"><i class="fa fa-flag"></i></font> CASE7　フォルダ・ファイルの削除
###1：フォルダの削除
```text:testフォルダの削除
$ rm -d test
```
###2：ファイルの削除
```text:index.htmlを削除
$ rm index.html
```
##  <font color="tomato"><i class="fa fa-flag"></i></font> CASE8　ファイルの作成
```text:index.htmlを作成（すでに同名のファイルがある場合は、ファイルが開く）
$ vim index.html
```

上記で使ったvimコマンドの編集状態からの抜け方は、「CASE6　ファイルの表示・編集」に記載してますので、ご参考にしてください。