در مقاله قبلی به بررسی مدیریت فضای دیسک پرداختیم؛ در این مقاله قصد داریم به کالبدشکافی ساختار پوشه های لینوکس بپردازیم. وقتی برای اولین بار وارد دنیای لینوکس میشوید، نبود درایوهای آشنایی مثل C: یا D: ممکن است گیجکننده باشد، اما درک این ساختار درختی; ساختار پوشه های لینوکس، کلید قدرت شماست.
در لینوکس، همهچیز در قالب یک ساختار درختی واحد سازماندهی شده است؛ ساختاری که از یک نقطه آغاز میشود و تمام فایلها، برنامهها، دیسکها و حتی سختافزار را در بر میگیرد.
چه یک کاربر دسکتاپ باشید که میخواهد سیستم خود را بهتر بشناسد، و چه در ابتدای مسیر مدیریت سرور و سرویسها قرار داشته باشید؛ شناخت این ساختار پوشه های لینوکس (که مطابق استاندارد Filesystem Hierarchy Standard – FHS است) یکی از کلیدهای اصلی تسلط بر لینوکس محسوب میشود.
استاندارد FHS چیست؟
تمام دایرکتوریهایی که در ادامه بررسی میکنیم، بر اساس استاندارد Filesystem Hierarchy Standard یا به اختصار FHS بنا شدهاند. رعایت این استاندارد در ساختار پوشه های لینوکس باعث میشود که شما در هر توزیعی (از اوبونتو تا آرچ)، فایلهای حیاتی را به راحتی پیدا کنید.

۱. ریشه همه چیز: / (Root)
در لینوکس، / نقطهی شروع جهان فایلهاست. تمام فایلها، پارتیشنها، دیسکها و دستگاههای جانبی در نهایت در جایی از این درخت; ساختار پوشه های لینوکس به / متصل میشوند.
در لینوکس مفهومی به نام «فایل خارج از سیستم» وجود ندارد؛ حتی اگر یک فلش مموری یا هارد اکسترنال وصل کنید، در نهایت در قالب یک مسیر (Mount Point) زیر این ریشه قرار میگیرد.
۲. مرکز تنظیمات سیستم: /etc (Configuration)
این پوشه را میتوان مرکز پیکربندی سراسری سیستم دانست. بیشتر فایلهای تنظیمات مربوط به خود سیستمعامل و سرویسهای نصبشده در این مسیر قرار دارند.
- کاربرد دسکتاپ: تنظیمات سیستمی مانند locale، فونتها، network manager یا display manager معمولاً از اینجا کنترل میشوند.
- کاربرد سرور: تنظیمات وبسرور، دیتابیس، سرویس SSH، cron و فایلهای واحد systemd همگی در
/etcنگهداری میشوند.
نکته: تنظیمات شخصی کاربران معمولاً در پوشهی home و نه در
/etcقرار دارند.
۳. دادههای در حال تغییر: /var (Variable)
یکی دیگر از بخشهای مهم در ساختار پوشه های لینوکس است نام این پوشه از کلمهی Variable گرفته شده، چون محتوای آن دائماً در حال تغییر است!
زیرپوشههای مهم:
/var/log: گزارشهای سیستم و سرویس ها در این مسیر ذخیره میشوند. اگر برنامه ای کرش کند یا ورود ناموفقی به سیستم انجام شود، اولین جایی که باید بررسی کنید همین پوشه است./var/www: در بسیاری از توزیعها، بهعنوان یک قرارداد رایج، فایل های سایت های میزبانی شده توسط وب سرور (مانند Apache یا Nginx) معمولاً در این مسیر یا زیر شاخهای مانند/var/www/htmlقرار میگیرند.

توضیح:
خروجی دستور ls -R /var/log تمام فایل ها و زیردایرکتوری های مسیر لاگ ها را بهصورت بازگشتی نمایش میدهد؛ مناسب برای بررسی ساختار کامل لاگ های سیستم.
۴. فضای شخصی کاربران: home و root
لینوکس برای تفکیک کاربران و امنیت اهمیت زیادی قائل است. فضای ششخصی کاربران یکی دیگر از بخشهای مهم در ساختار پوشه های لینوکس است.
/home: هر کاربر عادی یک پوشهی اختصاصی در این مسیر دارد که شامل فایلها، تنظیمات شخصی و دادههای اوست (Documents، Downloads و …). کاربران دیگر بدون مجوز به این پوشهها دسترسی ندارند./root: این پوشه خانه ی کاربر ارشد سیستم (Superuser) است. برخلاف کاربران عادی، home کاربر root مستقیماً زیر/قرار دارد تا حتی در شرایطی که پارتیشن های دیگر در دسترس نیستند، بتوان سیستم را مدیریت کرد.
۵. محل اصلی برنامهها: usr
پوشهی /usr را میتوان کتابخانهٔ مرکزی سیستم در نظر گرفت. امروزه محل اصلی نصب تقریباً تمام نرمافزارها و منابع سیستمی است که به یک کاربر خاص تعلق ندارند.
بخش عمدهای از برنامهها و حتی خود سیستمعامل، عملاً از این مسیر از ساختار پوشه های لینوکس اجرا میشوند.
/usr/bin: فایلهای اجرایی برنامهها (مانند Firefox، Git، VLC)/usr/sbin: ابزارهای مدیریت سیستم (معمولاً نیازمند دسترسی superuser)/usr/share: فایلهای اشتراکی مانند آیکونها، مستندات و localization/usr/lib: کتابخانههای موردنیاز برنامهها
۶. نرمافزارهای مستقل: opt (Optional)
برخی نرمافزارها ترجیح میدهند تمام فایلهای خود را در یک پوشهی مجزا نگه دارند و از ساختار استاندارد لینوکس فاصله بگیرند. این دسته از برنامهها معمولاً در /opt نصب میشوند.
نمونه های رایج: Google Chrome، Telegram Desktop و برخی نرمافزارهای تجاری یا Third-party.
۷. دستورات پایه سیستم: bin و sbin
این پوشهها شامل دستورات حیاتی سیستم هستند که برای بوت و عیب یابی اولیه ضروریاند.
/bin: دستورات عمومی و پایه مانندls،cp،mv/sbin: ابزارهای حیاتی مدیریت سیستم که معمولاً نیاز به دسترسی root دارند
نکته مهم: در توزیعهای مدرن مبتنی بر systemd (مانند Fedora، Arch و Ubuntu 23.10 به بعد)، این پوشهها اغلب بهصورت symbolic link به
/usr/binو/usr/sbinادغام (Merge) شدهاند؛ با این حال، تفکیک مفهومی آنها همچنان حفظ شده است.
۸. هسته و فرایندها: proc و sys
این مسیرها از ساختار پوشه های لینوکس پنجرهای مستقیم به درون هسته سیستمعامل باز میکنند.
/proc: اطلاعات زنده و پویای مربوط به فرایندها (Processes) و پارامترهای هسته را در قالب فایلهای متنی نمایش میدهد.
#For example:
cat /proc/cpuinfo

در تصویر بالا میبینید که برخلاف ویندوز که باید به Device Manager بروید، در لینوکس فقط با خواندن یک فایل متنی در /proc میتوانید تمام جزئیات فنی CPU (مثل معماری، کش و تعداد هستهها) را ببینید!
/sys: رابطی ساختیافته برای تعامل با زیرسیستمهای هسته و مدیریت دستگاهها (Devices) فراهم میکند.
درک این دو ساختار برای عیبیابی پیشرفته، مانیتورینگ و تنظیمات سطح پایین سیستم حیاتی است.
۹. سختافزار در قالب فایل: dev (Devices)
در ادامهی همان فلسفهی یونیکسی، هر دستگاه سخت افزاری یا مجازی در سیستم بهصورت یک فایل ویژه در این مسیر نمایش داده میشود.
/dev/sda: نماینده یک هارد دیسک/dev/ttyUSB0: نماینده یک پورت USB سریال- کارت صدا، میکروفون، ترمینالها و حتی منابع دادهی تصادفی مانند
/dev/randomهمگی در این پوشه قرار دارند.
۱۰. فضای موقت: tmp (Temporary)
برنامه ها برای ذخیره داده های موقت از این پوشه استفاده میکنند.
محتوای /tmp معمولاً بهصورت خودکار (در زمان reboot یا توسط سرویسهایی مانند systemd-tmpfiles) پاکسازی میشود. بنابراین:
- این مسیر برای فایلهای مهم مناسب نیست
- اما برای عملیات کوتاهمدت، مانند استخراج موقت یک آرشیو، بسیار کاربردی است
جمعبندی: چرا دانستن این ساختار مهم است؟
شناخت ساختار فایل سیستم لینوکس و ساختار پوشه های لینوکس شما را از یک کاربر معمولی به یک کاربر حرفهای و توانمند تبدیل میکند.
این دانش نهتنها عیب یابی را سریع تر میکند، بلکه پایه ای اساسی برای طراحی سرویسها، نوشتن اسکریپتهای اتوماسیون قابل اطمینان و درک عمیق معماری سیستم است.
وقتی بدانید هر چیز کجا قرار دارد:
- پر شدن ناگهانی دیسک؟ → ابتدا
/var/logرا بررسی کنید. - مشکل اجرای یک سرویس؟ → تنظیمات آن را در
/etcببینید. - رفتار عجیب یک برنامه؟ → مسیر نصب آن در
/usrیا/optرا بررسی کنید. - نیاز به مانیتورینگ پیشرفته؟ → به
/procو/sysسر بزنید.
این نقشهی راه، شما را برای مدیریت حرفهای لینوکس از دسکتاپ تا سرور آماده میکند.
برای مطالعه بیشتر: میتوانید جزئیات کامل استاندارد FHS را در وبسایت رسمی بنیاد لینوکس بررسی کنید.
در مقالهی بعدی، به سراغ مدیریت سرویسها در لینوکس با systemd میرویم؛ از اجرا و توقف گرفته تا عیبیابی حرفهای.