มาตรฐานสำหรับปัญหาเหล่านี้เป็นไฟล์ลำดับชั้นมาตรฐาน มันเป็นเอกสารที่ค่อนข้างใหญ่ โดยทั่วไป (และคร่าวๆ) เส้นทางมาตรฐานบน 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 ที่ฉันลิงค์ด้านบนหากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้