آشنایی با ساختار دایرکتوری در سیستم عامل لینوکس

برای هر یک از افرادی که آشنایی کافی با سیستم عامل لینوکس ندارند و اطلاعاتی در این زمینه به گوش آنها نرسیده است٬ مواجه شدن با Linux File System برایشان وحشتناک و حیرت آور خواهد بود.

هدف این مقاله آشنایی با رایج ترین دایرکتوری های سطح بالای لینوکس را به شما می باشد. این چند مورد دایرکتوری لینوکس بیشترین کاربرد را برای ما دارند. ساختار دایرکتوری لینوکس مثل یک درخت می ماند. سلسله مراتب ساختار دایرکتوری هر نوع لینوکس با دایرکتوری روت (root) آغاز می شود. درست همانگونه که هر درخت نیز با ریشه آغاز می شود. دیگر دایرکتورهای لینوکس از روت منشا می گیرند و در زیر این مسیر قرار می گیرند . در لینوکس جداکنند دایرکتورهای / یا اسلش یا بهتره بگوییم فوروارد اسلش می باشد. در ویندوز برعکس یعنی بک اسلش می باشد که کلا ساختار دیگری دارد.

در (FHS) ، استاندارد ساختار سيستم فايل سلسل همراتبي لينوكس سيستم هاي عامل لينوكسي و يونيكسي ساختار سيستم فايل را مشخص مي كند. اين سيستم فايلها شامل دايركتوري هايي است كه به طور پيش فرض فعال نيست.

 

دايركتوري root (/)

همه چيز در سيستم لينوكس تحت دايركتوري/ قرار دارد. نام اين دايركتوري root يا ريشه‌ است. دايركتوري روت شبيه به C: در ويندوز است، اما به ياد داشته باشيد كه دقيقا اين گونه نيست و فقط مثالي است براي درك راحت‌تر اين موضوع. در ويندوز پارتيشن‌هاي ديگر در درايوهاي بعدي به‌نام‌هاي مثلا D: و... قرار دارد، اما اين درايوها در لينوكس درون همان مسير روت قرار مي‌گيرد.

bin/ – دايركتوري الزامي براي كاربر

دايركتوري bin/ شامل برنامه‌هاي (باينري‌ها) مخصوص كاربر است كه هنگام اجراي سيستم در حالت تك‌كاربر بايد فعال و حاضر باشد. نرم‌افزارهايي چون فايرفاكس در usr/bin/ نصب مي‌شود، در حالي كه برنامه‌هاي مهم سيستمي همچون Bash و امثال آن در دايركتوري bin/ قرار مي‌گيرد. دايركتوري usr/ را معمولا در پارتيشن ديگري قرار مي‌دهد، فايل‌هاي موجود در bin/ براي سيستم مهم است؛ چرا كه اين دايركتوري براي كاركرد صحيح سيستم نقش اساسي بازي مي‌كند. دايركتوري sbin/ نيز عملكرد مشابهي دارد و باينري‌هاي مديريتي سيستم در آن قرار مي‌گيرد.

boot/ – دايركتوري فايل‌هاي بوت استاتيك

دايركتوري boot?/شامل فايل‌هايي است كه براي بوت سيستم الزامي است. براي مثال فايل‌هاي GRUB در اين دايركتوري قرار مي‌گيرد. همچنين هسته لينوكس در اين دايركتوري قرار دارد. فايل‌هاي پيكربندي و تنظيمات بوت‌لودر در اين دايركتوري نيست و در etc/ قرار دارد.

cdrom/ – مانت پوينت تاريخي سي‌دي‌ها

دايركتوري cdrom/ ديگر بخشي از استاندارد FHS نيست، اما هنوز در اوبونتو و ديگر سيستم‌هاي عامل استفاده مي‌شود. اين دايركتوري محلي موقت براي دسترسي به سي‌دي‌رام است. هر چند محل استاندارد آن، دايركتوري ديگري با نام media/ است.

dev/ – فايل‌هاي دستگاه‌ها

لينوكس با دستگاه‌ها نيز همانند فايل‌ها برخورد مي‌كند و دايركتوري dev/ شامل تعدادي از فايل‌هاي مخصوص مي‌شود كه همگي نماينده دستگاه خود هستند. البته اينها فايل‌هاي حقيقي نيست و تنها به شكل فايل نشان داده مي‌شود.

مثلا dev/sda/ نمايانگر نخستين درايو ساتا در سيستم است. اگر بخواهيم اين درايو را پارتيشن‌بندي كنيم، بايد به‌كمك يك ويرايشگر مسير dev/sda/ را پارتيشن‌بندي كنيم.

اين دايركتوري همچنين شامل شبه‌دستگاه‌ها نيز مي‌شود. شبه‌دستگاه‌ها مجازي هستند و در حقيقت به سخت‌افزاري نگاشت نشده‌اند. براي مثال dev/random/ عددي رندوم توليد مي‌كند. dev/null/ دستگاه مخصوصي است كه هيچ خروجي‌ توليد نمي‌كند و به‌طور خودكار تمام ورودي‌ها را ناديده مي‌گيرد. در واقع وقتي خروجي يك دستور را به دستگاه dev/null/ مي‌فرستيد، در حقيقت آن را ناديده مي‌گيريد.

etc/ – فايل‌هاي تنظيمات

اين دايركتوري شامل فايل‌هاي پيكربندي است و مي‌تواند توسط ويرايشگرهاي متن و واژه‌پردازهاي سيستم ويرايش شود. بايد توجه داشت كه دايركتوري etc/ شامل فايل‌هاي تنظيمات تمام سيستم است. فايل‌هاي تنظيماتي كه به هر كاربر مربوط مي‌شود و مخصوص خود كاربر است در دايركتوري home هر كاربر وجود دارد.

home/ ـ دايركتوري كاربران

اين دايركتوري براي هر كاربر ساخته مي‌شود. براي مثال اگر نام كاربري شما ali باشد، مسيري به‌نام home/ali/ توليد مي‌شود. اين فولدر شامل داده‌هاي هر كاربر و تنظيمات مرتبط با شناسه او خواهد بود. همچنين كاربران ابتداي امر تنها مي‌توانند درون دايركتوري home خود فايل ايجاد كرده و دسترسي نوشتن داشته باشند. براي ويرايش ديگر بخش‌هاي سيستم، كاربران عادي بايد از ادمين سيستم اجازه بگيرند.

lib/ – دايركتوري كتابخانه‌هاي مشترك

دايركتوري lib/ شامل كتابخانه‌هايي است كه باينري‌هاي اساسي سيستم كه در bin/ و sbin/ اجرا مي‌شود به آن نياز دارد. اين كتابخانه‌ها همچنين توسط باينري‌هاي موجود در usr/bin/ نيز استفاده مي‌شود.

lost+found/ – دايركتوري فايل‌هاي ريكاوري شده

هر سيستم فايل لينوكس يك دايركتوري lost+found دارد. اگر سيستم فايل به‌هر دليلي خراب شود، در بوت بعدي سيستم فايل از اول چك مي‌شود. فايل‌هاي خراب‌شده و يافته شده در اين عمليات در اين دايركتوري قرار مي‌گيرد تا بتوان بيشتر فايل‌ها را ريكاوري كرد.

media/ – دستگاه‌هاي جانبي

دايركتوري media/ شامل زيرشاخه‌هايي است كه در آن دستگاه‌هاي وصل شده به سيستم نشان داده مي‌شود. منظور از اين دستگاه‌ها، دستگاه‌هاي حافظه است. از اين رو هاردهاي اكسترنال، فلش‌درايوها، ام‌پي‌تري پليرها و... در اين شاخه قرار مي‌گيرد. همچنين در سيستم فايل استاندارد FHS، سي‌دي رام نيز در اين فولدر قرار دارد.

mnt/ ـ نقاط اتصال موقت

از قديم عرف بود كه مديرهاي سيستم از دايركتوري mnt (كه مخفف عبارت mount) است، براي مانت‌كردن درايوهايي با سيستم فايل غير از لينوكس استفاده كنند. مثلا اگر پارتيشن ويندوزي را مانت مي‌كردند، آن را به mnt/windows/ وصل مي‌كردند. هر چند مي‌توان هر فايل‌سيستمي را در هر نقطه از سيستم قرار داد.

opt/ – پكيج‌هاي اختياري

دايركتوري opt/ (مخفف Optional) شامل زيردايركتوري‌هايي مي‌شود كه پكيج‌هاي اختياري نرم‌افزاري در آن قرار مي‌گيرد. اين دايركتوري معمولا توسط نرم‌افزارهاي تجاري كه از ساختار استاندارد لينوكسي پيروي نمي‌كند در اين دايركتوري قرار مي‌گيرد.

proc/ – فايل‌هاي كرنل و پروسس‌ها

دايركتوري proc/ همانند دايركتوري dev/ است و شامل فايل‌هاي استاندارد نيست. اين فايل‌هاي مخصوص اطلاعات سيستم و پروسس‌ها را نشان مي‌دهد.

root/ – دايركتوري مخصوص شناسه root

دايركتوري root/ در واقع دايركتوري home/ است، اما براي شناسه root. اين دايركتوري مستقيما از/ ريشه گرفته است و در پارتيشن اصلي سيستم قرار مي‌گيرد، در حالي كه مي‌توان دايركتوري home/ را به پارتيشن‌ها و ديسك‌هاي ديگر نسبت داد.

run/ – دايركتوري وضعيت نرم‌افزارها

دايركتوري run/ نسبتا جديد است و جاي استانداردي به نرم‌افزارها مي‌دهد كه فايل‌هاي موقت هنگام اجرا از جمله سوكت‌ها و شناسه پروسس‌ها را در آنجا قرار دهد. اين فايل‌ها در tmp/ قرار نمي‌گيرد؛ چرا كه tmp/ ‌مي‌تواند پاك شود.

sbin/ – باينري‌هاي مديريتي سيستم

دايركتوري sbin/ مشابه دايركتوري bin/ است. اين دايركتوري شامل باينري‌هاي اساسي سيستم است كه توسط شناسه root و براي مقاصد مديريتي مي‌تواند اجرا شود.

selinux/ – سيستم فايل مجازي SELinux

اگر توزيع شما از SElinux براي امنيت سيستم استفاده مي‌كند (فدورا و رد‌هت دو مثال است كه از selinux استفاده مي‌كند). اين دايركتوري در آنها وجود دارد و شامل فايل‌هايي است كه توسط SElinux استفاده مي‌شود. اين دايركتوري مشابه proc/ است. اوبونتو از SELinux استفاده نمي‌كند و حضور اين فولدر در اوبونتو باگ است.

srv/ – داده‌هاي سرويس

اين دايركتوري داده‌هايي را در بر مي‌گيرد كه سرويس‌ها در اختيار سيستم قرار مي‌دهد. اگر از Apache HTTP Server براي ميزباني يك وب‌سايت استفاده كنيد، فايل‌هاي وب‌سايت خود را در اين فولدر قرار خواهيد داد.

tmp/ – فايل‌هاي موقت

نرم‌افزارها فايل‌هاي موقت را در اين دايركتوري ذخيره مي‌كند. اين فايل‌ها وقتي سيستم ريست مي‌شود، حذف شده و مي‌تواند توسط نرم‌افزارهايي مثل tmpwatch نيز حذف شود. بنابراين اين محل براي ذخيره‌سازي فايل‌ها مناسب نيست.

usr/ – باينري‌هاي كاربر

در اين دايركتوري نرم‌افزارها و فايل‌هاي مورد استفاده كاربران، قرار مي‌گيرد. براي مثال نرم‌افزارهاي غيراساسي همچون فايرفاكس در اين دايركتوري قرار گرفته و در bin/ ذخيره نمي‌شود. كتابخانه‌هاي مورد نياز اين نرم‌افزارها نيز در دايركتوري usr/lib/ قرار مي‌گيرد. دايركتوري usr/ همچنين دايركتوري‌هاي ديگري درون خود دارد كه به همين منظور به‌كار مي‌رود؛ همانند usr/share/.

دايركتوري usr/local/ شامل نرم‌افزارهاي كامپايل‌شده لوكال است كه به‌طور پيش‌فرض در اين دايركتوري مي‌رود. اين دايركتوري باعث مي‌شود نرم‌افزارهاي كامپايل شده درون سيستم پخش نشود.

var/ – دايركتوري فايل‌هاي داده‌اي متغير

دايركتوري var/ دايركتوري قابل نوشتني است كه در مقابل با usr/ قرار مي‌گيرد. دايركتوري usr/ در شرايط عادي فقط خواندني است. فايل‌هاي گزارش (log) و چيزهاي ديگر كه به‌صورت عادي در usr/ قرار مي‌گيرد، به دايركتوري var/ مي‌رود. براي مثال فايل‌هاي گزارش را مي‌توان در دايركتوري var/log/ مشاهده كرد.