سیستم عامللینوکس

هر آن چیزی که لازم است تا در مورد فایل ها در لینوکس بدانید

هر آن چیزی که لازم است تا در مورد فایل ها در لینوکس بدانید

فایل ها در لینوکس وظیفه ذخیره داده های سیستم شما و مدیریت آنها را بر عهده دارد. یک فایل سیستمی می تواند به عنوان مکانیسم ذخیره سازی و بازیابی اطلاعات تعریف شود. فایل های سیستمی معمولاً از چندین لایه تشکیل شده است، از جمله یک لایه منطقی که تعامل کاربر، API ها برای عملیات مختلف فایل و مواردی از این دست را فراهم می کند.

ممکن است متوجه شده باشید که کل نصب لینوکس شما در “/” حل می شود که به آن ریشه فایل سیستمی گفته می شود و در اصل نقطه شروع سیستم شما است.

هر آن چیزی که لازم است تا در مورد فایل های سیستم عامل لینوکس بدانید

پس از نصب لینوکس، کاربران می توانند با استفاده از این نقطه فایل های جدید سیستم را مرور کنند. ما در بخش های بعدی نحوه انجام این کار را به شما نشان خواهیم داد. حال، سیستم چگونه این فایل ها را پیگیری می کند؟ به طور خلاصه، برای تعیین این گره ها (نقاط شروع)، مرزها، نام ها و سایر اطلاعات از جدول های پارتیشن بندی از پیش تعریف شده استفاده می کند.

هنگام پارتیشن بندی لینوکس، ممکن است متوجه شده باشید که  چندین نوع فایل سیستم وجود دارد. برخی از نمونه های رایج آن NTFS ، FAT و EXT هستند. همانطور که بعداً مشاهده خواهید کرد، لینوکس از طیف گسترده ای از انواع فایل سیستم پشتیبانی می کند.

کشف ساختار فایل های سیستمی لینوکس

فایل های سیستمی لینوکس شباهت قابل توجهی به فایل های سیستمی یونیکس دارند. اگرچه نوآوری های رایانه ای مدرن به افزایش روندهای جدید کمک می کند، سلسله مراتب فایل های سیستمی  به دلیل اهمیت تاریخی آن تقریباً یکسان هستند. ما این سلسله مراتب را با استفاده از نمونه های مناسب در این بخش بیان کرده ایم. فرض می کنیم شما با مفسر خط فرمان لینوکس آشنا هستید.

به طور پیش فرض، کاربر در هر ورود به سیستم فهرست /home /USER ارائه می شود. با تایپ pwd در ترمینال می توانید این موضوع را تأیید کنید. ما برای تجسم سلسله مراتب دایرکتوری در لینوکس از tree، یکی از برنامه های کاربردی de-factoاستفاده خواهیم کرد. می توانید با sudo apt install tree، این ابزار را در اوبونتو دریافت کنید.

tree 1 - هر آن چیزی که لازم است تا در مورد فایل ها در لینوکس بدانید

اگر در دایرکتوری فعلی خود دستور tree را وارد کنید، احتمال دارد خود را در یک ساختار پیچیده و رمزنگاری پیدا کنید. به دلیل اینکه درخت هر عنصر را در این مکان ( به عنوان مثال تصاویر، اسناد، بارگیری ها و غیره) به صورت بازگشتی طی می کند و ساختار نهایی را با ترکیب آنها ایجاد می کند. با این حال، می توانید آرگومان  -L را به دستور درخت اضافه کنید تا عمق این دستور مشخص شود.

tree -L 1

اجرای این دستور به شما یک ساختار ساده مانند درخت متشکل از تنها اجزای سطح اول نقطه شروع شما را می دهد. شما می توانید برای بدست آوردن یک تجسم شفاف تر و مستحکم، این مقدار را افزایش دهید. می توانید از دستور cd برای تغییر مکان در داخل فایل سیستم خود استفاده کنید. همانطور که میدانید همه چیز در لینوکس یک فایل است. بنابراین، یک دایرکتوری باید یک فایل باشد. دایرکتوری ها فقط فایل های ویژه ای هستند که نام فایل های دیگر را دارند.

ابتدا با استفاده دستور cd به root سیستم خود بروید و سپس دستور ls را اجرا کنید. این کار همه دایرکتوری های پیش فرض را به شما نشان می دهد. در ادامه مطلب به توضیح هر کدام از دایرکتوری های لینوکس خواهیم پرداخت.

dir hiearchy - هر آن چیزی که لازم است تا در مورد فایل ها در لینوکس بدانید

دایرکتوری bin

پوشه bin حاوی برنامه های اجرایی است که برای دستیابی به حداقل عملکرد برای اهداف بوت شدن (شروع) و تعمیر باید در دسترس باشد.

دایرکتوری boot

تمام فایل های مورد نیاز برای راه اندازی سیستم در اینجا قرار دارند. شما نباید محتویات این فهرست را دستکاری کنید، مگر اینکه بدانید که چه کاری انجام می دهید. در غیر این صورت، ممکن است سیستم خود را خراب کنید.

دایرکتوری dev

فهرست /dev حاوی فایل های سیستم دستگاه شما است. به عبارتی نمایش فایل های درایوهای USB ، دیسک های سخت، وب کم و موارد دیگر است.

دایرکتوری etc

در گذشته از فهرست /etc برای نگهداری فایل های متفرقه استفاده شده است. با این حال، امروز یک کنوانسیون استاندارد برای ذخیره فایل های پیکربندی گسترده سیستم است. اطلاعاتی مانند نام کاربری، رمزعبور، اعتبار شبکه، اعتبار بخش پارتیشن ها در آن ذخیره می شوند.

دایرکتوری home

این دایرکتوری شخصی کاربر است که می تواند چندین زیر دایرکتوری را بر اساس تعداد کاربران دستگاه شما در خود جای دهد. هنگامی که وارد سیستم می شوید، در داخل ترمینال خود دایرکتوری /home/maniac  به شما ارائه می شود.

دایرکتوری lib

کتابخانه های سیستم در اینجا قرار دارند. کتابخانه ها قطعه کدی هستند که توسط برنامه های شما برای انجام برخی کارها استفاده می شود.

دایرکتوری media

این دایرکتوری محل نصب پلاگین ها و دستگاه های پخش مانند حافظه خارجی است. این دایرکتوری به تازگی به لینوکس اضافه شده است.

دایرکتوری mnt

در گذشته از این فهرست استفاده می کردند تا دستگاه ها یا پارتیشن های درخواستی را به صورت دستی سوار کنند. اگرچه به ندرت مورد استفاده قرار می گیرد ولی به دلیل اینکه از گذشته وجود داشته است، در فایل سیستم های لینوکس باقی مانده است.

دایرکتوری opt

معمولاً از این دایرکتوری برای میزبانی برنامه های شخص ثالث که آنها را از منبع نصب کرده اند، استفاده می کنند.

دایرکتوری proc

این دایرکتوری شامل فایل های پردازش، ماژول های هسته و … است. که نباید آن ها را دستکاری کنید، زیرا ممکن است سیستم شما منسوخ شود.

دایرکتوری root

مانند دایرکتوری home است اما برای کاربر ادمین سیستم می باشد. دایرکتوری ای است که هنگام تغییر به حساب root ارائه می شود.

دایرکتوری run

این فایل برای نگهداری داده های موقتی که توسط فرآیندهای سیستم لینوکس استفاده می شود مورد استفاده قرار می گیرد.

دایرکتوری sbin

مانند /bin است اما فقط binary های اساسی سیستم را در خود جای داده است. ابزارها و دستورات مختلف روزمره مورد استفاده مانند ls ، cd ، cp و غیره در اینجا قرار دارند.

دایرکتوری usr

یک فایل همه کاره است که می تواند شامل باینری، کتابخانه، نماد، کتابچه راهنما و غیره باشند.

دایرکتوری srv

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

دایرکتوری sys

دایرکتوری مجازی دیگر مانند dev است که شامل اطلاعات حساس می باشد.

دایرکتوری tmp

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

دایرکتوری var

هدف اصلی این دایرکتوری میزبان کلیه فایل های متغیر می باشد. ممکن است چندین فهرست اضافی در root شما وجود داشته باشد. این معمولاً در معرض توزیع خاص لینوکس است و می تواند در سیستم ها متفاوت باشد.

بررسی فایل های سیستمی لینوکس

می توانید با استفاده از دستورات استاندارد خط فرمان، فایل سیستمی خود را بررسی کنید. ما لیستی از پرکاربردترین دستورات لینوکس را بدین منظور گردآوری کرده ایم. دستورات مهم و مفید لینوکس در ترمینال

با اجرای ترمینال در محل /home/USER قرار می گیرید که با علامت: ~ $ نشانه گذاری شده است. می توانید با استفاده از دستور cd (تغییر دایرکتوری) مانند /cd /etc به مکان جدیدی بروید. از دستور درخت به شرح زیر استفاده کنید تا همانطور که در شکل زیر مشاهده می کنید، یک ساختار تجسم ساده از فهرست اصلی خود ایجاد کنید.

$ tree -L 1

dir structure - هر آن چیزی که لازم است تا در مورد فایل ها در لینوکس بدانید

می توانید نوع فایل را با استفاده از دستور ls -l مشاهده کنید. بخش اول خروجی آن نشان دهنده انواع فایل هایی است که با آنها سر و کار دارید. علامت “-” مشخص کننده شناسه فایل هست و اگر به صورت d بود یعنی فایل مورد نظر ما دایرکتوری است.

مجوزها در لینوکس

مجوزها یک مفهوم کاملاً متفاوت هستند و برای کاربران لینوکس بسیار مهم می باشند. اگر می خواهید در مهارت های مدیریت سیستم خود برتری داشته باشید، باید آنها را به وضوح درک کنید. لینوکس مانند یونیکس، از مجوزهای فایل برای تعیین میزان دسترسی کاربر برای یک فایل استفاده می کند.

مجوزها اطمینان می دهند كه كاربران فقط می توانند به آن محتویات سیستم مورد نظر خود دسترسی داشته باشند یا اصلاح كنند. این مهمترین جنبه امنیتی سیستم لینوکس شما است.

ما قبلاً از دستور ls -l برای تعیین نوع filetype استفاده کرده ایم. بخش اول خروجی باید شامل سه قسمت باشد که با نماد جدا شده اند. کاراکتر اول بیانگر نوع filetype است. قسمت بعدی باید دارای یک یا چند کاراکتر از مجموعه {r, w, x} باشد. به عنوان مثال، اگر آن rw باشد، کاربر (r) را خواندن و دسترسی (w) را به آن می نویسد. اگر (rwx) باشد، کاربر مجوزهای (x) خواندن، نوشتن و اجرای آن را انجام داده است.

photo 2019 12 28 19 54 29 - هر آن چیزی که لازم است تا در مورد فایل ها در لینوکس بدانید

در بحث دسترسی ها هر یک از مجوزها با یک شماره شناخته می شوند:
R=4
W=2
X=1
همچنین سطح دسترسی به صورت زیر مشخص می شود:
4+2+1                4+2+1                 4+2+1
-rwx                     rwx                       rwx
User                   group                  world
7                          7                         7

پس برای اینکه یه فایل یا پوشه مجوز کامل برای کاربر و گروه و اشتراک گذاری را داشته باشه باید مجوزش به صورت 777 باشد.

با استفاده از دستورات chmod و chown می توانید مجوز برخی از مطالب را تغییر دهید.

مروری بر انواع مختلف فایل ها در لینوکس

در سیستم عامل های مبتنی بر لینوکس چندین نوع فایل سیستمی وجود دارد. انواع فایل سیستمی رایج لینوکس عبارتند از ext3، ext4، zfs، FAT، XFS و Btrfs. ما به طور خلاصه یک بررسی اجمالی از آنها خواهیم کرد. پیدا کردن نوع مناسب فایل سیستم معمولاً به نیاز کاربران بستگی دارد. در اینجا، 10 نوع فایل سیستم پرکاربرد را در لینوکس معرفی می کنیم.

  1. EXT filesystems

ext (Extended File System) مخصوصاً برای لینوکس طراحی شده است و دارای 4 نسخه تا به امروز است. آنها ext ، ext2 ، ext3 و ext4 هستند. بیشتر توزیع های مدرن دیگر پشتیبانی از ext و ext2 را ارائه نمی دهند.  Ext4 نوع سیستم پیش فرض فایل در اکثر موارد دلخواه است.

  1. BtrFS

“B-Tree File System” یک فایل سیستم نوآورانه است که توسط اوراکل ساخته شده است.

  1. ReiserFS

ReiserFS یکی دیگر از فایل هایی است که می تواند برای محاسبات عمومی استفاده شود. این نرم افزار در لینوکس دارای مجوز GNU GPL منبع باز است.

  1. ZFS

ZFS یک سیستم عامل و مدیریت قوی فایل است که توسط Sun Microsystems ساخته شده و در حال حاضر توسط اوراکل نگهداری می شود. این یک فایل سیستمی بسیار قدرتمند است که از انبارداری گسترده، تکنیک های فشرده سازی کارآمد، مدل های RAID مدرن، deduplication داده ها و بسیاری از ویژگی های دیگر پشتیبانی می کند. ZFS در اکثر توزیع های لینوکس و BSD در کنار سیستم عامل Mac و FUSE در دسترس است.

  1. XFS

XFS یک فایل سیستم ای مانند Ext4 است که توسط Silicon Graphics ساخته شده است و از سال 2001 در لینوکس موجود است. XFS از تکنیکی به نام تخصیص تأخیر برای شناسایی موثرتر تکه های فایل استفاده می کند.

  1. JFS

JFS مخفف “Journaled File System” ، یک فایل سیستم لینوکس است که توسط IBM تهیه شده است. به دلیل استفاده محدود از منابع CPU شناخته شده است و عملکرد قابل توجهی را هم برای فایل های بزرگ و هم برای مجموعه های چند فایل کوچکتر فراهم می کند. علاوه بر این، به مدیر سیستم اجازه می دهد تا پارتیشن های خود را به صورت پویا تغییر اندازه دهد.

  1. HAMMER

HAMMER یک نوع فایل بسیار قوی است که برای نسخه DragonFly BSD ساخته شده است و فقط از سیستم های 64 بیتی پشتیبانی می کند.

  1. FAT

جدول FAT یا File Allocation Table طبقه ای از فایل سیستم است که به دلیل انعطاف پذیری و مجموعه ای از ویژگی های قوی شناخته شده است. برخی از سیستم های محبوب فایل FAT شاملFAT 16 ، FAT32 ، exFAT و vFAT هستند. آنها به دلیل قرار گرفتن در دستگاه های قدیمی ویندوز یکی از سیستم های پرکاربردترین فایل هستند. لینوکس از مجموعه گسترده ای از سیستم های فایل معمول FAT پشتیبانی می کند که به دلیل کارایی بالا شناخته شده اند.

  1. NTFS

NTFS (New Technology File System) یکی دیگر از انواع رایج فایل سیستمها برای کاربران است. این فایل سیستم پیش فرض در دستگاه های مدرن ویندوز است و توسط لینوکس و سایر سیستم های BSD پشتیبانی می شود. NTFS چندین تکنیک را برای افزایش کارایی خود پیاده سازی می کند. این نرم افزار از جریان های متناوب داده، روش های مختلف فشرده سازی، تغییر اندازه، فایل های پراکنده و بسیاری از ویژگی های دیگر پشتیبانی می کند.

  1. cramfs

فایل سیستم ROM فشرده، یکی از پرکاربردترین نوع فایل سیستم است. این فایل فقط فایل خواندنی است که به سیستم اجازه می دهد تصاویر را بخواند بدون اینکه نیاز به فشرده سازی آنها داشته باشد.

یک نوع خاص از فایل سیستم لینوکس swap است. در واقع یک فایل سیستم نیست، بلکه روشی است که برای اجرای حافظه مجازی استفاده می شود.

منبع
ubuntupit

نرگس مدحی

علاقه مند به مباحث کامپیوتر و برنامه نویسی

‫5 دیدگاه ها

  1. سلام.این نکته رو که سوال خودم بود الان پیدا کردم و گفتم در اختیار عزیزان قرار بدم. «در مستندات اولیه یونیکس آزمایشگاه‌های بل، کلمه etc به عنوان مخفف etcetera عنوان شده که به معنی متفرقه‌ است و نشان دهنده آنکه برنامه‌های متفرقه (به جز خود لینوکس) تنظیمات خود را در اینجا ذخیره می‌کنند. مستندات جدیدتر گاهی از آن با عنوان تنظیمات قابل ویرایش (Editable Text Configuration) یا گنجه ابزارهای اضافی (Extended Tool Chest) هم نام می‌برند که مخفف با معناتری است».

  2. سلام.لطفا بهم بگید چرا روت دایرکتوری روت علامت ضربدر قرار داره و etc/ مخفف چیه؟ممنون.

    1. سلام
      سوال اول رو متوجه نشدم.
      برای سوال دوم، “etc” در /etc/ مخفف “et cetera” است، که به معنای “و سایر چیزها” یا “و غیره” استفاده می‌شود. این دایرکتوری به عنوان مکانی برای تنظیمات و فایل‌های پیکربندی مختلف در سیستم شناخته می‌شود.

  3. امکانش هست که پی دی اف این مطلب رو در سایت قرار بدید یا اونو به ایمیلم ارسال کنید

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

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


دکمه بازگشت به بالا