# 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`` 暫存的目錄, 通常在這資料夾的東西檔案是比較大且存放的時間比較長的, 有些系統會自動清除目錄底下的內容.