دوره‌ های آموزشی نووا
سپتامبر 29, 2016

ساختار دایرکتوری ها در لینوکس

Avatar photo
برنامه نویس MERN Stack
ساختار دایرکتوری ها در لینوکس

ساختار دایرکتوری ها در لینوکس (Linux File Structures)

اگر به تازگی از ویندوز به لینوکس مهاجرت نموده اید، شاید کمی ساختار فایلها در لینوکس برای شما گیج کننده باشد. همانطور که در ویندوز مشاهده میکنید هر پارتیشن با یک حرف (Letter) مشخص میشود. مثلا Drive ویندوز با حرف \:C مشخص شده است. و دیگر درایو ها با حرف \:D و … اما در لینوکس همه چیز متفاوت است. دیگر چیزی به نام Letter یا حرف C:\ D:\ E:\ F و … وجود ندارد. و همه درایو ها و پارتیشن ها در یک پوشه با نام /media میباشند. در ادامه نووا بلاگ را در پست ساختار دایرکتوری ها در لینوکس دنبال کنید تا به صورت کلی با Linux File Structures آشنا شوید.

معمولا توزیع های لینوکس از استاندارد FHS برای مشخص نمودن نوع فایل سیستم خود استفاده میکنند. البته در لینوکس بعضی از دایرکتوری ها وجود دارند که در این فایل سیستم (File-System Hierarchy Standard) تعریف نشده اند.

دایرکتوری ریشه (Root Directory) یا علامت /

تمام فایلها و پوشه ها لینوکس در دایرکتوری یا پوشه Root قرار گرفته اند که با علامت / نمایش داده میشود. حتی دیگر پارتیشن ها هم در همین دایرکتوری میباشند. به زبان ساده علامت /  در لینوکس یعنی کل هارد دیسک.

root-directory

دایرکتوری /bin

دایرکتوری /bin شامل باینری های اصلی کاربر از قبیل برنامه ها میباشد. اما برنامه های از قبیل Firefox در پوشه /usr/bin قرار گرفته اند. ولی برنامه های مهم سیستمی و ابزارهای پر اهمیت مثل Bash shell در آدرس /bin قرار دارند.

bin-directory

معمولا برای امنیت داده ها میتوان دایرکتوری /usr را در پارتیشن دیگری ذخیره نمود.

قرار گرفتن برنامه های اصلی سیستم در دایرکتوری /bin به این هدف میباشد تا کلیه برنامه های مورد نیاز سیستم در دسترس باشند.

دایرکتوری /sbin هم همانند دایرکتوری /bin میباشد با این تفاوت که در دایرکتوری /sbin باینری های ضروری مدیریت قرار دارد.

دایرکتوری /boot

در دایرکتوری /boot فایلهای مربوط به Boot لینوکس قرار دارد مثلا فایلهای GRUB boot loader و هسته لینوکس (Linux Kernels) در این پوشه ذخیره شده اند. تنظیمات و پیکربندی های مربوط به boot در دایرکتوری /boot قرار ندارند بلکه در دایرکتوری /etc موجود میباشند.

دایرکتوری /cdrom

قبلا از دایرکتوری /cdrom برای mount کردن CD ROM ها در این دایرکتوری استفاده میشد. اما دیگر این دایرکتوری در استاندارد FHS نمیباشد. ولی هنوز هم میتوانید این دایرکتوری را در توزیع های همچون Ubuntu و دیگر سیستم عامل های لینوکس پیدا کنید. در حال حاضر مکان استاندارد برای رسانه های موقت همچون CD ROM در دایرکتوری /media میباشد.

پیشنهاد: اگر میخواهید بیشتر با سیستم عامل UBUNTU آشنا شوید میتوانید از آموزش کار با Ubuntu استفاده کنید. همچنین در صورت علاقه به صفحه آموزش کامل لینوکس سر بزنید. تا لینوکس را از مبتی تا حرفه ای دنبال کنید.

دایرکتوری /dev

کلیه دستگاه ها (Devices) در لینوکس با یک فایل مشخص میشوند. در دایرکتوری /dev فایلهای مخصوصی وجود دارند که هر کدام از آنها مشخص کننده یک دستگاه هستند. در واقع این فایلها واقعا فایل نمی باشند. و فقط شکل فایل هستند. برای مثال /dev/sda مشخص کننده اولین هارد دیسک SATA در سیستم است. یعنی اگر بخواهید این هارد دیسک را پارتیشن بندی کنید باید به برنامه مدیریت پارتیشن خود بگوید آدرس /dev/sda را پارتیشن بندی کن.

دایرکتوری /etc

در دایرکتوری /etc کلیه فایلهای پیکربندی (تنظیمات مربوط به سیستم عامل) لینوکس وجود دارد. این فایلها را میتوان با برنامه های ویرایشگر متن ویرایش نمود و تنظیمات را تغییر داد.

etc-directory

دایرکتوری /etc مخصوص تنظیمات و پیکربندی های اصلی لینوکس میباشد و تنظیمات مربوط به کاربر ها در دایرکتوری مربوط به حساب کاربری همان کاربر ها است.

دایرکتوری /home

دایرکتوری /home شامل پوشه های مربوط به کاربران میباشد. برای مثال اگر در سیستم عامل لینوکس شما یک کاربر با نام TMLMANAGER وجود داشته باشد در دایرکتوری /home هم یک دایرکتوری برای همان کاربر با نام آن کاربر وجود دارد. در دایرکتوری /home فایلهای مربوط به کاربران وجود دارد. و هر کاربر فقط میتواند به فایلهای دایرکتوری خود دسترسی داشته باشد.

home-directory

دایرکتوری /lib

دایرکتوری /lib شامل داده های میباشد که باینری های اصلی موجود در دایرکتوری های /bin و /sbin نیازمند آنها هستند. داده های مورد نیاز /usr/bin در دایرکتوری /usr/lib وجود دارند.

دایرکتوری /lost+found

در همه فایل سیستم های لینوکس میتوان دایرکتوری /lost+found را پیدا نمود. به طور کلی اگر فایل سیستم به مشکلی بر بخورد لینوکس به صورت خود کار در فرایند boot بعدی شروع به بررسی فایل سیستم میکند. و هر فایل خراب شده ای پیدا شود آنرا در دایرکتوری lost+found قرار میدهد. در نتیجه به سادگی میتوان تا جایی که ممکن است داده ها را ریکاوری نمود.

دایرکتوری /media

دایرکتوری /media شامل زیر دایرکتوری های میباشد که در واقع دستگاه های مربوط به رسانه های جدا شونده (Removable Media) در آن میباشند. برای مثال زمانی که یک CD را در CD ROM قرار میدهید میتوانید محتوای درون CD را از دایرکتوری /media پیدا کنید. یا مثلا زمانی که یک USB Flash را به سیستم خود متصل میکنید یک دایرکتوری با نام فلش در دایرکتوری /media ساخته میشود و از طریق آن دایرکتوری میتوانید به محتوای درون فلش دسترسی پیدا کنید.

دایرکتوری /mnt

در زمان های گذشته از دایرکتوری /mnt برای Mount کردن موقت فایل سیستم ها استفاده میشد. برای مثال برای Mount نمودن پارتیشن ویندوز در لینوکس از این دایرکتوری استفاده میشد.

دایرکتوری /opt

دایرکتوری /opt شامل زیر دایرکتوری های برای بسته های نرم افزاری دلخواه میباشد. اما اخیرا توسط بعضی از برنامه های اختصاصی که ساختار استاندارد HFS را رعایت نمیکنند مورد استفاده قرار میگیرد. مثلا در صورت نصب یک نرم افزار اختصاصی برنامه به آدرس /opt/application میرود.

دایرکتوری /proc

دایرکتوری /proc همانند دایرکتوری /dev میباشد از این لحاظ که در این دایرکتوری هم فایلهای استاندارد وجود ندارد. دایرکتوری /proc شامل فایلهای بخصوصی برای نشان دادن اطلاعات Process ها و سیستم میباشند.

دایرکتوری /root

دایرکتوری /root در واقع همان آدرس پروفایل حساب کاربری root میباشد. دقیقا همانند دیگر حساب های کاربری که آدرس پروفایل آنها در دایرکتوری /home با نام خود آنها است. دایرکتوری /root هم برای حساب کاربری root میباشد.

دایرکتوری /run

دایرکتوری /run را که میتوان گفت نسبتا جدید میباشد مکانی استاندارد برای ذخیره فایلهای موقتی برنامه ها همانند Process ID و Socket ها میباشد. این فایلها را نمیتوان در دایرکتوری /tmp ذخیره نمود چرا که ممکن است به صورت دستی حذف شود.

دایرکتوری /sbin

همانطور که در بخش /bin دایرکتوری گفته شد دایرکتوری /sbin هم شامل باینری های میباشد که کاربر root از آنها برای مدیریت سیستم استفاده میکند.

دایرکتوری /selinux

معمولا توزیع های لینوکس همانند Fedora و Redhat از دایرکتوری /selinux برای امنیت استفاده میکنند. دایرکتوری /selinux شامل فایلهای مخصوصی میباشد که میتوان گفت همانند دایرکتوری /proc است.

دایرکتوری /srv

دایرکتوری /srv شامل داده های مربوط به سرویس های ارائه شده توسط سیستم میباشد. مثلا اگر شما از سرویس Apache برای راه اندازی یک وبسایت http استفاده کنید. در واقع فایلهای وبسایت خود را در دایرکتوری /srv ذخیره میکنید.

دایرکتوری /tmp

همانند ویندوز برنامه در لینوکس هم فایلهای موقتی که درست میکنند را در دایرکتوری /tmp ذخیره میکنند. فایلهای که در دایرکتوری /tmp میباشند با اولین ریستارت حذف میشوند.

دایرکتوری /usr

دایرکتوری /usr شامل فایلها و برنامه های استفاده شده کاربران میباشد. البته با فایلها و برنامه های استفاده شده سیستم متفاوت است. مثلا برنامه های غیر ضروری در دایرکتوری /usr/bin میباشند. یا باینری های مدیریتی غیر ضروری در آدرس /usr/sbin ذخیره میشوند. یا library ها در دایرکتوری /usr/lib ذخیره میشود.

usr-directory

دایرکتوری /var

دایرکتوری /var همتای نوشتنی دایرکتوری /usr میباشد. این دایرکتوری در وضعیت عادی باید در حالت Read Only باشد. همه فایلهای log و غیره در وضعیت عادی باید در دایرکتوری /var نوشته شوند.

9 پاسخ به “ساختار دایرکتوری ها در لینوکس”

  1. Avatar photo حسین گفت:

    عالی تشکر

  2. Avatar photo maziar khosroabadi گفت:

    سلام من میخوام از ویندوز 10 به لینوکس مهاجرت کنم با خوندن این پست شما کمی فکرم درگیر شد من در پارتیشن بندی در ویندوزم فایلهای مهمی دارم میخوام بدونم اینها کجا انتقال پیدا میکنند اگر لینوکس رو نصب کنم؟ممنون میشم پاسخ بدین

    • سلام مازیار جان
      نحوه دسترسی به پارتیشن ها در لینوکس با ویندوز فرق میکنه، در ویندوز دسترسی به پارتیشن ها به سادگی باز کردن My Computer اما در لینوکس اول باید Mount بشن بعد در مکانی که Mount شدن قابل دسترس هستند.
      اگر شما توزیع لینوکس مد نظر تون رو به درستی در یک پارتیشن مشخص از هارد دیسک تون نصب کنید هیچ اتفاقی برای باقی پارتیشن هاتون نمیفته، و میتونید به سادگی به اطلاعات تون در باقی پارتیشن ها دسترسی پیدا کنید.
      فقط زمان نصب لینوکس حواستون جمع باشه، تا کل هارد دیسک رو به لینوکس اختصاص ندید و فقط یکی از پارتیشن های موجود تون رو مشخص کنید.
      موفق و سربلند باشید.

  3. Avatar photo Shima گفت:

    سلام
    آیکون هام ناپدید شدن، چیکار کنم????????????

    • سلام
      از چه توزیع لینوکسی استفاده میکنید؟ چه آیکونهای نا پدید شدن؟
      آیا در همه حساب های کاربری نا پدید شدن یا اینکه فقط برای حساب کاربری شما از بین رفته؟
      لطفا اطلاعات کامل رو ارائه کنید تا دقیق تر بشه راهنمای کرد.
      موفق باشید.

  4. Avatar photo Shima گفت:

    سلام ممنون که جواب دادین
    راستش من خیلی (در واقع اصلا) از لینوکس سر در نمیارم، و چیزایی که پرسیدین نمیدونم چیه. فقط فیلم ها و فایل هام رو به این لپ تاپ منتقل میکردم، اونم رو دسکتاپ:(
    چند بار پیام داد که فضای خالی نداری و … تا اینکه اون روز آیکون ها غیب شدن
    قسمت Guest session درسته اما تو حساب کاربری اصلی هیچی نیست فقط بک گرانده
    توزیع لینوکسی هم نمیدونم منتظورتون اینه؟ ubuntu 14.04 LTS، ببخشید خیلی نابلدم!!
    لطفا راهنمایی کنید دارم دیوونه میشم

    • سلام، خواهش میکنم
      درسته، پس منظورتون از ایکونها، فایلهاتون بود، شما میتونید از طریق خط فرمان لینوکس (محیط Terminal) وارد پوشه Desktop بشید و با استفاده از دستور ls -al فهرست فایلهاتون رو دریافت کنید. یا اینکه از طریق محیط گرافیکی وارد پوشه مربوط به حساب کاربریتون بشید.
      نکته: توجه کنید در لینوکس برای اینکه یک فایل رو مخفی کنید باید فایل مورد نظر رو تغییر نام بدید و اول اسمش یک نقطه (.) بذارید.
      اگر اشتباها فایلهاتون مخفی شده باشند، میتونید از کلید های Ctrl+H استفاده کنید و فایلهای مخفی رو مشاهده کنید.
      موفق باشید.

  5. Avatar photo Shima گفت:

    سلام
    ببخشید دوباره سوال میپرسم محیطterminal کجاست؟ چطوری باید واردش بشم????
    و اینکه اون دستور |s-a|….؟
    میشه خیلی خیلی خیلی ابتدایی توضیح بدین لطفا؟:((
    و اینکه منظورم از آیکون ها همه چیزهای رو صفحه بود ینی تو قسمت کاربری هیچی نیست!

    • سلام
      برای اینکه وارد محیط ترمینال بشید میتونید از کلید های میانبر Start+T استفاده کنید یا اینکه کلمه Terminal رو در Search جستجو کنید.
      موفق باشید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *