ความหมายของไดเรกทอรีบน Unix และ Unix เช่นระบบ


112

ฉันใช้ลีนุกซ์มาสองสามปีแล้ว แต่ฉันก็ยังไม่ทราบว่าที่มาหรือความหมายของชื่อไดเรกทอรีอยู่ในระบบ Unix และ Unix อย่างไร เช่นสิ่งที่ไม่etcยืนหรือvar? ไหนที่ไม่optชื่อมาจากไหน?

และในขณะที่เราอยู่ในหัวข้อต่อไป ใครสามารถให้คำอธิบายที่ชัดเจนของสิ่งที่ไดเรกทอรีที่ดีที่สุดใช้สำหรับสิ่งที่ บางครั้งฉันสับสนว่ามีการติดตั้งซอฟต์แวร์หรือไดเรกทอรีที่เหมาะสมที่สุดในการติดตั้งซอฟต์แวร์


สิ่งที่ตลก unix คือการล้อเลียน multics และเป็นหนึ่งในการเอาชีวิตรอด ... ฉันเดาว่า multics นั้นอยู่ใกล้แค่เอื้อม
SparK

คำตอบ:


134

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเลย์เอาต์ของระบบไฟล์ Linux ดูที่มาตรฐานระบบแฟ้ม (ตอนนี้ที่เวอร์ชัน 2.3 โดยมีเวอร์ชันเบต้า 3.0ติดตั้งใน distros ล่าสุด) มันอธิบายบางส่วนของชื่อที่มาจาก:

  • / bin - bin aries
  • / boot - ไฟล์ที่จำเป็นสำหรับการบู๊ตไอเอ็นจี
  • / dev -ไฟล์น้ำแข็ง dev
  • / etc - Et คเสนอชื่อเข้าชิง ชื่อนี้สืบทอดมาจาก Unixes ที่เก่าที่สุดซึ่งเมื่อมันกลายเป็นจุดที่จะวางไฟล์ config
  • / home - ที่เก็บโฮมไดเร็กตอรี่
  • / lib - ที่ไหนรหัส lib raries จะถูกเก็บไว้
  • / media - ไดเร็กตอรี่ที่ทันสมัยกว่า, แต่ที่ซึ่งสื่อแบบถอดได้ถูกเมาท์
  • / mnt - ตำแหน่งของระบบไฟล์ชั่วคราวคือ m ou nt ed
  • / เลือก - ที่การเลือก ional ซอฟต์แวร์ add-on มีการติดตั้ง สิ่งนี้ไม่ต่อ/usr/local/เนื่องด้วยเหตุผลที่ฉันจะไปในภายหลัง
  • / run - ที่เก็บข้อมูลตัวแปรเวลาทำงาน
  • sbin / - ที่ไหน s uper-ถังราศีเมษจะถูกเก็บไว้ สิ่งเหล่านี้มักจะใช้ได้กับรูทเท่านั้น
  • / srv - แทนคำว่า " s e rv e" ไดเร็กทอรีนี้มีไว้สำหรับไฟล์สแตติกที่ให้บริการ /srv/httpจะเป็นสำหรับเว็บไซต์แบบคงที่/srv/ftpสำหรับเซิร์ฟเวอร์ FTP
  • tmp / - ที่ไหนทีอี MPไฟล์ orary อาจถูกเก็บไว้
  • / usr - ไดเรกทอรีอื่นสืบทอดมาจาก Unixes เก่ามันหมายถึง " U NIX S ystem R esources" ไม่ได้หมายถึง "ผู้ใช้" (ดู Debian Wiki ) ไดเร็กทอรีนี้ควรแบ่งได้ระหว่างโฮสต์และสามารถติดตั้ง NFS กับหลาย ๆ โฮสต์ได้อย่างปลอดภัย สามารถติดตั้งแบบอ่านอย่างเดียวได้อย่างปลอดภัย
  • / var - ไดเรกทอรีอื่นสืบทอดมาจาก Unixes เก่ามันหมายถึง " var iable" นี่คือที่เก็บข้อมูลระบบที่อาจแตกต่างกันไป สิ่งต่าง ๆ เช่นสปูลและไดเรกทอรีแคชอาจอยู่ที่นี่ หากโปรแกรมต้องการเขียนไปยังระบบไฟล์โลคัลและไม่ได้ให้บริการข้อมูลแก่ใครบางคนโดยตรงโปรแกรมจะไปที่นี่

/ opt vs / usr / local

กฎของหัวแม่มือที่ฉันเคยเห็นอธิบายไว้ที่ดีที่สุด:

ใช้/usr/localสิ่งที่ปกติจะไปลงหรือจะเอาชนะสิ่งที่มีอยู่แล้วใน/usr /usrใช้/optสำหรับสิ่งที่ติดตั้งทั้งหมดในไดเรกทอรีเดียวหรืออย่างอื่นพิเศษ


2
เอกสารตอบคำถามครึ่งแรกของฉันได้ดีมาก อย่างไรก็ตามชื่อที่ได้รับมาจากยังคงเป็นปริศนา เหตุผลที่ฉันอยากรู้คือเพราะฉันคิดว่ามันจะทำให้ฉันมีบริบทมากขึ้น
ลุค

การตั้งชื่อเป็นคำอธิบายที่เกือบทั้งหมด โดยเฉพาะถ้าคุณอ่านคำอธิบายในลิงค์นั้น
Dan Carley

3
ไม่มันไม่ใช่ มันอธิบายถึงสิ่งที่ 'etc' ใช้สำหรับ แต่ไม่ได้อธิบายว่าชื่อนั้นมาจากไหนหรือชื่ออะไร
ลุค

@ sysadmin1138 ดังนั้น/runโดยพื้นฐานแล้วอ้างอิงถึง RAM หรือไม่
Pacerier

@Pierier มันเป็นระบบไฟล์ แต่อาจจะติดตั้งอย่างปลอดภัยเป็น RAM-disk ที่กล่าวว่าหลายโปรแกรมถือว่ามีโครงสร้างชุดในนั้นดังนั้นจริง ๆ แล้วต้องมีวิริยะ
sysadmin1138

22

ในอดีต/etcย่อมาจาก "etcetera" และ/varย่อมาจาก "variable" /etcฉันคิดว่าอดีตเป็นเพราะชุดใหญ่ของไฟล์การกำหนดค่าระบบที่ไม่เกี่ยวข้องเข้าไปใน หลังเป็นเพราะไฟล์ใน/varคาดว่าจะมีการเปลี่ยนแปลง คุณสามารถเมานต์/usrและ/อ่านได้อย่างเดียว (ยกเว้นเมื่อทำการอัปเดต) แต่คุณไม่สามารถเมานต์/varอ่านอย่างเดียวได้ มันเก็บ logfiles ระบบล็อคไฟล์ไฟล์สปูลและสิ่งอื่น ๆ ที่เปลี่ยนแปลงแบบไดนามิก

คนอื่นให้คำแนะนำคุณเพื่อช่วยให้คุณเข้าใจว่าอะไรดีที่สุด


22

ขออภัยที่จะฟื้นเธรดเก่าอีกครั้ง แต่ฉันรู้สึกว่ารายละเอียดนี้เป็นคำชี้แจงที่สำคัญสำหรับผู้ค้นหาในอนาคตของข้อมูลนี้:

  • / optย่อมาจากอุปกรณ์เสริม (เช่นในแพ็คเกจเสริมเพิ่มเติม)
  • / binย่อมาจากไบนารี (มีไฟล์ปฏิบัติการที่ใช้โดยระบบปฏิบัติการ)
  • / libย่อมาจาก library (มี shared library ที่ใช้โดยระบบไฟล์และสำหรับการบูทซึ่งอาจใช้โดย executables in bin)
  • / procย่อมาจากกระบวนการ
  • / rootหมายถึงผู้ใช้รูท
  • / homeเก็บโฮมไดเร็กทอรีย่อยสำหรับผู้ใช้ที่ไม่ใช่รูทใด ๆ
  • / devย่อมาจากอุปกรณ์ (ถือเป็นพิเศษและไฟล์อุปกรณ์)
  • / tmpย่อมาจาก Temporary
  • / srvหมายถึงการให้บริการ
  • / mntหมายถึงจุดเมานท์ (เมาท์ระบบไฟล์ชั่วคราวที่นี่)
  • / include มีไฟล์ #include เช่นไฟล์ส่วนหัว (เช่น stdio.h)
  • / varหมายถึงตัวแปร
  • / etcย่อมาจาก etcetera

  • / usrย่อมาจาก Unix System Resources ( ที่มา )


คำตอบที่ดี: รวบรัดมุ่งตรงไปที่ระดับของคำถามและไม่จำเป็นต้องค้นหาลิงก์อื่น +1
Scott Biggs

ฉันไม่เคยเห็น srv มาก่อน ฉันชอบการประชุมมากกว่าการตั้งค่าตราบใดที่มันสมเหตุสมผลและถูกบังคับใช้ เห็นได้ชัดว่า Apache ไม่ได้ให้บริการไฟล์จากไดเรกทอรี / srv เสมอไป
user148298

19

ลองสิ่งนี้:

$ man hier

1
ทำได้ดีนี่. อย่างไรก็ตามเช่นเดียวกับเอกสารที่อ้างถึงในคำตอบอื่น ๆ หน้าคนนี้พูดถึงเฉพาะสิ่งที่ไดเรกทอรีใช้สำหรับ ฉันสนใจด้วยเช่นกันว่าทำไมชื่อบางชื่อที่ถูกเลือกเช่น / etc
ลุค

2
คำตอบสำหรับคำถามของคุณเกี่ยวกับ / etc อยู่ที่นี่: en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
ไม่ระบุชื่อ

6

สถานที่ที่ดีที่สุดในการค้นหาสิ่งนี้คือ Filesystem Hierarchy Standard (FHS) รุ่นล่าสุดคือ 2.3 อยู่ที่: http://www.pathname.com/fhs/pub/fhs-2.3.html



1

หากคุณสังเกตระบบปฏิบัติการยูนิกซ์หลายรสชาติกว่าที่คุณจะพบว่ามีความแตกต่างอะไรบ้างในชื่อไดเรกทอรี แต่ส่วนใหญ่จะอธิบายด้านล่าง ...

/ bin ย่อมาจากไบนารี (มีไฟล์ไบนารีและยังมีคำสั่งที่ผู้ใช้ส่วนใหญ่ใช้นอกจากนี้ยังเป็นเส้นทางเริ่มต้นสำหรับการดำเนินการคำสั่ง)

/ sbin (ซึ่งประกอบด้วยคำสั่งพิเศษซึ่งโดยทั่วไปแล้ว fired โดยผู้ใช้ที่ super)

/ lib ย่อมาจาก library (มี shared library ที่ใช้โดยระบบไฟล์และสำหรับการบูท, อาจใช้โดย executables in bin) / proc ย่อมาจากกระบวนการ (ถ้าคุณต้องการตรวจสอบเพียงตรวจสอบผู้กำกับนี้มันจะมีไดเรกทอรีหลายชื่อในตัวเลขสุ่ม ไม่มีอะไรนอกจากหมายเลขกระบวนการคุณสามารถตรวจสอบข้ามโดย ps - ef)

/ root หมายถึงผู้ใช้รูท (ไดเรคทอรีเริ่มต้นสำหรับผู้ใช้รูท) / home (ผู้ใช้ที่ไม่ใช่รูททั้งหมดมีโฮมไดเร็กตอรี่ภายใต้ไดเรกทอรีนี้) / dev ย่อมาจากอุปกรณ์ (เก็บไฟล์พิเศษและไฟล์อุปกรณ์ - คำสั่ง l หมายเลขหลักและรองจะปรากฏในไดเรกทอรีนี้พร้อมกับประเภทอุปกรณ์ที่แสดงที่จุดเริ่มต้นของแต่ละบรรทัดด้วยผลลัพธ์ ls - l B หมายถึงบล็อกอุปกรณ์พิเศษ c หมายถึงอุปกรณ์พิเศษของอักขระ) / tmp ย่อมาจาก Temporary (ทรัพยากรชั่วคราวที่จำเป็นสำหรับบางกระบวนการที่เก็บไว้ที่นี่ชั่วคราว) / mnt หมายถึงจุดเมานท์ (mount ระบบไฟล์ชั่วคราวที่นี่) / var ย่อมาจากตัวแปร (มันเก็บข้อมูลตัวแปรไดเรกทอรีที่มีการเปลี่ยนแปลงในขนาดทุกครั้ง) / opt ย่อมาจากตัวเลือก (โดยทั่วไปซอฟต์แวร์บุคคลที่สามมีการติดตั้งในไดเรกทอรีนี้) / usr ย่อมาจาก Unix System Resources

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.