Sekilas File System di Linux
File system yang dibahas di sini merupakan file system Linux secara
independent/global, artinya tidak tergantung pada satu distro tertentu. Sehingga
diharapkan para pembaca dapat mengadopsinya untuk suatu distro yang digunakan. 1. Organisasi file.
Sistem file pada Linux menyerupai pepohonan (tree), yaitu dimulai dari root, kemudian direktori dan sub dirrektori. Sistem file pada Linux diatur secara hirarkhikal, yaitu dimulai dari root dengan symbol “/”.
/
bin boot dev etc home lib root sbin usr var tmp user_1 user_2 … … … …
Kita dapat menciptakan File dan Direktori mulai dari root (/) ke bawah. Direktori adalah file khusus, yang berisi nama file dan INODE (pointer yang menunjuk ke data / isi file tersebut). Secara logika, Direktori dapat berisi File dan Direktori lagi (disebut juga Subdirektori).
2. Directory Standar.
Setelah proses instalasi, Linux menciptakan system file yang baku, terdiri atas direktori sebagai berikut :
Direktori Deskripsi
/etc Berisi file administrative (konfigrasi dll) dan file executable
atau script yang berguna untuk administrasi system.
/dev Berisi file khusus yang merepresentasikan peralatan
hardware seperti memori, disk, printer, tape, floppy, jaringan
/bin Berisi program standar Linux (binary).
/root Directory home untuk user root.
/usr/sbin /usr/bin
Berisi utilitas Linux.
/usr/lib Berisi program library yang diperlukan untuk kompilasi
program (misalnya bahasa C). Berisi instruksi (command) misalnya untuk Print Spooler (lpadmin) dll.
/tmp Berisi file sementara, yang pada saat Bootstrap akan dihapus
/boot Berisi file yang sangat penting untuk proses bootstrap.
Kernel vmlinuz disimpan di direktori ini yang akan digunakan oleh bootloader (lilo atau grub).
/proc Berisi informasi tentang kernel Linux, proses dan virtual
system file.
/var Direktori variable, artinya tempan penyimpanan LOG
(catatan hasil output program), file ini dapat membengkak dan perlu dimonitor perkembangannya.
/home Berisi direktori untuk pemakai Linux (pada FreeBSD
diletakkan pada /usr)
/mnt Direktori untuk mounting system file
/usr Directori ini biasanya merupakan directori yang berukuran
besar di sistem Linux.Semua program-program,
dokumentasi, source code kernel, sistem X-Window ada di directori ini. Directori ini juga merupakan directori standar ketika user menginstallkan suatu program.
/usr/bin/X11 Symbolic link ke /usr/X11R6/bin, program untuk
X-Window
/usr/src Source code untuk Linux
/opt Direktori ini biasanya berisi aplikasi tambahan (add-on)
/etc
Berisi file yang berhubungan dengan administrasi system, maintenance script, konfigurasi, security dll. Hanya superuser yang boleh memodifikasi file yang berada di drektori ini. Subdirektori yang sering diakses pada direktori /etc antara lain :
• httpd, apache web server (jika ada).
• ppp, point to point protocol untuk koneksi ke Internet.
• rc.d atau init.d, inisialisasi (startup) dan terminasi (shutdown) proses di Linux dengan konsep runlevel.
• cron.d, rincian proses yang dieksekusi dengan menggunakan jadwal (time dependent process).
• file-file security dan konfigurasi meliputi : passwd, hosts, shadow, ftpaccess, inetd.conf, lilo.conf, motd, printcap, profile, resolv.conf, sendmail.cf, syslog.conf, dhcp.conf, smb.conf, fstab.
/dev
Konsep Unix dan Linux adalah memperlakukan peralatan hardware sama seperti penanganan file. Setiap alat mempunyai nama file yang disimpan pada
direktori /dev.
Peralatan Direktori
Floppy /dev/fd0
Harddisk IDE : /dev/had, /dev/hdb, /dev/hdc, /dev/hdd SCSI : /dev/sda, /dev/sdb, /dev/sdc
CDROM SCSI : /dev/scd0, /dev/scd1 IDE : /dev/gscd, /dev/sonycd
Universal : /dev/cdrom (link dari cdrom ide atau scsi yang sebenarnya)
Mouse PS2 : /dev/lp0 Universal : /dev/mouse Parallel Port LPT1 : /dev/lp0
LPT2 : /dev/lp1 Serial Port COM1 : /dev/ttyS0
COM2 : /dev/ttyS1
/proc
Direktori /proc adalah direktori yang dibuat di RAM (Random Access Memory) dengan system file yang diatur oleh kernel. /proc berisi nomor proses dari
system dan nama driver yang aktif di system. Semua direktori berukuran 0
(kosong) kecuali file kcore dan self. Setiap nomor yang ada pada direktori tersebut merepresentasikan PID (Process ID).
/home
Setiap user Linux memiliki account dan directory yang unik untuk menyimpan file-filenya. Penyimpanan file-file user ada di directory ini. Dapat dikatakan bahwa directory ini rumah dari para user yang ada. Biasanya setiap user akan memiliki directory di bawah /home dengan nama directory yang sama dengan nama login-nya.
3. Symbolic Link.
Link adalah sebuah teknik untuk memberikan lebih dari satu nama file dengan
data yang sama. Bila file asli dihapus, maka data yang baru juga terhapus. Format dari Link :
ln fileAsli fileDuplikat
Symbolic Link diperlukan bila file tersebut di link dengan direktori /file yang
berada pada partisi yang berbeda. Tipe file menjadi l (link) --bukan angka ‘satu’-- dan file tersebut menunjuk ke tempat asal. Format :
ln –s /FULLPATH/fileAsli /FULLPATH/fileDuplikat
4. Type File.
Pada Linux terdapat 6 buah tipe file yaitu : • Ordinary file
• Direktori
• Block Device (Peralatan I/O)
Merupakan representasi dari peralatan hardware yang menggunakan transmisi data per block (misalnya 1 KB block), seperti disk, floppy, tape. • Character Device (Peralatan I/O)
Merupakan representasi dari peralatan hardware yang menggunakan transmisi data karakter per karakter, seperti terminal, modem, plotter dll. • Named Pipe (FIFO)
File yang digunakan secara intern oleh system operasi untuk komunikasi antar proses
5. Properti File.
File mempunyai beberapa atribut, antara lain : • Tipe file : menentukan tipe dari file, yaitu :
Karakter Arti
- File biasa d Direktori
l Symbolic link b Block special file c Character special file s Socket link
p FIFO
• Ijin akses : menentukan hak user terhadap file ini. • Jumlah link : jumlah link untuk file ini.
• Pemilik (Owner) : menentukan siapa pemilik file ini • Group : menentukan group yang memiliki file ini • Jumlah karakter : menentukan ukuran file dalam byte
• Waktu pembuatan : menentukan kapan file terakhir dimodifikasi • Nama file : menentukan nama file yang dimaksud
Contoh :
-rw-rw-r-- 1 bin auth 1639 Oct 31 20:19 /etc/passwd
Jml link Pemilik Group Jml karakter Waktu Nama file Ijin akses
tipe
6. Nama File.
Nama file maksimal terdiri dari 255 karakter berupa alfanumerik dan beberapa karakter spesial yaitu garis bawah, titik, koma dan lainnya kecuali spasi dan karakter “&”, “;”, “|”, “?”, “`”, “””, “’”, “[“, “]”, “(“, “)”, “$”, “<”, “>”, “{“, “}”, “^”, “#”, “\”, “/”. Penamaan file di Linux case sensitive artinya membedakan huruf kecil dengan huruf besar . Contoh nama file yang benar :
Abcde1234 33
program.txt PROG_001.txt report_2121.v.0.1
5-01.web.html
7. Ijin Akses.
Setiap obyek pada Linux harus mempunyai pemilik, yaitu nama pemakai Linux (account) yang terdaftar pada /etc/passwd. Ijin akses dibagi menjadi 3 peran yaitu : • Pemilik (Owner)
• Kelompok (Group) • Lainnya (Others)
Setiap peran dapat melakukan 3 bentuk operasi yaitu : • Pada File
o r (Read) Ijin untukmembaca
o w (Write) Ijin untuk mengubah / membuat o x (Execute) Ijin untuk menjalankan program • Pada Direktori
o r (Read) Ijin untukmembaca daftar file dalam direktori o w (Write) Ijin untuk mengubah/membuat file di direktori o x (Execute) Ijin untuk masuk ke direktori (cd)
Bentuk –rwxrwxrwx sebenarnya merupakan ijin akses dari suatu file/directory. rwxrwxrwx sebenarnya terdiri dari ijin akses untuk ketiga peran yang ada, yaitu user, group, dan other dengan pembangian secagai berikut:
- r w x r w x r w x
23*n 22*n 21*n 23*n 22*n 21*n 23*n 22*n 21*n
tipe user group other
Jika n = 1, maka ijin akses diberikan; jika n = 0, maka ijin akses TIDAK diberikan. Misalnya ijin akses untuk user dan group adalah read-write-executable, sedangkan untuk other hanya read saja, maka sebenarnya hak aksesnya adalah rwxrwxr--sehingga dapat dituliskan sebagai 774 ketika akan mengubah hak akses. Pemilik File/Direktori dapat mengubah ijin akses sebagai berikut :
-rwxrwxrwx 1 student test 1639 Oct 31 20:19 file
other group user
Format untuk mengubah ijin akses :
chmod [ugoa] [= + -] [rwx] File(s) chmod [ugoa] [= + -] [rwx] Dir(s) dimana u = user (pemilik)
g = group (kelompok) o = others (lainnya) a = all
Jika menggunakan angka, maka cara mengubah hak akses adalah: chmod xyz File(s)
chmod xyz Dir(s)
dimana xyz adalah angka, dengan angka terbesar adalah 7. 8. User Mask.
Untuk menentukan ijin akses awal pada saat file atau direktori dibuat digunakan perintah umask. Untuk menghitung nilai default melalui umask pada file, maka dapat dilakukan kalkulasi sebagai berikut :
Kreasi file (biasa) 6 6 6 Nilai umask 0 2 2 --- - 6 4 4 Kreasi direktori 7 7 7 Nilai umask 0 2 2 --- - 7 5 5
Perintah-perintah dasar Linux
Perintah-perintah dasar yang diberikan secara tertulis ini BELUM lengkap, tetapi sudah dapat mewakili pengguna yang baru belajar (newbie). Pada bab ini perintah-perintah dasar di bagi menjadi beberapa bagian dengan maksud supaya pembaca dapat lebih mudah mempelajarinya.
1. Mencari File.
Ada empat cara untuk menemukan suatu file di dalam file system Linux: • which
Biasanya digunakan untuk mencari suatu program dengan cepat. which hanya mencari di PATH kita dan mengembalikan nama file yang ditemukan pertama kali dengan PATH-nya.
• whereis
Bekerjanya mirip dengan which tetapi juga dapat mencari man pages (halaman manual) file-file source.
Perintah ini tidak hanya memberitahu kita dimana program yang dicari berada, tetapi juga mencari dimana dokumentasi online-nya disimpan.
• find
Perintah ini berguna untuk mencari suatu file dalam file system dengan
option-option yang banyak. User dapat memberikan perintah pencarian
dengan wildcard, range waktu modifikasi atau pembuatan suatu file, atau properti-properti lain yang lebih advanced.
Jika menggunakan find ini sebagai user normal, maka biasanya akan terdapat pesan-pesan error tentang permission denied pada directori-directori yang hanya boleh diakses oleh user root.
• slocate
Perintah ini mencari keseluruh file system seperti perintah find, tetapi perintah ini juga mencari ke database-nya disamping file system yang aktual.
Database ini diset secara otomatis untuk diupdate setiap pagi. Kita dapat
secara manual menjalankan perintah updatedb untuk meng-update database slocate.
2. Navigasi. • ls
Perintah ini untuk menampilkan isi suatu direktori (current directory) dalam bentuk daftar (DOS menggunakan perintah dir). Perintah ini mempunyai banyak option. Untuk lebih jelasnya, silahkan untuk mencoba langsung atau membaca
online documentation-nya dengan mengetikkan man ls di prompt. Option yang sering digunakan adalah:
ls –FC
Option ini akan memberi tampilan yang berbeda pada file, directory, dan link file . Directory diberi tanda / di belakang namanya, sedangkan link file diberi tanda @ di belakang namanya.
ls –l
Option ini paling sering digunakan karena dengan option ini pengguna memperoleh informasi yang cukup lengkap tentang isi current directory, termasuk hak akses dan kepemilikannya.
ls –a
Option ini akan menampilkan file-file yang tersembunyi di current
directory.
• cd
Perintah ini digunakan untuk merubah direktori yang sudah kita gunakan (active directory). Sebagai catatan, ketika kita mengetikkan perintah cd nama_dir tanpa diikuti tanda / di depan nama_dir, maka perintah tersebut akan mengubah direktori ke direktori nama_dir yang terletak di dalam active directory saat itu. Jika hanya mengetikkan cd saja tanpa diikuti nama_dir, maka perintah tersebut berarti mengubah ke direktori home pengguna.
• pwd
Perintah ini digunakan untuk melihat lokasi kita berada saat itu (current
location), supaya pengguna tidak “lupa daratan”.
3. Pengaturan Halaman. • more
Perintah ini akan membuat tampilan yang lebih dari satu screen akan ditampilkan per screen. Penekanan tombol Enter akan menampilkan satu baris berikutnya, sedangkan penekanan tombol spasi akan melanjutkan ke screen berikutnya. Contoh penggunaannya :
ls –l | more • less
Perintah more sangat berguna bagi pengguna, tetapi mempunyai kelemahan yaitu tidak dapat kembali ke screen sebelumnya. Perintah less dapat mengatasi kelemahan ini, yaitu data kembali ke screen berikutnya maupun ke screen selanjutnya. Contoh penggunaannya :
• most
Perintah ini dapat menampilkan lebih dari satu file pada satu saat, sepanjang setiap window file tidak lebih dari dua baris. Contoh penggunaannya :
ls –l | more
4. Output Sederhana. • cat
Merupakan kependekan dari concatenation. Perintah ini didesain untuk menggabungkan (merge) banyak file teks menjadi satu file teks, tetapi dapat juga digunakan untuk keperluan lain, misalnya digunakan untuk melihat isi file dan biasanya digabungkan dengan perintah more/less. Contoh penggunaannya :
cat file_1 file_2 file_3 > file cat file | more
• echo
Perintah ini menampilkan teks yang diinginkan ke layer monitor. Secara
default echo akan menampilkan string yang diinputkan dan mencetak baris baru setelahnya. Disampign itu echo dapat digunakan untuk menambah suatu baris string baru ke dalam file teks.
5. Pembuatan/Penciptaan. • touch
Perintah ini digunakan untuk mengubah time-stamp pada suatu file. Jika file yang ditentukan tidak ada, maka perintah ini akan membuat/menciptakan satu file baru dengan panjang nol (zero length).
• mkdir
Perintah ini akan membuat suatu direktori baru. 6. Penyalinan dan Pemindahan.
• cp
Perintah ini akan meng-copy file yang ditentukan (DOS menggunakan
perintah copy). Perintah ini juga dapat meng-copy direktori beserta isinya. Untuk lebih jelasnya silahkan untuk membaca online documentation-nya.
• mv
Perintah ini akan memindahkan file dari satu tempat ke tempat lain. Disamping itu perintah ini juga bisa digunakan untuk mengganti nama file/direktori.
7. Penghapusan. • rm
Perintah ini akan menghapus file dan pohon direktori (DOS menggunakan perintah del dan deltree).
• rmdir
Perintah ini akan menghapus direktori. Direktori yang akan dihapus harus kosong terlebih dulu sebelum dihapus.
8. Memuat file system (mount).
Memuat file system berarti mengambil data-data yang ada pada suatu device, misalnya cdrom atau USB flash disk. Secara default sebenarnya Linux tidak memuat secara otomatis file system yang ada pada cdrom ketika cdrom dimasukkan, atau juga tidak memuat secara otoamatis ketika sebuah USB flash disk di tancapkan. Tetapi pada perkembangannya, Linux secara otomatis memuat file system yang ada pada suatu device.
Untuk dapat memuat suatu device secara manual, diberikan perintah mount. Kemudian untuk membuang muatan file system tersebut digunakan perintah umount (bukan unmount). Contoh penggunaannya adalah:
mount /dev/cdrom /mnt/cdrom umount /mnt/cdrom