Sistem File dan
Struktur Direktori
Tujuan
Setelah mempelajari modul ini, peserta diharapkan mampu:
• Memahami beberapa sistem file di Linux.
• Memformat sistem file utama dan swap.
• Memahami struktur direktori dan cara penamaan file dan direktori.
3.1 Sistem File Linux
Sistem file (filesystem) secara praktis diartikan bagaimana Linux menyimpan data ke peralatan penyimpanan seperti hard disk, CD/DVD ROM, usb disk, dan floppy. Sistem file Linux banyak jenisnya, namun yang paling banyak digunakan saat ini adalah ext3. Ext3 tergolong journaling filesystem, yang memiliki kelebihan dari sisi keamanan data. Misalnya, ketika listrik mati mendadak sehingga tidak sempat shutdown atau melakukan pelepasan secara normal (umount), maka tidak perlu melakukan fsck (scandisk) saat booting berikutnya.
Sistem file Linux lainnya antara lain reiserfs (juga tergolong journaling filesystem) dan ext2 (versi lama dari ext3 yang belum bersifat journaling). Linux juga dapat mengakses sistem file lain seperti DOS, Windows (VFAT 16, VFAT 32, dan NTFS), Unix, jfs, dan lain-lain. Swap dapat digolongkan sebagai sistem file pengganti RAM, sehingga disebut juga virtual memory. Sistem file lain yang berbasis jaringan adalah samba (smb) yang juga digunakan oleh MS Windows dan NFS (Network File System) yang juga digunakan oleh sistem operasi Unix.
Cara membuat sistem file di hard disk ada dua langkah, yaitu membuat partisi, kemudian memformatnya. Salah satu perintah pembuatan partisi adalah fdisk, dan perintah format adalah mkfs.
Perintah mengedit atau membuat partisi adalah fdisk /dev/sda, lalu ketik m untuk melihat daftar perintah di menu fdisk. Ketik p untuk melihat daftar partisi, dan ketik q untuk keluar tanpa menyimpan perubahan.
Perintah berikut ini akan memformat partisi 13 dari hard disk primary master (/dev/sda) dengan sistem file ext3:
# mkfs.ext3 /dev/sda13
atau
# mkfs -t ext3 /dev/sda13
Perintah berikut ini akan memformat partisi hard disk /dev/sda14 sebagai swap, setelah lebih dahulu dijadikan partisi swap oleh fdisk atau program partisi lainnya:
# mkswap /dev/sda14
Untuk mengaktifkan swap, perintanya swapon. Sedangkan cara menonaktifkannya dengan perintah swapoff.
MODUL
# swapon /dev/sda14
# swapoff /dev/sda14
3.2 Struktur File dan Direktori
Sebelum mengakses file dan direktori dan perintah-perintah yang berhubungan dengannya, Anda sebaiknya lebih dahulu memahami struktur file dan direktori di Linux.
Linux memiliki direktori paling atas atau paling kiri, dibaca slash (garis miring), dinamakan root directory atau direktori akar. Itu perbedaan mendasar struktur direktori Linux dengan Windows. Di Windows ada folder C: yang mengarah ke direktori paling atas dari harddisk. Di Windows juga ada A: untuk masuk ke disket. Tapi, di Windows tidak ada direktori di atas C dan A.
Di Linux, C biasanya berupa direktori /mnt/win atau yang lain sesuai dengan yang membuat distro Linux. /mnt/win disebut mount point, yang berhubungan dengan file harddisk dengan partisi /dev/sda1. Jadi, C di Windows itu juga sejenis mount point yang berhubungan device (/dev) harddisk.
Jika /mnt/win diganti dengan /C, artinya /C adalah mount point bagi /dev/sda1. Yang membedakan C di Linux dengan C di Windows, adalah adanya garis miring / di sebelah kiri C di Linux, dan tidak ada garis miring di Windows. Ini juga berarti, garis miring / adalah direktori di atas C.
Disket dan CDROM biasanya memiliki alamat device di /dev/fd0 dan /dev/hdX. X adalah huruf a, b, c, atau d sesuai dengan letak CDROM drive.
Direktori root Linux memiliki beberapa direktori yang merupakan standar direktori standar yang ada pada Linux secara umum.
/
Direktori root, yang menampung seluruh file yang ada dalam Linux. Pada direktori root biasanya tidak menampung file.
/bin
Berisi file yang dapat dieksekusi/dijalankan (file dengan ekstension exe pada DOS/Windows).
/boot
Direktori berisi file yang dieksekusi saat Linux booting.
/dev
Linux memperlakukan semua sebagai file. Direktori ini merupakan file dari hardware. Misal floppy disk menjadi file /dev/fd0, CD ROM menjadi /dev/hdb bahkan hingga memory. Yang cukup terkenal adalah /dev/null, semua file yang dikopi kesini akan dibuang.
/etc
Berisi file-file konfigurasi Linux. Biasanya berbentuk file text dan dapat diedit dengan mudah.
/home
Misalnya, /home/igos adalah direktori milik user bernama igos dalam distro IGOS Nusantara Anda.
/lib
Berisi kumpulan library yang diperlukan oleh program di root direktori. (file DLL pada sistem operasi Windows).
/mnt
Direktori tempat mounting divais Anda. Misalnya /dev/fd0 (disket) akan dimount ke /mnt/floppy, /dev/sda1. Secara default direktori ini kosong, dan Anda harus membuat direktori sendiri sebagai mount point-nya.
/proc
Sistem file semu yang ditulis di atas memory. Digunakan untuk
menginformasikan sistem (biasanya tentang proses yang sedang berjalan).
/root
Direktori home bagi root /sbin File eksekusi yang dijalankan oleh sistem atau root.
/tmp
Berisi file-file untuk penyimpanan sementara, misalnya untuk file yang akan dihapus setelah bekerja.
/usr
Berisi file dan program yang berorientasi pada user atau perintah tambahan baik dalam bentuk binari ataupun script. Hampir semua program yang disertakan dalam distribusi diinstal di sini. Di bawah /usr ini juga terdapat dokumen atau manual tentang semua program yang ada dalam CD atau harddisk.
/var
Berisi data yang berubah pada saat Linux berjalan. Data ini biasanya hanya spesifik pada satu komputer, dan tidak dibagi dengan komputer lain dalam jaringan. Misalnya /var/www untuk meyimpan data aplikasi web. /var/spool untuk menyimpan data program yang berhubungan user seperti email (/var/spool/mail). /var/log untuk menyimpan data log atau rekaman apa yang terjadi di sistem. /var/cache untuk menyimpan data sementara untuk aplikasi proxy (squid), dan lain-lain.
CATATAN:
Direktori tempat kerja saat ini disebut Current Directory, ditulis./ (dot diikuti slash atau titik diikuti garis miring). Direktori di atasnya atau sebelumnya disebut Parent Directory, ditulis ../ (dot dot slash). Direktori paling atas disebut Root Directory, ditulis / (slash).
3.3 Melihat Isi Direktori dan Navigasi Direktori
-a melihat semua file termasuk yang disembunyikan
-A melihat semua file kecuali direktori itu sendiri dan diatasnya (file . dan ..) -c diurutkan berdasarkan waktu (yang paling lama diatas)
-d hanya melihat direktori
-l melihat dalam format panjang termasuk perijinan file dan detail lainnya. -r diurutkan berbalik abjad
-t diurutkan berdasarkan waktu (yang paling baru diatas)
Apabila kita menggunakan perintah ls –l maka dari kanan ke kiri adalah tautan (dibahas di Tautan), nama file, tanggal dan waktu modifikasi, besar file (dalam
bytes), nama grup dan pemilik (dibahas di Perijinan) dan deretan huruf dan garis adalah perijinan file (dibahas di Perijinan).
Untuk navigasi antar direktori gunakan perintah cd dan seperti di DOS sintaks seperti cd .. berlaku untuk masuk ke direktori diatas direktori dimana kita berada. Contoh 1:
cd /etc ls –l
Direktori /etc berisi file-file untuk administrasi sistem. Apabila perintah ls –l menghasilkan daftar yang terlalu panjang maka gunakan Shift+PageUp untuk menggulung daftar keatas dan Shift+PageDown untuk menggulung daftar kebawah atau dapat dengan menggunakan perintah ls –l | more atau ls –l | less. Dalam direktori /etc ada file X11 yang disebelah kanannya terdapat tanda ->
/var/X11R6/lib/ dan diujung kirinya ditandai dengan huruf l, ini menunjukkan bahwa
file tersebut adalah file tautan sedangkan bila diujung kirinya terdapat tanda – maka ini adalah file biasa sedangkan huruf d menunjukkan direktori.
Contoh 2: cd /bin ls –l
Beberapa file disini diberi tanda * yang menunjukkan file tersebut adalah file binari. Contoh 3:
cd ~ (menuju /home/namalogin direktori) ls –a atau
ls –al
Akan terlihat file-file yang diawali dengan tanda . yang menunjukkan bahwa file tersebut merupakan file tersembunyi dan biasanya merupakan file-file konfigurasi dan file hasil konfigurasi untuk pengguna seperti .bash_history.
3.4 Device di Linux
Semua device di linux dinyatakan dalam bentuk file. Apabila nantinya device-device ini perlu untuk di akses maka kita tinggal melihat isi dari /dev berikut adalah tabel dari penamaan device di linux :
Device Khusus
Nama file Nama divais
/dev/null Data apapun (data bin) akan di"telan" /dev/tty1 - /dev/tty8 Konsol virtual
Direktori /proc
Direktori atau file Isi
/proc/[nomor] Di dalam proc terdapat directory yang dinamakan dengan nama
nomor-nomor.Nomor-nomor ini dinamakan sesuai dengan PID-nya
/proc/cpuinfo File ini berisi tentang segala sesuatu dari CPU info dan ar-sitektur dari system, untuk setiap arar-sitektur yang berbeda akan mempunyai daftar yang berbeda pula.
/proc/devices Daftar dari devices yang ada di system. Ini dapat digu-nakan oleh MAKEDEV script untuk konsistensi terhadap kernel.
/proc/dma Daftar dari dma (direct memory access) channel yang di-gunakan.
/proc/filesystems Daftar dari filesystem yang di dukung oleh kernel.
/proc/interrupts Daftar ini berisi jumlah dari interrupt berdasarkan IRQ pada mesin i386
/proc/ioports Daftar yang berisi input output (I/O) port yang sedang digunakan
/proc/kcore File ini merupakan pseudo file yang besarnya disesuaikan dengan memory fisik yang dipunyai mesin.
/proc/kmesg Berisi tentang kernel log message yang digunakan oleh klogd dalam melog setiap pesan dari kernel.
/proc/ksyms File ini mengandung kernel definisi simbol yang digunakan oleh modules tools untuk melink secara dynamic, dan mengikat modul-modul yang dapat diload. /proc/loadavg Jumlah beban rata-rata yang memberikan daftar proses
yang sedang berjalan ataupun dalam keadaan queue dalam interval waktu 1,5 dan 15 menit.
/proc/locks File ini berisi daftar dari file yang di lock.
/proc/meminfo File ini digunakan oleh free untuk melaporkan jumlah memory yang bebas dan yang sedang digunakan (baik fisik maupun swap) dari system
/proc/modules Daftar dari modul-modul yang di load ke system.
/proc/net/ Direktori ini berisi pseudo-files yang berisi status dari be-berapa bagian dari layer network.
/proc/pci File ini berisi daftar berisi tentang semua PCI device yang di temukan selama inisialisasi kernel berikut
/proc/scsi/ Directory yang berisi tentang midlevel pseudo files dan berbagai directory yang berisi lowlevel scsi driver /proc/self/ Direktori ini mengacu kepada proses akses ke /proc
filesystems, dan identik dengan direktory /proc yang di-namakan oleh PID dari proses yang sama.
/proc/stat kernel/system statistik.
/proc/sys Direktori ini berisi sejumlah file dan subdirektori yang berhubungan dengan variabel kernel.
/proc/uptime File ini berisi dua kelompok angka, angka dari uptime system (s), dan waktu yang dihabiskan dalam idle proses (s).
/proc/version Berisi string yang mengidentify versi kernel yang sedang digunakan.
Modem
Nama file Nama divais
/dev/modem Link ke port COM pada modem yang di-hubungkan
Interface Serial
Nama file Nama divais
/dev/ttyS0 - /dev/ttyS3 Interface serial 0 hingga 3
/dev/cua0 - /dev/cua3 Interface serial 0 hingga 3 (untuk modem hubungan keluar)
Port Paralel
Nama file Nama divais
/dev/lp0 - /dev/lp2 Interface paralel 0 hingga 2
3.5 Perijinan (Permission)
Untuk alasan keamanan maka semua file di UNIX/Linux mempunyai perijinan file yang mengatur siapa yang berhak membuka/membaca, menulis/menghapus dan menjalankan file tersebut.
Saat menjalankan perintah ls –l maka perhatikan bagian paling kiri sepert:: Contoh:
-rw–r--r-- namapemilik namagrup drwxrw-rw- namapemilik namagrup -rwxrwxrwx namapemilik namagrup
Tiga huruf paling kiri adalah untuk pemilik file tersebut, tiga huruf berikutnya adalah untuk grup dimana pemilik tersebut berada dan tiga huruf berikutnya adalah untuk semua pengguna. Pemilik file adalah pengguna yang membuat file tersebut.
Dalam melakukan proses manipulasi perijinan maka yang dapat melakukannya hanyalah pemilik file atau root sehingga apabila diperlukan ubahlah akses menjadi
root terlebih dahulu. (baca Tutorial Awal)
Untuk memanipulasi perijinan gunakan perintah chmod. Ada dua cara menggunakan perintah ini yaitu cara numerik dan cara simbolik.
Cara numerik menggunakan tabel: 400 – pemilik berhak membaca 200 – pemilik berhak menulis 100 – pemilik berhak menjalankan 040 – grup berhak membaca 020 – grup berhak menulis 010 – grup berhak menjalankan
004 – semua pengguna berhak membaca 002 – semua pengguna berhak menulis 001 – semua pengguna berhak menjalankan
Contoh:
chmod 664 namafile
berarti perijinan yang diberikan bernilai 664 = 400+200+40+20+4 yang artinya pemilik berhak membaca dan menulis, grup pemilik berhak membaca dan menulis dan pengguna lain hanya berhak membaca.
Cara simbolik menggunakan tabel: u – pemilik
g – grup
o – semua pengguna
a – semuanya (pemilik, grup dan pengguna lain) r - membaca
w - menulis x - menjalankan t - sticky bit
Format penulisannya menggunakan tanda + dan – untuk memberikan perijinan tertentu.
Contoh:
chmod ug+rw namafile
berarti pemilik dan grupnya diberikan perijinan untuk membaca dan menulis file tersebut.
Untuk memanipulasi kepemilikan gunakan perintah chown (untuk mengganti pemilik) dan chgrp (untuk mengganti grup).
3.6 Manipulasi File
Perintah-perintah pada UNIX/Linux biasanya diletakkan di direktori /bin, /sbin, /usr/bin dan /usr/sbin dan dengan perintah ls maka akan dapat dilihat ada perintah apa saja yang berlaku di sistem UNIX/Linux tersebut.
Perintah-perintah paling dasar untuk memanipulasi file antara lain:
• cp – menduplikasi file (contoh: cp namafile /direktori/namafile)
• mv – memindahkan/mengganti nama file (contoh: mv namafile /direktori/namafile atau mv namafile namafilebaru)
• rm – menghapus file (contoh: rm namafile)
• rmdir – menghapus direktori dengan syarat direktori tersebut harus kosong (contoh: rmdir namadirektori)
• more – membaca file (contoh: more namafile) – gunakan hanya untuk file berformat ASCII
• cat – sama seperti more tetapi tidak berhenti apabila halamannya melebihi lebar tampilan layar
• pwd – melihat direktori dimana kita berada
Untuk sintaks lengkapnya gunakan perintah man namaperintah.
3.7 Menghubungkan File
Para pengguna Windows tentu mengenal kata shortcut, maka kata tautan (links) pada UNIX/Linux mengacu pada konsep yang sama. Tujuan dari tautan adalah untuk menghemat ruang harddisk dan memudahkan administrasi dalam mengubah konfigurasi (cukup satu file yang dikonfigurasi).
Tautan di UNIX/Linux mempunyai dua jenis yaitu hard links dan symbolic links. Perbedaan mendasar antara keduanya adalah untuk menghapus file acuannya maka semua hard links harus dihapus terlebih dahulu sedangkan symbolic links
dapat dibiarkan tetap ada sementara file acuannya dihapus (hal ini tentunya menyebabkan broken links atau tautan terputus).
Perintah untuk membuat tautan adalah ln dan untuk sintaks tambahan mengacu ke man ln.
Contoh 1, membuat hard links:
$ ln namafile /direktori/namalink
Contoh 2, membuat symbolic links:
$ ln –s namafile /direktori/namalink
3.8 Wildcards
UNIX/Linux mempunyai tiga jenis wildcards yaitu ? untuk mengganti satu karakter (contoh: na??fil? bisa berarti namafile, nanafile dan seterusnya), * untuk mengganti
karakter berapapun jumlahnya (contoh: nama* bisa berarti namafile, namafileiniadalah, namafileiniadalahnamafilelainnya dan seterusnya) dan [ ] untuk mencari/menggantikan karakter didalam tanda tersebut.
3.9 Proses
sebagai latar belakang maupun latar depan (background dan foreground). Untuk menjalankan perintah sebagai latar belakang gunakan tanda & dibelakang perintah tersebut.
Permintaan untuk menjalankan beberapa perintah tersebut disebut dengan proses. Proses dimulai dari mulai boot yang dilakukan oleh sistem dengan perintah init sampai perintah-perintah yang dijalankan selama menggunakan komputer. Untuk mengetahui proses apa yang sedang berjalan gunakan perintah ps atau top untuk menunjukkan proses yang terbaru dan proses yang menghabiskan resource
terbanyak.
Ketika menjalankan perintah ps atau top maka akan terlihat kata PID yang berarti