Topik ini menuntun tur singkat ke direktori-direktori penting pada sistem berkas Linux, yaitu /etc, /var, /home, /tmp, dan /usr. Linux menempatkan semuanya dalam satu pohon yang berakar di /, dan Filesystem Hierarchy Standard (FHS) menstandarkan apa yang seharusnya berada di tiap cabangnya. Setelah membacanya, lokasi berkas konfigurasi, log, data pengguna, dan program tidak perlu ditebak lagi.
Diagram berikut merangkum peran kelima direktori yang akan dikunjungi.
Satu pohon dari akar /#
Berbeda dengan Windows yang menamai tiap drive secara terpisah, Linux memiliki tepat satu akar berupa /, dan semua perangkat penyimpanan dipasang (mount) ke cabang pohon tersebut. Setiap jalur yang valid pada akhirnya berangkat dari akar ini, baik dari mesin lokal maupun dari perangkat yang dipasang di dalamnya. Blok berikut menampilkan isi akar pohon pada lingkungan latihan.
# daftar isi akar sistem berkas
ls /app
bin
boot
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
start.sh
sys
tmp
usr
varSebagian nama pada keluaran adalah direktori yang ditetapkan FHS, seperti etc, var, home, tmp, dan usr. Ada pula yang khusus: proc dan sys memuat antarmuka kernel dalam bentuk berkas semu, dev berisi simpul perangkat (device node), sementara lost+found adalah milik sistem berkas ext4. Entri seperti app dan start.sh merupakan tambahan khusus lingkungan latihan ini, bukan bagian dari FHS. Isi persisnya memang berbeda antar mesin, tetapi pola besarnya selalu sama.
/etc: berkas konfigurasi#
Direktori /etc menyimpan berkas konfigurasi tingkat sistem yang berbentuk teks biasa, sehingga dapat dibaca dan disunting dengan editor teks apa pun. Di sinilah identitas mesin, daftar pengguna, dan konfigurasi layanan tersimpan. Blok berikut menampilkan sebagian isinya beserta dua berkas yang paling sering diperiksa.
# sebagian entri di /etc
ls /etc | head -n 12
# nama mesin disimpan di /etc/hostname
cat /etc/hostname
# distribusi yang dipasang tercatat di /etc/os-release
head -n 2 /etc/os-releaseImageMagick-7
ODBCDataSources
X11
adduser.conf
alternatives
apache2
apparmor.d
apt
bash.bashrc
bash_completion.d
bindresvport.blacklist
binfmt.d
c-6ae8a8d9-14127d0f-16c590d2407b
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"Urutan tampilan mengikuti alfabet, sehingga dua belas entri pertamanya berupa nama seperti adduser.conf dan apt. Berkas dengan akhiran .conf adalah konfigurasi, sedangkan entri tanpa akhiran umumnya direktori yang mengumpulkan konfigurasi untuk satu layanan. Nama pada /etc/hostname berupa nama acak buatan penyedia lingkungan latihan ini, dan isinya akan tampak seperti nama yang dipilih saat instalasi pada mesin milik pembaca.
Keluaran os-release menunjukkan bahwa lingkungan latihan ini berjalan di atas Debian, sehingga daftar berkas di /etc dapat sedikit berbeda dengan Ubuntu. Perbedaan semacam ini wajar karena FHS menstandarkan letak dan peran tiap direktori, bukan daftar isi persisnya. Sebelum menyunting berkas apa pun di /etc, buat dahulu salinan cadangannya di direktori yang sama.
/var: data yang terus berubah#
Direktori /var menyimpan data yang ukurannya berubah selama sistem berjalan, dengan log di /var/log sebagai penghuninya yang paling terkenal. Log sistem dan layanan terkumpul di sana, sedangkan antrian, cache paket, dan data layanan berada di subdirektori lain seperti /var/spool, /var/cache, dan /var/lib. Blok berikut menampilkan sebagian isi /var/log.
# sebagian berkas log di /var/log
ls /var/log | head -n 10README
alternatives.log
apt
btmp
dpkg.log
fontconfig.log
journal
lastlog
private
wtmpBerkas seperti alternatives.log dan dpkg.log mencatat aktivitas manajemen paket, sedangkan lastlog dan wtmp menyimpan riwayat login dalam bentuk biner yang dibaca dengan perintah khusus. Direktori journal pada keluaran menyimpan journal systemd, dan /var/tmp menyediakan berkas sementara yang usianya lebih tahan lama daripada /tmp. Karena log terus bertambah sepanjang sistem berjalan, inilah tempat pertama yang diperiksa ketika disk tiba-tiba penuh, dan perintah du serta df dari topik Penggunaan Disk menjadi alat ukurnya. Sistem modern menahan pertumbuhan ini dengan rotasi log yang dikelola logrotate.
/home dan /root: rumah pengguna#
Setiap pengguna biasa memiliki direktori pribadi di bawah /home yang dinamai sesuai nama penggunanya, sedangkan direktori pribadi pengguna root terpisah di /root. Isi direktori pribadi adalah milik pengguna bersangkutan, termasuk berkas konfigurasi berawalan titik yang diatur oleh aplikasi-aplikasinya. Blok berikut menunjukkan jalur rumah sesi latihan ini sekaligus perilaku /root terhadap pengguna biasa.
# nama pengguna yang sedang aktif
whoami
# jalur direktori pribadinya
echo $HOME
# /root hanya dapat dibaca oleh root
ls /rootz
/home/kal
ls: cannot open directory '/root': Permission deniedPesan Permission denied pada /root bukanlah kerusakan. Sesi latihan berjalan sebagai pengguna biasa bernama z, dan /root memang sengaja dilindungi agar hanya root yang dapat membacanya. Perlindungan semacam ini diatur oleh sistem izin Linux. Untuk saat ini, satu prinsipnya sudah cukup: direktori atau berkas tanpa izin baca tidak dapat didaftarkan isinya. Berkas konfigurasi pribadi berawalan titik, seperti .bashrc, juga tersembunyi dari ls biasa dan baru tampil dengan ls -A.
/tmp: berkas sementara#
Direktori /tmp disediakan untuk berkas yang hanya diperlukan sementara, misalnya berkas perantara yang dihasilkan proses yang sedang berjalan. Sistem umumnya membersihkan isinya saat boot, dan pada banyak distribusi modern /tmp dipasang di memori sebagai tmpfs sehingga isinya hilang ketika mesin dimatikan. Karena sifat itu, berkas penting tidak boleh disimpan di /tmp.
# tulis berkas contoh ke /tmp
echo "catatan sementara" > /tmp/catatan-sementara.txt
# berkas itu dapat dibaca kembali
cat /tmp/catatan-sementara.txtcatatan sementaraBerkas contoh di atas dapat ditulis tanpa pengaturan apa pun karena /tmp terbuka untuk semua pengguna. Meskipun demikian, setiap pengguna hanya dapat menghapus berkas miliknya sendiri di /tmp karena bit tempel (sticky bit) pada izin direktorinya. Direktori /tmp/kerja-* yang dipakai contoh-contoh sepanjang jalur ini juga berada di bawah /tmp. Selain direktori pribadi /home, pemakaian /tmp yang disiplin menjaga direktori kerja tetap rapi dari berkas buangan.
/usr: program dan pustaka#
Direktori /usr memuat program, pustaka, dan data pendukung yang dipasang oleh manajer paket. Program baris perintah berkumpul di /usr/bin, pustaka bersama di /usr/lib, dan dokumentasi serta data statis di /usr/share. Direktori ini dirancang bersifat baca-saja selama sistem berjalan normal, sehingga isinya diatur oleh manajer paket, bukan oleh pengguna.
# sebagian program di /usr/bin
ls /usr/bin | head -n 8
# jumlah program yang tersedia di /usr/bin
ls /usr/bin | wc -lX11
Xvfb
[
aclocal
aclocal-1.17
acyclic
addr2line
ambiguous_words
926Angka pada keluaran kedua menunjukkan bahwa lebih dari 900 program tersedia hanya di /usr/bin pada lingkungan latihan ini. Pada distribusi lama, /bin dan /usr/bin adalah dua direktori berbeda, sedangkan distribusi modern menggabungkan keduanya sehingga /bin hanyalah tautan menuju /usr/bin. Untuk program yang dipasang di luar manajer paket, tempat yang disediakan adalah /usr/local/bin, sedangkan paket pihak ketiga yang berdiri sendiri biasanya diletakkan di /opt. Pemisahan ini menjaga berkas milik distribusi tetap terpisah dari milik administrator.
Kesalahan umum#
Kesalahan pertama adalah menyimpan pekerjaan penting di /tmp. Berkasnya hilang saat boot atau setelah pembersihan otomatis, dan pada sistem dengan tmpfs, ukuran /tmp juga dibatasi memori. Simpan pekerjaan di /home, gunakan /var/lib untuk data layanan, dan perlakukan /tmp semata-mata sebagai lapangan sementara.
Kesalahan kedua adalah menyunting berkas di /etc tanpa cadangan. Kesalahan ketik kecil pada konfigurasi dapat membuat layanan gagal dimulai, dan pencarian penyebabnya jauh lebih lama daripada waktu yang dihabiskan untuk menyalin berkas aslinya. Kebiasaan cp berkas.conf berkas.conf.cadangan sebelum menyunting adalah asuransi yang murah.
Kesalahan ketiga adalah membiarkan /var tumbuh tanpa pengawasan. Log yang tidak dirotasi dan cache paket yang tidak dibersihkan perlahan mengisi disk hingga layanan berhenti menulis. Periksa ukuran /var/log secara berkala, pastikan logrotate berjalan, dan gunakan apt clean untuk membereskan cache paket apabila perlu.
Ringkasan#
- Linux menyatukan semua penyimpanan ke dalam satu pohon yang berakar di /, dan FHS menstandarkan isi tiap cabangnya.
- /etc menyimpan konfigurasi teks tingkat sistem, sedangkan /var menyimpan data yang berubah dengan /var/log sebagai contohnya.
/home/<pengguna>adalah rumah setiap pengguna biasa, /root milik root, dan /tmp disediakan untuk berkas yang boleh hilang.- /usr memuat program dan pustaka dari manajer paket, dengan /usr/local dan /opt sebagai tempat pemasangan di luar distribusi.
Referensi#
- Filesystem Hierarchy Standard 3.0 — Linux Foundation — Spesifikasi resmi tata letak direktori Linux beserta definisi tiap cabangnya.
- hier(7) — Linux man-pages project — Ringkasan hierarki sistem berkas sebagaimana dijelaskan pada halaman manual kernel.