آشنایی با لینوکس و فایل سیستم آن احتمالا یک از ملزومات برای گیک های کامپیوتری است و در این مطلب قصد داریم نگاهی به فایل سیستم و برخی ویژگی های لینوکس بیاندازیم. لینوکس یکی از مهمترین سیستمعاملها در دنیای کامپیوتر است به طوری که پس از سیستم عامل DOS که یک سیستم عامل Single task و تک وظیفهای بود جهان کامپیوترِ دسکتاپ در دهه هشتاد و نود میلادی به دو بخش گسترده سیستمعامل های مبتنی بر Windows NT و UNIX operating system تقسیم شد که همهگی سیستمعاملهای چندوظیفهگی با قابلیتهای مهمی بودند.
توسعه سیستمعاملهای UNIX در اواخر دهه شصت توسط آزمایشگاه Bell Labs که متعلق به AT&T بود آغاز شد و پس از آن هسته اصلی و فایل سیستم و قابلیتهای کلیدی این سیستمعامل توسط افراد دیگر حفظ شد و نسخههای اپن سورس و غیر اپن سورس از این سیستم عامل با کاربریها و ابزار مختلف توسعه یافت به طوری که میتوان سیستمعامل لینوکس اوبونتو را یک OS اپن سورس رایگان برگرفته از Unix نامید در حالی که مک OS سیستمعاملی پولی متعلق به اپل است که مبتنی بر Berkeley Software Distribution که خود نیز برگرفته از UNIX بود ساخته شده است.
File system سیستمعاملهای مبتنی بر Unix میتواند برای افرادی که تازه به محیط کامپیوتری این سیستمعامل وارد میشوند گیچ کننده باشد اما افرادی که امروز در این زمینه حرفهای هستند نیز اوایل چنین حس سردرگمی را تجربه کردهاند. لینوکس یک سیستمعامل بسیار خوب است و تقریبا سهم بزرگی در بخش سرور و کامپیوترهایی که در اینترنت سرویس میدهند دارد.
این سیستمعامل از لحاظ انعطاف پذیری، تطبیق پذیری و سبکی عالی عمل میکند و میتوان بر روی یک بورد کوچک و یا حتی یک ابرکامپیوتر آن را اجرا کرد، اما برای کاربرانی که تازه از ویندوز به این سیستمعامل مهاجرت کردهاند و یا قصد دارند در کنار بهرهمندی از ویندوز، لینوکس را نیز فرا بگیرند آشنایی با فایل سیستم لینوکس میتواند بسیار کاربردی و جالب باشد. در ادامه نگاهی اجمالی به فایل سیستم لینوکس میاندازیم:
- / : محل ذخیره فایل در ویندوز، پوشه یا File Explorer است، اما در لینوکس بیشتر directory گفته میشود و / نشان دهنده دایرکتوری روت در لینوکس است که از آنجا تمام دایرکتوری ها قابل دسترسی است
- Bin: دستورات ضروری لازم برای سیستم در این بخش نگهداری میشود
- Boot: بوت کننده و فایلهای Boot loader هایی مانند Grub در این بخش ذخیره میشود
- Dev: مخفف شده device یا دستگاه است و لینک ارتباطی بین فایلهای یک دستگاه جدید مانند هارد دیسک و USB Flash Drives با سیستم عامل است
- etc: محل ذخیره فایلهای تنظیمات و پیکربندی سیستم عامل لینوکس
- Home: دایرکتوری خانه برای کاربران
- lib: محل ذخیره فایلهای کتابخانهای مورد نیاز سیستمعامل و اپلیکیشنها
- Media: برای شناسایی فایلهای DVD، USB و یا دیوایسهای حذف شدنی (removable media) نیاز به Mount points است که خود آن یک فایل یا دایرکتوری برای شناساندن محتویات درون دیوایس جدید به سیستمعامل است
- mnt: دایرکتوری mount point موقتی
- opt: محل ذخیره پکیجهای نرمافزاری که متعلق به سیستمعامل نیستند و جدا نصب شدهاند
- proc: فایل سیستم مجازی برای پردازشها و کرنل سیستم عامل
- root: دایرکتوری home برای کاربر با دسترسی روت
- Run: اطلاعات مربوط به سیستمعامل در حال اجرا از زمان آخرین بوت
- sbin: فایل های باینریهای ضروری و مورد نیاز سیستم عامل
- srv: دایرکتوری دیتاهای وب و FTP سرور
- sys: شامل اطلاعات دیوایس ها، درایورها و کرنل میشود
- Tmp: محل ذخیره فایلهای موقتی و Temporary
- usr: شامل اطلاعات و دستورات اپلیکیشنهای کاربر
- var: محل ذخیره فایلهای که قابل تغییر هستند مانند log file
نقطه شروع برای سیستمعامل مبتنی بر یونیکس دایرکتوری روت است که اغلب با (/) نیز شناخته میشود. این یک دایرکتوری شروع برای هر directory دیگر در سیستم عامل است و تنها کاربر با دسترسی روت میتواند در این دایرکتوری چیزی بنویسد. اکثر فایلهای این بخش read only هستند. پس از دایرکتوری Root نوبت به bin میرسد که مخفف binaries است و در این بخش دستورات ضروری و مهم سیستم مانند ls ،grep ،mv و cp وجود دارد.
نصب و یا ذخیره فایل در این بخش ممکن است به ناپایداری سیستم بیانجامد. دایرکتوری dev جایی است که دستگاه در آن قرار دارند و لینوکس با همه چیز به عنوان یک فایل رفتار میکند و در این بخش فلش usb و دیوایس های دیگر را میتوان یافت. Lib مخفف Library است و جایی است که فایلهای کتابخانهای ضروری سیستمعامل برای اجرا در آن ذخیره میشوند. این کتابخانه به شیوهای مشابه فایلهای DLL در ویندوز کار میکند.
proc مخفف Processes است و یک mount point برای فایل سیستم محسوب میشود. محتویات این محل شامل اطلاعات مربوط به فرآیندها و پردازشهای در حال اجرا است و همچنین شماره PID پردازش مربوط را نیز نشان میدهد. با استفاده از این دایرکتوری میتوان پردازشهای سیستم در حال اجرا را بررسی کرد و تقریبا مانند سربرگ processes در Task Manager ویندوز است با این تفاوت که رابط کاربری متفاوت و دسترسیهای بیشتری ارائه میدهد.
directory با نام srv نیز معمولا برای ذخیره دادههای مختص به یک وبسرور مورد استفاده قرار میگیرد و اگر شما وب سروری راهاندازی نکردهاید این بخش خالی از فایل نشان داده میشود. هر کاربر لینوکس دارای home directory است، جایی که میتوان اسناد، ویدیو، موزیک و یا اطلاعات دیگر را در آن ذخیره کرد.
معمولا کاربران لینوکس بیشتر از دایرکتوری home استفاده میکنند و هرگز به محل ذخیره فایلهای سیستم عامل برای دستکاری، نصب برنامه و ذخیره فایل نمیروند. در لینوکس دستور ls محتویات یک دایرکتوری را از طریق ترمینال و اینترفیس دستوری نمایش میدهد و همچنین sudo apt install و sudo apt upgrade با ذکر صحیح نام نرمافزار مورد نظر در ترمینال به نصب و بروزرسانی یک اپلیکیشن میپردازد.
برای حذف کردن یک نرمافزار در محیط دستوری ترمینال لینوکس dpkg –list را تایپ کنید سپس پس از یافتن نام نرمافزار مورد نظر آن را در آخر این عبارت sudo apt-get –purge remove اضافه کنید و اینتر را بزنید. همچنین برای مشاهده دایرکتوری های فایل سیستم لینوکس به صورت فهرست شده میتوان از دستور (tree -d -L 1) استفاده کرد.
در این راهنما دستوراتی که برای مدیریت بستهها نوشته شد برای توزیعهای مبتنی بر دبیان گنو لینوکس است. اگر از سایر توزیعها مانند فدورا یا مانجارو استفاده بکنید دستورات مدیریت بسته متفاوت است.
اگر هم میخواهید با برنامههای مدیریت بسته مستقل از توزیعها آشنا شوید دو برنامه اصلی Flatpak و Snap هستند
سلام وقت خوش، من بیشتر از توزیعهای مبتنی بر دبیان استفاده کردم و این مورد رو نمیدونستم، به هر حال ممنون از اینکه بیان کردید.