جدول محتوایی
لینوکس از یک ساختار سلسلهمراتبی استاندارد برای سازماندهی فایلها و دایرکتوریها استفاده میکند. این ساختار به نام Filesystem Hierarchy Standard (FHS) شناخته میشود.
ساختار اصلی دایرکتوریهای لینوکس
/ ├── bin # دستورات اساسی سیستم ├── boot # فایلهای بوت لودر ├── dev # فایلهای دستگاهها ├── etc # فایلهای پیکربندی سیستم ├── home # دایرکتوری کاربران ├── lib # کتابخانههای اشتراکی سیستم ├── media # نقطه اتصال رسانههای قابل حمل ├── mnt # نقطه اتصال موقت برای سیستمهای فایل ├── opt # نرمافزارهای اضافی/اختیاری ├── proc # اطلاعات فرآیندها و سیستم ├── root # دایرکتوری کاربر روت ├── run # دادههای فرآیندهای در حال اجرا ├── sbin # دستورات مدیریتی سیستم ├── srv # دادههای سرویسهای سیستم ├── sys # رابط سیستم فایل sysfs ├── tmp # فایلهای موقت ├── usr # برنامههای کاربردی و فایلهای خواندنی └── var # فایلهای متغیر سیستم
توضیح کامل هر دایرکتوری
1 – / (Root)
پایهترین دایرکتوری در لینوکس
شامل تمام دایرکتوریهای دیگر میشود
فقط کاربر root میتواند در این سطح تغییرات ایجاد کند
2 – /bin (Binary)
شامل دستورات اساسی و ضروری سیستم است
دستوراتی که همه کاربران میتوانند استفاده کنند:
ls
, cp
, mv
, rm
, cat
, echo
, bash
این دستورات برای بازیابی سیستم در حالت single-user ضروری هستند
3 – /boot
شامل فایلهای مورد نیاز برای بوت سیستم:
vmlinuz
: هسته لینوکس
initramfs
: تصویر اولیه سیستم فایل برای بوت
grub/
: فایلهای bootloader
-
معمولاً در یک پارتیشن جداگانه قرار میگیرد
4 – /dev (Devices)
شامل فایلهای دستگاههای سیستم:
/dev/sda
: اولین هارد دیسک
/dev/tty
: ترمینالها
/dev/null
: دستگاه null
/dev/random
: تولیدکننده اعداد تصادفی
توسط سیستم به صورت خودکار ایجاد و مدیریت میشود
5 – /etc (Configuration)
شامل فایلهای پیکربندی سیستم و برنامهها:
/etc/passwd
: اطلاعات کاربران
/etc/group
: اطلاعات گروهها
/etc/fstab
: تنظیمات mount سیستم فایل
/etc/hosts
: تنظیمات DNS محلی
/etc/ssh/
: تنظیمات SSH
نباید فایلهای اجرایی در اینجا قرار گیرند
6 – /home
دایرکتوری شخصی کاربران غیر root
هر کاربر دایرکتوری مخصوص به خود دارد :
/home/username/
معمولاً شامل:
~/Desktop/
, ~/Documents/
, ~/Downloads/
فایلهای پیکربندی کاربر (~/.bashrc
, ~/.ssh/
)
7 – /lib و /lib64
شامل کتابخانههای اشتراکی (shared libraries) مورد نیاز توسط برنامههای در /bin/
و /sbin/
/lib64/
در سیستمهای 64 بیتی برای کتابخانههای 64 بیتی
8 – /media
نقطه اتصال (mount point) برای دستگاههای قابل حمل:
USB drives
CD/DVD
کارت حافظه
به صورت خودکار توسط سیستم ایجاد میشود
9 – /mnt (Mount)
نقطه اتصال موقت برای سیستمهای فایل
معمولاً برای mount دستی استفاده میشود
ممکن است شامل زیردایرکتوریهایی برای دستگاههای مختلف باشد
10 – /opt (Optional)
برای نصب نرمافزارهای اضافی و اختیاری
معمولاً هر برنامه دایرکتوری مخصوص به خود دارد:
/opt/google/chrome/
/opt/oracle/
11 – /proc (Process)
سیستم فایل مجازی که اطلاعات فرآیندها و سیستم را نشان میدهد
فایلهای مهم :
/proc/cpuinfo
: اطلاعات CPU
/proc/meminfo
: حافظه
/proc/[PID]/
: هر فرآیند
12 – /root
دایرکتوری خانگی کاربر root
با /home/root/
اشتباه گرفته نشود
13 – /run
دادههای فرآیندهای در حال اجرا
شامل:
PID فایلها
سوکتها
قفلها
محتوای آن با هر بوت مجدد میشود
14 – /sbin (System Binaries)
دستورات مدیریتی سیستم:
fdisk
: مدیریت پارتیشنها
iptables
: فایروال
reboot
: راهاندازی مجدد
معمولاً فقط توسط root قابل اجرا هستند
15 – /srv (Service)
دادههای سرویسهای سیستم :
وب سرور: /srv/www/
FTP: /srv/ftp/
در برخی توزیعها ممکن است استفاده نشود
16 – /sys
سیستم فایل مجازی برای تعامل با هسته
اطلاعات مربوط به دستگاهها، درایورها و برخی ویژگیهای هسته
17 – /tmp (Temporary)
فایلهای موقت سیستم و کاربران
معمولاً با هر راهاندازی مجدد پاک میشود
دسترسی همه کاربران به این دایرکتوری آزاد است
18 – /usr (User System Resources)
شامل برنامههای کاربردی و فایلهای خواندنی :
/usr/ ├── bin # دستورات کاربران ├── sbin # دستورات مدیریتی ├── lib # کتابخانهها ├── share # دادههای مستقل از معماری ├── local # برنامههای نصب شده محلی └── src # کد منبع
بزرگترین دایرکتوری در سیستم
19. /var (Variable)
شامل فایلهای متغیر سیستم :
/var/ ├── log # فایلهای لاگ سیستم ├── cache # دادههای cache ├── spool # دادههای در صف پردازش ├── mail # ایمیلهای سیستم └── www # فایلهای وب سرور (در برخی توزیعها)
اندازه این دایرکتوری معمولاً به مرور زمان افزایش مییابد
نکات مهم درباره ساختار لینوکس
حساس به حروف بزرگ و کوچک : File
با file
متفاوت است
همه چیز فایل است : حتی دستگاهها و فرآیندها به صورت فایل نمایش داده میشوند
مسیرها با / جدا میشوند (برخلاف ویندوز که از \ استفاده میکند)
دایرکتوریهای پنهان : با نقطه شروع میشوند (مثل .bashrc
)
سلسله مراتبی : ساختار درختی با یک ریشه (/
)
این ساختار استاندارد در تمام توزیعهای لینوکس رعایت میشود، اگرچه ممکن است در برخی توزیعها تغییرات جزئی وجود داشته باشد