Praktikum 3 : Operasi File dan Struktur Direktory

 Praktikum 3

Operasi File dan Struktur Direktory



POKOK BAHASAN :
  • Operasi File pada Sistem Operasi Linux
  • Struktur Direktory pada Sistem Operasi Linux 

TUJUAN BELAJAR : 
    Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu : 
  • Memahami organisasi file dan direktory pada sistem operasi Linux 
  • Menciptakan dan manipulasi directory 
  • Memahami konsep link dan symbolic link 

ABSTRAK :
    Linux adalah  sistem  operasi  yang  disebarkan  secara  luas  dan  bebas  dibawah  lisensi GNU General  Public  License,  yang  artinya  source  code  linux  tersedia  bagi  umum  dan source  code  ini  juga  bisa  Anda  kembangkan  apabila  Anda  mempunyai  kemampuan, itulah  salah  satu  yang  membuat  linux  sangat  spesial  dibandingkan  sistem  operasi  yang lainnya. Linux termasuk dari 3 Sistem Operasiyang perkembangannya sangat cepat dan pesat selain dari Windows dan Machintos.

DASAR TEORI : 

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 “/” seperti Gambar 3.1. 
    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.) DIREKTORY STANDAR 
    
    Setelah proses instalasi, Linux menciptakan system file yang baku, terdiri atas direktori sebagai berikut :


Direktori /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. 
  • 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).
  • FILES, 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. 
Direktori /dev 
    Konsep Unix dan Linux adalah memperlakukan peralatan hardware sama seperti penanganan file. Setiap alat mempunyai nama file yang disimpan pada direktori /dev.


Direktori /proc 
    Direktori /proc adalah direktori yang dibuat diatas 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 tsb merepresentasikan PID (Process ID).

3.) TIPE 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 
  • Link File 

4.) PROPERTI FILE 
    File mempunyai beberapa atribut, antara lain : 
  • Tipe file : menentukan tipe dari file, yaitu :

  • 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 :

5.) 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 “&”, “;”, “|”, “?”, “`”, “””, “’”, “[“, “]”, “(“, “)”, “$”, “<”, “>”, “{“, “}”, “^”, “#”, “\”, “/”. Linux membedakan huruf kecil dengan huruf besar (case sensitive). Contoh nama file yang benar : 
  • Abcde5434 
  • 3
  • prog.txt 
  • PROG.txt 
  • Prog.txt,old 
  • report_101,v2.0.1 
  • 5-01.web.html 

6.) SIMBOLIC 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

    fileDuplikat disebut hard link dimana kedua file akan muncul identik (link count = 2) Bila fileAsli atau FileDuplikat diubah perubahan akan terjadi pada file lainnya. 
    
    Symbolic Link diperlukan bila file tersebut di “link” dengan direktori /file yang berada pada partisi yang berbeda. Tipe file menjadi l (link) dan file tersebut menunjuk ke tempat asal. Format : 

ln –s /FULLPATH/fileAsli /FULLPATH/fileDuplikat 
    
    Pilihan –s (shortcut) merupakan bentuk soft link dimana jumlah link count pada file asal tidak akan berubah. Pada bentuk soft link, symbolic link dapat dilakukan pada file yang tidak ada, sedangkan pada hard link tidak dimungkinkan. Perbedaan lain, symbolic link dapat dibentuk melalui media disk atau partisi yang berbeda dengan soft link, tetapi pada hard link terbatas pada partisi disk yang sama.

7.) MELIHAT ISI FILE 
    Untuk melihat jenis file menggunakan format : 

file filename(s) 

Isi file akan dilaporkan dengan deskripsi level tinggin seperti contoh berikut 

$ file myprog.c letter.txt webpage.html 
myprog.c:             C program text 
letter.txt:               ASCII text 
webpage.html:      HTML document text 

    Perintah ini dapat digunakan secara luas untuk file yang kadang membingungkan, misalnya antara kode C++ dan Java. 

8.) MENCARI FILE 
    Jika ingin melihat bagaimana pohon direktori dapat digunakan perintah 
  • find 
Format : find directory –name targetfile -print 
Akan melihat file yang bernama targetfile (bisa berupa karakter wildcard) 
  • which 
Format : which command
Untuk mengetahui letak system utility 
  • locate 
Format : locate string 
Akan me ncari file pada semua directori dengan lebih cepat dan ditampilkan dengan path yang penuh. 

9.) MENCARI TEXT PADA FILE 
    Untuk mencari text pada file digunakan perintah grep (General Regular Expression Print) dengan format perintah 

grep option pattern files 

    Grep akan mencari file yang bernama sesuai pattern yang diberikan dan akan menampilkan baris yang sesuai.

TUGAS PENDAHULUAN : 
    Jawablah pertanyaan-pertanyaan di bawah ini : 

1. Apa yang dimaksud perintah-perintah direktory : pwd, cd, mkdir, rmdir.
  • Pwd digunakan untuk melihat direktori yang sedang aktif. 
  • Cd digunakan untuk berpindah dari satu direktori ke direktori yang lain. 
  • Mkdir digunakan untuk membuat satu dan sub direktori. 
  • Rmdir digunakan untuk menghapus direktori apabila direktori tersebut kosong.
2. Apa yang dimaksud perintah-perintah manipulasi file : cp, mv dan rm (sertakan format yang digunakan)
  • Cp digunakan untuk mengkopi file atau seluruh direktori. 
Formatnya : 
$ cp contoh contoh1 
$ ls -l 
  • Mv digunakan untuk  memindah file. 
Formatnya : 
$ mv contoh contoh2 
$ ls  -l 
  • Rm digunakan untuk menghapus file. 
Formatnya : 
$ rm     contoh2 
$ ls  -l

3. Jelaskan perbedaan Symbolic link menggunakan hard link (direct) dan soft link (indirect).

    Pada bentuk soft link, symbolic link dapat dilakukan pada file yang tidak ada, sedangkan pada  hard link tidak dimungkinkan. Perbedaan lainnya symbolic link dapat dibentuk melalui media disk atau partisi yang berbeda dengan soft link, tetapi pada hard link terbatas pada partisi disk yang sama.

4. Tuliskan maksud perintah-perintah : file, find, which, locate dan grep
  • File digunakan untuk melihat dan mencari data pada directory. 
  • Find digunakan untuk melihat file pada pohon directory. 
  • Which digunakan untuk mengetahui letak system utility. 
  • Locate digunakan untuk mencari file pada semua directory dengan lebih cepat dan ditampilkan dengan path yang penuh.
  • Grep (general regular expression print) digunakan untuk mencari file yang bernama sesuai pattern yang diberikan dan akan menampilkan baris yang sesuai.
PERCOBAAN : 
1. Login sebagai user. 
2. Bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini. Perhatikan hasilnya. 
3. Selesaikan soal-soal latihan

- Percobaan 1 : Direktory

1. Melihat direktori HOME
$ pwd
$ echo $HOME
Analisanya : 
    Pada percobaan ini kita mencoba untuk melihat direktori home dengan perintah pwd yaitu untuk melihat direktori yang sedang aktif.

2. Melihat direktori aktual dan parent direktori 
$ pwd 
$ cd . 
$ pwd 
$ cd .. 
$ pwd 
$ cd 
Analisanya : 
    Pada percobaan ini kita mencoba perintah untuk melihat actual directory dan parental directory, dengan menggunakan perintah cd yang berfungsi untuk berpindah dan pwd yang berfungsi untuk melihat direktori yang sedang aktif.

3. Membuat satu direktori, lebih dari satu direktori atau sub direktori 
$ pwd 
$ mkdir A B C A/D A/E B/F A/D/A 
$ ls -l 
$ ls -l A 
$ ls -l A/D 
Analisanya : 
    Pada percobaan ini kita mencoba untuk membuat satu dan sub direktori, membuat suatu direktori  kita gunakan perintah mkdir, dan disini kita membuat direktori dan sub direktorinya, lalu ditampilkan segala informasinya dengan menggunakan perintah ls, dan didalam direktori A terdapat sb direktori D dan E.

4. Menghapus satu atau lebih direktori hanya dapat dilakukan pada direktori kosong dan hanya dapat dihapus oleh pemiliknya kecuali bila diberikan ijin aksesnya 
$ rmdir B (Terdapat pesan error, mengapa ?) 
$ ls -l B 
$ rmdir B/F B
 $ ls -l B (Terdapat pesan error, mengapa ?) 
Analisanya : 
    Pada percobaan ini kita mencoba untuk menghapus direktori dengan menggunakan perintah rmdir, tapi pada rmdir B terdapat pesan eror, itu karena direktori B tidak kosong dan kita tidak memiliki ijin akses. kita diperbolehkan menghapus direktori apabila direktori tersebut kosong dan kita memiliki ijin akses terhadap direktori tersebut.

5. Navigasi direktori dengan instruksi cd untuk pindah dari satu direktori ke direktori lain. 
$ pwd 
$ ls -l 
$ cd A 
$ pwd 
$ cd .. 
$ pwd 
$ cd /home/<user>/C 
$ pwd 
$ cd /<user/C (Terdapat pesan error, mengapa ?) 
$ pwd
Analisanya : 
    Pada percobaan ini kita mencoba untuk berpindah dari satu direktori ke direktori yang lain dengan  menggunakan perintah cd.

- Percobaan 2 : Manipulasi File

1. Perintah cp untuk mengkopi file atau seluruh direktori 
$ cat > contoh 
Membuat sebuah file 
    [Ctrl-d] 
$ cp contoh contoh1 
$ ls -l 
$ cp contoh A 
$ ls –l A 
$ cp contoh contoh1 A/D 
$ ls –l A/D
Analisanya : 
    Percobaan ini adalah percobaan untuk mengkopi file, jadi kita buat dulu sebuah file, lalu file tersebut dikopi dan ditampilkan seluruh informasinya menggunakan perintah ls -l.

2. Perintah mv untuk memindah file 
$ mv contoh contoh2 
$ ls -l 
$ mv contoh1 contoh2 A/D 
$ ls –l A/D 
$ mv contoh contoh1 C 
$ ls –l C 
Analisanya :
    Percobaan ini adalah percobaan untuk memindah file  menggunakan perintah mv, jadi kita pindah dulu filenya dan ganti dengan nama lain, lalu dilihat informasinya pada home, dan begitu seterusnya, jadi setiap setelah melakukan pemindahan itu dilihat informasinya dengan perintah ls -l.

3. Perintah rm untuk menghapus file 
$ rm contoh2 
$ ls -l $ rm –i contoh 
$ rm –rf A C 
$ ls -l
Analisanya :
    Percobaan ini adalah percobaan untuk menghapus file dengan menggunakan perintah rm, jadi kita hapus file dengan nama contoh2 itu, lalu kita hapus file contoh, namun terdapat eror karena file tersebut tidak ada di dalam home, dan ketika dilihat dengan perintah ls yang ada hanyalah file contoh1.

- Percobaan 3 : Symbolic Link

1. Membuat shortcut (file link) 
$ echo "Hallo apa khabar" > halo.txt 
$ ls -l 
$ ln halo.txt z 
$ ls -l 
$ cat z 
$ mkdir mydir 
$ ln z mydir/halo.juga 
$ cat mydir/halo.juga 
$ ln -s z bye.txt 
$ ls -l bye.txt 
$ cat bye.txt
Analisanya :
    Percobaan ini adalah percobaan untuk membuat shortcut pada file dengan menggunaka perintah ln, jadi kita membuat file dengan nama halo.txt yang berisi hallo apa kabar, lalu dilihat pada home, apa saja direktori yang sedang aktif, dan salah satunya adalah halo.txt itu, lalu kita membuat direktori dengan nama mydir, lalu melihat isi direktori mydir yaitu file halo.txt dan membuat link.

- Percobaan 4 : Melihat Isi File

$ ls –l 
$ file halo.txt 
$ file bye.txt
Analisanya :
    Percobaan ini adalah percobaan untuk melihat isi file yang ada. Jadi, disini kita gunakan perintah ls -l yang berfungsi untuk melihat semua yang informasi keseluruhan yang ada didalam home. dan kemudian melihat informasi tentang file halo.txt dan bye.txt.

- Percobaan 5 : Mencari File

1. Perintah find 
$ find /home –name “*.txt” –print > myerror.txt 
$ cat myerror.txt 
$ find . –name “*.txt” –exec wc –l ‘{}’ ‘;’ 
Analisanya :
    Perintah find digunakan untuk mencari letak file sesuai dengan ekstensi inputan. Untuk kasus diatas adalah .txt

2. Perintah which 
$ which ls 
Analisanya :
    Perintah diatas untuk mencari direktori mana terdapat ls. Which digunakan untuk mengetahui letak system utility.

3. Perintah locate 
$ locate “*.txt”
Analisanya :
    Locate digunakan untuk mencari file pada semua directory dengan lebih cepat dan ditampilkan   dengan path yang penuh.

- Percobaan 6 : Mencari Text pada File

$ grep Hallo *.txt
Analisanya :
    Perintah grep digunakan untuk melihat dimana saja isi file yang dituliskan berada. Dan juga Grep (general regular expression print) digunakan untuk mencari file yang bernama sesuai pattern yang diberikan dan akan menampilkan baris yang sesuai.

LATIHAN :

1. Cobalah urutan perintah berikut : 
$ cd 
$ pwd 
$ ls –al 
$ cd . 
$ pwd 
$ cd .. 
$ pwd 
$ ls -al 
$ cd .. 
$ pwd 
$ ls -al 
$ cd /etc 
$ ls –al | more 
$ cat passwd 
$ cd – 
$ pwd




Analisanya :
  • $ cd adalah perintah yang digunakan untuk berpindah atau berganti ke direktori lain. $ pwd adalah perintah yang digunakan untuk melihat directori yang sedang aktif. Dan untuk perintah
  • $ cd . . adalah perintah untuk berpindah atau kembali pada direktori sebelumnya dan kembali ke direktori home.
  • $ cd /etc untuk masuk ke direktori etc, lalu
  • $ ls –al | more untuk perintah ini digunakan untuk melihat satu layar penuh
  • $ cd – perintah ini adalah perintah yang digunakan untuk kembali ke direktori home secara langsung.perintah di atas berfungsi untuk mencari direktori (cd), selain itu juga ada perintah untuk melihat direktori yang aktif (pwd), setiap kali masuk pada direktori baru dengan perintah cd maka hasil dari perintahnya adalah
  • $ pwd akan berubah yang sesuai dengan direktori yang digunakan. Selain isi dari setiap direktori pun berbeda antara yang satu dengan yang lainnya yang bisa dilihat dengan menggunakan perintah ls.
2. Lanjutkan penelusuran pohon pada sistem file menggunakan cd, ls, pwd dan cat. Telusuri direktory /bin, /usr/bin, /sbin, /tmp dan /boot.

/bin

/boot
/sbin

/tmp
/usr/bin

Analisanya :
    Perintah $ cd digunakan untuk masuk ke salah satu direktori tersebut, kemudian perintah $ ls menampilkan isi dari direktori tersebut. Lalu, untuk melihat direktori yang sedang aktif menggunakan perintah $ pwd dan perintah $ cat untuk menampilkan tipenya yaitu direktori. Setiap direktori tersebut memiliki isi tipe data yang berbeda - beda.

3. Telusuri direktory /dev. Identifikasi perangkat yang tersedia. Identifikasi tty (termninal) Anda (ketik who am i); siapa pemilih tty Anda (gunakan ls –l). 
Analisanya :
    Perintah $ cd  /dev digunakan untuk memasuki direktori dev. Kemudian dilanjutkan dengan perintah $whoami yang untuk melihat user yang sedang aktif yaitu aldan. Untuk menampilkan semua isi dari direktori /dev menggunakan perintah $ ls -l

4. Telusuri derectory /proc. Tampilkan isi file interrupts, devices, cpuinfo, meminfo dan uptime menggunakan perintah cat. Dapatkah Anda melihat mengapa directory /proc disebut pseudo -filesystem yang memungkinkan akses ke struktur data kernel ? 




Analisanya :
    Perintah $ cat digunakan untuk melihat isi dari suatu file. 
  • File interrupts berisi tentang proses apa saja yang terjadi saat ini. 
  • File devices berisi tentang device yang sedang aktif.
  • File cpuinfo untuk melihat info cpu dan prosesnya saat berlangsung.
  • File meminfo berisi info memory dan bagaimana prosesnya berlangsung.
  • File uptime untuk mengetahui informasi tentang lama system yang berjalan setelah terakhir reboot atau mati.
5. Ubahlah direktory home ke user lain secara langsung menggunakan cd ~username. 
Analisanya :
    Keadaan awal berada di direktori /proc/ Kemudian dengan menjalakan perintah $ cd ~aldan digunakan untuk berpindah ke direktori lain. Perintah $ pwd untuk mengecek keadaan kita sedang berada di suatu direktori.

6. Ubah kembali ke direktory home Anda. 
Analisanya :
    Untuk kembali ke direktori home dapat menggunakan perintah $ cd ..

7. Buat subdirektory work dan play. 
Analisanya :
    Membuat subdirektori work play dengan menggunakan perintah $ mkdir work play. Kemudian untuk mengeceknya menggunakan perintah $ ls.

8. Hapus subdirektory work. 
Analisanya :
    Menghapus subdirektori work pada direktori home menggunakan perintah $rmdir. Kemudian untuk memastikan subdirektori tersebut sudah terhapus pengecekan menggunakan perintah $ ls.

9. Copy file /etc/passwd ke direktory home Anda. 
Analisanya :
    Perintah $ cp digunakan untuk mengcopy file passwd ke dalam direktori home.

10. Pindahkan ke subirectory play. 
Analisanya :
    Untuk memindahkan file dapat menggunakan perintah $ mv. Kemudian kita menjalankan perintah $ ls untuk memastikan bahswa file passwd sudah pindah ke subdirektori play.

11. Ubahlah ke subdirektory play dan buat symbolic link dengan nama terminal yang menunjuk ke perangkat tty. Apa yang terjadi jika melakukan hard link ke perangkat tty ? 
Analisanya :
    Jika melakukan hard link maka akan terjadi error karena tty merupakan file system. Sehingga dilakukan softlink dan perintah berhasil.

12. Buatlah file bernama hello.txt yang berisi kata ”hello word”. Dapatkah Anda gunakan ”cp” menggunakan ”terminal” sebagai file asal untuk menghasilkan efek yang sama ? 
Analisanya :
    Membuat file hello.txt yang berisikan "hello world" menggunakan perintah echo. Kemudian menggunakan perintah $ cp, saat menggunakan perintah $ cp hasilnya sama seperti melakukan perintah $ cat pada file hello.txt.

13. Copy hello.txt ke terminal. Apa yang terjadi ? 
Analisanya :
    Failed access dikarenakan terlalu banyak untuk melakukan link ke direktori yang ada.

14. Masih direktory home, copy keseluruhan direktory play ke direktory bernama work menggunakan symbolic link. 
Analisanya :
    Untuk mencopy keseluruhan direktory play ke direktory bernama work menggunakan symbolic link. 

15. Hapus direktory work dan isinya dengan satu perintah
Analisanya :
    Untuk menghapus direktori dapat menggunakan perintah $ rm -rf <direktori yang ingin dihapus >.

Pada percobaan 1 point 3 buatlah pohon dari arsitektur file dan direktori


KESIMPULAN :
    Sistem file pada Linux menyerupai tree (pohon) yang dimulai dari root kemudian direktori dan subdirektori. Terdapat dua sistem symbolic link yaitu hardlink dan softlink. Pada sistem operasi Linux ini, kita dapat mengatur atau memanipulasi struktur file dan direktori yang ada pada sistem sesuai dengan kebutuhan. Kita tidak bisa me-delete suatu direktori apabila dalam direktori tersebut terdapat isi. echo home digunakan untuk melihat letak home, sedangkan cd home untuk berpindah ke home.

DAFTAR PUSTAKA :

Komentar

Postingan populer dari blog ini

Praktikum 6 : Pemrograman Shell

Praktikum 8 : Sistem File

Praktikum 7 : Unix System Call dan Manajemen Memory