Struktur Direktori Linux (FHS)

Struktur Direktori Linux (FHS)

Bitnesia Aug 15, 2026 23 EN

Pada bab sebelumnya Anda telah mempelajari konsep dasar file dan direktori di Linux, termasuk filosofi "segalanya adalah file" dan fakta bahwa Linux memiliki satu pohon direktori tunggal yang berakar pada /. Kini saatnya mempelajari struktur pohon tersebut secara lebih rinci. Bab ini membahas Filesystem Hierarchy Standard (FHS), yaitu standar yang mengatur tata letak direktori di Linux, menjelaskan konsep root filesystem dan mount point, lalu menguraikan fungsi dari setiap direktori utama yang akan sering Anda temui, seperti /home, /etc, /var, /proc, dan lainnya. Memahami struktur ini akan membuat Anda lebih mudah menemukan file, memahami cara kerja sistem, dan menyelesaikan masalah.

Filesystem Hierarchy Standard (FHS)

Filesystem Hierarchy Standard (FHS) adalah sebuah standar yang mendefinisikan struktur direktori dan isi direktori pada sistem operasi berbasis Unix dan Linux. Standar ini dikelola oleh Linux Foundation dan bertujuan memastikan bahwa perangkat lunak dapat memprediksi lokasi file dan direktori, terlepas dari distribusi Linux yang digunakan.

Sebelum ada standar ini, setiap distribusi Linux memiliki tata letak direktori yang berbeda-beda, sehingga sebuah program yang dibuat untuk satu distribusi belum tentu dapat menemukan file konfigurasi atau pustaka yang dibutuhkannya pada distribusi lain. Berkat FHS, lokasi file-file penting menjadi seragam: misalnya, file konfigurasi sistem berada di /etc, perintah-perintah berada di bawah /usr/bin, dan data yang berubah-ubah berada di /var.

Baik Ubuntu maupun Fedora mengikuti FHS, sehingga struktur direktori yang Anda pelajari pada bab ini berlaku sama untuk kedua distribusi tersebut. Meskipun demikian, FHS memberikan ruang bagi distribusi untuk melakukan penyesuaian tertentu, sehingga masih ada beberapa perbedaan kecil antara satu distribusi dengan distribusi lainnya.

Root Filesystem dan Mount Point

Sebagaimana telah disinggung pada bab sebelumnya, seluruh sistem file Linux berakar pada satu direktori teratas yang disebut root, ditulis dengan tanda garis miring tunggal /. Direktori root ini adalah induk dari seluruh direktori lain di sistem. Ketika Anda menuliskan sebuah path seperti /home/nama-pengguna/Documents, garis miring pertama di paling kiri merujuk pada direktori root ini.

Konsep penting kedua adalah mount point. Mount point adalah sebuah direktori kosong yang digunakan sebagai "pintu masuk" untuk sebuah filesystem. Ketika sebuah partisi atau perangkat penyimpanan dipasang (mounted) ke sebuah mount point, isi partisi tersebut akan tampak berada di dalam direktori tersebut.

Sebagai ilustrasi, ketika Anda mencolokkan USB flashdisk, sistem dapat memasangnya ke direktori seperti /media/nama-pengguna/nama-flashdisk. Setelah itu, semua file di flashdisk dapat diakses melalui direktori tersebut, seolah-olah file tersebut memang merupakan bagian dari pohon direktori utama. Berkat mekanisme mount point inilah seluruh sistem tampak sebagai satu kesatuan yang utuh, meskipun sebenarnya tersusun dari banyak partisi dan perangkat fisik yang terpisah.

Penjelasan Direktori Utama

Berikut adalah uraian fungsi dari direktori-direktori utama dalam sistem Linux. Tabel berikut memberikan ringkasan singkatnya, kemudian setiap direktori dijelaskan lebih lanjut.

DirektoriFungsi
/Root: induk seluruh direktori
/homeDirektori pengguna biasa
/rootDirektori home milik pengguna root
/bin, /sbin, /usr/binProgram dan perintah
/etcKonfigurasi sistem
/varData variabel (log, mail, spool)
/tmpFile sementara
/devDevice file
/runData runtime sejak boot terakhir (virtual, tmpfs)
/procInformasi proses dan kernel (virtual)
/sysInformasi hardware (virtual)
/lib, /usr/libLibrary bersama
/media, /mntMount point media lepas-pasang
/optSoftware pihak ketiga
/bootFile boot loader

/: Root

Direktori root / adalah puncak dari seluruh hierarki. Tidak ada direktori yang berada di atasnya, dan semua file serta direktori lain merupakan turunannya. Secara umum, direktori root berisi subdirektori-subdirektori yang diatur oleh FHS, dan idealnya hanya berisi sedikit file. Sebagian besar aktivitas dan data berada di dalam subdirektori di bawahnya.

/home: Direktori Pengguna

/home adalah tempat penyimpanan data pribadi setiap pengguna biasa. Setiap pengguna memiliki subdirektori sendiri, misalnya /home/nama-pengguna, yang berisi dokumen, unduhan, gambar, dan file konfigurasi pribadi pengguna tersebut.

Direktori home ini juga menyimpan banyak dotfile dan direktori konfigurasi seperti .bashrc dan .config yang telah dibahas pada bab sebelumnya. Ketika Anda menyimpan dokumen ke folder Documents atau Downloads melalui aplikasi grafis, file tersebut secara default disimpan di dalam direktori home Anda. Menjaga data penting berada di /home juga memudahkan pencadangan (backup), karena seluruh data pribadi terpusat di satu tempat.

/root: Home dari Root

/root adalah direktori home milik pengguna root, yaitu akun administrator tertinggi dalam sistem. Perhatikan bahwa /root berbeda dengan direktori root /. Direktori /root hanyalah direktori home khusus untuk akun root, sedangkan / adalah akar dari seluruh filesystem.

Direktori home milik root sengaja ditempatkan terpisah dari /home, karena /home pada beberapa sistem dapat dipasang pada partisi tersendiri atau melalui jaringan. Karena dipisahkan, root tetap dapat masuk ke sistem meskipun partisi /home sedang bermasalah.

/bin, /sbin, dan /usr/bin: Program dan Perintah

Direktori-direktori ini menyimpan program yang dapat dieksekusi, yaitu perintah-perintah yang Anda jalankan di terminal:

  • /usr/bin berisi mayoritas perintah pengguna sehari-hari, seperti ls, cp, mv, cat, dan nano.
  • /usr/sbin berisi perintah untuk administrasi sistem yang umumnya hanya dijalankan oleh root atau melalui sudo, seperti fdisk, useradd, dan shutdown.
  • /bin dan /sbin secara historis berisi perintah esensial yang dibutuhkan saat boot. Namun, pada distribusi modern seperti Ubuntu 26.04 dan Fedora 44, kedua direktori ini umumnya sudah digabungkan (merged) menjadi tautan simbolik yang mengarah ke /usr/bin dan /usr/sbin. Artinya, semua perintah sekarang sebenarnya berada di bawah /usr.

Oleh karena itu, ketika Anda mengetik sebuah perintah, sistem mencari perintah tersebut di direktori-direktori yang tercantum dalam environment variable PATH, yang biasanya mencakup /usr/bin dan /usr/sbin.

/etc: Konfigurasi Sistem

/etc adalah tempat penyimpanan file konfigurasi seluruh sistem. Hampir semua pengaturan yang berlaku untuk seluruh mesin, bukan hanya untuk satu pengguna, disimpan di sini.

Beberapa file dan direktori penting di dalam /etc antara lain:

  • /etc/passwd: daftar akun pengguna.
  • /etc/fstab: konfigurasi pemasangan filesystem saat boot.
  • /etc/hosts: resolusi nama host lokal.
  • /etc/apt/: konfigurasi package manager APT (di Ubuntu).
  • /etc/yum.repos.d/: konfigurasi repositori DNF (di Fedora).
  • /etc/systemd/: konfigurasi systemd.

Konvensi di Linux menyebut file-file ini sebagai config file, dan banyak di antaranya berupa teks biasa sehingga dapat dibaca serta diedit menggunakan text editor. Banyak materi konfigurasi pada buku ini akan merujuk pada file-file di dalam /etc.

/var: Data Variabel

/var menyimpan data yang berubah-ubah selama sistem berjalan. Nama var berasal dari kata variable. Berbeda dengan /usr yang umumnya bersifat statis, isi /var terus berubah seiring aktivitas sistem.

Subdirektori penting di dalam /var antara lain:

  • /var/log: menyimpan file log sistem dan aplikasi.
  • /var/mail: menyimpan email pengguna.
  • /var/spool: data antrean (spool) untuk pencetakan dan tugas terjadwal.
  • /var/cache: data cache aplikasi.
  • /var/lib: data yang berubah untuk aplikasi dan package manager.

Ketika Anda mencari penyebab suatu masalah pada sistem, direktori /var/log adalah salah satu tempat pertama yang perlu diperiksa.

/tmp: File Sementara

/tmp digunakan untuk menyimpan file sementara yang dibuat oleh program atau pengguna. Banyak aplikasi memakai /tmp untuk menyimpan data yang hanya dibutuhkan sesaat.

Keistimewaan /tmp adalah isinya tidak dimaksudkan untuk bertahan lama. Pada Ubuntu dan Fedora modern, /tmp biasanya dipasang sebagai tmpfs, yaitu filesystem yang sebenarnya berada di RAM, bukan di disk. Inilah sebabnya isi /tmp otomatis hilang setiap kali sistem dimatikan atau di-restart—bukan karena dibersihkan secara aktif, melainkan karena data di RAM memang tidak persisten. Selain itu, layanan systemd-tmpfiles juga secara berkala menghapus file di /tmp yang sudah lama tidak diakses (secara default setelah 10 hari), meskipun sistem tidak di-reboot. Karena sifatnya yang berada di RAM, jangan menyimpan data penting atau file berukuran sangat besar di /tmp, karena selain bisa hilang kapan saja, ia juga ikut memakan kapasitas memori yang seharusnya tersedia untuk aplikasi yang sedang berjalan.

/dev: Device File

/dev berisi device file, yaitu file khusus yang merepresentasikan perangkat keras. Sebagaimana dijelaskan pada bab sebelumnya, dalam Linux perangkat keras juga diakses sebagai file.

Beberapa contoh device file di /dev antara lain:

  • /dev/sda: hard disk atau SSD pertama.
  • /dev/sda1: partisi pertama pada disk /dev/sda.
  • /dev/tty: terminal.
  • /dev/null: "lubang hitam" yang membuang semua data yang ditulis ke dalamnya.
  • /dev/random: sumber angka acak.

Anda umumnya tidak perlu berinteraksi langsung dengan file di /dev, tetapi memahami keberadaannya membantu menjelaskan prinsip "segalanya adalah file".

/run: Data Runtime Sejak Boot Terakhir (Virtual)

/run adalah direktori yang menyimpan data runtime, yaitu informasi yang hanya relevan sejak sistem terakhir kali boot. Sama seperti /tmp pada distribusi modern, /run juga dipasang sebagai tmpfs di RAM, sehingga isinya otomatis dibuat ulang setiap kali sistem dinyalakan.

Berbagai layanan sistem, termasuk systemd, menyimpan data seperti berkas PID (penanda proses yang sedang berjalan), socket untuk komunikasi antar proses, serta info status boot terkini di dalam /run. Direktori ini menggantikan peran direktori /var/run yang digunakan pada sistem Linux versi lama; sesuai standar FHS terbaru, /var/run kini umumnya hanyalah tautan simbolik yang mengarah ke /run, dipertahankan demi kompatibilitas dengan program-program lama yang masih mengacu ke lokasi tersebut.

/proc: Informasi Proses dan Kernel (Virtual)

/proc adalah filesystem virtual yang menyediakan informasi tentang proses yang sedang berjalan dan keadaan kernel. Direktori ini tidak berisi file sungguhan di disk; isinya dihasilkan langsung oleh kernel setiap kali dibaca.

Setiap proses yang berjalan direpresentasikan oleh sebuah direktori bernomor sesuai Process ID (PID). Sebagai contoh, /proc/1234 berisi informasi tentang proses dengan PID 1234. Selain itu, /proc juga menyimpan file informasi umum seperti /proc/cpuinfo (informasi prosesor) dan /proc/meminfo (informasi memori).

/sys: Informasi Hardware (Virtual)

Sama seperti /proc, direktori /sys juga merupakan filesystem virtual. Bedanya, /sys berfokus pada informasi tentang perangkat keras, driver, dan subsistem kernel. Melalui /sys, sistem dan aplikasi dapat melihat serta, dalam beberapa kasus, mengubah perilaku perangkat keras.

Isi /sys umumnya dikelola oleh kernel dan jarang perlu diedit secara manual oleh pengguna biasa. Keberadaan /sys dan /proc menunjukkan betapa kuatnya abstraksi "file" dalam Linux: bahkan keadaan internal kernel pun dapat diakses sebagai file.

/lib dan /usr/lib: Library

Direktori /lib dan /usr/lib menyimpan shared library, yaitu kode pustaka bersama yang digunakan oleh berbagai program. Library berfungsi seperti "potongan program" yang dapat dipakai bersama, sehingga program tidak perlu menyertakan semua kode yang dibutuhkannya sendiri.

Pada sistem modern, sama seperti /bin, direktori /lib juga umumnya merupakan tautan simbolik ke /usr/lib sebagai bagian dari skema merged usr. Library ini sangat penting bagi sistem; jika library kunci terhapus atau rusak, banyak program dapat berhenti bekerja.

/media dan /mnt: Mount Point Media Lepas-Pasang

/media dan /mnt adalah lokasi standar untuk memasang filesystem, terutama media penyimpanan yang dapat dilepas seperti USB flashdisk dan hard disk eksternal.

  • /media digunakan untuk pemasangan otomatis media lepas-pasang. Ketika Anda mencolokkan flashdisk, sistem biasanya memasangnya ke /media/nama-pengguna/nama-flashdisk.
  • /mnt digunakan sebagai lokasi pemasangan manual yang bersifat sementara, misalnya ketika administrator ingin memasang partisi lain secara langsung dengan perintah mount.

/opt: Software Pihak Ketiga

/opt (singkatan dari optional) disediakan untuk menginstal perangkat lunak pihak ketiga yang tidak mengikuti skema direktori standar. Beberapa aplikasi komersial atau proprietary memasang seluruh isinya ke dalam subdirektori tersendiri di bawah /opt, misalnya /opt/nama-aplikasi.

Pada umumnya, perangkat lunak yang diinstal melalui package manager resmi (APT atau DNF) tidak menggunakan /opt, melainkan ditempatkan di /usr. Direktori /opt lebih sering dipakai oleh aplikasi yang diinstal secara manual atau oleh vendor perangkat lunak tertentu.

/boot: File Boot Loader

/boot berisi file-file yang dibutuhkan untuk memulai (boot) sistem. Di dalamnya terdapat kernel Linux (biasanya bernama vmlinuz-...), initial RAM disk (initrd atau initramfs), serta file konfigurasi dan modul boot loader seperti GRUB.

Direktori /boot ini krusial bagi proses booting. Karena itu, file di dalamnya sebaiknya tidak diubah atau dihapus sembarangan, karena kesalahan di sini dapat membuat sistem gagal menyala.

Pada bab ini Anda telah mempelajari Filesystem Hierarchy Standard (FHS), konsep root filesystem dan mount point, serta fungsi dari setiap direktori utama di Linux seperti /home, /etc, /var, /tmp, /dev, /run, /proc, /sys, /boot, dan lainnya. Pemahaman ini akan menjadi peta bagi Anda ketika menjelajahi sistem, mencari file konfigurasi, membaca log, atau menyelesaikan masalah.

Pada bab berikutnya, kita akan melanjutkan pembahasan filesystem dengan mempelajari partisi dan jenis-jenis filesystem seperti ext4, XFS, dan Btrfs, serta konsep swap, mount, dan unmount.