Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

ผู้ใช้ Linux เริ่มต้นจะได้พบกับข้อมูลจำนวนมหาศาลให้เรียนรู้ เทอร์มินัลนี้คืออะไร? ฉันจะเรียกใช้การอัปเดตซอฟต์แวร์ได้อย่างไร ฉันจะเลือก distro ใด นี่เป็นคำถามทั่วไปทั้งหมด อย่างไรก็ตาม มีคำถามที่ยังคงรบกวนผู้ใช้ Linux ที่มีประสบการณ์มากขึ้น:อะไรอยู่ในแต่ละไดเรกทอรีในระบบไดเรกทอรีเสมือนของ Linux เราครอบคลุมทุกอย่างตั้งแต่ “/” ถึง “/boot” ในคำแนะนำเกี่ยวกับระบบไดเรกทอรีเสมือนของ Linux

ระบบไดเรกทอรีเสมือนของ Linux คืออะไร

Virtual Directory System คือวิธีการจัดระเบียบไฟล์และไดเร็กทอรีในระบบปฏิบัติการคอมพิวเตอร์ สาเหตุที่เรียกว่า "เสมือน" ก็คือไม่มีส่วนประกอบทางกายภาพที่แท้จริง - ใน Window คุณมีไดรฟ์ "C:" ไดรฟ์ "D:" เป็นต้น บน Linux ฟิสิคัลดิสก์ทั้งหมดจะถือเป็นไฟล์ในระบบไดเร็กทอรีเสมือนของคุณ นี่คือที่มาของคำว่า "ทุกอย่างเป็นไฟล์" แม้แต่ดิสก์ในระบบที่คุณใช้สำหรับระบบปฏิบัติการก็ยังถือว่าเป็นไฟล์

การทำความเข้าใจระบบไดเรกทอรีเสมือน

ไดเร็กทอรีราก:/

มาเริ่มกันที่จุดเริ่มต้น ไดเร็กทอรี "/" (หรือ "root") คือไดเร็กทอรีที่มีทุกอย่างในระบบ โดยเรียกใช้ cd / คุณกำลังซูมออกในระบบของคุณให้มากที่สุด เปลี่ยนเป็นไดเร็กทอรี “/” และเรียกใช้ ls สั่งการ. คุณจะเริ่มเห็นว่าฉันหมายถึงอะไร แทนที่จะเป็น "เอกสาร" "ดาวน์โหลด" หรือ "รูปภาพ" คุณจะได้รับสิ่งต่างๆ เช่น "bin" "dev" และ "home" มันจะแตกต่างกันเล็กน้อยขึ้นอยู่กับ distro ของคุณ แต่มีไดเรกทอรีหลักบางส่วนที่จะอยู่ที่นั่นเสมอ ไดเร็กทอรีทั้งหมดจากที่นี่จะมี "/" ขึ้นต้นเพราะนั่นคือรากของทุกอย่าง - จึงเป็นที่มาของชื่อ "รูท"

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

ไดเร็กทอรีไบนารี:/bin

ไดเร็กทอรี "/ bin" จะเก็บโปรแกรมไบนารีทั้งหมดไว้ในระบบของคุณ หากมองเข้าไป คุณจะเห็นคำสั่งทั่วไป เช่น cd และ ls ที่เราใช้แล้ว คุณยังสามารถค้นหาได้โดยเรียกใช้ which cd หรือ which ls คำสั่ง ส่วนใหญ่ใน distros สมัยใหม่ ไดเร็กทอรี "/ bin" จะเชื่อมโยงกับไดเร็กทอรี "/usr/bin" ไดเร็กทอรี “/usr” จะครอบคลุมในภายหลัง แต่ในระยะสั้น ไดเร็กทอรีเหล่านี้ใช้เพื่อแยกไบนารีสำหรับระบบและผู้ดูแลระบบในไดเร็กทอรี “/bin” และผู้ใช้ระบบใน “/usr/bin”

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

ไดเรกทอรีบูต:/boot

ไดเร็กทอรี "/boot" เก็บข้อมูลพื้นฐานทั้งหมดที่ระบบของคุณจะต้องเริ่มต้น เคอร์เนลทั้งหมดที่คุณติดตั้งบนระบบของคุณ ไฟล์ปรับแต่งทั้งหมดสำหรับเคอร์เนลเหล่านั้น ข้อมูลสำหรับ Grub ทั้งหมด เป็นไดเร็กทอรีที่สำคัญมากและถือเป็นพาร์ติชันระบบ EFI ที่แยกจากระบบของคุณ นั่นเป็นเหตุผลที่เมื่อคุณสร้างพาร์ติชั่นแบบแมนนวล คุณต้องแยกอย่างน้อย “/” และ “/boot” แยกกัน

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

ไดเร็กทอรีอุปกรณ์:/dev

ไดเร็กทอรี “/dev” จะเก็บไฟล์อุปกรณ์ทั้งหมดไว้ในระบบ ซึ่งเป็นส่วนประกอบฮาร์ดแวร์ทั้งหมดในระบบของคุณ (รวมถึงอุปกรณ์เสมือนที่สำคัญอื่นๆ เช่น “null” และ “random”) เมื่อดูแล้ว คุณจะ สังเกตสิ่งต่างๆ เช่น "cpu" "sda" "tty" "stderr" "stdin" และ "stdout" ไฟล์เหล่านี้เป็นไฟล์อุปกรณ์ที่สำคัญทั้งหมดที่คุณจะโต้ตอบด้วยทุกวัน

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

ไดเร็กทอรี Etc.:/etc

นี้สำหรับสิ่งที่สุ่ม ไดเร็กทอรี "/ etc" ซึ่งออกเสียงเหมือน Etsy คือที่ที่คุณจะพบไฟล์การกำหนดค่าจำนวนมากสำหรับสิ่งต่างๆ ส่วนใหญ่ในระบบของคุณ สิ่งต่างๆ เช่น SSH, Pipewire, systemD และ Firefox ล้วนมีไฟล์กำหนดค่าอยู่ที่นี่ เป็นลิ้นชักขยะของระบบ Virtual Directory ซึ่งสำคัญมากแต่ก็ยุ่งยากเล็กน้อยในการค้นหา

โฮมไดเร็กทอรี:/home

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

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

ไดเร็กทอรีไลบรารี:/lib, /lib32 และ /lib64

ไดเร็กทอรี "/lib" ทั้งหมดมีไลบรารีเฉพาะที่โปรแกรมใน "/bin" หรือ "/sbin" (ครอบคลุมในภายหลัง) จะใช้ นี่คือที่จัดเก็บเฟิร์มแวร์ ร่วมกับไลบรารีอื่นๆ สำหรับการติดตั้งส่วนต่างๆ ของเคอร์เนลและโมดูลเคอร์เนล ไดเร็กทอรีพี่น้อง “/lib32” และ “/lib64” มีเพียงเวอร์ชันสำหรับระบบปฏิบัติการ 32 บิตและ 64 บิต และเกือบจะเหมือนกันทุกประการกับไดเร็กทอรีฐาน “/lib”

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

ไดเร็กทอรีสื่อ:/media และ /mnt

ฉันกำลังจัดกลุ่มสิ่งเหล่านี้เข้าด้วยกันเพราะมักมีจุดประสงค์เดียวกัน ไดเร็กทอรี "/media" คือที่เก็บเนื้อหาของซีดี ดีวีดี หรือสื่อแบบถอดได้อื่นๆ ถ้าฉันเสียบไดรฟ์ USB คุณจะเห็นป๊อปอัปใน “/media” ในระบบส่วนใหญ่

ไดเร็กทอรี "/mnt" ใช้สำหรับเมาท์ระยะยาว ตัวอย่างเช่น หากฉันต้องการเพิ่ม SSD อื่นในระบบของฉัน ฉันอาจตั้งค่าจุดเชื่อมต่อถาวรสำหรับมันในไดเร็กทอรี "/mnt" หรือหากฉันมี NAS ในบ้าน ฉันอาจต่อเชื่อมข้อมูลนั้นในไดเร็กทอรี “/mnt” ด้วยเช่นกัน

/opt

ไดเร็กทอรี "/opt" มีแพ็คเกจซอฟต์แวร์เพิ่มเติมสำหรับใช้งานโดยผู้ใช้ มันเล็กกว่าที่คุณคิดมาก – ของฉันเก็บเฉพาะไฟล์สำหรับ Brave, Google Chrome และ Sublime Text หากคุณเพิ่มพื้นที่เก็บข้อมูลสำหรับซอฟต์แวร์ คุณอาจพบสิ่งนั้นใน “/opt”

/proc

ไดเร็กทอรี "/proc" เป็นที่เก็บข้อมูลฮาร์ดแวร์และข้อมูลกระบวนการต่อเนื่อง เมื่อระบบค้นหาว่าฮาร์ดแวร์มีลักษณะอย่างไร ข้อมูลนั้นจะถูกจัดเก็บไว้ในไดเร็กทอรี "/ proc" ตัวอย่างเช่น หากคุณเรียกใช้คำสั่ง cat /proc/cpuinfo คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ CPU ของคุณมากกว่าที่คุณเคยคิดว่าต้องการทราบ

/root

นี่เป็นเพียงไดเร็กทอรี "/home" เวอร์ชันของผู้ใช้รูท หากคุณทำงานหนักในฐานะผู้ใช้รูท คุณจะพบข้อมูลต่างๆ ที่นั่น

/run

ไดเร็กทอรี "/run" ค่อนข้างคล้ายกับ "/proc" - แทนที่จะเป็นฮาร์ดแวร์ "/run" จะเน้นที่ซอฟต์แวร์ ทั้งสองเก็บข้อมูลที่เรียกว่า "ข้อมูลรันไทม์ที่ระเหยได้" ซึ่งหมายความว่าไดเรกทอรีเหล่านี้จะถูกล้างออกทุกครั้งที่คุณรีบูตระบบ แต่จะเก็บข้อมูลที่เป็นประโยชน์เมื่อระบบปฏิบัติการเรียนรู้เพิ่มเติมเกี่ยวกับระบบของคุณและสิ่งที่คุณกำลังใช้งาน

/sbin

ไดเร็กทอรี "/sbin" เป็นที่เก็บโปรแกรมไบนารีที่ควรมีให้สำหรับผู้ใช้รูทเท่านั้น ตัวอย่างเช่น โปรแกรมไบนารีที่ปิดระบบของคุณ (poweroff ) น่าจะอยู่ใน “/sbin”

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

/srv

นี่คือไดเร็กทอรีที่เก็บข้อมูลเฉพาะไซต์ตามบริการที่เข้าถึงได้ทางเว็บที่คุณใช้งานอยู่ สิ่งต่างๆ เช่น FTP และ HTTP จะมีข้อมูลเฉพาะเก็บไว้ที่นี่ ฉันไม่ได้ใช้งานใดๆ ดังนั้นไดเร็กทอรี “/srv” ของฉันจึงว่างเปล่า

/sys

ไดเร็กทอรี "/sys" เป็นที่เก็บข้อมูลเกี่ยวกับอุปกรณ์หลักในระบบ ในเหมือง คุณจะเห็นสิ่งต่างๆ เช่น "/sys/dev" "/sys/firmware" และ "/sys/kernel" นี่คือการเลือกอุปกรณ์ฮาร์ดแวร์ที่สำคัญยิ่งในไดเร็กทอรี “/dev”

การทำความเข้าใจโครงสร้างไดเรกทอรีเสมือนของ Linux

/tmp

ไดเร็กทอรี "/tmp" ใช้เพื่อเก็บข้อมูลชั่วคราวจากโปรแกรมต่างๆ ในระบบของคุณ ข้อมูลจะถูกเก็บไว้ที่นี่เพียงไม่กี่วันโดยไม่ต้องรีบูต ดังนั้นจึงเป็นเพียงการล็อกข้อมูลชั่วคราวเพื่อให้พื้นที่เก็บข้อมูลอื่นว่าง ผู้ใช้ส่วนใหญ่ไม่ต้องทำอะไรกับไดเร็กทอรี “/tmp”

/usr

ไดเร็กทอรี "/usr" ได้รับความสนใจมากขึ้นเรื่อยๆ ตอนนี้ไดเร็กทอรีเช่น "/bin" "/lib" และ "/sbin" เชื่อมโยงกับเวอร์ชันของไดเร็กทอรีเหล่านั้นใน "/usr" คุณจะเห็นได้ว่าเมื่อฉันเรียกใช้ ll คำสั่งในระบบของฉัน

เป็นซอฟต์ลิงก์ จึงสามารถยกเลิกการเชื่อมโยงได้ แต่ระบบจะอ่านจากไดเร็กทอรี "/usr/bin" หรือ "/usr/sbin" แทนที่จะเป็นไดเร็กทอรี "/bin" หรือ "/sbin" ทั้งหมดนี้ทำเพื่อลดความซับซ้อนของลำดับชั้นที่มีอยู่และทำให้ค้นหาโปรแกรมเหล่านี้ได้ง่ายขึ้น เป็นคุณภาพชีวิตที่ดีที่ทำให้เปลี่ยนจาก Linux เป็น Unix ได้ง่ายขึ้น หรือไม่มีตำแหน่งตายตัวเป็นไบนารีที่แตกต่างกัน

/var

ไดเร็กทอรี "/var" คล้ายกับไดเร็กทอรี "/tmp" แต่เก็บข้อมูลไว้นานขึ้นเล็กน้อย นอกจากนี้ยังจัดเก็บสิ่งต่างๆ เช่น ล็อกไฟล์และอิมเมจดิสก์ KVM Virtual Machine

อย่างที่คุณเห็น ระบบไดเรกทอรีเสมือนของ Linux มีไว้เพื่อจัดระเบียบไฟล์ที่ระบบของคุณจะใช้ และทำให้ง่ายต่อการดูแลและจัดการระบบของคุณ แน่นอน คุณสามารถทำทุกอย่างที่คุณต้องการด้วยระบบนี้ (นั่นคือความสวยงามของ Linux) แต่ปล่อยให้สิ่งต่าง ๆ เป็นแบบที่เป็นอยู่ก็ดีและสวยงามสำหรับผู้ใช้เดสก์ท็อปส่วนใหญ่ คุณอาจต้องการค้นหาว่าระบบไฟล์ใดดีที่สุดสำหรับ Linux ในปี 2021