# 檔案階層式架構 ###### tags: `Linux` `FHS` `階層架構` **根據資料的可分享性跟異動性分類** 1. 開機用的指令 * /bin (man1) * /sbin (man8) 2. 系統正常運作要執行的指令 ==常用== * /usr/bin * /usr/sbin 3. 自行編譯的指令 * /usr/local/bin * /usr/local/sbin * openCV 4. 第三方軟體(免費) ==大量使用== * /usr/local/軟體名稱/bin * /usr/local/軟體名稱/sbin * hadoop * spark 5. 其他廠商授權軟體 * /opt/廠商/軟體名稱/bin * /opt/廠商/軟體名稱/sbin **顏色** :::danger 紅底 : 會強制切換成root執行該++指令++,千萬不能執行。==會離職== * SUID : Set UID * passwd (修改密碼) * 在檔案權限裡,owner會變成s ::: :::warning 黃底 : 會切換成某個群組執行該**指令**,不會離職。 * SGID : Set GID * 在檔案權限裡,group會變成s ::: :::success 綠底 : 只有root跟owner可以刪除/更動該目錄,裡面的資料不會被誤刪 * SBIT : Sticky Bit * /tmp * 在檔案權限裡,other會變成t ::: 白字 : 一般檔案 深藍 : 目錄 綠字 : 執行檔 水藍 : 捷徑 紅字 : 壓縮檔 **圖示** ```shell= ______ _______ | | | | | / |-----| /bin | 1 |______| | |_______| | _______ | | | |__| /sbin | 1 | |_______| | _______ _______ | | | | | |__| /usr |__| /bin | 2 | |_______| |_______| | | _______ | | | | | |______| /sbin | 2 | | |_______| | | _______ _______ | | | | | | | |______| /local|_____| /bin | 3 | |_______| | |_______| | | _______ | | | | | |__| /sbin | 3 | | |_______| | | _________ _______ | | | | | | | |__| /hadoop |_____| /bin | 4 | | |_________| | |_______| | | | _______ | | | | | | | |__| /sbin | 4 | | |_______| | | _________ _______ | | | | | | | |__| /spark |_____| /bin | 4 | |_________| | |_______| | | _______ | | | | | |__| /sbin | 4 | |_______| | _______ | | | |__| /opt | 5 |_______| ``` 備註 : usr : Unix Software Resource --- # 重要目錄 1. 管理者目錄 * /root 2. 家目錄 * 一個人一個家,放任何東西都沒關係 * **不能用root身分**看別人家。==侵犯隱私,會離職== * /home * ~ * 個人設定檔 * ~/.profile * 會呼叫 ==~/.bashrc== * 所有的第三方設定檔都放這裡,最後被呼叫,會蓋掉共用設定檔 * ==hadoop,spark大量使用== 3. 系統設定檔 * 密碼,網路,檔案,設定檔...等都放這 * /etc * 倉庫設定檔 * 裡面都放URL 1. 主倉庫設定檔 * /etc/apt/sources.list 2. 第三方倉庫設定檔 * /etc/apt/sources.list.d/ * MariaDB * /etc/apt/source.list.d/mariadb.list * 共用設定檔 * /etc/profile 1. 會呼叫/etc/bash.bashrc 2. 會呼叫 ==/etc/profile.d/*.sh== * ==JAVA_HOME的PATH放這裡(openjdk8.sh)== 4. Unix Software Resource * /usr * /usr/share * 與架構無關的資料或是文件說明都放這裡 * /usr/share/doc * /usr/share/python3 5. 裝置 * /dev * dev/null * ==焚化爐==,好用 **圖示** ```shell= ______ _______ | | | | | / |-----| /root | |______| | |_______| | _______ ____________ | | | | | |__| /home |_____| /.profile | 個人設定檔 | |_______| | |____________| | | | | | | 呼叫 | | ______↓_____ | | | | | |__| /.bashrc | 個人設定檔(最後被呼叫) | |____________| | | _______ ____________ _________________ | | | | | | | |__| /etc |_____| /apt |_____| /source.list | 主倉庫設定檔 | |_______| | |____________| | |_________________| | | | _________________ ________ | | | | | | | | | |__| /source/list.d |__| /*.list| 第三方倉庫設定檔 | | |_________________| |________| | | ____________ | | | | | |__| /profile |__ 共用設定檔 | | |____________| | | | | | | | | 呼叫 | | | ______↓_____ | | | | | | 呼叫 | |__|/bash.bashrc| | | | |____________| | | | ____________ | _______ | | | |←-| | | | |__| /profile.d |_____| /*sh | JAVA_HOME的PATH放這裡(openjdk8.sh) | |____________| |_______| | _______ ____________ _______ | | | | | | | |__| /usr |_____| /share |_____| /doc | 文件說明 | |_______| |____________| |_______| | _______ ____________ | | | | | |__| /dev |_____| /null | 焚化爐 |_______| |____________| ``` --- # 參考資料 * 鳥哥的私房菜 * [第五章、Linux 的檔案權限與目錄配置](http://linux.vbird.org/linux_basic/0210filepermission.php) * [第六章、Linux 檔案與目錄管理](http://linux.vbird.org/linux_basic/0220filemanager.php) * [檔案系統階層標準WIKI](https://zh.wikipedia.org/wiki/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84%E6%A0%87%E5%87%86)