มาตรฐานสำหรับปัญหาเหล่านี้เป็นไฟล์ลำดับชั้นมาตรฐาน มันเป็นเอกสารที่ค่อนข้างใหญ่ โดยทั่วไป (และคร่าวๆ) เส้นทางมาตรฐานบน Linux คือ:
/bin& /sbinสำหรับโปรแกรมที่สำคัญสำหรับระบบปฏิบัติการ, sbin สำหรับผู้ดูแลระบบเท่านั้น;
/usr/bin& /usr/sbinไม่ใช่โปรแกรมที่มีความสำคัญ sbin สำหรับผู้ดูแลระบบเท่านั้น
/varมีไว้สำหรับข้อมูลการใช้ชีวิตสำหรับโปรแกรม มันอาจเป็นข้อมูลแคชข้อมูลสปูลข้อมูลชั่วคราว (ยกเว้นว่ามันอยู่ใน/tmpซึ่งจะถูกลบทุกครั้งที่รีบูต) ฯลฯ
/usr/localใช้สำหรับโปรแกรมที่ติดตั้งในเครื่อง โดยทั่วไปจะโฮสต์โปรแกรมที่เป็นไปตามมาตรฐาน แต่ไม่ได้จัดทำแพคเกจสำหรับระบบปฏิบัติการ แต่จะติดตั้งด้วยตนเองโดยผู้ดูแลระบบ (ใช้ตัวอย่าง./configure && make && make install) และสคริปต์ผู้ดูแลระบบ
/optสำหรับโปรแกรมที่ไม่ได้ทำแพคเกจและไม่เป็นไปตามมาตรฐาน คุณแค่เอาไลบรารี่ทั้งหมดมารวมกับโปรแกรม มันมักจะเป็นวิธีการแก้ปัญหาที่รวดเร็วและสกปรก แต่ก็สามารถใช้สำหรับโปรแกรมที่ทำด้วยตัวเองและที่คุณต้องการมีเส้นทางที่เฉพาะเจาะจง คุณสามารถสร้างเส้นทางของคุณเอง (เช่น/opt/yourcompany) ภายในเส้นทางได้และในกรณีนี้คุณควรลงทะเบียนเป็นส่วนหนึ่งของเส้นทางมาตรฐาน
/etc ไม่ควรมีโปรแกรม แต่ควรกำหนดค่า
หากโปรแกรมของคุณเฉพาะกับบริการที่ให้บริการ/srvอาจเป็นตำแหน่งที่ดีสำหรับพวกเขา ตัวอย่างเช่นฉันต้องการใช้/srv/wwwสำหรับเว็บไซต์มากกว่า/var/wwwเพื่อให้แน่ใจว่าไดเรกทอรีจะมีเฉพาะข้อมูลที่ฉันเพิ่มเองและไม่มีสิ่งใดที่มาจากแพ็คเกจซอฟต์แวร์
มีความแตกต่างบางอย่างระหว่างการแจกแจง ตัวอย่างเช่นระบบ RedHat ใช้libexecไดเรกทอรีเมื่อระบบ Debian / Ubuntu ไม่ทำ
FHS ส่วนใหญ่ใช้โดยลีนุกซ์ดิสทริบิวชั่น (จริง ๆ แล้วฉันไม่รู้จักระบบปฏิบัติการอื่นที่สอดคล้องกับมัน) ระบบ Unix อื่น ๆ ไม่ปฏิบัติตาม ตัวอย่างเช่นระบบ BSD มักจะใช้/usr/localสำหรับโปรแกรมสำเร็จรูปซึ่งไม่ใช่กรณีของ Linux Solaris มีเส้นทางมาตรฐานที่แตกต่างกันมาก
ฉันขอแนะนำให้คุณอ่านเอกสาร FHS ที่ฉันลิงค์ด้านบนหากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้