はじめての黒い画面（Shell for Linux）

# はじめに
Linuxを業務で利用する際に障壁になるのが **黒い画面** （Shell）であることは間違いありません。
いきなりこの黒い画面で何ができるのか分からず頭も手もフリーズしてしまうというのは誰しもが通る道です。

このShellというモノは本当に万能で、様々なプログラムが走る土台となっています。

そして勿論、WindowsのExplorerやMacのFinderと同じようにディレクトリ（フォルダと同義語です）を行き来し、ファイルを作成したり削除したりすることができます。

本記事では、Shell上でディレクトリを行き来し、ファイルやディレクトリを作成・削除してみる例を示します。

# いざShellの中へ
とりあえず、Linuxの黒い画面（Shell）を開いてみましょう。
windowsな方はWSLを、macな方はターミナルを開いてください。

WSLまで辿り着けない方は、 [GCP Cloudshell](https://cloud.google.com/shell/docs/using-cloud-shell?hl=ja) を使ってください。無料で使えます。
GCPが嫌な人は [AWC CloudShell](https://docs.aws.amazon.com/ja_jp/cloudshell/latest/userguide/welcome.html) を使ってください。やっぱり無料です。

注意: Windowsの方へ、コマンドプロンプトとPowerShellはここでは取り扱いません。。

## pwd（ここはどこ？）
Explorer/Finderを使う場合でも、「このディレクトリはどこにあるんだろう...」というのはまず気になると思います。
このときに利用できるのが `pwd` コマンドです。
`pwd` と入力し、エンターキーを入力してください。

```shell
hikaru ~ $ pwd
/Users/hikaru
```

なるほど、今は `Users` ディレクトリ配下の `hikaru` ディレクトリにいるということが分かりました。

## ls（このディレクトリにはどんなファイルがあるの？）
このディレクトリの場所はわかりましたが、何が含まれているのかは全く分かりません。
このときに利用できるのが `ls` コマンドです。
`ls` と入力し、エンターキーを入力してください。

```shell
hikaru ~ $ ls
Applications	Desktop		Documents	Downloads	Library		Movies		Music		Pictures	Public		Workspace
```
なるほど、このディレクトリにはApplications, Desktop, ..., Workspaceのディレクトリ or ファイルがあるんだな、というのが分かりました。

### ファイルかディレクトリかを見分けたい場合
ファイルかディレクトリかを見分けたい場合は `-F` オプションを使います。
フォルダは末尾に `/` が付きます。

```shell
hikaru ~ $ ls -F
Applications/	Desktop/	Documents/	Downloads/	Library/	Movies/		Music/		Pictures/	Public/		Workspace/
```

今表示されているものはすべてディレクトリであることが分かります。

### 隠しファイルを表示したい場合
隠しファイルを表示したい場合は `-a` オプションを使います。

```shell
hikaru ~ $ ls -a
.bash_profile	Applications	Desktop		Documents	Downloads	Library		Movies		Music		Pictures	Public		Workspace
```

### リスト表示で出したい場合
リスト表示で出したい場合は `-l` オプションを使います。

```shell
hikaru ~ $ ls -l
drwxr-xr-x+ 25 hikaru  sample    800  4  4 16:13 ./
drwxr-xr-x   6 root    root      192 11 17 11:33 ../
srwxr-xr-x   1 hikaru  sample      0  4  2 00:27 Applications
...
```

### オプションを組み合わせたい場合
上記の `-` から始まるオプションは任意に組み合わせることができます。
`ls -a -F -l` や `ls -aFl` など。
**他のプログラムでもよく使う技** なので、覚えておいてください。

```shell
hikaru ~ $ ls -a -F -l
drwxr-xr-x+ 25 hikaru  sample    800  4  4 16:13 ./
drwxr-xr-x   6 root    root      192 11 17 11:33 ../
srwxr-xr-x   1 hikaru  sample      0  4  2 00:27 .bash_profile
srwxr-xr-x   1 hikaru  sample      0  4  2 00:20 Applications/
...
```

## cd（ディレクトリを移動したい）
現在のディレクトリが分かって、どのようなディレクトリがあるかが分かったら、次は当然ディレクトリを移動してみたくなります。
このときに利用できるのが `cd` コマンドです。
たとえば、 `Downloads` ディレクトリに移動したい場合は `cd Downloads` と入力し、エンターキーを入力してください。

また、ディレクトリを移動したことを確認するために、 `pwd` コマンドも実行してみましょう。

```shell
hikaru ~ $ cd Downloads

hikaru Downloads $ pwd
/Users/hikaru/Downloads
```

### 1つ上のディレクトリへ移動したい
配下にいるディレクトリへの移動方法は分かりました。
それでは、現在のディレクトリの1つ上の階層のディレクトリへ移動するにはどうすればいいでしょうか？

上のディレクトリは `..` で表現します。
`cd ..` を実行してみましょう。合わせて `pwd` も実行し、ディレクトリを移動できたことを確認しましょう。

```shell
hikaru Downloads $ pwd
/Users/hikaru/Downloads

hikaru Downloads $ cd ..

hikaru ~ $ pwd
/Users/hikaru
```

また、2つ上の階層のディレクトリへ移動する場合は、 `cd ../..` で移動できます。
`../` を重ねれば重ねるだけ上の階層へ移動できます。

```shell
hikaru Downloads $ pwd
/Users/hikaru/Downloads

hikaru Downloads $ cd ../..

hikaru /Users $ pwd
/Users
```

### ディレクトリのショートカット
以下のディレクトリのショートカットは頻用するので覚えておきましょう。

|ショートカット|意味|
|-|-|
|`.`|今のディレクトリ|
|`..`|1つ上の階層のディレクトリ|
|`~`|ホームディレクトリ|