【自分メモ】Ubuntu18.04のディレクトリ構成とマメ知識

自分メモだけど公開して特に問題のない駄文。
調べた事をメモしてるだけ。

## 経緯

・昔AWSのEC2上で管理者権限とかについてだいぶ調べた、
・時間もたってだいぶ忘れていたのでrootユーザー権限周りから勉強しようと思った
・[この記事](https://eng-entrance.com/linux-root)読んで rm -r を知った
・rm -r bin をする際にbefore afterを調べたら中身が思いのほか興味深かった
・ついでにdirectory構造含め全部調べたくなった
(Docker でubuntu18.04のイメージ引っ張ってやってるので、ローカルへのダメージはない)

## フォルダ構成
/ ディレクトリでls打ったら下記になった。

```
ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
```

中身を一つ一つ見てく


### ls -a bin

![ls_bin.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138270/fda69444-e4bf-5dd7-6ee2-b3e9d621c31a.png)


色々入っている。よく見ると ls やmkdir, echo cp など定番の物も見受けられる。

[ここによると](https://qiita.com/totzyuta/items/84d610f56129a186f0c5)bin = binary code らしい。
要はbinaryで書かれたプログラムのリスト。
~~vimで中身見たかったけど、vim自体がインストールされてないって言われた~~

### ls -a boot

```
.  ..
```
なんじゃこりゃ？

[某所のFHS2.2で規定されたディレクトリ](https://www.atmarkit.co.jp/ait/articles/0108/07/news002.html)によると、
ここは起動に必要なファイルが入っているらしい。

### ls -a dev

```
.  ..  console  core  fd  full  mqueue  null  ptmx  pts  random  shm  stderr  stdin  stdout  tty  urandom  zero
```

色々ある。
ここはデバイスファイルが入っているらしい。

### ls -a etc

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138270/1a7ec769-4ce6-1364-debc-6fbd67071216.png)

こっちも色々ある。
設定ファイルがあるらしいので、まぁ多くなるよね

### ls -a home

```
.  ..
```

ユーザーのホームディレクトリ。初期は空でいいよね確かに。

### ls -a lib

```
.  ..  init  lsb  systemd  terminfo  udev  x86_64-linux-gnu
```

共有ライブラリがあるらしい。

### ls -a lib64

```
.  ..  ld-linux-x86-64.so.2
```

ここも共有ライブラリらしい。

### ls -a media

```
.  ..
```




### ls -a mnt

```
.  ..
```

一時的なマウントポイント

### ls -a opt 

```
.  ..
```

追加アプリケーション。そりゃ空だ。

### ls -a proc

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138270/c9351d32-f184-7df2-d210-218eb19a0375.png)

プロセス情報など

### ls -a root  

```
.  ..  .bashrc  .profile
```

.bashrc と .profileはここにあった！

rootユーザー用のホームディレクトリ

### ls -a run 

```
.  ..  lock  mount  systemd  utmp
```



### ls -a sbin

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138270/3f86336e-1cc4-3732-8161-6325dbe35dfc.png)

システム管理用コマンドなど

### ls -a srv

```
.  ..
```



### ls -a sys

```
.  ..  block  bus  class  dev  devices  firmware  fs  hypervisor  kernel  module  power
```


### ls -a tmp

```
.  ..
```

一時的なファイル

### ls -a usr

```
.  ..  bin  games  include  lib  local  sbin  share  src
```

各種プログラムなど

### ls -a var

```
.  ..  backups  cache  lib  local  lock  log  mail  opt  run  spool  tmp

```

変更されるデータ

### おまけ ls -a usr/bin


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138270/8797b7ee-6831-6899-4701-895a1bfcd608.png)


usr/binの方がbinよりコマンド多いね。

### おまけ rm bin / rm -r bin

```
$ rm bin
rm: cannot remove 'bin': Is a directory
$ rm -r bin
$ ls bin
bash: /bin/ls: No such file or directory
$ ls
bash: /bin/ls: No such file or directory
```

rm bin で削除できなかったフォルダを、
rm -r bin で再帰的(関連する下位ファイルも全部)削除したら、
コマンドの入っているフォルダ削除したんで ls が効かなくなったという話。

**みんな！** **rm** **-r** **directory** **は使わない方が賢明だよ！！！**

ちなみに、Docker のコンテナ上でインタラクティブに作業しているので、
別のターミナルから docker stop <container> 使うと、
作業中の画面には exit が出てインタラクティブ解除になります。
やっぱDockerは覚えておくべきだった。

~~もっとひどい事例は[こちら！](http://ivystar.jp/os/linux/%E9%AD%94%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%80%8Crm-rf-%E3%80%8D%E3%82%92%E5%94%B1%E3%81%88%E3%81%A6%E3%81%97%E3%81%BE%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%AF/)~~
~~このコマンドを試したら、警告が出て記事の通りにならなかった~~

ちなみに、cd は機能するので、 usr フォルダにも移動できたりする

```
$ cd usr  # これはOK
$ pwd  # これもOK
/user
```

[ここによると](https://qiita.com/totzyuta/items/84d610f56129a186f0c5)、どうやらbinに入っている外部コマンドとは別のシェルの機能らしく、
内部コマンド/組み込みコマンドと呼ばれるらしい。

### おまけ ls の色の意味

[ここからのほぼ引用](https://www.mm2d.net/main/prog/linux/ls-08.html)

```
ls -l
```

を叩くと、以下の様にディレクトリの閲覧権限までが見られる。
その中で、色ついてるディレクトリがあり「これはなんだ？」と思って調べた次第。
--color オプションはあってもなくても結果同じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138270/26467251-7f5f-eacd-ce91-220339f4f81f.png)

上記の表から一部引用(続きは上記リンクをクリックしてみてください)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138270/74405b36-bef5-94b0-fd7f-641d7c2c457f.png)

この表によると tmp は緑背景/青文字っぽいので「Otherのライトアクセスが可能なディレクトリ」となります。


### 以上

コメントが書いてないのは、取り合えず用途のわからなかったディレクトリ。
そのうち追記する(かも)。