# Linux 檔案架構
`` /bin ``
bin 是 binary 的縮寫,裡面通常是可執行的檔案。
example: cd ls
`` /boot ``
啟動Linux的系統檔案 efi, grub都在這裡。
``/dev``
device 的縮寫,系統設備裝置檔案都在此目錄中。
Example: usb Driver, CPU, Disk , SDA , IDE , RAM.
``/etc``
此目錄存放系統以及軟體的設定檔 .conf, sources.list.d 這類儲存 repo 的資訊也都在這裡面,
修改目錄底下的內容時請記得加上 sudo.
``/etc/passwd``
紀錄系統中每一個 user 的行為, 包含 User ID, Group ID.
``/etc/shadow``
保存 Linux 密碼相關資訊, 每行都會對應到 /etc/passwd.
``/etc/fstab``
設定檔案(硬碟)掛載 mount
``/etc/hosts``
設定 ip 以及 網域名稱 domain
``/etc/os-release``
查詢 Linux distro
``/home``
每個 user 的個人文件, 每個 user 的主目錄都是以自己的名稱命名, 像是 /home/twtrubiks (username 就是 twtrubiks)
``/lib``
類似 windows 內的 .dll 檔案, 核心函式庫 (library).
``/lib64``
64 位元的系統會有這個資料夾, 核心函式庫(library).
``/lost+found``
系統如果不正常產生錯誤時, 會將那些丟失的片段放在這個目錄中, 通常這個目錄會自動出現在裝置的目錄下,
就像是你的 usb 中都會看到這個目錄, 它是砍不掉的目錄.
``/media``
可移動的掛載點, 通常會自動把額外的硬碟 or usb 掛載到該文件下.
``/mnt``
使用在臨時掛載的地方, 通常這個目錄底下是空的.
``/opt``
多數的第三方軟體會安裝到這邊, 像是 brave, teamviewer, 如果你想測試最新的軟體, 可以直接安裝在
該目錄底下, 測試完之後, 直接軟體目錄刪除即可, 不會影響到系統的運作, 並不是每個系統都會建立這個目錄.
``/proc``
此目錄底下為系統核心和程式執行的狀態, 大多為文檔, 像是 /proc/cpuinfo 保存了有關 CPU 的資訊.
``/root``
根用戶的主目錄, 和 /home 類似.
``/sbin``
system binary 的縮寫, 通常是系統管理員才能訪問, 因為這裡面多數都是系統管理指令,
像是 shutdown reboot ip mount fdisk.
``/tmp``
該目錄是讓一般使用者暫時存放檔案的地方, 有些軟體就是使用 /tmp 當作預設的目錄, 記住, 重要資料
不要放此目錄, 通常在這資料夾的東西檔案是比較小且存放的時間比較短的, 不少系統清除 /tmp
是非常快的, 甚至實現把 /tmp 存放在 ram 中 (加快讀寫速度).
``/usr``
Unix Software Resource 的縮寫,
/usr 是系統核心所在, 很重要的一個目錄,包含了相當多的系統資訊, 程式, 指令.
以下介紹 /usr 目錄結構,
``/usr/bin``
所有可執行的檔案, sudo ssh ssh-agent gcc python 這些都在裡面.
``/usr/sbin``
類似 /sbin.
``/usr/share``
共享文件都在此目錄, 像是字體, 檔案, icon.
``/usr/share/icons``
應用程序的 icon.
``/usr/share/fonts``
字體文件, 當前用戶的字體可以是在 ~/.fonts 底下.
``/usr/local``
當你安裝完 Linux 之後, 安裝軟體(手動安裝), 預設的安裝位置就是 /usr/local, 如果是更新,
通常位置會在 /usr/local/bin 這裡 (與原先的做區別).
``usr/src``
linux 內核的程式源碼和說明文件.
``/var``
變量(動態)文件, 包含系統運行時要改變的數據資料 (像是系統日誌).
/var 的存在讓 /usr 目錄只為讀的掛載可能.
以下介紹 /var 目錄結構,
``/var/cache``
應用程式的快取.
``/var/lib``
該目錄保存系統或某個 process 運行的狀態, 用戶不允許去修改裡面的內容.
``/var/local``
存放 /usr/local 中應用程式的動態(可變)資料.
``/var/lock``
鎖文件, 當某個 process 發現這個鎖的時候, 將不會嘗試去使用這個文件.
``/var/log``
系統日誌文件.
``/var/run``
保存 process 的 PID 編號.
``/var/crash``
當一個應用程式已崩潰的時候, 可以透過此文件查看原因.
``/var/tmp``
暫存的目錄, 通常在這資料夾的東西檔案是比較大且存放的時間比較長的, 有些系統會自動清除目錄底下的內容.