ساختار دایرکتوری های لینوکس و مسیر فایل های مهم سیستمی
برای هر یک از افرادی که آشنایی کافی با سیستم عامل لینوکس ندارند و اطلاعاتی در این زمینه به گوش آنها نرسیده است٬ مواجه شدن با Linux File System برایشان وحشتناک و حیرت آور خواهد بود.
هدف این مقاله آشنایی با برخی از فایل های سیستمی مهم لینوکس٬ کاربرد و مسیر آنها می باشد.
دیاگرام ساختار دایرکتوری های لینوکس
یک توزیع استاندارد لینوکس ساختار آن به شرحی که در تصویر زیر مشاهده می کنید٬ بنا شده است.
هر یک از پوشه های فوق حاوی اطلاعات مهمی هستند که boot سیستم عامل٬ کانفیگ سیستم٬ درایو ها و … را شامل می شود.
bin/ : تمام برنامه های اجرایی باینری٬ فایل مورد نیاز فرایند boot ٬ تعمیرات ٬ فایل مورد نیاز single-user-mode و برخی دیگر از دستورات مهم پایه ای همچون cat, du, df, tar, rpm, wc, history و …
Boot/ : دارای فایل های مهم فرایند بارگزاری سیستم عامل و هسته ی لینوکس
dev/ : شامل فایل های دستگاه برای تمام دیوایس های موجود بر روی سخت افزار به عنوان مثال Ram , cpu , hard و …
etc/ : این دایرکتوری یکی از اصلیترین مکانهای مورد مراجعه هر لینوکس کار است. کلیه تنظیمات سیستمی در اینجا قرار میگیرند. معمولا هر برنامه در این دایرکتوری برای خود یک دایرکتوری می سازد و تنظیمات مورد پذیرش در کل سیستم را آنجا میگذارد.
home/ : دایرکتوری شخصی کاربران در مسیر home قرار دارد. هرگاه یک یوزر جدیدی در سیستم عامل تعریف شود٬ یک پوشه بنام همان یوزر در این مسیر ایجاد خواهد شد که حاوی اطلاعات Desktop, Downloads, Documents شخصی شان می باشد.
lib/ : دایرکتوری Lib شامل ماژول های کرنل و تصاویر کتابخانه مشترک مورد نیاز برای بوت کردن سیستم و اجرای دستورات در ریشه ی فایل سیستم
lost+found/ : این پوشه زمان نصب سیستم عامل٬ نصب می شود و برای ریکاوری فایل های شکسته که ممکن است به دلایل غیر منتظره همچون خاموش شدن ناگهانی سیستم ایجاد شود٬ مورد استفاده قرار می گیرد.
media/ : پوشه ای موقت که زمان اتصال ابزارهای جانبی ایجاد میشود. برای مثال اگر شما با یوزر tarimehr به سیستم عامل لاگین شده باشید و یک usb بنام myusb به دستگاه متصل کرده باشید٬ قادر به مشاهده /media/tarimehr/myusb خواهید بود.
mnt/ : مسیری عمومی برای mount ابزارهای ذخیره سازی. این مسیر بر خلاف مسیر media/ معمولا تنها توسط مدیرسیستم یا روت برای متصل کردن ابزارهای جانبی استفاده میشود.
opt/ : این مسیر معمولا برای نصب برنامههای وندورهای مستقل استفاده میشود. برای مثال در صورتی که برنامهای مانند java را تهیه کنید، برنامه در مسیر opt/ که مخفف کلمات optional است نصب خواهد شد.
proc/ : لینوکس از یکسری فایل و پروسه تشکیل می شود. این پوشه اطلاعات مربوط به فعالیت های در حال انجام سیستم را به صورت فایل نمایش می دهد.
root/ : این دایرکتوری ریشه ی کاربر root است و آن را نباید با مسیر “/” اشتباه گرفت.
run/ : از آخرین باری که سیستم روشن شده است تمامی اطلاعات آن در همین مسیر ذخیره می شود. مواردی همچون کاربران وارد شده به سیستم و دامونهای در حال اجرا
sbin/ : شامل برنامه های اجرایی باینری٬ نیازهای System Administrator ٬ حالت Maintenance مانند iptables, fdisk, ifconfig, swapon, reboot و …
tmp/ : دایرکتوری موقت سیستم، قابل دسترس توسط کاربران و ریشه. ذخیره فایل های موقتی برای کاربر و سیستم تا بوت بعدی.
usr/ : این دایرکتوری و دایرکتوریهای درون آن حاوی کتابخانههای برنامه نویسی، اسناد، برنامهها و حتی سورس برنامههایی هستند که در سیستم نصب شده
var/ : این دایرکتوری همانطور که از نام آن یعنی variable میشود حدس زد، حاوی فایلهایی است که انتظار میرود دائما در طول کارکرد مرسوم سیستم تغییر کنند. چیزهایی مانند لاگهای سیستم، فایلهای سرور، ایمیلهای در حال ارسال و اسناد منتظر پرینت شدن و دیتابیسها
بررسی فایل های مهم، محل آنها و کاربردشان
لینوکس یک سیستم عامل حرفه ای است که در عین سادگی، از پیچیدگی های فنی زیادی برخوردار است و به لحاظ شروع، توقف، حفظ و راه اندازی مجدد یک سیستم بر خلاف ویندوز عمل میکند.
boot/vmlinuz/ : فایل کرنل لینوکس
dev/hda/ : فایل دستگاه برای اولین HDD IDE (هارد دیسک)
dev/hdc/ : فایل دستگاه برای IDE Cdrom
etc/bashrc/ : مکانی برای قرار دادن مواردی که فقط برای bash اجرا میشود مانند تعریف alias و function
etc/crontab/ : یک اسکریپت شل برای اجرای فایل های مشخص شده در زمان بندی خاص
etc/exports/ : اطلاعاتی از فایل سیستم در دسترس شبکه
etc/fstab/ : اطلاعاتی از هارد دیسک و نقطه پوینت آن
etc/group/ : اطلاعات گروه امنیت
etc/grub.conf/ : فایل کانفیگ بوت لودر grub
etc/init.d/ : اسکریپت راه انداز سرویس ها
etc/lilo.conf/ : فایل کانفیگ بوت لودر lilo
etc/hosts/ : اطلاعات IP آدرسها و اسامی host name های مربوطه
etc/hosts.allow/ : لیست هاست هایی که اجازه دسترسی به خدمات داخلی همان دستگاه را دارند
etc/host.deny/ : لیست هاست هایی که اجازه دسترسی به خدمات همان دستگاه از آنها سلب شده است
etc/inittab/ : پروسه های INIT و سطوح اجرای آنها
etc/issue/ : اجازه میدهد تا پیغام pre-login را ویرایش نمایید
etc/modules.conf/ : فایل های پیکربندی ماژول های سیستم
etc/motd/ : مخفف پیام روز، پیغامی که کاربران پس از ورود مشاهده می کنند
etc/mtab/ : اطلاعات blocks مانت شده
etc/passwd/ : شامل رمز عبور کاربران سیستم در یک فایل shadow، پیاده سازی امنیتی.
etc/printcap/ : اطلاعات پرینتر
etc/profile/ : فایل Bash پیشفرض
etc/profile.d/ : اپلیکیشن هایی که پس از ورود اجرا می شوند
etc/rc.d/ : اطلاعاتی درباره سطح اجرای اسکریپت های خاص
etc/rc.d/init.d/ : اجرا سطح اولیه اسکریپت
etc/resolv.conf/ : نام دامنه (DNS) هایی که توسط سیستم استفاده می شوند.
etc/securetty/ : لیست ترمینال، که در آن ورود به سیستم ریشه امکان پذیر است
etc/skel/ : اسکریپتی که وظیفه ی populate دایرکتوری home کاربر جدید را بر عهده دارد
etc/termcap/ : یک فایل ASCII که رفتار Terminal, console و printer ها در آن تعریف شده است.
etc/X11/ : حاوی تنظیمات مربوط به محیط گرافیکی
usr/bin/ : برنامههای غیر ضروری سیستم مانند ابزارهایی مورد استفاده کاربران عمومی. چیزهایی مانند آفیس یا مرورگر وب
usr/include/ : فایل های هدر برنامه نویسی “C”
usr/share/ : پوشه ی عمومی man files, info files و …
usr/lib/ : فایل های کتابخانه که در طول کامپایل برنامه مورد نیاز هستند
usr/sbin/ : دستورات برای Super User، برای مدیریت سیستم
proc/cpuinfo/ : اطلاعات پردازنده
proc/filesystems/ : اطلاعات فایل سیستم که در حال حاضر استفاده می شود.
proc/interrupts/ : اطلاعات در مورد وقفه های فعلی که در حال حاضر استفاده می شود.
proc/ioports/ : شامل تمام ورودی / خروجی استفاده شده توسط دستگاه بر روی سرور.
proc/meminfo/ : اطلاعات مصرف حافظه
proc/modules/ : ماژول در حال استفاده کرنل
proc/mount/ : اطلاعات درباره فایل های سیستمی مانت شده
proc/swaps/ : اطلاعات فایل Swap
version/ : اطلاعاتی درباره ورژن سیستم عامل
var/log/lastlog/ : اطلاعاتی درباره اخرین فرایند بوت
var/log/messages/ : پیام تولید شده توسط syslog daemon در هنگام بوت
var/log/wtmp/ : لیست زمان ورود و مدت زمان کارکرد هر کاربر بر روی سیستم