LoginSignup
1
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-26

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

経緯

・昔AWSのEC2上で管理者権限とかについてだいぶ調べた、
・時間もたってだいぶ忘れていたので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

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

ここによるとbin = binary code らしい。
要はbinaryで書かれたプログラムのリスト。
vimで中身見たかったけど、vim自体がインストールされてないって言われた

ls -a boot

.  ..

なんじゃこりゃ?

某所のFHS2.2で規定されたディレクトリによると、
ここは起動に必要なファイルが入っているらしい。

ls -a dev

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

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

ls -a etc

image.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

プロセス情報など

ls -a root

.  ..  .bashrc  .profile

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

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

ls -a run

.  ..  lock  mount  systemd  utmp

ls -a sbin

image.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

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 使うと、
作業中の画面には exit が出てインタラクティブ解除になります。
やっぱDockerは覚えておくべきだった。

もっとひどい事例はこちら!
このコマンドを試したら、警告が出て記事の通りにならなかった

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

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

ここによると、どうやらbinに入っている外部コマンドとは別のシェルの機能らしく、
内部コマンド/組み込みコマンドと呼ばれるらしい。

おまけ ls の色の意味

ここからのほぼ引用

ls -l

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

image.png

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

image.png

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

以上

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0