Anda di halaman 1dari 109

MODUL

PRAKTIKUM SISTEM OPERASI

Oleh :
Andi Nur Rachman, ST., MT.

UNIVERSITAS PERJUANGAN
TASIKMALAYA
2017

1
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 1
Perintah Dasar Sistem Operasi Linux
DASAR TEORI:
Setiap pemakai LINUX harus mempunyai nama login (user account) yang sebelumnya harus
didaftarkan pada administrator sistem. Nama login umumnya dibatasi maksimum 8 karakter dan umumnya
dalam huruf kecil. Prompt dari shell bash pada LINUX menggunakan tanda “$”.
Sebuah sesi LINUX terdiri dari :
1. Login.
2. Bekerja dengan Shell / menjalankan aplikasi.
3. Logout.
Tergantung atas shell yang digunakan, pada Linux dengan shell bash proses login akan
mengeksekusi program /etc/profile (untuk semua pemakai) dan file .base_profile di direktori awal (HOME)
masing- masing. Pada saat logout, maka program shell bash akan mengeksekusi script yang bernama
.bash_logout.

1. FORMAT INSTRUKSI LINUX


Instruksi Linux standar mempunyai format sebagai berikut :
$ NamaInstruksi [pilihan] [argumen]
Pilihan adalah option yang dimulai dengan tanda – (minus). Argumen dapat kosong, satu atau beberapa
argumen (parameter). Contoh :
$ ls tanpa argumen
$ ls –a option adalah –a = all, tanpa argumen
$ ls /bin tanpa option, argumen adalah /bin
$ ls /bin /etc /usr ada 3 argumen
$ ls –l /usr 1 option dan 1 argumen l = long list
$ ls –la /bin /etc 2 option –l dan –a dan 2 argumen
2. MANUAL
Linux menyediakan manual secara online. Beberapa kunci keyboard yang penting dalam menggunakan
manual adalah :
Q untuk keluar dari program manual
<Enter> ke bawah, baris per baris
<Spasi> ke bawah, per halaman
b kembali ke atas, 1 halaman
/teks mencari teks (string)
n meneruskan pencarian string sebelumnya

2
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !

Percobaan 1 : Melihat identitas diri (nomor id dan group id)


$ id

Percobaan 2 : Melihat tanggal dan kalender dari sistem


1. Melihat tanggal saat ini
$ date
2. Melihat kalender
$ cal 5 2008
$ cal –y

Percobaan 3 : Melihat identitas mesin


$ hostname
$ uname
$ uname –a

Percobaan 4 : Melihat siapa yang sedang aktif


1. Mengetahui siapa saja yang sedang aktif
$ w
$ who
$ whoami

2. Melihat informasi finger


$ finger
$ finger <user>

3. Mengubah informasi finger


$ chfn <user>
Changing finger information for student.
Password:
Name[user wks]: <Nama Anda>
Office[]: Lab TI UNPER
Office Phone []: 0265 123456
Home Phone []: 0265 456789
Finger information changed.

Percobaan 5 : Menggunakan manual


$ man ls
$ man man
$ man –k file
$ man 5 passwd

Percobaan 6 : Menghapus layar


$ clear

3
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Percobaan 7 : Mencari perintah yang deskripsinya mengandung kata kunci yang dicari
$ apropos date
$ apropos mail
$ apropos telnet

Percobaan 8 : Mencari perintah yang tepat sama dengan kunci yang dicari
$ whatis date

Percobaan 9 : Manipulasi berkas (file) dan direktori


1. Menampilkan current working directory
$ ls

2. Melihat semua file lengkap


$ ls –l

3. Menampilkan semua file atau direktori yang tersembunyi


$ ls –a

4. Menampilkan semua file atau direktori tanpa proses sorting


$ ls –f

5. Menampilkan isi suatu direktori


$ ls /usr

6. Menampilkan isi direktori root


$ ls /

7. Menampilkan semua file atau direktori dengan menandai : tanda (/) untuk direktori, tanda asterik (*)
untuk file yang bersifat executable, tanda (@) untuk file symbolic link, tanda (=) untuk socket, tanda (%)
untuk whiteout dan tanda (|) untuk FIFO.
$ ls –F /etc
8. Menampilkan file atau direktori secara lengkap yaitu terdiri dari nama file, ukuran, tanggal dimodifikasi,
pemilik, group dan mode atau atributnya.
$ ls –l /etc
9. Menampilkan semua file dan isi direktori. Argumen ini akan menyebabkan proses berjalan agak lama,
apabila proses akan dihentikan dapat menggunakan Ctrl + c.
$ ls –R /usr

Percobaan 10 : Melihat tipe file


$ file
$ file *
$ file /bin/ls

Percobaan 11 : Menyalin file


4
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Mengkopi suatu file. Berikan opsi –i untuk pertanyaan interaktif bila file sudah ada.

$ cp /etc/group f1
$ ls –l
$ cp –i f1 f2
$ cp –i f1 f2

2. Mengkopi ke direktori

$ mkdir backup
$ cp f1 f3
$ cp f1 f2 f3 backup
$ ls backup
$ cd backup
$ ls

Percobaan 12 : Melihat isi file


1. Menggunakan instruksi cat
$ cat f1

2. Menampilkan file per satu layar penuh


$ more f1
$ pg f1

Percobaan 13 : Mengubah nama file


1. Menggunakan instruksi mv
$ mv f1 prog.txt
$ ls

2. Memindahkan file ke direktori lain. Bila argumen terakhir adalah nama direktori, maka berkas-berkas
akan dipindahkan ke direktori tersebut.
$ mkdir mydir
$ mv f1 f2 f3 mdir

Percobaan 14 : Menghapus file


$ rm f1
$ cp mydir/f1 f1
$ cp mydir/f2 f2
$ rm f1
$ rm –i f2

Percobaan 15 : Mencari kata atau kalimat dalam file


$ grep root /etc/passwd
$ grep “:0:” /etc/passwd
$ grep student /etc/passwd

LATIHAN:
5
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Ubahlah informasi finger pada komputer Anda !
2. Lihatlah user-user yang sedang aktif pada komputer Anda !
3. Perintah apa yang digunakan untuk melihat kalender satu tahun penuh ?
4. Bagaimana anda dapat melihat manual dari perintah cal ?
5. Bagaimana melihat perintah manual ls dengan kata kunci sort ?
6. Bagaimana tampilan untuk perintah ls –a –l dan ls –al ?
7. Tampilkan semua file termasuk yang hidden file pada direktori /etc !
8. Tampilkan semua file secara lengkap pada direktori /etc !
9. Buatlah direktori prak1 pada direktori aktif, kemudian copy-kan file /etc/group ke file tes1, tes2
dan tes3 pada direktori ini 1
10. Tampilkan isi file tes1 per satu layar penuh.
11. Pindahkan file tes1 dan tes2 ke home direktori.
12. Hapus file tes1 dan tes2 dengan konfirmasi.

BUATLAH LAPORAN PRAKTIKUM:


1. Buatlah penjelasan Percobaan 1 sampai dengan percobaan 15 dalam bentuk tabel seperti di bawah ini :
Perintah Deskripsi Format
id Melihat identitas diri $ id
date Melihat tanggal dan kalender dari $ date
system
cal Melihat kalender $ cal
hostname menampilkan nama dari komputer $ hostname
uname Melihat sistem operasi $ uname
w Mengetahui siapa saja yang sedang
aktif
who memberikan daftar pemakai yang baru saja
login dengan menunjukkan nama pemakai,
terminal ID, dan waktu masing-masing
login
whoami mengetahui siapa user yang sedang
login di suatu komputer /
terminal
chfn Mengubah informasi finger
. . .

2. Tampilkan semua hasil dari perintah-perintah yang anda kerjakan pada latihan diatas kemudian berikan
analisa/penjelasan!

6
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 2
Operasi Input Output
DASAR TEORI:
1. PROSES I/O
Sebuah proses memerlukan Input dan Output. Instruksi (command) yang diberikan pada Linux
melalui Shell disebut sebagai eksekusi program yang selanjutnya disebut proses. Setiap kali instruksi
diberikan, maka Linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID (Process
Identity). Proses dalam Linux selalu membutuhkan Input dan menghasilkan suatu Output. Dalam konteks
Linux input/output adalah :
- Keyboard (input)
- Layar (output)
- Files
- Struktur data kernel
- Peralatan I/O lainnya (misalnya Network)
2. FILE DESCRIPTOR
Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan melalui angka yang
dimulai dari 0, 1, 2 dan seterusnya. Tiga buah file descriptor standar yang lalu diciptakan oleh proses adalah :
• 0 = keyboard (standar input)
• 1 = layar (standar output)
• 2 = layar (standar error)
Linux tidak membedakan antara peralatan hardware dan file, Linux memanipulasi peralatan hardware sama
dengan file.
3. PEMBELOKAN (REDIRECTION)
Pembelokan dilakukan untuk standard input, output dan error, yaitu untuk mengalihkan file
descriptor dari 0, 1 dan 2. Simbol untuk pembelokan adalah :
0< atau < pengganti standard input
1> atau > pengganti standard output
2>
4. PIPA (PIPELINE)

7
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Mekanisme pipa digunakan sebagai alat komunikasi antar proses.
Input  Proses1  Output = Input  Proses2  Output
Proses 1 menghasilkan output yang selanjutnya digunakan sebagai input oleh Proses 2. Hubungan output
input ini dinamakan pipa, yang menghubungkan Proses 1 dengan Proses2 dan dinyatakan dengan symbol “|”.
Proses1 | Proses2
5. FILTER
Filter adalah utilitas Linux yang dapat memproses standard input (dari keyboard) dan menampilkan
hasilnya pada standard output (layar). Contoh filter adalah cat, sort, grep, pr, head, tail,
paste dan lainnya.

Pada sebuah rangkaian pipa, misal : P1 | P2 | P3 ……. | Pn-1 | Pn


Maka P2 sampai dengan Pn-1 mutlak harus utilitas Linux yang berfungsi sebagai filter. P1 (awal) dan Pn
(terakhir) boleh tidak filter. Utilitas yang bukan filter misalnya who, ls, ps, lp, lpr, mail dan
lainnya. Beberapa perintah Linux yang digunakan untuk proses penyaringan antara lain :
• Perintah grep
Digunakan untuk menyaring masukan dan menampilkan baris-baris yang hanya mengandung pola yang
ditentukan. Pola ini disebut regular expression.
• Perintah wc
Digunakan untuk menghitung jumlah baris, kata dan karakter dari baris-baris masukan yang diberikan
kepadanya. Untuk mengetahui berapa baris gunakan option –l, untuk mengetahui berapa kata, gunakan
option –w dan untuk mengetahui berapa karakter, gunakan option –c. Jika salah satu option tidak
digunakan, maka tampilannya adalah jumlah baris, jumlah kata dan jumlah karakter.

• Perintah sort
Digunakan untuk mengurutkan masukannya berdasarkan urutan nomor ASCII dari karakter.
• Perintah cut
Digunakan untuk mengambil kolom tertentu dari baris-baris masukanya, yang ditentukan pada option –c.
• Perintah uniq
Digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, biasanya digabungkan
dalam pipeline dengan sort.

8
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !
Percobaan 1 : File descriptor
1. Output ke layar (standar output), input dari system (kernel)
$ ps

2. Output ke layar (standar output), input dari keyboard (standard input)


$ cat
hallo, apa khabar
hallo, apa khabar
exit dengan ^d
exit dengan ^d
[Ctrl-d]

3. Input dari keyboard dan output ke alamat internet


$ mail admin@yahoo.com
contoh surat yang langsung dibuat pada standard input (keyboard)
[Ctrl-d]

4. Input nama direktori, output tidak ada (membuat direktori baru), bila terjadi error maka tampilan error
pada layar (standard error)
$ mkdir mydir
$ mkdir mydir (Terdapat pesan error)
Percobaan 2 : Pembelokan (redirection)
1. Pembelokan standar output
$ cat 1> myfile.txt
Ini adalah teks yang saya simpanKe file myfile.txt

2. Pembelokan standar input, yaitu input dibelokkan dari keyboard menjadi dari file
$ cat 0< myfile.txt
$ cat myfile.txt

3. Pembelokan standar error untuk disimpan di file


$ mkdir mydir (Terdapat pesan error)
$ mkdir mydir 2> myerror.txt
$ cat myerror.txt

4. Notasi 2>&1 : pembelokan standar error (2>) adalah identik dengan file descriptor 1.
$ ls filebaru (Terdapat pesan error)
$ ls filebaru 2> out.txt
$ cat out.txt
$ ls filebaru 2> out.txt 2>&1
$ cat out.txt

5. Notasi 1>&2 (atau >&2) : pembelokan standar output adalah sama dengan file descriptor 2 yaitu standar
error
$ echo “mencoba menulis file” 1> baru

9
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ cat filebaru 2> baru 1>&2
$ cat baru

6. Notasi >> (append)


$ echo “kata pertama” > surat
$ echo “kata kedua” >> surat
$ echo “kata ketiga” >> surat
$ cat surat
$ echo “kata keempat” > surat
$ cat surat

7. Notasi here document (<<++ …. ++) digunakan sebagai pembatas input dari keyboard. Perhatikan bahwa
tanda pembatas dapat digantikan dengan tanda apa saja, namun harus sama dan tanda penutup harus
diberikan pada awal baris.
$ cat <<++
Hallo, apa kabar ?
Baik-baik saja ?
Ok!
++
$ cat <<%%%
Hallo, apa kabar ?
Baik-baik saja ?
Ok!
%%%

8. Notasi – (input keyboard) adalah representan input dari keyboard. Artinya menampilkan file 1, kemudian
menampilkan input dari keyboard dan menampilkan file 2. Perhatikan bahwa notasi “-“ berarti
menyelipkan input dari keyboard
$ cat myfile.txt – surat

9. Untuk membelokkan standart output ke file, digunakan operator >


$ echo hello
$ echo hello > output
$ cat output

10. Untuk menambahkan output ke file digunakan operator >>


$ echo bye >> output
$ cat output

11. Untuk membelokkan standart input digunakan operator <


$ cat < output
12. Pembelokan standart input dan standart output dapat dikombinasikan tetapi tidak boleh menggunakan
nama file yang sama sebagai standart input dan output.

$ cat < output > out


$ cat out
$ cat < output >> out
$ cat out
$ cat < output > output
$ cat output

10
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ cat < out >> out (Proses tidak berhenti)
[Ctrl-c]
$ cat out
Percobaan 3 : Pipa (pipeline)
Operator pipa ( | ) digunakan untuk membuat eksekusi proses dengan melewati data langsung ke data
lainnya.
$ who
$ who | sort
$ who | sort –r
$ who > tmp
$ sort tmp
$ rm tmp
$ ls –l /etc | more
$ ls –l /etc | sort | more
Percobaan 4 : Filter
Pipa juga digunakan untuk mengkombinasikan utilitas sistem untuk membentuk fungsi yang lebih kompleks
$ w –h | grep <user>
$ grep <user> /etc/passwd
$ ls /etc | wc
$ ls /etc | wc –l
$ cat > kelas1.txt
Badu
Zulkifli
Yulizir
Yudi
Ade
[Ctrl-d]
$ cat > kelas2.txt
Budi
Gama
Asep
Muchlis
[Ctrl-d]
$ cat kelas1.txt kelas2.txt | sort
$ cat kelas1.txt kelas2.txt > kelas.txt
$ cat kelas.txt | sort | uniq
LATIHAN:
1. Lihat daftar secara lengkap pada direktori aktif, belokkan tampilan standard output ke file baru.
2. Lihat daftar secara lengkap pada direktori /etc/passwd, belokkan tampilan standard output ke file
baru tanpa menghapus file baru sebelumnya.
3. Urutkan file baru dengan cara membelokkan standard input.
4. Urutkan file baru dengan cara membelokkan standard input dan standard output ke file baru.urut.
5. Buatlah direktori latihan2 sebanyak 2 kali dan belokkan standard error ke file rmdirerror.txt.
6. Urutkan kalimat berikut :
Jakarta
Bandung
Surabaya
Padang

11
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Palembang
Lampung

Dengan menggunakan notasi here document (<@@@ …@@@)


7. Hitung jumlah baris, kata dan karakter dari file baru.urut dengan menggunakan filter dan tambahkan
data tersebut ke file baru.
8. Gunakan perintah di bawah ini dan perhatikan hasilnya.
$ cat > hello.txt
dog cat
cat duck
dog chicken
chicken duck
chicken cat
dog duck
[Ctrl-d]
$ cat hello.txt | sort | uniq
$ cat hello.txt | grep “dog” | grep –v “cat”

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa hasil percobaan 1 sampai dengan 4, untuk setiap perintah jelaskan tampilannya.
2. Kerjakan latihan diatas dan analisa hasilnya

12
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 3
Operasi File dan Struktur Direktory
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 hirarki, yaitu dimulai dari root dengan symbol “/”. 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).
/

bin sbin home tmp lib usr var

Vicky Susi Rocky

Tugas Lat

2. DIREKTORY STANDAR
Setelah proses instalasi, Linux menciptakan system file yang baku, terdiri atas direktori sebagai berikut :
Direktori Deskripsi
Berisi file administrative (konfigrasi dll) dan file executable atau script
/etc yang berguna untuk administrasi system.

/dev Berisi file khusus yang merepresentasikan peralatan hardware seperti


memori, disk, printer, tape, floppy, jaringan dll.
/bin Berisi utilitas sistem level rendah (binary) .
/sbin Berisi utilitas sistem untuk superuser (untuk membentuk administrasi
sistem).
/usr/sbin Berisi utilitas sistem dan program aplikasi level tinggi.
/usr/bin
Berisi program library yang diperlukan untuk kompilasi program
/usr/lib (misalnya C). Berisi instruksi (command) misalnya untuk Print Spooler
(lpadmin) dll.
/tmp Berisi file sementara, yang pada saat Bootstrap akan dihapus
(dapat digunakan oleh sembarang user).
Berisi file yang sangat penting untuk proses bootstrap. Kernel
/boot
vmlinuz disimpan di direktori ini.
/proc Berisi informasi tentang kernel Linux, proses dan virtual system file.
Direktori variable, artinya tempan penyimpanan LOG (catatan hasil
/var output program), file ini dapat membengkak dan perlu dimonitor
perkembangannya.

13
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
/home Berisi direktori untuk pemakai Linux (pada SCO diletakkan pada /usr)
/mnt Direktori untuk mounting system file
/root Home direktori untuk superuser (root)
/usr/bin/X11 Symbolic link ke /usr/X11R6/bin, program untuk X-Window
/usr/src Source code untuk Linux
/opt Option, direktori ini biasanya berisi aplikasi tambahan (“addon”) seperti
Netscape Navigator, kde, gnome, applix dll.
Direktori /etc
Berisi file yang berhubungan dengan administrasi system, maintenance script, konfigurasi, security.
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.
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 actual cdrom ide atau scsi)
Mouse PS2 : /dev/lp0
Universal : /dev/mouse
Parallel Port LPT1 : /dev/lp0
LPT2 : /dev/lp1
Serial Port COM1 : /dev/ttyS0
COM2 : /dev/ttyS1
Universal : /dev/modem (link dari S0 atau S1)

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

14
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
system. Semua direktori berukuran 0 (kosong) kecuali file kcore dan self. Setiap nomor yang ada pada
direktori tersebut 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 :
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

tipe hak akses jml link pemilik group jml character waktu nama file

15
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
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 dikaitkan 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 tinggi 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.

16
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
8. MENCARI FILE
Untuk melihat 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 (pola) yang diberikan dan akan menampilkan baris yang
sesuai.

17
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !
Percobaan 1 : Direktory
1. Melihat direktori HOME
$ pwd
$ echo $HOME

2. Melihat direktori aktual dan parent direktori


$ pwd
$ cd .
$ pwd
$ cd ..
$ pwd
$ cd

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

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, me ngapa ?)

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

18
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ cp contoh contoh1 A/D
$ ls –l A/D

2. Perintah mv untuk memindahkan file


$ mv contoh contoh2
$ ls -l
$ mv contoh1 contoh2 A/D
$ ls –l A/D
$ mv contoh contoh1 C
$ ls –l C

3. Perintah rm untuk menghapus file


$ rm contoh2
$ ls -l
$ rm –i contoh
$ rm –rf A C
$ ls –l
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
Percobaan 4 : Melihat Isi File
$ ls –l
$ file halo.txt
$ file 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 ‘{}’ ‘;’
2. Perintah which
$ which ls

3. Perintah locate
$ locate “*.txt”

Percobaan 6 : Mencari text pada file


$ grep Hallo *.txt

19
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
LATIHAN:
1. Cobalah urutan perintah berikut :
$ cd
$ pwd
$ ls –al
$ cd .
$ pwd
$ cd ..
$ pwd
$ ls -al
$ cd ..
$ pwd
$ ls -al
$ cd /etc
$ pwd
2. Lanjutkan penelusuran pohon pada sistem file menggunakan cd, ls, pwd dan cat. Telusuri
direktory /bin, /usr/bin, /sbin, /tmp dan /boot.
3. Telusuri direktory /dev. Identifikasi perangkat yang tersedia. Identifikasi tty (termninal) Anda (ketik
whoami); siapa pemilih tty Anda (gunakan 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 ?
5. Ubahlah direktory home ke user lain secara langsung menggunakan cd ~username.
6. Ubah kembali ke direktory home Anda.
7. Buat subdirektory work dan play.
8. Hapus subdirektory work.
9. Copy file /etc/passwd ke direktory home Anda.
10. Pindahkan ke subirectory 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 ?
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 ?
13. Copy hello.txt ke terminal. Apa yang terjadi ?
14. Masih direktory home, copy keseluruhan direktory play ke direktory bernama work menggunakan
symbolic link.
15. Hapus direktory work dan isinya dengan satu perintah

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa hasil percobaan 1-6 yang Anda lakukan.

20
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
a. Analisa setiap hasil tampilannya.
b. Pada Percobaan 1 point 3 gambarkan pohon dari struktur file dan direktori
c. Bila terdapat pesan error, jelaskan penyebabnya.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

21
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 4
Proses dan Manajemen Proses
DASAR TEORI:
1. KONSEP PROSES PADA SISTEM OPERASI LINUX
Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas sistem atau
program aplikasi dari shell, satu atau lebih proses ”child” akan dibuat oleh shell sesuai perintah yang
diberikan. Setiap kali instruksi diberikan pada Linux shell, maka kernel akan menciptakan sebuah proses-id.
Proses ini disebut juga dengan terminologi Unix sebagai sebuah Job. Proses Id (PID) dimulai dari 0, yaitu
proses INIT, kemudian diikuti oleh proses berikutnya (terdaftar pada /etc/inittab). Beberapa tipe proses
:
• Foreground
Proses yang diciptakan oleh pemakai langsung pada terminal (interaktif, dialog)
• Batch
Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Proses Batch tidak diasosiasikan
(berinteraksi) dengan terminal.
• Daemon
Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankan tugas sesuai dengan
permintaan tersebut. Bila tidak ada request, maka program ini akan berada dalam kondisi “idle” dan tidak
menggunakan waktu hitung CPU. Umumnya nama proses daemon di UNIX berakhiran d, misalnya
inetd, named, popd.

2. SINYAL
Proses dapat mengirim dan menerima sinyal dari dan ke proses lainnya. Proses mengirim sinyal
melalui instruksi “kill” dengan format :
kill [-nomor sinyal] PID
Nomor sinyal : 1 s/d maksimum nomor sinyal yang didefinisikan system Standar nomor sinyal yang
terpenting adalah :
No Nama Deskripsi
Sinyal
1 SIGHUP Hangup, sinyal dikirim bila proses terputus, misalnya melalui
putusnya hubungan modem
2 SIGINT Sinyal interrupt, melalui ^C
3 SIGQUIT Sinyal Quit, melalui ^\
9 SIGKILL Sinyal Kill, menghentikan proses
15 SIGTERM Sinyal terminasi software

22
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
3. MENGIRIM SINYAL
Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang
berjalan bahwa ada sesuatu yang harus dikendalikan. Berdasarkan sinyal yang dikirim ini maka proses dapat
bereaksi dan administrator/programmer dapat menentukan reaksi tersebut. Mengirim sinyal menggunakan
instruksi :
kill [-nomor sinyal] PID
Sebelum mengirim sinyal PID proses yang akan dikirim harus diketahui terlebih dahulu.
4. MENGONTROL PROSES PADA SHELL
Shell menyediakan fasilitas job control yang memungkinkan mengontrol beberapa job atau proses
yang sedang berjalan pada waktu yang sama. Misalnya bila melakukan pengeditan file teks dan ingin
melakukan interrupt pengeditan untuk mengerjakan hal lainnya. Bila selesai, dapat kembali (switch) ke editor
dan melakukan pengeditan file teks kembali.
Job bekerja pada foreground atau background. Pada foreground hanya untuk satu job pada satu
waktu. Job pada foreground akan mengontrol shell, menerima input dari keyboard dan mengirim output ke
layar. Job pada background tidak menerima input dari terminal, biasanya berjalan tanpa memerlukan
interaksi. Job pada foreground kemungkinan dihentikan sementara (suspend), dengan menekan [Ctrl-Z].
Job yang dihentikan sementara dapat dijalankan kembali pada foreground atau background sesuai
keperluan dengan menekan ”fg” atau ”bg ”. Sebagai catatan, menghentikan job sementara sangat berbeda
dengan melakuakan interrupt job (biasanya menggunakan [Ctrl-C]), dimana job yang diinterrupt akan
dimatikan secara permanen dan tidak dapat dijalankan lagi.
5. MENGONTROL PROSES LAIN
Perintah ps dapat digunakan untuk menunjukkan semua proses yang sedang berjalan pada mesin
(bukan hanya proses pada shell saat ini) dengan format :
ps –fae atau
ps -aux
Beberapa versi UNIX mempunyai utilitas sistem yang disebut top yang menyediakan cara interaktif
untuk memonitor aktifitas sistem. Statistik secara detail dengan proses yang berjalan ditampilkan dan secara
terus-menerus di-refresh . Proses ditampilkan secara terurut dari utilitas CPU. Kunci yang berguna pada top
adalah :
s – set update frequency
u – display proses dari satu user
k – kill proses (dengan PID)
q – quit
Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada sistem UNIX adalah perintah
killall. Perintah ini akan menghentikan proses sesuai PID atau job number proses.Login sebagai user,
23
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian selesaikan soal-soal
latihan !
Percobaan 1 : Status Proses
1. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal sebagai
user.
2. Instruksi ps (process status) digunakan untuk melihat kondisi proses yang ada. PID adalah Nomor
Identitas Proses, TTY adalah nama terminal dimana proses tersebut aktif, STAT berisi S (Sleeping) dan
R (Running), COMMAND merupakan instruksi yang digunakan.
$ ps
3. Untuk melihat faktor/elemen lainnya, gunakan option –u (user). %CPU adalah presentasi CPU time yang
digunakan oleh proses tersebut, %MEM adalah presentasi system memori yang digunakan proses, SIZE
adalah jumlah memori yang digunakan, RSS (Real System Storage) adalah jumlah memori yang
digunakan, START adalah kapan proses tersebut diaktifkan $ ps –u
4. Mencari proses yang spesifik yang sedang dilakukan pemakai. Proses diatas hanya terbatas pada proses
milik pemakai, dimana pemakai tersebut melakukan login $ ps –u <user>
5. Mencari proses lainnya gunakan opsi a (all) dan au (all user) $ ps –a $ ps –au
6. Logout dan tekan Alt+F7 untuk kembali ke mode grafis
Percobaan 2 : Menampilkan Hubungan Proses Parent dan Child
1. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal sebagai
user.
2. Ketik ps –eH dan tekan Enter. Opsi e memilih semua proses dan opsi H menghasilkan tampilan proses
secara hierarki. Proses child muncul dibawah proses parent. Proses child ditandai dengan awalan
beberapa spasi. $ ps –eH
3. Ketik ps –e f dan tekan Enter. Tampilan serupa dengan langkah 2. Opsi –f akan menampilkan status
proses dengan karakter grafis (\ dan _) $ ps –e f
4. Ketik pstree dan tekan Enter. Akan ditampilkan semua proses pada sistem dalam bentuk hirarki
parent/child. Proses parent di sebelah kiri proses child. Sebagai contoh proses init sebagai parent
(ancestor) dari semua proses pada sistem. Beberapa child dari init mempunyai child. Proses login
mempunyai proses bash sebagai child. Proses bash mempunyai proses child startx. Proses startx
mempunyai child xinit dan seterusnya. $ pstree
5. Ketik pstree | grep mingetty dan tekan Enter. Akan menampilkan semua proses mingetty yang
berjalan pada system yang berupa console virtual. Selain menampikan semua proses, proses
dikelompokkan dalam satu baris dengan suatu angka sebagai jumlah proses yang berjalan. $ pstree
| grep mingetty

24
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
6. Untuk melihat semua PID untuk proses gunakan opsi –p. $ pstree –p
7. Untuk menampilkan proses dan ancestor yang tercetak tebal gunakan opsi –h.
$ pstree –h

Percobaan 3 : Menampilkan Status Proses dengan Berbagai Format


1. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal sebagai
user.
2. Ketik ps –e | more dan tekan Enter. Opsi -e menampilkan semua proses dalam bentuk 4 kolom : PID,
TTY, TIME dan CMD.
$ ps –e | more
Jika halaman penuh terlihat prompt --More-- di bagian bawah screen, tekan q untuk kembali ke
prompt perintah.
3. Ketik ps ax | more dan tekan Enter. Opsi a akan menampilkan semua proses yang dihasilkan terminal
(TTY). Opsi x menampilkan semua proses yang tidak dihasilkan terminal. Secara logika opsi ini sama
dengan opsi –e. Terdapat 5 kolom : PID, TTY, STAT, TIME dan COMMAND.
$ ps ax | more
Jika halaman penuh terlihat prompt --More-- di bagian bawah screen, tekan q untuk kembali ke
prompt perintah.
4. Ketik ps –e f | more dan tekan Enter. Opsi –e f akan menampilkan semua proses dalam format daftar
penuh.
$ ps ef | more
Jika halaman penuh terlihat prompt --More-- di bagian bawah screen, tekan q untuk kembali ke
prompt perintah.
5. Ketik ps –eo pid, cmd | more dan tekan Enter. Opsi –eo akan menampilkan semua proses dalam format
sesuai definisi user yaitu terdiri dari kolom PID dan CMD.
$ ps –eo pid,cmd | more
Jika halaman penuh terlihat prompt --More-- di bagian bawah screen, tekan q untuk kembali ke
prompt perintah.
6. Ketik ps –eo pid,ppid,%mem,cmd | more dan tekan Enter. Akan menampilkan kolom PID, PPID dan
%MEM. PPID adalah proses ID dari proses parent. %MEM menampilkan persentasi memory system
yang digunakan proses. Jika proses hanya menggunakan sedikit memory system akan ditampilkan 0.
$ ps –eo pid,ppid,%mem,cmd | more
7. Logout dan tekan Alt+F7 untuk kembali ke mode grafis

Percobaan 4 : Mengontrol proses pada shell

25
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 dan login ke terminal sebagai
user.
2. Gunakan perintah yes yang mengirim output y yang tidak pernah berhenti $ yes Untuk
menghentikannya gunakan Ctrl-C.
3. Belokkan standart output ke /dev/null $ yes > /dev/null
Untuk menghentikannya gunakan Ctrl-C.
4. Salah satu cara agar perintah yes tetap dijalankan tetapi shell tetap digunakan untuk hal yang lain
dengan meletakkan proses pada background dengan menambahkan karakter & pada akhir perintah.
$ yes > /dev/null &
Angka dalam ”[ ]” merupakan job number diikuti PID.
5. Untuk melihat status proses gunakan perintah jobs.
$ jobs
6. Untuk menghentikan job, gunakan perintah kill diikuti job number atau PID proses. Untuk identifikasi
job number, diikuti prefix dengan karakter ”%”.
$ kill %<nomor job>
contoh : kill %1
7. Lihat status job setelah diterminasi $ jobs

Percobaan 5 : Menghentikan dan memulai kembali job


1. Cara lain meletakkan job pada background dengan memulai job secara normal (pada foreground), stop
job dan memulai lagi pada background
$ yes > /dev/null
Hentikan sementara job (suspend ), bukan menghentikannya (terminate ), tetapi menghentikan sementara
job sampai di restart. Untuk menghentikan sementara job gunakan Ctrl-Z.
2. Untuk restart job pada foreground , gunakan perintah fg.
$ fg
3. Shell akan menampilkan nama perintah yang diletakkan di foreground . Stop job lagi dengan Ctrl-Z.
Kemudian gunakan perintah bg untuk meletakkan job pada background .
$ bg
Job tidak bisa dihentikan dengan Ctrl-Z karena job berada pada background. Untuk menghentikannya,
letakkan job pada foreground dengan fg dan kemudian hentikan sementara dengan Ctrl-Z.
$ fg
4. Job pada background dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan
jika mencoba mengerjakan job lain.
$ yes &

26
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Untuk menghentikannya tidak dapat menggunakan Ctrl-C. Job harus dipindah ke foreground, baru
dihentikan dengan cara tekan fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl-Z untuk
menghentikan sementara.
5. Apabila ingin menjalankan banyak job dalam satu waktu, letakkan job pada foreground atau background
dengan memberikan job ID
$ fg %2 atau $ %2
$ bg %2
6. Tekan fg dan tekan Enter, kemudian dilanjutkan dengan Ctrl -Z untuk menghentikan sementara.
7. Lihat job dengan perintah ps -fae dan tekan Enter. Kemudian hentikan proses dengan perintah kill.
$ ps -fae
$ kill -9 <NomorPID>
8. Logout dan tekan Alt+F7 untuk kembali ke mode grafis

Percobaan 6 : Percobaan dengan Penjadwalan Prioritas


1. Login sebagai root.
2. Buka 3 terminal, tampilkan pada screen yang sama.
3. Pada setiap terminal, ketik PS1 = ” \w:” diikuti Enter. \w menampilkan path pada direktori home.
4. Karena login sebagai root, maka akan ditampilkan ~: pada setiap terminal. Untuk setiap terminal ketik
pwd dan tekan Enter untuk melihat bahwa Anda sedang berada pada direktori /root.
5. Buka terminal lagi (keempat), atur posisi sehingga keempat terminal terlihat pada screen.
6. Pada terminal keempat, ketik top dan tekan Enter. Maka program top akan muncul. Ketik i. Top akan
menampilkan proses yang aktif. Ketik lmt. Top tidak lagi menampilkan informasi pada bagian atas dari
screen. Pada percobaan ini, terminal ke empat sebagai je ndela Top.
7. Pada terminal 1, bukalah program executable C++ dengan mengetik program yes dan tekan Enter.
8. Ulangi langkah 7 untuk terminal 2.
9. Jendela Top akan menampilkan dua program yes sebagai proses yang berjalan. Nilai %CPU sama pada
keduanya. Hal ini berarti kedua proses mengkonsumsi waktu proses yang sama dan berjalan sama cepat.
PID dari kedua proses akan berbeda, misalnya 3148 dan 3149. Kemudian gunakan terminal 3 (yang tidak
menjalankan primes maupun Jendela Top) dan ketik renice 19 <PID terimnal 1> (contoh : renice 19
3148) dan diikuti Enter. Hal ini berarti mengganti penjadwalan prioritas dari proses ke 19.
10. Tunggu beberapa saat sampai program top berubah dan terlihat pada jendela Top. Pada kolom STAT
memperlihatkan N untuk proses 3148. Hal ini berarti bahwa penjadwalan prioritas untuk proses 3148
lebih besar (lebih lambat) dari 0. Proses 3149 berjalan lebih cepat.
11. Program top juga mempunyai fungsi yang sama dengan program renice. Pilih Jendela Top dan tekan
r. Program top terdapat prompt PID to renice: tekan 3148 (ingat bahwa Anda harus mengganti 3148
27
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
dengan PID Anda sendiri) dan tekan Enter. Program top memberikan prompt Renice PID 3148 to
value: tekan -19 dan tekan Enter.
12. Tunggu beberapa saat sampai top berubah dan lihat nilai %CPU pada kedua proses. Sekarang proses
3148 lebih cepat dari proses 3149. Kolom status menunjukkan < pada proses 3148 yang menunjukkan
penjadwalan prioritas lebih rendah (lebih cepat) dari nilai 0.
13. Pilih terminal 3 (yang sedang tidak menjalankan yes atau program top) dan ketik nice –n -10 yes dan
tekan Enter. Tunggu beberapa saat agar program top berubah dan akan terlihat proses primes ketiga.
Misalnya PID nya 4107. Opsi -10 berada pada kolom NI (penjadwalan prioritas).
14. Jangan menggunakan mouse dan keyboard selama 10 detik. Program top menampilkan proses yang
aktif selain program yes. Maka akan terlihat proses top terdaftar tetapi %CPU kecil (dibawah 1.0) dan
konsisten. Juga terlihat proses berhubungan dengan dekstop grafis seperti X, panel dll.
15. Pindahkan mouse sehingga kursor berubah pada screen dan lihat apa yang terjadi dengan tampilan top.
Proses tambahan akan muncul dan nilai %CPU berubah sebagai bagian grafis yang bekerja. Satu alasan
adalah bahwa proses 4107 berjalan pada penjadwalan prioritas tinggi. Pilih jendela Top, ketik r. PID to
renice : muncul prompt. Ketik 4107 (ubahlah 4107 dengan PID Anda) dan tekan Enter. Renice PID
4107 to value: muncul prompt. Ketik 0 dan tekan Enter. Sekarang pindahkan mouse ke sekeliling
screen. Lihat perubahannya.
16. Tutup semua terminal window.
17. Logout dan login kembali sebagai user.

LATIHAN:
1. Masuk ke tty2 dengan Ctrl+Alt+F2. Ketik ps –au dan tekan Enter. Kemudian perhatikan keluaran
sebagai berikut :
a. Sebutkan nama-nama proses yang bukan root
b. Tulis PID dan COMMAND dari proses yang paling banyak menggunakan CPU time
c. Sebutkan buyut proses dan PID dari proses tersebut
d. Sebutkan beberapa proses daemon
e. Pada prompt login lakukan hal- hal sebagai berikut :
$ csh
$ who
$ bash
$ ls
$ sh
$ ps
f. Sebutkan PID yang paling besar, kemudian buat urut-urutan proses sampai ke PPID = 1.
2. Cobalah format tampilan ps dengan opsi berikut dan perhatikan hasil tampilannya :
- -f daftar penuh
28
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
- -j format job
- J format job control
- L daftar memanjang
- S format sinyal
- v format virtual memory
- X format register i386
3. Lakukan urutan pekerjaan berikut :
a. Gunakan perintah find ke seluruh direktory pada sistem, belokkan output sehingga daftar direktori
dialihkan ke file directories.txt dan daftar pesan error dialihkan ke file errors.txt
b. Gunakan perintah sleep 5. Apa yang terjadi dengan perintah ini ?
c. Jalankan perintah pada background menggunakan &
d. Jalankan sleep 15 pada foreground , hentikan sementara dengan Ctrl- Z dan kemudian letakkan
pada background dengan bg. Ketikkan jobs. Ketikkan ps. Kembalikan job ke foreground dengan
perintah fg.
e. Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan perintah kill
untuk menghentikan proses diikuti job number.
f. Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan kill untuk
menghentikan sementara proses. Gunakan bg untuk melanjutkan menjalankan proses.
g. Jalankan sleep 60 pada background 5 kali dan terminasi semua pada dengan menggunakan
perintah killall.
h. Gunakan perintah ps, w dan top untuk menunjukkan semua proses yang sedang dieksekusi.
i. Gunakan perintah ps –aeH untuk menampilkan hierarki proses. Carilah init proses. Apakah Anda
bisa identifikasi sistem daemon yang penting ? Dapatkan Anda identifikasi shell dan subprose s ?
j. Kombinasikan ps –fae dan grep, apa yang Anda lihat ?
k. Jalankan proses sleep 300 pada background. Log off komputer dan login kembali. Lihat daftar
semua proses yang berjalan. Apa yang terjadi pada proses sleep ?

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa semua hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

29
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 5
Bekerja Dengan Bash Shell
DASAR TEORI:
1. SHELL
Shell adalah Command executive, artinya program yang menunggu instruksi dari pemakai,
memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut. Shell ditandai
dengan prompt. Untuk pemakai menggunakan prompt $ dan untuk superuser menggunakan promp #.
Beberapa macam shell :
• /bin/sh
Bourne shell, dirancang oleh Steve Bourne dari AT&T
• /bin/csh
Dikembangkan oleh UNIX Berkeley yang dikenal dengan C -Shell
• /bin/bash
Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell. Perbedaan mendasar
antara Shell diatas hampir tidak ada, kecuali pada fasilitas pemrograman dan editing.
2. PROFILE
Pada saat login, program akan menjalankan beberapa program yaitu :
1. /etc/profile
Berisi shell script yang berlaku untuk seluruh pengguna Linux.
2. Profil untuk setiap pemakai
Pada home directory, login pertama kali akan memeriksa file .bash_profile . Bila tidak ada, maka file
.bash_login akan dicari. Bila .bash_login tidak ada, maka dicari file bernama .profile .
3. .bashrc
File ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui instruksi su.
4. .bash_logout
Pada saat logout, maka bash akan mencari file .bash_logout. Bila ada, file tersebut akan dieksekusi sebe
lum logout.
Isi dari /etc/profile:
# System wide environment and startup programs
# Functions and aliases go in /etc/bashrc
PATH=”$PATH:/usr/X11R6/bin”
PS1=”[\u@\h \W]\\$ “
umask 022
USER=’id –un’
LOGNAME=$USER
MAIL=”/var/spool/mail/$USER”
HOSTNAME=’/bin/hostname’
HISTSIZE=1000
30
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
HISTFILESIZE=1000
Export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL

PATH merupakan daftar nama direktori. Bila sebuah instruksi diberikan dari prompt shell, maka
instruksi tersebut akan dicari pada daftar tersebut.
PS1 adalah prompt dimana :
\u = Nama User
\h = Nama Host
\W = Nama working direktory

1. HISTORY
History diadaptasi dari C-Shell, yaitu catatan dari semua instruksi yang sejauh ini telah dilakukan.
Catatan ini dapat dilihat sebagai history, kemudian dapat dipilih kembali, diedit dan dieksekusi. History
memudahkan pemakai untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi
kesalahan pada penulisan instruksi maupun parameter. Navigasi pada daftar history menggunakan karakter
kontrool sebagai berikut :
^P (Ctrl-P) melihat instruksi sebelumnya
^N (Ctrl-N melihat instruksi berikutnya
!! eksekusi kembali instruksi sebelumnya
!! –3 3 instruksi sebelumnya akan diulang
!!88 ulangi instruksi no 88
2. BASH-SCRIPT
Bash-script adalah file yang berisi koleksi program yang dapat dieksekusi. Untuk eksekusi bash
script gunakan . sebelum file bash-script yang berarti eksekusi shell dan tanda ./ berarti file bash-script
berada pada direktori actual.
3. JOB CONTROL
Job adalah sebuah eksekusi program yang diberikan kepada kernel. Sebuah Job dianggap selesai, bila
eksekusi program tersebut berakhir. Eksekusi Job adalah sama dengan eksekusi program, baik proses
Background maupun proses Foreground.

4. EDITOR vi/vim
Vi adalah full screen editor, artinya editor tersebut dapat memanfaatkan fasilitas satu layar penuh. Vi
mempunyai 2 buah modus, yaitu :

31
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
• Command line
Editor vi mengintepretasikan input sebagai instruksi untuk dieksekusi oleh editor, contoh seperti mencari
teks, mengganti teks secara otomatis dan lainnya.
• Editing
Editor vi mengintepretasikan input sebagai teks yang akan dimasukkan ke dalam buffer editor. Pada bagian
bawah layar akan tampil teks “INSERTING”. Pada awal vi dijalankan, maka program memasuki command
mode. Dengan menekan tombol “i” maka akan memasuki editing. Untuk kembali ke command mode,
tekan tombol Esc.
Kunci-kunci teks editor vi dapat dilihat pada tabel sebagai berikut :
Kunci Keterangan
H Pindah kursor ke kiri satu karakter
J Pindah kursor ke kanan satu karakter
K Pindah kursor ke atas
L Pindah kursor ke bawah
O Menyisipkan teks (satu baris setelah posisi Untuk keluar dari 5
kursor) model kunci insert di
I Menyisipkan teks (di sebelah kiri posisi samping ini dan
kursor) mengaktifkan
A Menyisipkan teks (di sebelah kanan posisi kuncikunci lain, maka
kursor) kita harus menekan
I (shift i) Menyisipkan teks (di posisi awal baris) tombol Esc terlebih
A (shift a) Menyisipkan teks (di posisi akhir baris) dahulu.
X Menghapus 1 huruf (di sebelah kanan posisi kursor)
Dw Manghapus 1 kata (di sebelah kanan posisi kursor)
Dd Menghapus 1 baris (di sebelah kanan posisi kursor)
Yy Mengkopi 1 baris
2yy Mengkopi 2 baris
P (Paste) Menampilkan baris kalimat yang sudah dikopi dengan kunci yy
Cw Mengganti 1 kata yang telah ditulis di sebelah kanan posisi kursor
dengan kata lain
Cc Mengganti 1 baris kalimat yang telah ditulis di sebelah kanan posisi
kursor dengan kalimat lain
ctrl-b Mundur satu layar
ctrl- f Maju satu layar
ctrl-d Maju setengah layar
B Menggerakkan kursor ke kiri satu kata
W Manggerakkan kursor ke kanan satu kata
^ Pergi ke awal baris
$ Pergi ke akhir baris
U Membatalkan perintah yang terakhir kali
U Membatalkan seluruh perubahan teks pada baris tempat kursor berada
:! Keluar untuk sementara dari editor vi dan menjalankan perintah yang
lain
:wq Write dan quite, simpan berkas dan keluar
:q! Keluar vi tanpa menyimpan
:se all Menampilkan semua pilihan set status

32
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
:se nu Menampilkan nomor baris pada kiri layar
/string Mencari string ke arah depan
?string Mencari string ke arah belakang
N Meneruskan pencarian untuk arah yang sama
N Meneruskan pencarian untuk arah yang berbeda

Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !
Percobaan 1 : Profile
1. File .bash_profile dijalankan pada home direktori pemakai yang login. File .bash_profile adalah hidden
file, sehingga untuk melihatnya gunakan opsi a pada instruksi ls.
$ ls –a
$ more .bash_profile

2. File .bash_logout akan diekseksi sesaat sebelum logout, berfungsi sebagai house clearing jobs, artinya
membersihkan semuanya, misalnya menghapus temporary file atau job lainnya. Melihat file .bash_logout
dengan instruksi
$ cat .bash_logout

Percobaan 2 : Menggunakan Feature History Bash


1. Bash shell menyimpan ”history” perintah yang digunakan sebelumnya. Anda dapat mengaksis history
dalam beberapa cara. Cara paling mudah adalah menggunakan Panah Atas. Maka perintah sebelumnya
akan ditampilkan.
2. Berikutnya, berikan Bash shell beberapa perintah untuk diingat. Masukkan perintah berikut dan tekan
Enter pada setiap baris.
$ cd
$ ls –l /etc
$ ls –l
$ whoami
$ who
3. Untuk memeriksa apakah perintah ini ditambahkan pada history, dapat menggunakan perintah history
untuk melihat semua perintah yang pernah dimasukkan.
$ history
4. Anda dapat memilih perintah sebelumnya dengan menggunakan Panah Atas, tetapi hal ini tidak efisien
untuk perintah yang semakin bertambah banyak. Cara yang mudah menggunkaan nomor pada perintah
history atau mencarinya. Untuk memilih dan mengeksekusi perintah dengan nomor, masukkan kunci !
diikuti nomor perintah.
$ !<Nomor Perintah> Contoh : !780

33
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
5. Anda dapat mencari perintah dengan menyertakan perintah yang diinginkan. Misalnya !?etc?! akan
menjalankan perintah ls –l /etc yang sebelumnya digunakan.
$ !?etc?
6. Kemudian gunakan perintah history, maka akan terlihat perintah ls –l etc yang kedua dan bukan
!?etc?
$ history
7. Apabila string tidka ditemukan pada perintha history maka akan terdapat esan error.
$ !?wombat99?

8. Jika diketikkan !who maka yang dijalankan adalah perintah who. Tetapi bila Anda ketikkan !whoa maka
yang dijalankan adalah perintah whoami.
$ !who
$ !whoa

9. Anda bisa menggantikant string pada perintah history, terutama pada perintah yang panjang. Misalnya
ketik cat /bin/bash | strings | grep shell | less dan tekan Enter. Maka akan menampilkan semua string
pada file /bin/bash yang berisi kata ”shell”. Untuk keluar tekan q. Jika ingin menampilkan kata
”alias”, maka Anda tidak perlu mengetik perintah yang panjang lagi, tetapi cukup ketik ^shell^alias^
dan tekan Enter maka akan menggantikan kata ”shell” dengan ”alias”.
$ cat /bin/bash | strings | grep shell | less
$ ^shell^alias^
Percobaan 3 : Mengubah Feature History Bash
1. Bash shell akan menyimpan perintah history meskipun telah log out dan login kembali. File
.bash_history menyimpan file history yang terdapatpada home directory.
$ cd

2. Lihat beberapa baris pada file .bash_history dengan ketik tail .bash_history dan tekan Enter. File ini
bukan file yang up to date.
$ tail .bash_history

3. Ketik history dan tekan Enter. Maka akan terlihat baris terakhir adalah perintah history dan baris
sebelumnya adalah tail .bash_history. Perintah history bersifat up to date, karena disimpan pada
memory sistem.
$ history

4. Ketik perintah berikut


$ echo ‘Ini perintah saya’

34
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
5. Log out dan log in kembali sebagai user yang sama. Ketik history dan tekan Enter. Maka perintah echo
’Ini perintah saya’ akan berada padabaris terakhir. Lihat file .bash_history, maka perintah
tsb akan terdapat pada file .bash_history.
$ history
$ tail .bash_history
6. Ketik history|less untuk melihat perintah history terakhir pada screen. Tekan spacebar untuk melihat file
lebih banyak. Untuk keluar tekan q
$ history|less
7. Untuk melihat berapa banyak perintah history yang ada pada file ketik berikut dan output yang keluar
serupa di bawah ini
$ wc –l .bash_history
1000 .bash_history
8. Output menunjukkan bahwa 1000 perintah history disimpan pada file history. Untuk melihat jangkauan
(limit) perintah history digunakan variabel HISTSIZE. Untuk melihat jangkauan history ketik sebagai
berikut
$ set|grep HISTSIZE
9. Bila ingin memperbesar jangkauan file history, maka ubahlah variabel HISTSIZE pada skrip startup
yang disebut .bashrc pada home directory.
$ echo ‘HISTSIZE=5000’ >> .bashrc
10. Log out dan log in kembali sebagai user yang sama. Lihat perubahan variabel HISTSIZE.
$ set|grep HISTSIZE
11. Ketikkan perintah history beberapa kali, maka perintah ini akan disimpan pada BASH history meskipun
yang diketikkan perintahnya sama.
12. Anda dapat melakukan konfigurasi BASH agar tidak menambah perintah ke history jika perintah yang
diketikkan sama dengan sebelumnya. Hal ini dilakukan dengan menambahkan variabel
HISTCONTROL dan diberikan nilai ignoredups pada file .bashrc
$ echo ‘HISTCONTROL=ignoredups’ >> .bashrc
13. Log out dan log in kembali sebagai user yang sama. Ketikkan history beberapa kali dan perhatikan
berapa kali history muncul.
Percobaan 4 : Mengubah Prompt Shell
1. Prompt Bash shell dikonfigurasi dengan men-setting nilai variabel PS1. Selain menampilkan string statik
sebagai prompt, Anda dapat menampilkan menjadi dinamis. Contohnya, apabila ingin menunjukkan
current directory atau current time. Ketik PS1=’\t:’ dan tekan Enter untuk menampilkan waktu sistem
dalam format 24 jam sebagai prompt Bash. Format dalam HH:MM:SS
$ PS1=’\t:’

2. Untuk menampilkan format 12 jam dengan indikator am dan pm ketik sebagai berikut :
$ PS1=’\t:’

35
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
3. Kebanyakan orang menginginkan prompt Bash menampilkan current working directory. Direktory dapat
ditampilkan dalam bentuk keseluruhan path atau hanya nama direktory. Karakter \w menampilkan
hanya nama direktory. Jika current directory adalah home directory, maka tampil prompt
~:
$ PS1=’\w:’
4. Ketik cd /usr/sbin untuk melihat prompt /usr/sbin:
$ cd /usr/sbin
5. Ketik PS1=’\W:’ untuk melihat prompt sbin:
$ PS1=’\W:’
6. Ada beberapa prompt BASH lain yang dapat diubah, yaitu PS2, PS3 dan PS4. Prompt PS2 digunakan
sebagai prompt sekunder. Untuk melihat bagaimana penggunaannya, ketik echo ’Hello (tanpa diakhiri
penutup quote) dan tekan Enter. Simbol lebih besar dari (>) akan muncul. Hal ini memberitahukan
bahwa BASH menunggu Anda menyelesaikan perintah. Ketik penutup quote (‘) dan tekan Enter.
Perintah ini akan menyelesaikan prompt PS2, kata ”Hello, ” muncul diikuti dengan prompt PS1 pada
baris baru.
$ echo ’Hello
>’
7. Anda dapat mengubah prompt PS2 seperti mengubah prompt PS1. Ketik perintah berikut :
$ PS2=’Selesai memasukkan perintah Anda:’
8. Kemudian ketik echo ’Hello (tanpa diakhiri penutup quote) dan tekan Enter. Pada baris berikutnya akan
muncul Selesai memasukkan perintah Anda:. Kemudian ketikkan penutup quote (’) dan tekan Enter.
Jika perintah selesai, maka kata Hello akan muncul diikuti prompt PS1 pada baris baru.
$ echo ’Hello
Selesai memasukkan perintah Anda:’
9. Prompt BASH dapat ditampilkan berwar na dengan melakukan setting colorsetting string . Sebagai
contoh, prompt BASH di-set dengan \w\$, akan menampilkan current working directory yang diikuti $
(atau # jika anda login sebagai root). Untuk setting warna menjadi biru ketikkan berikut :
$ PS1=’\033[0;34m\w\$ \033[0;37m’
10. Untuk mendapatkan prompt warna merah ketikkan berikut :
$ PS1=’\033[0;31m\w\$ \033[0;37m’
30=hitam, 31=merah, 32=hijau, 34=biru, 35=ungu, 36=cyan, 37=putih.
11. Bila menginginkan beberapa warna, ketikkan perintah berikut :
$ PS1=’\033[0;31m\w\033[0;32m\$ \033[0;37m’

12. Anda bisa menampilkan atribut visual seperti lebih terang, berkedip dan warna kebalikannya. Untuk
menampilkan prompt yang lebih terang, atribut control diganti 1, seperti perintah berikut :
$ PS1=’\033[1;34m\w\033[1;32m\$ \033[0;37m’
13. Untuk menampilkan prompt dengan warna berkebalikan, atribut control diganti 7, seperti perintah
berikut :
$ PS1=’\033[7;34m\w\033[7;32m\$ \033[0;37m’
14. Untuk menampilkan prompt berkedip, atribut control diganti 5, seperti perintah berikut :
$ PS1=’\033[5;34m\w\033[5;32m\$ \033[0;37m’

36
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Percobaan 5 : Menambahkan otomatisasi ke Prompt Shell
1. Pastikan Anda berada di home directory
$ cd ~
2. Buatlah skrip sederhana untuk mengurut daftar file. Anda dapat menggunakan teks editor, tetapi karena
hanya satu baris, gunakan perintah echo untuk membuat file.
$ echo ’sort ~/list > ~/r13; mv ~/r13 ~/list’ > ~/sorter
3. Buatlah file skrip diatas menjadi file executable
$ chmod +x sorter
4. Jalankan program sorter diatas setiap shell Bash menampilkan prompt PS1. Untuk melakukannya,
buatlah variable PROMPT_COMMAND dimana nilainya adalah nama dari program sorter.
$ PROMPT_COMMAND=~/sorter
5. Ketikkan echo ’John Smith:13001’>>list dan tekan Enter. Jika file list tidak ada, akan dibuat secara
otomatis, tetapi jika sudah ada, string ’John Smith:13001’ aka h ditambahkan.
$ echo ’John Smith:13001’>>list
6. Ketik cat list dan tekan Enter. Maka Anda akan melihat isi file list. Pada saat ini, file mungkin
mempunyai hanya satu baris sehingga tidak dapat dilihat apakah file sudah terurut.
$ cat list
7. Masukkan bebe rapa perintah serupa dengan point 5 tetapi dengan nama dan nomor yang berbeda.
Kemudian ketik cat list dan tekan Enter.
$ echo ’Anita:13002’>>list
$ echo ’Samantha:13003’>>list
$ echo ’Patrik:13004’>>list
$ echo ’Sponse Bob:13005’>>list
$ echo ’Lisa:13006’>>list
$ echo ’Squid:13007’>>list

8. Apabila Anda tidak menginginkan Shell Bash menampilkan file terurut sepanjang waktu, Anda tidak
perlu menambahkan variable PROMPT_COMMAND=~/sorter pada file konfigurasi seperti .bashrc. Bila
Anda ingin BASH berhenti menjalankan program sorter, maka ketikkan variable
PROMPT_COMMAND= dan tekan Enter atau log out dan login kembali.
$ PROMPT_COMMAND=

Percobaan 6 : Membuat Bash-script dan menjalankannya


1. embuat file p1.sh
$ vi p1.sh
echo “Program bash Script”
2. Mengubah program menjadi executable
$ ls –l p1.sh
$ chmod +x p1.sh
$ ls –l p1.sh
3. Menjalankan script
$ bash p1.sh
$ sh p1.sh
$ . p1.sh
37
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ ./p1.sh
4. Konvensi dalam pembuatan script shell dinyatakan sebagai #!/bin/bash. Tambahkan pada file p1.sh
konvensi tersebut
$ vi p1.sh
#!/bin/bash
echo “Program bash script”
5. Buatlah file p2.sh
$ vi p2.sh
#!/bin/bash
echo “Program 2 bash script”
6. Menjalankan beberapa program shell dalam satu baris instruksi yang dipisahkan dengan tanda ;
$ cat p1.sh ; cat p2.sh
$ ./p1.sh ; ./p2.sh
5. Menjalankan script sebagai prosees background, sehingga prompt tidak
Percobaan 7 : Job Control
1. Proses foreground
$ ps x
2. Proses background
$ ps x > hasil &
3. Setiap job mempunyai PID yang tunggal (unique). Untuk melihat jobs yang aktif
$ jobs
4. Buatlah file ploop.sh. File ini tidak akan pernah berhenti kecuali ditekan Ctrl-C
$ vi ploop.sh
#!/bin/bash
while [ true ]
do
sleep 10
echo “Hallo”
done
5. Buatlah file ploop.sh menjadi executable. Jalankan program, akan ditampilkan kata Hallo setiap 10 detik.
Untuk keluar program, tekan Ctrl-C (^C)
$ chmod +x ploop.sh
$ ./ploop.sh
Percobaan 8 : Manipulasi stack untuk Direktori
1. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~
$ dirs
2. Membuat 3 buah direktori
$ mkdir marketing sales support
3. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~
$ dirs
4. Membuat 3 buah direktori
Percobaan 9 : Alias

38
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Alias adalah mekanisme untuk memberi nama alias pada satu atau sekelompok instruksi. Untuk melihat
alias yang sudah terdaftar pada system :
$ alias
2. Membuat beberapa alias
$ alias del=’rm –i’
$ alias h=’history’
3. Gunakan instruksi hasil alias
$ ls
$ del hasil
$ h | more
4. Untuk menghapus alias gunakan instruksi unalias
$ unalias del
$ del files (Terdapat Pesan Kesalahan, mengapa ?)
LATIHAN:
1. Eksekusi seluruh profile yang ada :
a. Edit file profile /etc/profile dan tampilkan pesan seba gai berikut :
echo ’Profile dari /etc/profile’
b. Asumsi nama anda student, maka edit semua profile yang ada yaitu :
/home/student/.bash_profile
/home/. student/.bash_login
/home/student/.profile
/home/student/.bashrc
c. Ganti nama /home/student dengan nama anda sendiri. Pada setiap file tersebut, cantumkan
instruksi echo, misalnya pada /home/ student/.bash_profile:
echo “Profile dari .bash_profile”
d. Lakukan hal yang sama untuk file lainnya, sesuaikan tampilan dengan nama file yang bersangkutan.
2. Jalankan instruksi subtitute user, kemudian keluar dengan perintah exit sebagai berikut :
$ su student
$ exit

kemudian gunakan opsi – sebagai berikut :


$ su – student
$ exit

Jelaskan perbedaan kedua utilitas tersebut.


3. Logout
a. Edit file .bash_logout, tampilkan pesan dan tahan selama 5 detik, sebelum eksekusi logout
Echo “Terima kasih atas sesi yang diberikan”
Sleep 5
Clear

b. Edit file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelum eksekusi logout
4. History

39
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
a. Ganti nilai HISTSIZE dari 1000 menjadi 20
$ HISTSIZE=20
$ h

b. Gunakan fasilitas history dengan mengedit instruksi baris ke 5 dari instruksi yang terakhir dilakukan.
$ !-5
c. Ulangi instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasi pada history buffer
$ !!
d. Ulaingi instruksi pada history buffer nomor tertentu, misalnya nomor 150
$ !150
e. Ulangi instruksi dengan prefix “ls”
$ !ls
$ !?ls?

Jelaskan perbedaan instruksi diatas


5. Prompt String (PS)
a. Edit file .bash_profile, ganti prompt PS1 dengan ‘>’. Instruksi export diperlukan dengan
parameter nama variab le tersebut, agar perubahan variable PS1 dikenal oleh semua shell
PS1=’> ‘
export PS1

Eksperimen hasil PS1 :


$ PS1=“\! > “
69 > PS1=”\d > “
Mon Sep 23 > PS1=”\t > “
10:10:20 > PS1=”Saya=\u > “
Saya=stD02001 > PS1=”\w >”
~ > PS1=\h >”

b. Ubahlah warna shell prompt dengan warna biru dan berkedip.


6. Bash script
a. Buat 3 buah script p1.sh, p2.sh, p3.sh dengan isi masing-masing :
p1.sh
#! /bin/bash
echo “Program p1”
ls –l
p2.sh
#! /bin/bash
echo “Program p2”
who
p3.sh
#! /bin/bash
echo “Program p3”
ps x

b. alankan script tersebut sebagai berikut dan perhatikan hasilnya :


$ ./p1.sh ; ./p3.sh ; ./p2.sh

40
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ ./p1.sh &
$ ./p1.sh $ ./p2.sh & ./p3.sh &
$ ( ./p1.sh ; ./p3.sh ) &

7. Jobs
a. Buat shell- script yang melakukan loop dengan nama pwaktu.sh, setiap 10 detik, kemudian
menyimpan tanggal dan jam pada file hasil.
#!/bin/bash
while [ true ]
do
date >> hasil
sleep 10
done
b. Jalankan sebagai background; kemudian jalankan satu program (utilitas find) di background sebagai
berikut :
$ jobs
$ find / -print > files 2>/dev/null &
$ jobs

c. Jadikan program ke 1 sebagai foreground, tekan ^Z dan kembalikan program tersebut ke background
$ fg %1
$ bg

d. Stop program background dengan utilitas kill


$ ps x
$ kill [Nomor PID]
BUATLAH LAPORAN PRAKTIKUM:
1. Analisa hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

41
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 6
Pemrograman Shell
DASAR TEORI:
1. SHELL SCRIPT
Shell script dibuat dengan editor teks (ASCII editor) dan umumnya diberikan ekstensi “ .sh”. Script
selalu diawali dengan komentar, yang dimulai dengan tanda #, disambung dengan ! dan nama shell yang
digunakan. Contoh :
#!/bin/sh (1)
# Program shell (2)
#
var1=x (3)
var2=8

(1) Awal dari program shell, komentar awal ini akan dibaca oleh system, kemudian system mengaktifkan
program shell (/bin/sh) yang tertera ditempat tersebut. Program shell dapat dipilih, misalnya /bin/csh,
/bin/ksh dan lainnya.
(2) Adalah komentar, sebagai dokumentasi, baris ini akan diabaikan oleh program shell.
(3) Penggunaan variable (assignment), tidak boleh ada spasi di antara nama variable dan konstanta.

2. VARIABEL
Variable shell adalah variable yang dapat mempunyai nilai berupa nilai String. Tata penulisan
variable adalah sebagai berikut :
nama_var = nilai_var
Variable harus dimulai dengan alfabet, disusul dengan alfanumerik dan karakter lain. Variabel dapat
ditulis dalam huruf kecil atau huruf besar atau campuran keduanya. Shell membedakan huruf besar dan huruf
kecil (case sensitive), contoh :
VPT=poltek
i=5

Pemberian nilai variable tidak boleh dipisahkan dengan spasi, karena shell akan menganggap
pemisahan tersebut sebagai parameter, contoh :
VPT =poltek ##error
VPT= poltek ##error

Untuk melihat nilai/isi dari sebuah variable, gunakan tanda $ di depan nama variable tersebut. Pada
shell, instruksi echo dapat menampilkan isi variable tersebut, contoh :
VPT=poltek
echo $VPT
Gaji=450000
echo $Gaji
echo $VPT $Gaji

42
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Bila menggunakan string yang terdiri dari lebih dari satu kata, maka stringtersebut harus berada
dalam tanda kutip atau apostrof, contoh :
VPT=poltek
VPT2=”poltek elektronika ITS”

3. MEMBACA KEYBOARD
Nilai variable dapat diisi melalui keyboard (stdin) dengan instruksi read.

4. PARAMETER
Sebuah program shell dapat mempunyai parameter sebanyak 9 buah dan direpresentasikan melalui
variable khusus yaitu variable $!, $2, $3, $4, $5, $6, $7, $8 dan $9. Nama program shell (nama script)
direpresentasikan melalui variable $0. Jumlah parameter dinyatakan sebagai $#. Bila tidak memberikan
parameter, maka nilai $# adalah 0. Shell variable $* menyatakan seluruh string yang menjadi parameter /
argumen sebuah script ($@ mempunyai arti yang sama). $$ menyatakan nomor proses id (pid) dari script
yang dijalankan. Pid ini akan terus berubah (umumnya) menaik, setiap kali proses berjalan.

5. STATUS EXIT
Setiap program setelah selesai dieksekusi akan memberikan informasi melalui variable spesial $?.
Indikasi yang diberikan adalah :
o Bila program berakhir dengan sukses, $? = 0
o Bila program berakhir dengan error, $?  0
Nilai dari status exit dapat dilihat melalui instruksi echo $?

6. KONSTRUKSI IF
if instruksi-awal
then
instruksi1
instruksi2
………………
fi

if akan mengeksekusi instruksi-awal, dan exit status dari instruksi tersebut akan menjadi kondisi.
Bila 0, maka instruksi selanjutnya masuk ke dalam blok then. Bila tidak 0, maka alur program diteruskan
setelah kunci kata fi.

43
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
7. KONSTRUKSI IF THEN ELSE

if instruksi1
then
instruksi1.1
instruksi1.2
………………
else
instruksi2.1
instruksi2.2
………………
fi

Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan
dijalankan.

8. INSTRUKSI TEST
Instruksi test digunakan untuk memeriksa kondisi dari sebuah ekspresi. Ekspresi terdiri dari factor
dan operator yang dipisahkan oleh spasi. Hasil test akan memberikan nilai berupa status exit, yaitu 0 bila
ekspresi sesuai, bila tidak maka hasil adalah  0.

• Operator untuk test


Operator 0 atau TRUE, jika
string1 = string2 Identical
string1 != string2 Not identical
-n string String is not null
-z string String is null

• Test untuk files dan directory


Test dapat dilakukan untuk memeriksa apakah file ada (Exist), dapat dibaca, dapat ditulis, kosong dan
lainnya.
Operator 0 atau TRUE, jika
-f namafile File ada, file biasa
-d namafile File ada, file adalah direktori
-r namafile File dapat dibaca
-w namafile File dapat ditulis
-x namafile File adalah executable
-s namafile File ada dan tidak kosong
-w namafile File dapat ditulis

Untuk memudahkan pembacaan (readability), test dapat ditulis dengan:

44
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
[ ekspresi ]
[ sebenarnya adalah nama lain dari test, bedanya [ akan mencari kurung penutup ] pada akhir ekspresi
yang harus dipisahkan oleh spasi.

9. LOGICAL && DAN || (SHELL LEVEL)


Notasi && dan || digunakan untuk menggabungkan instruksi shell sebagai alternatif untuk if then
else. Notasi && dan || sering ditemukan dalah shell script system administrator untuk menjalankan routine
dari system operasi.
• instruksi1 && instruksi2
shell akan mengeksekusi instruksi1, dan bila exit status instruksi1 adalah FALSE, maka hasil dari
AND tersebut sudah pasti sama dengan FALSE, sehingga instruksi2 tidak mempunyai pengaruh lagi.
Oleh karena itu, instruksi2 tidak dijalankan. Sebaliknya bila hasil instruksi1 adalah TRUE(0), maka
instruksi2 dijalankan

• instruksi1 || instruksi2
shell akan menge ksekusi instruksi1, bila exit status adalah TRUE(0), hasil dari operasi OR tersebut
sudah pasti menghasilkan TRUE, terlepas dari hasil eksekusi instruksi2. Oleh karena itu instruksi2
tidak perlu dijalankan. Bila hasil instruksi1 adalah FALSE, maka instruksi2 akan dijalankan.
10. OPERATOR BILANGAN BULAT UNTUK TEST
Untuk membandingkan 2 buah bilangan, test memerlukan operator yang berbeda dengan string.
Operator 0 atau TRUE, jika
i1 –eq i2 Bilangan sama
i1 –ge i2 Lebih besar atau sama dengan
i1 –gt i2 Lebih besar
i1 –le i2 Lebih kecil atau sama dengan
i1 –lt i2 Lebih kecil
i1 –ne i2 Bilangan tidak sama

11. OPERATOR LOGICAL (TEST LEVEL)


Logical operator terdiri dari AND (-a), OR (-o) dan NOT (!). Operator ini menggabungkan hasil ekspresi
sebagai berikut :

A B !A A –a B A –o B
False False True False False
False True True False True
True False False False True
True True False True True

45
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
12. KONSTRUKSI IF THEN ELSE IF
Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan
dijalankan.

13. HITUNGAN ARITMETIKA


Tipe dari variable SHELL hanya satu yaitu STRING. Tidak ada tipe lain seperti Numerik, Floating,
Boolean atau lainnya. Akibatnya variable ini tidak dapat membuat perhitungan aritmetika, misalnya :
A=5
B=$A +1 ## error
UNIX menyediakan utilitas yang bernama expr yaitu suatu utilitas yang melakukan aritmetika
sederhana.

14. INSTRUKSI EXIT


Program dapat dihentikan (terminated/selesai) dengan instruksi exit. Sebagai nilai default program
tersebut akan memberikan status exit 0.

15. KONSTRUKSI CASE


Case digunakan untuk menyederhanakan pemakaian if yang berantai, sehingga dengan case,
kondisi dapat dikelompokkan secara lo gis dengan lebih jelas dan mudah untuk ditulis.
case variable in
match1)
instruksi1.1
instruksi1.2
………………
;;
match2)
instruksi2.1
instruksi2.2
………………
;;
*)
instruksi3.1
instruksi3.2
………………
;;
esac

Case diakhiri denan esac dan pada setiap kelompok instruksi diakhiri dengan ;;. Pada akhir pilihan yaitu *)
yang berarti adalah “default”, bila kondisi tidak memenuhi pola sebelumnya

46
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
16. KONSTRUKSI FOR
For digunakan untuk pengulangan dengan menggunakan var yang pada setiap pengulangan akan
diganti dengan nilai yang berada pada daftar (list).
for var in str1 str2 …..strn
do
instruksi1
instruksi2
………………
done

17. KONSTRUKSI WHILE


While digunakan untuk pengulangan instruksi, yang umumnya dibatasi dengan suatu kondisi. Selama
kondisi tersebut TRUE, maka pengulangan terus dilakukan. Loop akan berhenti, bila kondisi FALSSE, atau
program keluar dari blok while melalui exit atau break.
while kondisi
do
instruksi1
instruksi2
………………
done

18. INSTRUKSI DUMMY


Instruksi dummy adalah instruksi yang tidak melakukan apa -apa, namun instruksi ini memberikan
status exit 0 (TRUE). Oleh karena itu, instruksi dummy dapat digunakan sebagai kondisi forever pada loop
(misalnya while).
Simbol instruksi dummy adalah  :

19. FUNGSI
Fungsi adalah program yang dapat dipanggil oleh program lainnya dengan menggunakan notasi
NamaFungsi(). Fungsi memberikan exit status ($?) yang dinyatakan dengan return nr, atau nilai 0 sebagai
default. Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok program yang dinyatakan
dalam { … }.Contoh :

F1( )
{
……..
……..
return 1
}

47
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Variabel dapat didefinisikan dalam fungsi sebagai variable local atau global. Hal yang perlu
diperhatikan, nama variable yang digunakan dalam sebuah fungsi, jangan sampai bentrok dengan nama
variable yang sam adi luar fungsi, sehingga tidak terjadi isi variable berubah.

48
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !
Percobaan 1 : Membuat shell script
1. Buatlah file prog01.sh dengan editor vi
$ vi prog01.sh
#!/bin/sh
# Program shell
#
var1=x
var2=8

2. Untuk menjalankan shell, gunakan notasi TITIK di depan nama program


$ . prog01.sh

3. Untuk menjalankan shell, dapat juga dengan membuat executable file dan dieksekusi relatif dari current
directory
$ chmod +x prog01.sh
$ ./prog01.sh

Percobaan 2 : Variabel
1. Contoh menggunakan variable pada shell interaktif
$ VPT=poltek
$ echo $VPT

2. Pemisahan 2 kata dengan spasi menandakan eksekusi 2 buah instruksi. Karakter $ harus ada pada awal
nama variable untuk melihat isi variable tersebut, jika tidak, maka echo akan mengambil parameter
tersebut sebagai string.
$ VPT2=poltek elektronika (Terdapat pesan error)
$ VPT2=”poltek elektronika”
$ echo VPT2
$ echo $VPT2

3. Menggabungkan dua variable atau lebih


$ V1=poltek
$ V2=’:’
$ V3=elektronika
$ V4=$V1$V2$V3
$ echo $V4

4. Menggabungkan isi variable dengan string yang lain. Jika digabungkan dengan nama variable ya ng
belum didefinisikan (kosong) maka instruksi echo menghasilkan string kosong. Untuk menghindari
kekeliruan, nama variable perlu diproteksi dengan { } dan kemudian isi variable tersebut digabung
dengan string.
$ echo $V3
$ echo $V3ITS
$ echo ${V3}ITS
49
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
5. Variabel dapat berisi instruksi, yang kemudian bila dijadikan input untuk shell, instruksi tersebut akan
dieksekusi
$ CMD=who
$ $CMD
$ CMD=”ls –l”
$ $CMD

6. Modifikasi file prog01.sh berikut


$ vi prog01.sh
#!/bin/sh
V1=poltek
V2=’:’
V3=elektronika
echo “Pemrograman shell”
echo $V1$V2$V3
V3=ITS
echo $V1$V2 di $V3

7. Cara sederhana mengeksekusi shell adalah dengan menggunakan notasi titik di depan nama shell script
tersebut. Bila direktori actual tidak terdaftar dalam PATH, maka command tersebut tidak dapat
ditemukan. Bila script belum executable, script tidak dapat dieksekusi.
$ . prog01.sh
$ prog01.sh (Terdapat pesan error)
$ ./prog01.sh (Terdapat pesan error)
$ chmod +x prog01.sh
$ ./prog01.sh

Percobaan 3 : Membaca keyboard


1. Menggunakan instruksi read
$ read nama
amir
$ echo $nama
2. Membaca nama dan alamat dari keyboard
$ vi prog02.sh
#!/bin/sh
# prog02.sh
# membaca nama dan alamat
echo “Nama Anda : “
read nama
echo “Alamat : “
read alamat
echo “Kota : “
read kota
echo
echo “Hasil adalah : $nama, $alamat di $kota”

50
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
3. Eksekusi program prog02.sh
$ . prog02.sh
Nama Anda :
Amir
Alamat :
Jl semangka 67
Kota :
Surabaya
Hasil adalah : Amir, Jl semangka di Surabaya

4. Instruksi echo secara otomatis memberikan baris baru, maka untuk menghindari hal tersebut disediakan
opsi –n, yang menyatakan kepada echo untuk menghilangkan baris baru. Modifikasi program
prog02.sh
$ vi prog02.sh
#!/bin/sh
# prog02.sh
# membaca nama dan alamat
echo –n “Nama Anda : “
read nama
echo –n “Alamat : “
read alamat
echo –n “Kota : “
read kota
echo
echo “Hasil adalah : $nama, $alamat di $kota”

5. Eksekusi program prog02.sh


$ . prog02.sh
Nama Anda : Amir
Alamat : Jl semangka 67
Kota : Surabaya
Hasil adalah : Amir, Jl semangka di Surabaya

6. Variabel kosong adalah variable yang tidak mempunyai nilai. Variabel ini didapat atas assignment atau
membaca dari keyboard atau variable yang belum didefinisikan
$ read nama
<CR>
$ echo $nama
$ A=
$ B=””
$ C=$A$B
$ echo $C

7. Variabel dapat disubtitusikan dengan hasil eksekusi dari sebuah instruksi. Pada contoh dibawah ,
instruksi pwd dieksekusi lebih dahulu dengan sepasang Back Quate (tanda kutip terbalik). Hasil dari
eksekusi tersebut akan masuk sebagai nilai variable DIR
$ pwd
$ DIR=`pwd`
$ echo $DIR

51
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
8. Buatlah shell script prog03.sh
$ vi prog03.sh
#!/bin/sh
# prog03.sh
#
NAMA=`whoami`
echo Nama Pengguna Aktif adalah $NAMA
tanggal=`date | cut –c1-10`
echo Hari ini tanggal $tanggal

9. Eksekusi prog03.sh
$ . prog03.sh

Percobaan 4 : Parameter
1. Membuat shell script prog04.sh
$ vi prog04.sh
#!/bin/sh
# prog04.sh versi 1
# Parameter passing
#
echo “Nama program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”

2. Eksekusi prog04.sh tanpa parameter, dengan 2 parameter, dengan 4 parameter


$ . prog04.sh
$ . prog04.sh amir hasan
$ . prog04.sh amir hasan badu ali

3. Membuat shell script prog04.sh versi 2 dengan memberikan jumlah parameter


$ vi prog04.sh
#!/bin/sh
# prog04.sh versi 2
# Parameter passing
#
echo “Jumlah parameter yang diberikan adalah $#”
echo “Nama program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”

4. Eksekusi prog04.sh tanpa parameter dan dengan 4 parameter


$ . prog04.sh
$ . prog04.sh amir hasan badu ali

52
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
5. Membuat shell script prog04.sh versi 3 dengan menambahkan total parameter dan nomor proses id
(PID)
$ vi prog04.sh
#!/bin/sh
# prog04.sh versi 3
# Parameter passing
#
echo “Jumlah parameter yang diberikan adalah $#”
echo “Nama program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”
echo “Total parameter adalah $*”
echo “PID proses shell ini adalah $$”

6. Eksekusi prog04.sh dengan 4 parameter


$ . prog04.sh amir hasan badu ali

Percobaan 5 : Status Exit


1. String tidak diketemukan, maka status exit adalah 1
$ grep xyz /etc/passwd
$ echo $?

2. String diketemukan, maka status exit adalah 0


$ grep <user> /etc/passwd
$ echo $?

Percobaan 6 : Konstruksi if
1. Instruksi dengan exit status 0
$ who
$ who | grep <user>
$ echo $?

2. If membandingkan exit status dengan 0, bila sama, maka blok program masuk ke dalam blok then-fi
$ if [ $? = 0 ]
 then
 echo “Pemakai tersebut sedang aktif”
 fi

3. Nomor (1) dan (2) diatas dapat disederhanakan dengan


$ if who|grep <user> >/dev/null
 then
 echo okay
 fi

Percobaan 7 : Konstruksi if then else


53
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Membuat shell script prog05.sh
$ vi prog05.sh
#!/bin/sh
# prog05.sh
# Program akan memberikankonfirmasi apakah nama
# user sedang aktif atau tidak
#
echo –n “Berikan nama pemakai : ”
read nama
if who | grep $nama > /dev/null
then
echo “$nama sedang aktif”
else
echo “$nama tidak aktif”
fi

2. Jalankan prog05.sh, masukkan nama pemakai yang aktif yang tampil pada instruksi who dan coba juga
untuk nama pemakai yang tidak aktif
$ who
$ . prog05.sh [nama=<user>]
$ . prog05.sh [nama=studentOS]

Percobaan 8 : Instruksi Test


1. Menggunakan instruksi test, perhatikan spasi antara
$ NAMA=amir
$ test $NAMA = amir
$ echo $?
$ test $NAMA = boris
$ echo $?

2. Aplikasi test dengan konstruksi if


$ vi prog06.sh
#!/bin/sh
# prog06.sh
echo –n “NAMA = “
read NAMA
if test “$NAMA” = amir
then
echo “Selamat Datang $NAMA”
else
echo “Anda bukan amir, sorry!”
fi

3. Jalankan program prog06.sh dengan memasukkan NAMA = amir dan NAMA = <CR> perhatikan
hasil tampilannya
$ . prog06.sh [NAMA = amir]
$ . prog06.sh [NAMA = <CR>] (Terdapat pesan error)
4. Modifikasi prog06.sh dengan menggunakan notasi untuk test
$ vi prog06.sh
#!/bin/sh
# prog06.sh
54
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
echo –n “NAMA = “
read NAMA
if [ “$NAMA” = amir ]
then
echo “Selamat Datang $NAMA”
else
echo “Anda bukan amir, sorry!”
fi

5. Jalankan program prog06.sh dengan memasukkan NAMA = amir


$ . prog06.sh [NAMA = amir]

Percobaan 9 : Notasi && dan ||


1. Bila file prog01.sh ada (TRUE), maka jalankan program berikutnya. File prog01.sh ada, karena
itu exit status adalah TRUE, hasil operasi AND masih tergantung pada hasil eksekusi instruksi ke 2, dan
dengan demikian instruksi echo akan dijalankan.
$ [ -f prog01.sh ] && echo “Prog01.sh ada”

2. File prog99.sh tidak ada, karena itu exit status adalah FALSE dan instruksi echo tidak dijalankan
$ [ -f prog99.sh ] && echo “Prog99.sh ada”

3. Bila prog01.sh ada maka jalankan shell script tersebut


$ [ -f prog01.sh ] && . prog01.sh

4. Bila prog01.sh ada maka jalankan program berikutnya. File prog01.sh memang ada, karena itu exit
status adalah TRUE, dan karena sudah TRUE maka instruksi echo tidak lagi dijalankan
$ [ -f prog01.sh ] || echo “Dieksekusi tidak ?”

5. File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil masih tergantung atas exit status
instruksi ke dua, karena itu instruksi echo dijalankan
$ [ -f prog99.sh ] || echo “Dieksekusi tidak ?”

6. File prog99.sh tidak ada, maka tampilkan pesan error


$ [ -f prog99.sh ] || echo “Sorry, prog99.sh tidak ada”

Percobaan 10 : Operator bilangan bulat untuk test


1. Menggunakan operator dengan notasi test
$ i=5
$ test “$i” –eq 5
55
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ echo $?

2. Menggunakan operator dengan notasi [ ] (penganti notasi test)


$ [ “$i” –eq 5 ]
$ echo $?

Percobaan 11 : Operator Logical dan konstruksi elif


1. Buatlah file prog07.sh
$ vi prog07.sh
#!/bin/sh
# prog07.sh
echo –n “INCOME = “
read INCOME
if [ $INCOME –ge 0 –a $INCOME –le 10000 ]
then
BIAYA=10
elif [ $INCOME –gt 10000 –a $INCOME –le 25000 ]
then
BIAYA=25
else
BIAYA=35
fi
echo “Biaya = $BIAYA”

2. Jalankan file prog07.sh dan masukkan untuk INCOME=5000, 20000, 28000


$ . prog07.sh [INCOME=5000]
$ . prog07.sh [INCOME=20000]
$ . prog07.sh [INCOME=28000]

Percobaan 12 : Hitungan aritmetika


1. Menggunakan utilitas expr
$ expr 5 + 1
$ A=5
$ expr $A + 2
$ expr $A – 4
$ expr $A * 2 (Ada Pesan Error)
$ expr $A \* 2
$ expr $A / 6 +10
$ expr 17 % 5

2. Substitusi isi variable dengan hasil utilitas expr


$ A=5
$ B=`expr $A + 1`
$ echo $B

Percobaan 13 : Instruksi exit


1. Buat shell script prog08.sh
$ vi prog08.sh

56
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
#!/bin/sh
if [ -f prog01.sh ]
then
exit 3
else
exit –1
fi

2. Jalankan script prog08.sh dan periksa status exit


$ . prog08.sh
$ echo $?

Percobaan 14 : Konstruksi case - esac


1. Buatlah file prog09.sh dengan editor vi
$ vi prog09.sh
#!/bin/sh
# Prog: prog09.sh
echo “1. Siapa yang aktif”
echo “2. Tanggal hari ini”
echo “3. Kalender bulan ini”
echo –n “ Pilihan : “
read PILIH
case $PILIH in
1)
echo “Yang aktif saat ini”
who
;;
2)
echo “Tanggal hari ini”
date
;;
3)
echo “Kalender bulan ini”
cal
;;
*)
echo “Salah pilih !!”
;;
esac

2. Jalankan program prog09.sh, cobalah beberapa kali dengan inputan yang berbeda
$ . prog09.sh

3. Buatlah file prog10.sh yang merupakan bentuk lain dari case


$ vi prog10.sh
#!/bin/sh
# Prog: prog10.sh

57
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
echo –n “Jawab (Y/T) : “
read JWB
case $JWB in
y | Y | ya |Ya |YA ) JWB=y ;;
t | T | tidak | Tidak | TIDAK ) JWB=t ;;
esac

4. Jalankan program prog10.sh, cobalah beberapa kali dengan inputan yang berbeda
$ . prog10.sh

5. Modifikasi file prog10.sh yang merupakan bentuk lain dari case


$ vi prog10.sh
#!/bin/sh
# Prog: prog10.sh
echo –n “Jawab (Y/T) : \c“
read JWB
case $JWB in
[yY] | [yY][aA] ) JWB=y ;;
[tT] | [tT]idak ) JWB=t ;;
*) JWB=? ;;
esac

6. Jalankan program prog10.sh, cobalah beberapa kali dengan inputan yang berbeda
$ . prog10.sh

Percobaan 15 : Konstruksi for-do-done


1. Buatlah file prog11.sh
$ vi prog11.sh
#!/bin/sh
# Prog: prog11.sh
for NAMA in bambang harry kadir amir
do
echo “Nama adalah : $NAMA”
done

2. Jalankan program prog11.sh


$ . prog11.sh

3. Buatlah file prog12.sh yang berisi konstruksi for dan wildcard, program ini akan menampilkan nama
file yang berada di current direktori
$ vi prog12.sh
#!/bin/sh
# Prog: prog12.sh
for F in *
do
echo $F
done

4. Jalankan program prog12.sh


$ . prog12.sh

58
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
5. Modifikasi file prog12.sh, program ini akan menampilkan long list dari file yang mempunyai ekstensi
lst
$ vi prog12.sh
#!/bin/sh
# Prog: prog12.sh
for F in *.lst
do
ls –l $F
done

6. Jalankan program prog12.sh


$ . prog12.sh

Percobaan 16 : Konstruksi while-do-done


1. Buatlah file prog13.sh
$ vi prog13.sh
#!/bin/sh
# Prog: prog13.sh
PILIH=1
while [ $PILIH –ne 4 ]
do
echo “1. Siapa yang aktif”
echo “2. Tanggal hari ini”
echo “3. Kalender bulan ini”
echo “4. Keluar”
echo “ Pilihan : \c”
read PILIH
if [ $PILIH –eq 4 ]
then
break
fi
clear
done
echo “Program berlanjut di sini setelah break”

2. Jalankan program prog13.sh


$ . prog13.sh

Percobaan 17 : Instruksi dummy


59
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Modifikasi file prog13.sh
$ vi prog13.sh
#!/bin/sh
# Prog: prog13.sh
PILIH=1
while :
do
echo “1. Siapa yang aktif”
echo “2. Tanggal hari ini”
echo “3. Kalender bulan ini”
echo “4. Keluar”
echo “ Pilihan : \c”
read PILIH
if [ $PILIH –eq 4 ]
then
break
fi
clear
done
echo “Program berlanjut di sini setelah break”

2. Jalankan program prog13.sh


$ . prog13.sh

3. Buatlah file prog14.sh yang berisi instruksi dummy untuk konstruksi if


$ vi prog14.sh
#!/bin/sh
# Prog: prog14.sh
echo –n “Masukkan nilai : “
read A
if [ $A –gt 100 ]
then
:
else
echo “OK !”
fi

4. Jalankan program prog14.sh beberapa kali dengan input yang berbeda


$ . prog14.sh

Percobaan 18 : Fungsi
60
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Buatlah file fungsi.sh
$ vi fungsi.sh
#!/bin/sh
# Prog: fungsi.sh
F1( ) {
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
F1
F1
echo $?

2. Jalankan program fungsi.sh


$ . fungsi.sh

3. Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh


$ vi fungsi.sh
#!/bin/sh
# Prog: fungsi.sh
F1( )
{
Honor=10000
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
F1
F1
echo “Nilai balik adalah $?”
echo “Honor = $Honor”

4. Jalankan program fungsi.sh


$ . fungsi.sh

5. Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh


$ vi fungsi.sh
#!/bin/sh
# Prog: fungsi.sh
F1( )
{
local Honor=10000
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
F1
F1
echo “Nilai balik adalah $?”
echo “Honor = $Honor”

6. Jalankan program fungsi.sh


$ . fungsi.sh
LATIHAN:
61
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Buatlah program salin.sh yang menyalin file (copy ) sebagai berikut :
salin.sh file-asal file-tujuan
Dengan ketentuan :
- Bila file asal tidak ada, berikan pesan, salin gagal.
- Bila file tujuan ada dan file tersebut adalah directory, beri pesan bahwa file tidak bisa disalin ke
direktori
- Bila file tujuan ada dan file biasa, beri pesan apakan file tersebut akan dihapus, bila dijawab dengan
“Y”, maka copy file tersebut
- Bila file tujuan belum ada, lakukan copy
Untuk mengambil nama file, gunakan parameter $1 dan $2. Bila jumlah parameter tidak sama ($#)
dengan 2, maka beri pesan exit = -1
#!/bin/sh
# file: salin.sh
# Usage: salin.sh fasal ftujuan
if [ $# -ne 2]
then
echo “Error, usage: salin.sh file-asal file-tujuan”
exit –1
fi
fasal=$1
ftujuan=$2
echo “salin.sh $fasal $ftujuan”
……
……

2. Buat program yang memeriksa nama direktori, jika parameter tersebut adalah direktori, maka jalankan
instruksi ls –ld pada direktori tersebut. Namakan program tersebut checkdir.sh. Gunakan notasi [ -d
NamaDirektori ] dan pilih logic al && atau || pada level shell.
#!/bin/sh
# file: checkdir.sh
# Usage: checkdir.sh DirectoryName
#
if [ $# -ne 1]
then
echo “Error, usage: checkdir.sh DirectoryName”
exit 1
fi
[ … ] && …

3. Dengan shell script pph.sh, hitung PPH per tahun dengan ketentuan sebagai berikut:

62
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
- 10 juta pertama PPH 15%
- 25 juta berikutnya (sisa) PPH 25%
- Bila masih ada sisa, maka sisa tersebut PPH 35%
Contoh :
Gaji 8 juta
PPH = 15% * 8 juta
Gaji 12 juta
PPH =15% * 10 juta + 25% * (12-10) juta
Gaji 60 juta
PPH = 15% * 10 juta + 25% * 25 juta + 25% * (60-10-25) juta
Debugging : untuk melakukan tracing (debug) gunakan opsi –x pada eksekusi shell.
$ sh –x pph.sh
+ echo –n ‘Berikan gaji dalam ribuan rupiah : ‘
Berikan gaji dalam ribuan rupiah : + read gaji
20000
+ pkp=10000
+ ‘[‘ 20000 –le 10000 ‘]’
++ expr 20000 – 10000
+ gaji=10000
+ pph=1500
+ pkp=25000
+ ‘[‘ 10000 –le 25000 ‘]’
+ pkp=10000
++ expr 1500 + 10000 ‘*’ 25 / 100
+ pph=4000
+ echo ‘Pajak Penghasilan = 4000’
Pajak Penghasilan = 4000

4. Buatlah program myprog.sh yang memproses parameter $1, nilai parameter harus berupa string :
start
stop
status
restart
reload

Bila buka dari string tersebut, maka berikan pesan error. Sempurnakan program di bawah ini untuk
keperluan tersebut
#!/bin/sh
# See how we were called
case “$1” in
start)
echo “Ini adalah start”
;;
stop)
echo “Ini adalah stop”
;;
*)
echo $”Usage:$0 {start|stop|restart|reload|status}”
;;

63
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
esac
return

5. Buat sebuah fungsi pada script confirm.sh yang memberikan konfirmasi jawaban Yes, No atau
Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan Continue = 2. Modifikasi kerangka
program berikut untuk memenuhi permintaan tersebut.
#!/bin/sh
# Confirm whether we really want to run this service
confirm() {
local YES=”Y”
local NO=”N”
local CONT=”C”
while :
do
echo –n “(Y)es/(N)o/(C)ontinue? {Y] “
read answer
answer=`echo “$answer” | tr ‘[a-z]’ ‘[A-Z]’`
if [ “$answer” = “” –0 “$answer” = $YES ]
then
return 0
elif ….
then
return 2
elif ….
then
return 1
fi
done
}
Test fungsi diatas dengan program berikut :
$ vi testp.sh
. confirm.sh
confirm
if [ $? –eq 0 ]
then
echo “Jawaban YES OK”
elif [ $? =eq 1 ]
then
echo “Jawaban NO”
else
echo “Jawaban CONTINUE”
fi

Perhatikan baris pertama, adalah loading dari fungsi confirm yang terdapat di script confirm.sh. Setelah
eksekusi script tersebut, maka fungsi confirm dapat digunakan.

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa semua hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

Modul 7
64
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Unix System Call dan Manajemen Memory

TUJUAN PRAKTIKUM:
Setelah mempelajari materi ini, peserta praktikum diharapkan mampu:
✓ Menggunakan system call fork, wait dan execl pada Linux.
✓ Menggunakan perintah-perintah untuk manajemen memory.

DASAR TEORI:
1. UNIX SYSTEM CALL
Pada praktikum ini akan dilakukan percobaan menggunakan system call yang berhubungan dengan
proses pada system operasi UNIX yang biasa disebut UNIX System Call, yaitu system call fork, execl dan
wait. Pada percobaan yang dilakukan akan dibuat program yang didalamnya terdapat fungsi system call.
Untuk menjalankannya pada Linux gunakan g++.

System Call Fork


System call fork adalah suatu system call yang membuat suatu proses baru pada system operasi
UNIX. Pada percobaan ini menggunakan mesin Linux dan beberapa program yang berisi system call
fork(). Bila suatu program berisi sebuah fungsi fork(), eksekusi dari program menghasilkan eksekusi
dua proses. Satu proses dibuat untuk memulai eksekusi program. Bila system call fork() dieksekusi,
proses lain dibuat. Proses asal disebut proses parend dan proses kedua disebut proses child. Proses child
merupakan duplikat dari proses parent. Kedua proses melanjutkan eksekusi dari titik dimana system call
fork() menghasilkan eksekusi pada program utama. Karena UNIX adalah system operasi time sharing,
dua proses tersebut dapat mengeksekusi secara konkuren. Nilai yang dihasilkan oleh fork() disimpan
dalam variable bertipe pid_t, yang berupa nilai integer. Karena nilai dari variable ini tidak digunakan, maka
hasil fork() dapat diabaikan.
• Untuk kill proses gunakan Ctrl+C.
• Untuk dokumentasi fork() dapat dilihat dengan ketikkan man 2 fork.
• Untuk melihat id dari proses, gunakan system call getpid()
• Untuk melihat dokumentasi dari getpid(), ketikkan man 2 getpid

Perbedaan antara proses parent dan proses child adalah


• Mempunyai pid yang berbeda

65
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
• Pada proses parent , fork() menghasilkan pid dari proses child jika sebuah proses child dibuat.
• Pada proses child, fork() selalu menghasilkan 0
• Membedakan copy dari semua data, termasuk variable dengan current value dan stack
• Membedakan program counter (PC) yang menunjukkan eksekusi berikutnya meskipun awalnya keduanya
mempunyai nilai yang sama teta pi setelah itu berbeda.
• Setelah fork, kedua proses tersebut tidak menggunakan variable bersama.

System call fork menghasilkan :


• Pid proses child yang baru ke proses parent, hal ini sama dengan memberitahukan proses parent nama dari
child-nya
• 0 : menunjukkan proses child
• -1 : 1 jika terjadi error, fork() gagal karena proses baru tidak dapat dibuat.

System Call Wait


System call wait menyebabkan proses menunggu sinyal (menunggu sampai sembarang tipe sinyal
diterima dari sembarang proses). Biasanya digunakan oleh proses parent untuk menunggu sinyal dari system
operasi ke parent bila child diterminasi. System call wait menghasilkan pid dari proses yang mengirimi
sinyal. Untuk melihat dokumentasi wait gunakan perintah man 2 wait.

System Call Execl


Misalnya kita ingin proses baru mengerjakan sesuatu yang berbeda dari proses parent, sebutlah
menjalankan program yang berbeda. Sistem call execl meletakkan program executable baru ke memory dan
mengasosiasikannya dengan proses saat itu. Dengan kata lain, mengubah segala sesuatunya sehingga
program mulai mengeksekusi dari file yang berbeda.

2. MANAJEMEN MEMORY
Linux mengimplementasikan sistem virtual memory demand-paged. Proses mempunyai besar
memory virtual yang besar (4 gigabyte). Pada virtual memory dilakukan transfer page antara disk dan
memory fisik. Jika tidak terdapat cukup memory fisik, kernel melakukan swapping beberapa page lama ke
disk. Disk drive adalah perangkat mekanik yang membaca dan menulis ke disk yang lebih lambat
dibandingkan mengakses memory fisik. Jika memory total page lebih dari memory fisik yang tersedia, kernel
lebih banyak melakukan swapping dibandingkan eksekusi kode program, sehingga terjadi thrashing dan
mengurangi utilitas.

66
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jika memory fisik ekstra tidak digunakan, kernel meletakkan kode program sebagai disk buffer
cache. Disk buffer menyimpan data disk yang diakses di memory; jika data yang sama dibutuhkan lagi dapat
dengan cepat diambil dari cache. Pertama kali sistem melakukan booting, ROM BIOS membentuk memory
test seperti terlih at berikut :
ROM BIOS (C) 1990
008192 KB OK WAIT......

Kemudian informasi penting ditampilkan selama proses booting pada linux seperti terlihat berikut :
Memory: 7100k/8192k available (464k
kernel code, 384k reserved, 244k data) ...
Adding Swap: 19464k swap-space

Informasi diatas menampilkan jumlah RAM tersedia setelah kernel di-load ke memory (dalam hal ini
7100K dari 8192K). Jika ingin melihat pesan saat booting kernel yang terlalu cepat dibaca dapat dilihat
kembali dengan perintah dmesg.
Setiap Linux dijalankan, perintah free digunakan untuk menampilkan total memory yang tersedia. Atau
menggunakan cat /proc/meminfo. Memory fisik dan ruang swap ditampilkan disini. Contoh output pada
sistem :
total used free shared buffers
Mem: 7096 5216 1880 2328 2800
Swap: 19464 0 19464

Informasi ditampilkan dalam kilobyte (1024 byte). Memory ”total” adalah jumlah tersedia setelah
load kernel. Memory digunakan untuk proses atau disk bufferring sebagai “ used”. Memory yang sedang
tidak digunakan ditampilkan pada kolom “free”. Memory total sama dengan jumlah kolom ”used” dan
”free”. Memory diindikasikan “shared” yaitu berapa banyak memory yang digunakan lebih dari satu
proses. Program seperti shell mempunyai lebih dari satu proses yang berjalan. Kode executable read-only
dan dapat disharing oleh semua proses yang berjalan pada shell. Kolom “buffers” menampilkan berapa
banyak memory digunakan untuk disk buffering.

Perintah free juga menunjukkan dengan jelas bagaimana swap space dilakukan dan berapa banyak
swapping yang terjadi. Percobaan berikut untuk mengetahui manajemen memory :

1. Pada saat bootup, dengan satu user log in, dengan perintah free sistem melaporkan berikut :
Total used free shared buffers cached
Mem: 247184 145772 101412 0 10872 57564
-/+ buffers/cache: 77336 169848

67
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Swap: 522072 0 522072

Terdapat free memory (4.4MB) dan sedikit disk buffer (1.1MB).


2. Situasi berubah setelah menjalankan perintah yang membaca data dari disk (command ls –lR /.)
Total used free shared buffers cached
Mem: 247184 230604 16580 0 45260 59748
-/+ buffers/cache: 125596 121588
Swap: 522072 308 522072

Disk buffer bertambah menjadi 2 MB. Hal ini berakibat pula pada kolom ”used” dan memory ”free”
juga berkurang. Perintah top dan ps -u juga sangat berguna untuk menunjukkan bagaimana
penggunaan memory berubah secara dinamis dan bagaimana proses individu menggunakan memory.
Contoh tampilannya :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
student 4581 0.0 0.3 4316 856 pts/0 S 10:25 0:00 bash
student 4699 0.0 0.2 2604 656 pts/0 R 10.39 0:00 ps -u

68
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !

Percobaan 1 : Melihat proses parent dan proses child


1. Dengan menggunakan editor vi, buatlah file fork1.cpp dan ketikkan program berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>

/* getpid() adalah system call yg dideklarasikan pada unistd.h.


Menghasilkan suatu nilai dengan type pid_t.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/

int main(void) {
pid_t mypid;
uid_t myuid;
for (int i = 0; i < 3; i++) {
mypid = getpid();
cout << "I am process " << mypid << endl;
cout << "My parent is process " << getppid() << endl;
cout << "The owner of this process has uid " << getuid()
<< endl;
/* sleep adalah system call atau fungsi library
yang menghentikan proses ini dalam detik */
sleep(1);
}
return 0;
}

2. Gunakan g++ compiler untuk menjalankan program diatas


$ g++ -o fork1 fork1.cpp
$ ./fork1

3. Amati output yang dihasilkan

Percobaan 2 : Membuat dua proses terus menerus dengan sebuah system call fork()

1. Dengan menggunakan editor vi, buatlah file fork2.cpp dan ketikkan program berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>

/* getpid() dan fork() adalah system call yg dideklarasikan


pada unistd.h.
Menghasilkan suatu nilai dengan type pid_t.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
int main(void) {

69
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
pid_t childpid;
int x = 5;
childpid = fork();
while (1) {
cout << "This is process " << getpid() << endl;
cout << "x is " << x << endl;
sleep(1);
x++;
}
return 0;
}

2. Gunakan g++ compiler untuk menjala nkan program diatas. Pada saat dijalankan, program tidak akan
pernah berhenti. Untuk menghentikan program tekan Ctrl+C.
$ g++ -o fork2 fork2.cpp
$ ./fork2

3. Amati output yang dihasilkan

Percobaan 3 : Membuat dua proses sebanyak lima kali


1. Dengan menggunakan editor vi, buatlah file fork3.cpp dan ketikkan program berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
/* getpid() dan fork() adalah system call yg dideklarasikan
pada unistd.h.
Menghasilkan suatu nilai dengan type pid_t.
pid_t adalah type khusus untuk process id yg ekuivalen dg int */

int main(void) {
pid_t childpid;
childpid = fork();
for (int i = 0; i < 5; i++) {
cout << "This is process " << getpid() << endl;
sleep(2);
}
return 0;
}

2. Gunakan g++ compiler untuk menjalankan program diatas


$ g++ -o fork3 fork3.cpp
$ ./fork3

3. Amati output yang dihasilkan

70
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Percobaan 4 : Proses parent menunggu sinyal dari proses child dengan system call wait
1. Dengan menggunakan editor vi, buatlah file fork4.cpp dan ketikkan program berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
/* pid_t fork() dideklarasikan pada unistd.h.
pid_t adalah type khusus untuk process id yg ekuivalen dg int
*/
int main(void) {
pid_t child_pid;
int status;
pid_t wait_result;
child_pid = fork();

if (child_pid == 0) {
/* kode ini hanya dieksekusi proses child */
cout << "I am a child and my pid = " << getpid() << endl;
cout << "My parent is " << getppid() << endl;
/* keluar if akan menghentikan hanya proses child */
}
else if (child_pid > 0) {
/* kode ini hanya mengeksekusi proses parent */
cout << "I am the parent and my pid = " << getpid()
<< endl;
cout << "My child has pid = " << child_pid << endl;
}
else {
cout << "The fork system call failed to create a new
process" << endl;
exit(1);
}

/* kode ini dieksekusi baik oleh proses parent dan child */


cout << "I am a happy, healthy process and my pid = "
<< getpid() << endl;

if (child_pid == 0) {
/* kode ini hanya dieksekusi oleh proses child */
cout << "I am a child and I am quitting work now!"
<< endl;
}
else {
/* kode ini hanya dieksekusi oleh proses parent */
cout << "I am a parent and I am going to wait for my
child" << endl;
do {
/* parent menunggu sinyal SIGCHLD mengirim tanda
bahwa proses child diterminasi */
wait_result = wait(&status);
} while (wait_result != child_pid);
cout << "I am a parent and I am quitting." << endl;
}
return 0;
}
2. Gunakan g++ compiler untuk menjalankan program diatas

71
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ g++ -o fork4 fork4.cpp
$ ./fork4

3. Amati output yang dihasilkan

Percobaan 5 : System call fork/exec dan wait mengeksekusi program bernama ls,
menggunakan file executable /bin/ls dengan satu parameter –l yang ekuivalen dengan ls –l

1. Dengan menggunakan editor vi, buatlah file fork5.cpp dan ketikkan program berikut :
#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

/* pid_t fork() dideklarasikan pada unistd.h.


pid_t adalah type khusus untuk process id yg ekuivalen dg int */

int main(void) {
pid_t child_pid;
int status;
pid_t wait_result;
child_pid = fork();
if (child_pid == 0) {
/* kode ini hanya dieksekusi proses child */
cout << "I am a child and my pid = " << getpid() << endl;
execl("/bin/ls", "ls", "-l", "/home", NULL);

/* jika execl berhasil kode ini tidak pernah digunakan */


cout << "Could not execl file /bin/ls" << endl;
exit(1);
/* exit menghentikan hanya proses child */
}
else if (child_pid > 0) {
/* kode ini hanya mengeksekusi proses parent */
cout << "I am the parent and my pid = " << getpid()
<< endl;
cout << "My child has pid = " << child_pid << endl;
}
else {
cout << "The fork system call failed to create a new
process" << endl;
exit(1);
}

/* kode ini hanya dieksekusi oleh proses parent karena


child mengeksekusi dari “/bin/ls” atau keluar */
cout << "I am a happy, healthy process and my pid = "
<< getpid() << endl;

if (child_pid == 0) {
/* kode ini tidak pernah dieksekusi */
printf("This code will never be executed!\n");
}
else {

72
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
/* kode ini hanya dieksekusi oleh proses parent */
cout << "I am a parent and I am going to wait for my
child" << endl;

do {
/* parent menunggu sinyal SIGCHLD mengirim tanda
bila proses child diterminasi */
wait_result = wait(&status);
} while (wait_result != child_pid);
cout << "I am a parent and I am quitting." << endl;
}
return 0;
}

2. Gunakan g++ compiler untuk menjalankan program diatas


$ g++ -o fork5 fork5.cpp
$ ./fork5

3. Amati output yang dihasilkan

Percobaan 6 : System call fork/exec dan wait mengeksekusi program lain


1. Dengan menggunakan editor vi, buatlah file fork6.cpp dan ketikkan program berikut :

#include <iostream>
using namespace std;
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

/* pid_t fork() dideklarasikan pada unistd.h.


pid_t adalah type khusus untuk process id yg ekuivalen dg int */

int main(void) {
pid_t child_pid;
int status;
pid_t wait_result;

child_pid = fork();
if (child_pid == 0) {
/* kode ini hanya dieksekusi proses child */
cout << "I am a child and my pid = " << getpid() << endl;
execl("fork3", "goose", NULL);
/* jika execl berhasil kode ini tidak pernah digunakan */
cout << "Could not execl file fork3" << endl;
exit(1);
/* exit menghentikan hanya proses child */
}
else if (child_pid > 0) {
/* kode ini hanya mengeksekusi proses parent */
cout << "I am the parent and my pid = " << getpid()
<< endl;
cout << "My child has pid = " << child_pid << endl;
}

73
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
else {
cout << "The fork system call failed to create a new
process" << endl;
exit(1);
}
/* kode ini hanya dieksekusi oleh proses parent karena
child mengeksekusi dari “fork3” atau keluar */

cout << "I am a happy, healthy process and my pid = "


<< getpid() << endl;

if (child_pid == 0) {
/* kode ini tidak pernah dieksekusi */
printf("This code will never be executed!\n");
}
else {
/* kode ini hanya dieksekusi oleh proses parent */
cout << "I am a parent and I am going to wait for my
child" << endl;

do {
/* parent menunggu sinyal SIGCHLD mengirim tanda
bila proses child diterminasi */
wait_result = wait(&status);
} while (wait_result != child_pid);
cout << "I am a parent and I am quitting." << endl;
}
return 0;
}

2. Gunakan g++ compiler untuk menjalankan program diatas


$ g++ -o fork6 fork6.cpp
$ ./fork6

3. Amati output yang dihasilkan

Percobaan 7 : Melihat Manajemen Memory


1. Perhatikan dengan perintah dmesg jumlah memory tersedia dan proses swapping
$ dmesg | more
2. Dengan perintah free perhatikan jumlah memory ”free”, ”used”, “share” dan “buffer” .
$ free
3. Dengan perintah dibawah ini apakah hasilnya sama dengan no 2 ?
$ cat /proc/meminfo
4. Gunakan perintah dibawah ini
$ ls –lR /.
5. Perhatikan perubahan manajemen memory
$ free
6. Jalankan sebuah program, misalnya open Office. Perhatikan perubahan manajemen memory
$ free

74
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
7. Dengan perintah ps bagaimana penggunaan memory untuk se tiap proses diatas ?
$ ps –uax

LATIHAN:
1. Ubahlah program fork5.cpp pada percobaan 5 untuk mengeksekusi perintah yang ekuivalen dengan
a. ls –al /etc.
b. cat fork2
c. ./fork2

2. Informasi apa saja mengenai manajemen memory yang ditampilkan pada perintah dmesg pada
percobaan Anda ?
3. Bagaimana informasi yang ditampilkan dengan perintah free pada percobaan Anda ?
4. Apa isi file /proc/meminfo pada percobaan yang Anda lakukan ?
5. Berapa besar memory yang digunakan setelah percobaan 7 dengan perintah ps – uax ?
6. Lakukan hal yang sama dengan percobaan 7 untuk melihat perubahan memory setelah dilakukan
beberapa proses pada shell. Tentukan perintah yang dilakukan misalnya membuka browser dan
perhatikan hal-hal berikut :
a. Informasi apa saja yang ditampilkan dengan perintah free ?
b. Informasi apa saja yang disimpan file /proc/meminfo ?
c. Berapa besar kapasitas memory total ?
d. Berapa kapasitas memory yang sudah terpakai ?
e. Berapa kapasitas memory yang belum terpakai ?
f. Berapa kapasitas memory yang digunakan sharing beberapa proses ?
g. Berapa kapasitas buffer cache ?

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

75
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 8
Sistem File

TUJUAN PRAKTIKUM:
Setelah mempelajari materi ini, peserta praktikum diharapkan mampu:
✓ Memahami atribut file dan ijin akses.
✓ Memahami perintah untuk mengubah ijin akses suatu file.
✓ Menggunakan perintah-perintah untuk mengubah ijin akses..

DASAR TEORI:
1. ATRIBUT 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

tipe Ijin akses Jml link Pemilik Group Jml karakter Waktu Nama file

76
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
2. 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)

Pemilik File/Direktori dapat mengubah ijin akses sebagai berikut :


-rwxrwxrwx 1 student test 1639 Oct 31 20:19 file

user group other

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
Format lain dari chmod adalah menggunakan bilangan octal sebagai berikut
r w x
4 2 1 = 7

77
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
3. USER MASK
Untuk menentukan ijin akses awal pada saat file atau direktori dibuat digunakan perintah mask.
Untuk menghitung nilai default melalui umask pada file, maka dapat dilakukan kalkulasi sebagai berikut :
Kreasi file (biasa) 6 6 6
Nilai umask 022
------- -
644

Kreasi direktori 777


Nilai umask 022
------- -
755

78
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !

Percobaan 1 : Ijin Akses


1. Melihat identitas diri melalui etc/passwd atau etc/group, informasi apa yang ditampilkan ?
$ id
$ grep <user> /etc/passwd
$ grep [Nomor group id] /etc/group

2. Memeriksa direktori home


$ ls -ld /home/<user>

3. Mengubah Ijin akses (chmod). Perhatikan ijin akses setiap perubahan !


$ touch f1 f2 f3
$ ls -l
$ chmod u+x f1
$ ls –l f1
$ chmod g=w f1
$ ls –l f1
$ chmod o-r f1
$ ls –l f1
$ chmod a=x f2
$ ls –l f2
$ chmod u+x,g-r,o=w f3
$ ls –l f3
$ chmod 751 f1
$ chmod 624 f2
$ chmod 430 f3
$ ls –l f1 f2 f3

4. Mengganti kepemilikan digunakan perintah chown. Masuk ke root untuk mengganti kepemilikan
tersebut.
$ su root
$ echo Hallo > f1
$ ls –l f1
$ chown <user-baru> f1 contoh : chown student1 f1
$ ls –l f1

5. Ubahlah ijin akses home directory <user> (student) pada root sehingga <userbaru> (student1) pada
satu group dapat mengakses home direktory <user>. Hal ini dimaksudkan agar file f1 yang sudah
diubah kepemilikannya dapat diakses <user-baru>. Perubahan ijin akses home directory <user>
hanya dapat dilakukan pada root.
$ chmod g+rwx /home/<user> contoh : chmod g+rwx /home/student
$ ls –l /home
$ exit

6. Sekarang cobalah untuk subtitute user ke <user-baru> (student1). Cobalah untuk mengakses file f1

79
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ su <user-baru>
$ ls –l f1
$ cat f1
$ exit

7. Mengubah group dengan perintah chgrp


$ $ grep root /etc/group
$ grep other /etc/group
$ su
$ chgrp root f1
$ ls –l f1
$ chgrp <group-baru> f3
$ ls –l f3
$ exit

Percobaan 2 : User Mask


1. Menentukan ijin akses awal pada saat file atau direktori dibuat
$ touch myfile
$ ls -l myfile

2. Melihat nilai umask


$ umask
3. Modifikasi nilai umask
$ umask 027
$ umask
$ touch file_baru
$ mkdir mydir
$ ls -l
$ umask 077
$ touch xfiles
$ mkdir xdir
$ ls -l

LATIHAN:
1. Lakukan tiga cara berbeda untuk setting ijin akses ke file atau direktori menjadi r-- r--r--. Buatlah
sebuah file dan lihat apakah yang anda lakukan benar.
2. Buatlah suatu kelompok. Copy-kan /bin/sh ke home directory. Ketik "chmod +s sh". Cek ijin akses
sh pada daftar direktori. Sekarang tanyakan ke teman satu kelompok anda untuk mengubah ke home
directory anda dan menjalankan program ./sh dan menjalankan id command. Apa yang terjadi. Untuk
keluar dari shell tekan exit.
3. Hapus sh dari home directory (atau setidaknya kerjakan perintah chmod –s sh)
4. Modifikasi ijin akses ke home directory anda sehingga sangat privat. Cek apakah teman anda tidak dapat
mengakses directory anda. Kemudian kembalikan ijin akses ke semula.

80
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
5. Ketikkan umask 000 dan kemudian buatlah file yang bernama world.txt yang berisi beberapa kata
"hello world". Lihat ijin akses pada file. Apa yang terjadi? Sekarang ketikkan umask 022 dan
buatlah file bernama world2.txt. Apakah perintah tersebut lebih berguna ?
6. Buatlah file yang bernama "hello.txt" pada home directory menggunakan perintah cat -u >
hello.txt. Tanyakan ke teman Anda untuk masuk ke home directory Anda dan menjalankan tail -f
hello.txt. Sekarang ketikkan beberapa baris dalam hello.txt. Apa yang terjadi pada layer teman
Anda ?

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

81
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 9
Manajemen Perangkat Keras

TUJUAN PRAKTIKUM:
Setelah mempelajari materi ini, peserta diharapkan mampu:
✓ Mengetahui bagaimana melihat perangkat keras yang terpasang pada sistem komputer.
✓ Menggunakan perintah mount dan umount pada sistem file
✓ Menggunakan perintah-perintah untuk manajemen perangkat keras.

DASAR TEORI:
1. FILE PERANGKAT KERAS
/dev berisi file device (perangkat) yang merupakan aspek penting pada sistem file Linux. /dev/cdrom
dan /dev/fd0 merupakan drive CD-ROM dan floppy pada komputer Anda. Kita dapat melkaukan akses read
dan write pada perangkat. Sebagai contoh /dev/dsp merupakan perangkat speaker. Sembarang data yang
ditulis ke file ini akan dialihkan ke speaker. ’cat /boot/vmlinuz > /dev/dsp’ menyebabkan kita dapat
mendengarkan suara dari speaker. Untuk mencetak file dapat dikirim ke perangkat /dev/lp0. Mengirim data
ke dan membaca data dari /dev/ttyS0 akan menyebabkan komunikasi dengan perangkat modem.
Mayoritas device berupa block device atau character device. Block device adalah device yang
menyimpan atau membawa data, character device adalah device yang mengirim atau transfer data. Sebagai
contoh, diskette drive, hard drive dan CDROM drive adalah block device, seda ngkaan serial port, mouse dan
paralel printer adalah character device.
Beberapa file perangkat yang umum digunakan yang perlu diingat adalah :

/dev/ttyS0 (First communication port, COM1) : First serial port (mouse, modem)
/dev/psaux (PS/2) : PS/2 mouse connection (mouse, keyboard)
/dev/lp0 (First printer port, LPT1) : First parallel prot (printer, scanner
dsb)
/dev/dsp (First audio device) : sound card, digitized voice dan PCM
/dev/usb (USB Device) : node USB device
/dev/sda (C:/SCSI device) : First SCSI de vice (HDD, Memory stick, external
mass
storage device seperti CD-ROM pada laptop)
/dev/scd (D:\, SCSI CD-ROM device) : First SCSI CD-ROM device
/dev/js0 (Standard gameport joystick) : First joystick device

Device didefinisikan sebagai tipe seperti block atau character dan nomor mayor dan minor. Nomor
mayor digunakan untuk melakukan katagori device dan nomor minor untuk mengidentifikasi tipe device
khusus. Sebagai contoh, semua IDE device dihubungkan dengan primary controller mempunyai nomor
82
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
mayor 3. Perangkat master dan slave, didefinisikan lebih jauh dengan nomor minor. Terdapat dua nomor
sebelum tanggal yang tercetak. Jika kita lakukan perintah ls –l /hd* maka akan terlihat nomor mayor untuk
perangkat hda dan hdb adalah 3. Nomor minor berubah untuk setiap partisi tertentu. Kita dapat selalu
membuat perangkat menggunakan skrip MAKEDEV dimana akan diletakkan pada directory /dev.
# MAKEDEV *

2. PERINTAH MOUNT dan UMOUNT


Sebelum menggunakan sistem file, harus di-mount terlebih dahulu. Kemudian sistem operasi dapat
mengerjakan penyimpanan file. Karena semua file UNIX berada pada satu pohon direktori, operasi mount
akan terlihat seperti isi dari sub direktory yang ada pada sistem file yang sudah dilakukan mounting. Contoh
perintah mount
$ mount /dev/hda2 /home
$ mount /dev/hda3 /usr

Perintah mount mempunyai 2 argumen, argumen pertama adalah file device yang berhubungan
dengan disk atau partisi dari sistem file. Argumen kedua adalah direktory yang dimounting. Perintah diatas
berarti bahwa ”/dev/hda2 dilakukan mounting ke /home” begitu juga dengan /usr. Perbedaan antara file
device /dev/hda2 dan direktory mount /home adalah file device memberikan akses ke isi disk mentah,
direktory mount memberikan akses ke file dari disk. Direktory mount disebut mount point.
Linux mendukung beberapa tipe sistem file. Mount akan menebak tipe dari sistem file. Opsi –t fstype
akan memberikan spesifikasi tipe sistem flie. Sebagai contoh, untuk mount floppy MS-DOS, dapat
menggunakan perintah berikut :
$ mount –t msdos /dev/fd0 /floppy

Sistem file root dilakukan mounting pada waktu booting. Jika sistem file root tidak dapat
dimounting, sistem tidak dapat melakukan booting. Nama sistem file dimounting sebagai root. Sistem file
root mula-mula bersifat read-only. Skrip startup kemudian menjalankan fsck untuk melakukan verifikasi
validitas dan jika tidak ada permasalahan, dilakukan mounting lagi sehingga write diperbolehkan. Fsck tidak
boleh dijalankan pada saat sistem file dimounting, karena setiap perubahan ke sistem file saat fsck berjalan
mengakibatkan kesalahan.
Bila sistem file root dimounting read-only saat dilakukan pengecekan, fsck dapat memperbaiki
permasalahan. Jika sistem file tidak diperlukan untuk dimounting, dapat dilakukan unmounting
dengan perintah umount. Perintah umount mempunyai satu argumen berupa file device atau mount point.
Sebagai contoh untuk unmount direktory pada contoh diatas dapat digunakan perintah

$ umount /dev/hda2
$ umount /usr
83
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Kita dapat melihat perangkat floppy da n mount point yang diijinkan pada /etc/fstab.
$ cat /etc/fstab
/dev/fd0 /mnt/floppy auto rw,user,noauto 0 0
/dev/hdc /mnt/cdrom iso9660 ro,user,noauto 0 0
/dev/hdc /mnt/cdrom iso9660 0 0 0

Kolom terdiri dari file device, directory mounting, tipe sistem file, opsi, frekuensi backup, fsck pass
number (0 berarti tanpa cek). Opsi noauto menghentikan mounting yang dilakukan secara otomatis jika
sistem dimulai (misalnya menghentikan mount –a).
Opsi user mengijinkan sembarang user melakukan mounting sistem file dan karena alasan keamanan,
eksekusi program tidak diijinkan (normal atau setuid) Jika ingin menyediakan akses ke beberapa tipe floppy,
perlu diberikan beberapa mount point. Setting berbeda untuk setiap mount point. Seba gai contoh untuk
memberikan akses ke floppy MS-DOS dan ext2, dilakukan perubahan baris pada
/etc/fstab :
/dev/fd0 /dosfloppy msdos user,noauto 0 0 /dev/fd0
/ext2floppy ext user,noauto 0 0

PERCOBAAN:
1. Pada percobaan ini setiap mahasiswa harus membawa sebuah floppy disk dan atau CDROM
2. Login sebagai user.
3. Bukalah Console Termina l dan lakukan percobaan-percobaan di bawah inikemudian analisa hasil
percobaan.
4. Selesaikan soal-soal latihan.

Percobaan 1 : Melihat perangkat pada sistem komputer


1. Melihat daftar perangkat. Perhatikan apakah perangkat-perangkat yang disebutkan pada dasar teori
terdapat pada komputer anda. Perhatikan tipe perangkat berupa block device atau character device. Apa
yang membedakan suatu perangkat merupakan block device atau character device?
$ ls –l /dev

2. Perhatikan nomor mayor dan minor pada perangkat hard disk Anda. Apa maksudnya ?
$ ls –l /dev/hd*

Percobaan 2 : Menangani Removable Media

84
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Melihat daftar perangkat yang ada pada sistem file utama. Perhatikan titik mount untuk perangkat floppy
dan CDROM. Perhatikan opsi yang ada jelaskan maksudnya.
$ cat /etc/fstab
2. Cobalah melakukan mounting pada floppy disk
$ mount /dev/fd0 /mnt/floppy
$ cd /mnt/floppy
$ ls –l

3. Agar semua perubahan data tertulis pada floppy dan mengambil floppy disk dari sistem file gunakan
perintah umount.
$ cd
$ umount /mnt/floppy

4. Lakukan hal yang sama untuk perangkat CDROM.

Percobaan 3 : Melakukan format MSDOS pada floppy


1. Linux dapat membaca dan menulis dengan format MSDOS maupun Linux. Untuk menggunakan floppy
MS, dapat digunakan perintah MS -DOS dengan didahului huruf ”m”. Misalnya, ”mdir a:” akan melihat
daftar file pada drive a, ”mcopy” melakukan copy file, ”mdel” melakukan penghapusan file. Lakukan
format floppy dengan perintah
$ fdformat /dev/fd0H1440
$ mformat a:

2. Cobalah melakukan list directory, copy dan delete file


$ mdir a:
$ mcopy <namafile> a:
$ mdel a:/<namafile>

3. Lakukan pembuatan direktory pada floppy dengan perintah mmd, copy file dengan mcopy, delete file
dengan mdel, pindah directory dengan mcd dan melihat isi directory dengan mdir.
4. Lakukan format floppy disk menggunakan perintah mkfs
$ mkfs –t msdos /dev/fd0

5. Sebelum menggunakan floppy yang sudah terformat la kukan mounting sistem file
$ mount /mnt/floppy

6. Untuk melihat apakah floppy sedang digunakan ketikkan


$ df

7. Lakukan unmount terhadap floppy disk.


$ umount /mnt/floppy

85
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
LATIHAN:
1. Lihatlah directory /proc/devices yang berisi perangkat-perangkat yang terdapat pada sistem komputer.
Perlihatkan tampilannya dan sebutkan block device dan character device apa saja yang terdapat pada
sistem komputer.
2. Lakukan operasi file dan directory dengan menggunakan perintah MS-DOS seperti mdir, mmd, mcd,
mcopy dan mdel, mmove. Tuliskan perintah yang anda lakukan.
3. Lakukan mounting terhadap floppy disk kemudian cobalah pindah ke directory /mnt/floppy dan lakukan
operasi file dan directory (perintah cp, rm, mkdir, rmdir,cd, move).
4. Lihat manual dari fdisk dan fsck, kemudian lakukan percobaan menggunakan perintah tersebut.
5. Lihat manual dari perintah mke2fs, kemudian lakukan percobaan dengan menggunakan perintah tersebut.

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

86
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 10
Linux Booting Process

TUJUAN PRAKTIKUM:
Setelah mempelajari materi ini, peserta prktikum diharapkan mampu:
✓ Mengetahui inisialisasi booting proses pada sistem operasi Linux
✓ Melakukan perubahan inisia lisasi booting proses

DASAR TEORI:
1. PC BOOT DAN LINUX INIT PROCESS
Pada praktikum ini membahas PC boot process dan inisialisasi sistem operasi Linux pada aplikasi
background (daemons/service).
1. BIOS : Basic Input/Output System adalah antar muka level terendah antara komputer dan peripheral.
Bios melakukan pemeriksaan pada memori dan mencari instruksi pada Master Boot Record (MBR) pada
floppy atau hard drive.
2. MBR menunjuk ke boot loader (LILO : Linux boot loader)
3. LILO akan menanyakan label sistem operasi yang akan mengidentifikasi kernel yang dijalankan. Kernel
akan menjalankan sistem operasi Linux.
4. Yang pertama kali dikerjakan oleh kernel adalah menjalankan program init. Init adalah root/parent dari
semua proses yang dijalankan pada Linux
5. Proses per tama yang memulai init adalah skrip /etc/rc.d/rc/sysinit.
6. Berdasarkan run-level yang ditentukan, skrip dieksekusi untuk memulai proses tertentu untuk
menjalankan sistem dan membuat sistem lebih fungsional.

2. LINUX INIT PROCESS


Proses init adalah langkah terakhir pada prosedur boot dan diidentifikasi sebagai process ide “1”. Init
bertanggung-jawab untuk memulai proses sistem seperti yang ditentukan pada file /etc/inittab. Init
biasanya memulai “getty” yang menunggu layar login yang menandakan proses shell seorang user. Pada
saat shutdown, init mengontrol urutan dan proses untu shutdown. Proses init tidak pernah shut down.Proses
init merupakan proses user dan bukan proses sistem kernel meskipun dijalankan sebagai root.

Proses sistem :
87
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Process ID Description
0 The Scheduler
1 The init process
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd

3. PROSEDUR BOOT
Linux mempunyai 6 state operasi dimana “0” adalah shutdown state dan “3” keatas adalah
operasional penuh dengan semua proses yang esensial dijalankan untuk interaksi user. Berdasarkan sistem
boot, Linux sistem akan melakukan :
- Mengeksekusi program /sbin/init yang memulai semua proses-proses lain. Program ini akan
diberikan ke mesin oleh proses awal yang didefinisikan pada file
/etc/inittab
- Komputer akan di-booting ke runlevel yang didefinisikan oleh baris initdefault pada file
/etc/inittab.
id:5:initdefault:
Pada contoh diatas, runlevel ”5” dipilih. Runlevel “5” akan melakukan booting sistem pada mode GUI
menggunakan XDM dan X-Windows. Booting ke runlevel ”3” (biasanya disebut mode console) biasanya
digunakan oleh server yang tidak memerlukan GUI. File inittab mengijinkan menggunakan kunci (Ctrl-
Alt-Del), memulai dial ke koneksi internet dll.
- Satu dari proses-proses yang dimulai oleh init adalah /sbin/rc. Skrip ini menjalankan sekumpulan
skrip pada direktory /etc/rc.d/rc0.d/, /etc/rc.d/rc1.d, /etc/rc.d/rc2.d dan
seterusnya.
- Skrip pada direktory tersebut dieksekusi pada setiap boot state dari oeprasi sampai menjadi operasi yang
lengkap. Skrip mulai dengan S yang merupakan skrip startup sedangkan skrip yang dimulai dengan K
menandakan skrip shutdown (kill). Angka yang mengikuti huruf tersebut merupakan urutan eksekusi
(terendah ke tertinggi).

Jika Anda menginstall semua daemons (proses background), Linux akan menjalankan semua ,
menyebabkan mesin lebih lambar. Kita bisa memulai (start) / menghentikan (stop) daemon secara individual
dengan mengubah direktory :
/etc/rc.d/init.d (Redhat)
dan diikuti perintah pilihan start, stop, status, restart atau reload, misalnya untuk stop web server :
cd /etc/rc.d/init.d

88
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
httpd stop

Gunakan perintah ps –aux untuk melihat semua proses pada mesin Anda.

4. LINUX RUN LEVEL


Runlevel “3” akan booting dalam mode teks atau console dan “5” akan booting dalam mode
graphical login. State pada Runlevel / Halt :
0 shutdown (Do NOT set initdefault to this)
1 Single user mode
2 Multiuser, without NFS (The same as 3, if you do not have networking)
3 Default text start. Full multiuser
4 unused
5 X11
6 Reboot (Do NOT set initdefault to this)
Anda bila melakukan perpindahan level init dengan menggunakan perintah init dengan runlevel
tertentu. Gunakan perintah ”init#” dimana # adalah satu dari 0, 1, 3, 5, 6. Dapat juga menggunakan
perintah telinit.
Skrip untuk run level yang diberikan dijalankan selama boot dan shutdown. Skrip ditemukan pada
direktory /etc/rc.d/rc#.d/ dimana simbol # menandakan run level, misalnya run level ”3” akan
menjalankan semua skrip pada direktory /etc/rc.d/rc3.d/ yang dimulai dengan huruf ”S” selama
sistem boot. Skrip ini akan menjalankan proses background yang dibutuhkan oleh sistem. Pada saat
shutdown semua skrip pada direktory yang dimulai dengan huruf ”K” akan dieksekusi. Sistem ini
menyediakan urutan sistem ke state yang berbeda untuk mode produksi dan maintenance.

TIP : Daftar state dan run level dari semua service dimulai oleh ini : chkconfig –list
GUI tool : /usr/X11R6/bin/tksysv

5. AKTIVASI SKRIP INIT


Menambah suatu skrip ke direktory /etc/rc.d/rc#.d/ baik prefik S atau K, menambah skrip ke
proses boot atau shutdown. Skrip berjalan dengan urutan numerik. S20abc dijalankan sebelum S30xyz.
Keberadaan prosedur boot dan shutdown ini merupakan kekuatan sistem operasi UNIX. Inisialisasi proses
dengan urutan tertentu dapat dikoordinasikan untuk proses dependent. Shutdown dari proses biasanya
dibutuhkan untuk program yang kompleks misalnya database. Proses individual dapatkemunginan
dimonitore, shutdown dan start pada sembarang waktu menggunakan skrip tersebut. Misalnya
/etc/rc.d/rc2.d/httpd start. Mofidikasi start, stop atau status kemungkinan digunakan.

89
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Skrip start / stop /status berada pada direktory /etc/rc.d/init.d/ adalah suatu link ke direktory
sebenarnya. Link tersebut kemungkinan dibuat atau dihapus menggunakan perintah chkconfig, misalnya
chkconfig –del httpd akan menghapus web server dari proses startup dan shutdown. Sebaliknnya
chkconfig – add httpd akan menambahke ke proses startup/shutdown dengan membangkitkan link
dari skrip pada /etc/rc.d/init.d/ ke direktory /etc/rc.d/rc#.d/ yang sebenarnya. Untuk
informasi lebih lanjut gunakan halaman manual LINUX untuk init.
Pada Red Hat 9.0, GUI tool /usr/bin/redhat-config-services dapat membantu untuk
mengkonfigurasi service untuk start dan menyediakan deskripsi untuk setiap service yang tersedia.
Service dasar meliputi :
Sistem Service Deskripsi
anacron Run jobs which were scheduled for execution while computer was
turned off. Catch up with system duties.
arpwatch Keeps track of IP address to MAC address pairings
atd Run scheduled batch jobs.
autofs automounts file systems on demand.
crond Job sheduler for periodic tasks
gpm Allows console terminal cut and paste. (Non X-window consoles)
https Apache web server.
iptables Firewall rules interface to kernel
keytable Loads se lected keyboard map as set in /etc/sysconfig/keyboard
kudzu New harware probe/detection during system boot.
lpd Network printer services
microcode_ctl Uploads microcode to kernel and ultimately to the Intle Pentium
processor. (Hardware specific.)
mysqld Database services
named DNS name services (Bind)
network Active network services during system boot.
nfs Network file system. Unix file sharing services.
nscd Password and group lookup services for use with network
authentication (NIS, LDAP,...).
ntpd Network Time Protocol time synchronization services.
random Random number generation tool used for encryprion
rawdevices Enables raw IO. Useful for Oracle and software which utilizes this
for high speed disk access.
smb SAMBA: MS/Windows PC file s haring services
syslog System log file facility.
ypbind NIS file sharing/authentication infrastructure service.
yppasswd NIS file sharing/authentication infrastructure service.
xfs X-Windows font server.
Service utama yang direkomendasikan adalah : anacron, ard, autofs, crond, gpm, iptables,
keytable, kudzu, microcode_ctl (Intel32 hardware only), network, random. Syslog
Graphics Workstation - add: xfs
File Server for PC clients - add: smb
Print Server - add: lpd atau cups

90
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
File server Linux/Unix clients - add: nfs, netfs, nfslock, portmap, ypbind, yppasswd,
ypserv
Web Server - add: httpd, tux, xinetdi, sshd

6. SKRIP INIT
Skrip init berada pada direktory /etc/rc.d/script-name. Gunakan perintah chkconfig untuk
membangkitkan soft link ke direktory yang sebenarnya untuk beberapa run level.
#!/bin/sh
#
# Startup script for program
#
# chkconfig: 345 85 15 - This statement tells the chkconfig
command how to add or delete this process to the boot process
# description: Description of program
# processname: process-name
# pidfile: /var/run/process-name.pid

# Source function library. This creates the operating


environment for the process to be started
. /etc/rc.d/init.d/functions
case "$1" in

start)
echo -n "Starting process-name: "
daemon process-name -Starts only one process of a
given name.
echo
touch /var/lock/subsys/process-name
;;
stop)
echo -n "Shutting down process-name: "
killproc process-name
echo
rm -f /var/lock/subsys/process-name
rm -f /var/run/process-name.pid - Only if process
generates this file
;;
status)
status process-name
;;
restart)
$0 stop
$0 start
;;
reload)

echo -n "Reloading process-name: "


killproc process-name -HUP
echo
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
91
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
exit 0

Fungsi skrip bash daemon, killproc dan status dapat ditemukan dalam skrip
/etc/rc.d/functions.
Skrip harus dieksekusi untuk menjalankannya (chmod +x script-name). Misalnya skrip digunakan untuk
memulai dan menghentikan proses seperti :
/etc/rc.d/init.d/httpd restart
/etc/rc.d/init.d/httpd stop
/etc/rc.d/init.d/httpd start

atau menggunakan perintah service :


service httpd restart
service httpd stop
service httpd start

Dua baris dalam skrip yang memungkinkan perintah chkconfig mengontrol skrip untuk proses boot dan
shutdown adalah
# chkconfig: 345 85 15
# description: Description of program
Bila menambahkan ke proses booting menggunakan perintah "chkconfig -- add script-
name" awal order/priority akan diset 80 sedangkan stop/shutdown diset 15. Proses akan ditambahkan ke
runlevel 3, 4, dan 5. Hal ini dapat dilakukan dengan membangkitkan link dari lokasi skrip (/etc/rc.d/init.d/)
ke direktori run level : /etc/rc.d/rc#.d/. Nama file dalam direktory run level akan menunjukkan apa yang
digunakan untuk boot (mulai dengan “S”) atau shutdown (mulai dengan “K”).

7. CHKCONFIG
Perintah chkconfig membangkitkan dan memutuskan link antara direktori /etc/rc.d/init.d/ dan
direktori run level /etc/rc.d/rc[0-6].d/ untuk mengontrol inisialisasi proses boot dan proses
shutdown.
chkconfig [--level <levels>] <name> on | off | reset >
chkconfig --list
chkconfig --list
chkconfig --add <name>
chkconfig --del <name>
chkconfig --level 0123456 <name> off
92
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Contoh :

chkconfig --level 345 httpd on - apache diberikan 3, 4 dan 5.


chkconfig --add httpd - memulai web server daemon pada system boot.
chkconfig --del sendmail - Tidak memulai sendmail daemon pada system boot.
chkconfig --list ] - Daftar semua servis dan level init.
chkconfig --list | grep on - Daftar semua service yang dimulai pada sistem boot

93
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !

Percobaan 1 : Linux INIT Process


1. Program /sbin/init akan dijalankan pada saat booting. Eksekusi program ini berdasarkan file
/etc/inittab. Lihatlah isi file /etc/inittab dan perhatikan mode default runlevel pada baris
initdefault
# cat /etc/inittab

2. Berdasarkan runlevel yang dipilih, proses init kemudian mengeksekusi skrip startup yang berada pada
sub direktory /etc/rc.d. Skrip yang digunakan untuk runlevel 0 sampai dengan 6 berada pada sub
direktory /etc/rc.d/rc0.d sampai /etc/rc.d/rc6.d.
# ls -l /etc/rc.d

3. Setiap nama file pada direktori misalnya /etc/rc.d/rc5.d dimulai dengan huruf “S” merupakan skrip
startup sedangkan skrip yang dimulai dengan huruf “K” merupakan skrip shutdown. Angka yang
mengikuti "K" atau "S" menandakan urutan skrip yang dijalankan. Contohnya ”kudzu” denga n nilai
”05” dijalankan sebelum ”wlan” dengan nilai ”09”
# ls /etc/rc.d/rc5.d

Percobaan 2 : Menentukan default boot runlevel


1. Default boot runlevel pada file /etc/inittab diset dengan menggunakan variabel initdefault.
Jika diset "3", sistem boot menggunakan antar muka teks pada console VGA; jika diset "5",
menggunakan GUI.
2. Hapus baris initdefault yang tidak diperlukan pada file /etc/inittab. Buatlah bari baru untuk
set sistem boot menggunakan console VGA / teks
# vi /etc/inittab
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault: # Console Text Mode
#id:5:initdefault: # Console GUI Mode

94
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
3. Setelah dilakukan perubahan variabel initdefault, lakukan reboot. Perhatikan apakah masuk ke mode
teks
# reboot
4. Lakukan perubahan kembali dari 3 ke 5 dan lakukan reboot sistem. Ingat, jangan melakukan setting ke 6
karena sistem akan reboot terus-menerus. Sedangkan setting 0 maka sistem tidak pernah dimulai.

Percobaan 3 : Menggunakan Console GUI


1. Kita dapat masuk ke console GUI jika sistem berada pada mode teks. Pertama ubahlah variabel
initdefault pada file /etc/inittab dan ubahlah ke mode 3 atau dengan menggunakan perintah
init
# init 3

2. Metode Manual : Jalankan aplikasi X terminal GUI dengan menjalankan perintah “startx” pada
console VGA. Untuk keluar gunakan logout
# startx

3. Metode Otomatis : Anda dapat menjalankan X terminal GUI setiap kali reboot menggunakan perintah
init. Anda harus mengedit variabel initdefault”pada file /etc/inittab seperti percobaan 2 agar
setiap booting masuk ke mode GUI. Ubahlah kembali ke mode 5.
# init 5

Percobaan 4 : Menggunakan Virtual Console


1. Untuk mendapatkan command prompt dapat dilakukan dengan membuka terminal pada Jendela GUI.
Default-nya, Linux menjalankan 6 virtual consol atau TTY session yang dijalankan pada console VGA.
Hal ini didefinisikan dengan statement mingetty pada file /etc/inittab. Console X terminal GUI
membuat virtual console sendiri menggunakan TTY pertama yang tersedia yang tidak dikontrol oleh
mingetty. Hal ini menyebabkan GUI berjalan sebagai nomor 7. Perhatikan baris mingetty pada file
/etc/ inittab, virtual console nomor berapa yang dikontrol ?
# cat /etc/inittab
2. Cobalah masuk ke virtual console menggunakan CTRL+ALT+F1 sampai dengan <F6>.
3. Untuk masuk ke login GUI gunakan <CTL> <ALT> <F7>, hanya jika beradapada run level 5 atau GUI
dijalankan setelah ”startx”.
Percobaan 5 : Shutdown dan rebooting sistem

1. Perintah init akan mengubah runlevel, untuk shutdown nilainya adalah 0.

95
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
# init 0

2. Perintah shutdown menyebabkan efek yang sama. Opsi ”–y” untuk mengabaikan prompt pesan dan ”–
h” untuk halt sistem. Opsi 0 menunjukkan berapa lama menunggu memulai prosedur, dalam hal ini 0
menit.
# shutdown –hy 0

3. Anda juga bisa menggunakan perintah init untuk reboot sistem dengan memasukkan runlevel 6
# init 6

4. Perintah reboot menpunyai efek yang sama, tetapi juga mengirimkan pesan warning ke semua user
# reboot

5. Reboot juga dapat dilakukan dengan perintah shutdown menggunakan opsi “-r” dan menentukan delai
misalnya 10 menit.
# shutdown –ry 10

Percobaan 6: Berpindah ke mode single user


1. Beberapa aktifitas membutuhkan sistem untuk log off semua user, aplikasi dan networkin g sehingga
hanya sistem administrator yang mengakses sistem dari console VGA. Alasan lainnya adalah untuk
memperbaiki password ”root”.
2. Jika sistem berjalan normal, berpindah ke mode single user dapat dilakukan dengan perintah init dan
memasukkan runlevel 1.
# init 1
3. Perintah diatas tidak memberikan warning ke user dan perintah shutdown tidak mempunyai opsi mode
single user. Hal ini akan muncul dengan menjalankan perintah shutdown dengan delay.
# shutdown 1

Percobaan 7: Berpindah ke mode single user pada layar Grub


1. Anda dapat masuk ke mode single user secara langsung setelah menghidupkan power sistem.
2. Hidupkan sistem Anda
3. Jika screen Linux muncul, Anda dapat memilih kernel yang diinstal pada sistem. Ketik ”a” untuk
”append”. Maka akan didapatkan prompt untuk menambah opsi boot pada file grub.conf.
grub append> ro root=LABEL=/

96
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
4. Tambahkan “1” pada akhir string grub append> ro root=LABEL=/1
5. Tekan Enter. Sistem akan melanjutkan booting, tetapi akan menuju ke promp root # tanpa menanyakan
username dan password

Percobaan 8: Berpindah ke default runlevel dari mode single user


Perintah “exit” akan menyebabkan sistem keluar dari runlevel 1 dan mengubah ke default runlevel untuk
sistem. Anda juga dapat menggunakan perintah init (misalnya “init 3” dan “init 5”) bash-2.05b# exit

Percobaan 9: Memperbaiki password root


1. Kadangkala anda kehilangan atau lupa pada password root, atau sistem administrator sebelumnya tidak
memberi password kepada Anda
2. Masuk ke console VGA dan tekan <CTRL> <ALT> <DEL>. Sistem akan shutdown
3. Reboot sistem dan masuk ke mode single user
4. Setelah masuk ke command prompt, ubahlah password root. Mode single user mengasumsikan orang
pada consol sebagai “root”, sehingga anda tidak perlu menentukan nama user “root”
5. Masuk ke default runlevel dengan menggunakan perintah “exit”.

Percobaan 10: Menggunakan perintah chkconfig


1. Perintah chkconfig digunakan untuk melihat aplikasi mana yang dimulai pada setiap runlevel. Opsi
”—list” untuk melihat daftar paket pada /etc/init.d dan runlevel yang ”on” atau ”off”
# chkconfig –list
2. Anda dapat menggunakan chkconfig untuk mengubah runlevel untuk paket ertentu. Misalnya
Sendmail akan dimulai pada startup runlevel 3 atau 5. Ubahlah Sendmail tidak dimulai pada saat boot.
3. Perintah chkconfig dapat digunakan dengan grep untuk menentukan run level dimana Sendmail
akan berjalan. Disini terlihat berjalan pada level 3 dan 5.
# chkconfig –list | grep mail

97
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
4. Perintah chkconfig dengan opsi “—level” mengindikasikan bahwa beberapa aksi dikerjakan pada
runlevel yang dimasukkan seba gai nilai. Argumen pertama pada perintah adalah paket dan argumen
kedua apakah “on” atau “off”. Dalam hal ini Anda ingin Sendmail tidak dimulai jika masuk ke runlevel 3
dan 5
# chkconfig –level 35 sendmail off
5. Hal tersebut juga dapat dilakukan tanpa ops i “—level”, otomatis chkconfig akan mengubah runlevel 3
dan 5
# chkconfig sendmail off
6. Anda juga dapat shutdown permanen dan stop dari running saat ini.
# service sendmail stop
7. Anda dapat menggunakan chkconfig untuk memeriksa kembali pekerjaan Anda
# chkconfig –list | grep mail

LATIHAN:
1. Pada percobaan 1 lihatlah urutan eksekusi pada saat startup dan shutdown pada runlevel 5 untuk file :
a. netfs
b. pcmcia
c. nfslock
d. kudzu
e. portmap
f. wlan
g. isdn
h. network
i. syslog
j. keytable

98
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
2. Laporkan hasil perubahan password pada mode single user pada percobaan 9. Gunakan password root
“redhat” (jangan lainnya !).
3. Apakah kegunaan menggunakan perintah service ? Berikan contoh.
4. Apa kegunaan menggunakan perintah chkconfig ? Berikan contoh.

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa hasil percobaan yang Anda lakukan.

2. Kerjakan latihan diatas dan analisa hasil tampilannya.

99
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 11
Manajemen User dan Group

TUJUAN PRAKTIKUM:
Setelah mempelajari materi ini, peserta praktikum diharapkan mampu:
✓ Menambah, memodifikasi dan menghapus user.
✓ Menambah dan menghapus group

DASAR TEORI:
Pada Linux Red Hat, informasi tentang user account dan groups disimpan dalam beberapa file teks
dalam direktory /etc/. Jika sistem administrator membuat user baru, file tersebut harus diedit atau
aplikasi harus digunakan untuk perubahan teresebut.

1. FILE /etc/passwd
File /etc/passwd adalah file yang berisi daftar user yang dipisahkan dengan baris. Setiap baris
berisi informasi mengenai :
• Username — nama user yang diketik saat login sistem
• Password — berisi pasword yang di-enkripsi (atau x bila shadow password digunakan)
• User ID (UID) — bilangan numerik yang ekuivalen dengan username yang menjadi acuan sistem.
• Group ID (GID) — bilangan numerik yang ekuivalen dengan nama group primer yang menjadi acuan
sistem.
• GECOS — nama histori, kolom GECOS[1] bersifat opsional dan digunakan untuk menyimpan informasi
tambahan (seperti nama lengkap user).
• Home directory — path absolut untuk home directory dari user.
• Shell — program yang otomatis dijalankan bila user login. Berupa command intepreter (biasanya disebut
shell)
Contoh isi file /etc/passwd :
root:x:0:0:root:/root:/bin/bash
Baris idatas menunjukkan root user mempunyai shadow password, UID dan GID nya 0.
User root mempunyai home directory /root/ dan menggunakan shell /bin/bash.

2. FILE /etc/group

100
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
File /etc/group adalah file yang berisi daftar group yang dipisahkan per baris. Setiap baris terdiri
dari 4 kolom, yang berisi informasi mengenai :
• Group name — nama group.
• Group password — Bila di-set, mengijinkan user yang bukan bagian dari group bergabung ke dalam group
dengan menggunakan printah newgrp dan mengetikkan password. Jika lebih kecil dari x, maka shadow
group password digunakan.
• Group ID (GID) — Bilangan numerik yang ekuivalen dengan group name.
• Member list — daftar user yang menjadi milik group.
Contoh baris pada file /etc/group:
general:x:502:juan,shelley,bob
Baris diatas menunjukkan, group general menggunakan password shadow, mempunyai GID 502 dan
anggota juan, shelley dan bob.

3. APLIKASI USER ACCOUNT DAN GROUP


Terdapat dua tipe dasar aplikasi yang digunakan untuk mengatur user account dan group pada sistem
Linux Red Hat :
• Aplikasi Graphical User Manager
• Perintah pada virtual console
Baik aplikasi User Manager dan utilitas perintah membentuk task yang sama, perintah
mempunyai kelebihan dalam skrip yang lebih mudah diotomatisasi. Tabel berikut berisi beberapa
perintah yang umum untuk membuat dan mengatur user command dan group :
Aplikasi Fungsi
/usr/sbin/useradd Menambah user account. Digunakan untuk keanggotaan primer
dan sekunder
/usr/sbin/userdel Menghapus user account
/usr/sbin/usermod Meng-edit atribut account termasuk beberapa fungsi yang
berhubungan dengan masa berlaku password. Juga digunakan
untuk menentukan keanggotaan primer dan sekunder
passwd Melakukan setting password. Selain untuk mengubah password
user juga untuk mengontrol semua aspek tentang masa berlaku
password
/usr/sbin/chpasswd Membaca file yang berisi username dan password dan update
setiap password user
chage Mengubah masa berlaku password user. Perintah passwd juga
digunakan untuk tujuan ini
chfn Mengubah informasi GECOS user
chsh Mengubah shell default user

Tabel berikut berisi beberapa perintah untuk membuat dan mengatur group :

101
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Aplikasi Fungsi
/usr/sbin/groupadd Menambah group, tetapi tidak menentukan user pada group
tersebut. Perintah useradd dan usermod digunakan untuk
menentukan user pada group yang ada.
/usr/sbin/groupdel Menghapus group
/usr/sbin/groupmod Memodifikasi nama group adau GID, tetapi tidak mengubah
keanggotaan group. Perintah useradd dan usermod menentukan
user pada group yang ada.
gpasswd Mengubah keanggotaan group dan melakukan setting password
untuk mengijinkan anggota selain group tersebut yang
mengetahui password group untuk bergabung. Juga digunakan
untuk menentukan administrator group
/usr/sbin/grpck Memeriksa integritas file /etc/group dan /etc/gshadow

102
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !

Percobaan 1 : Melihat file /etc/passwd dan /etc/group


1. Lihatlah isi file /etc/passwd dan sebutkan kolom apa saja yang terdapat pada setiap baris.
# cat /etc/passwd | more

2. Lihatlah isi file /etc/group dan sebutkan kolom apa saja yang terdapat pada stiap baris.
# cat /etc/group | more

Percobaan 2 : Menambah group user


Buatlah 3 group user baru dengan perintah groupadd. Perhatikan informas group user baru pada file
/etc/group.
# groupadd friend
# groupadd classmate
# groupadd neighbour
# cat /etc/group

Percobaan 3 : Menambah User


1. Buatlah user baru dengan perintah useradd. Perhatikan perubahan isi file /etc/passwd setelah pembuatan
user baru. Juga perhatikan apakah home direktory setiap user juga dibuat pada saat pembuatan user baru
# useradd –g friend bob
# grep bob /etc/passwd
# useradd lili
# passwd lili
# grep lili /etc/passwd
# ls –l /home

2. Opsi –g pada perintah useradd untuk menentukan group dari user yang dibuat.
# useradd –g neighbour jane
# ls –l /home

103
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Percobaan 4 : Memodifikasi group dari user
Dengan perintah usermod, modifikasi group dari Setiap user merupakan milih suatu group primer dan
kemungkinan juga bagian dari group lain (supplementary group). Untuk memodifikasi group dari suatu user dapat
digunakan perintah usermod.
# usermod –g classmate -G friend,neighbour bob
# usermod –g friend -G classmate lili
Percobaan 5 : Melihat group dari user
Lihat group dari seorang user dengan perintah groups.
# groups bob
# groups lili
# groups jane
Percobaan 6 : Mengubah password user
1. Root dapat mengubah password dari user.# passwd bob
2. Password yang diubah dengan perintah usermod merupakan file enkripsi, sehingga tidak dapat digunakan
sebagai passwrod pada saat login.
# useradd –g friend diane
# usermod –p diane diane
3. Cobalah login sebagai diane, apakah anda dapat login ?
4. Cobalah mengubah password user dengan login pada user yang bersangkutan. Login sebagai user, dan
ubahlah password user. $ passwd
Percobaan 7 : Menghapus user
Hapus user dengan menggunakan perintah userdel. Opsi –r untuk menghapus seluruh isi home directory.
# userdel –r bob
# userdel –r lili
# userdel –r jane
# userdel –r diane
Percobaan 8 : Menghapus group
Hapus group dengan menggunakan perintah userdel.
# groupdel friend
# groupdel classmate
# groupdel neighbor
Percobaan 9 : Menghapus home directory
Hapus home direktory.
# rmdir /home/bob
# rmdir /home/lili
# rmdir /home/jane
# rmdir /home/diane
LATIHAN:
1. Buatlah tiga group “Friends”, “Lecturer” dan “IT Expert”. Perhatikan anggota dari setiap grup berikut :
Group Friends Lecturer IT Expert
Dewi Aradea Onno
User Anisa Irfan Michael
Ridwan Husni Wiryana
2. Buatlah user account untuk setiap anggota group sesuai tabel diatas.
3. Cek apakah home direktory yang terbentuk sesuai dengan tabel diatas.
4. Ubahlah password Michael dan Husni melalui root.
5. Cobalah mengubah password Anisa dengan login sebagai Anisa
6. Lihat keanggotaan dari setiap user.
7. Hapuslah user Husni dan IT Expert.
LAPORAN:
1. Analisa hasil percobaan yang Anda lakukan.
2. Kerja kan latihan diatas dan analisa hasil tampilannya.
104
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
Modul 12
Manajemen Aplikasi

TUJUAN PRAKTIKUM:
Setelah mempelajari materi ini, peserta praktikum diharapkan mampu:
✓ Mengerti konsep RPM, TAR dan GZIP.
✓ Menggunakan RPM.
✓ Menggunakan TAR dan GZIP untuk instalasi software.

DASAR TEORI:
1. MANAJEMEN PAKET SOFTWARE
Setiap system Linux mempunyai manajemen paket software, yang paling popular adalah RPM
(RedHat Package Management). RPM mengatur instalasi paket software, maintenance/upgrade dan
menghapus paket software dari system, atau lebih dikenal dengan install dan uninstall (install / remove).
RPM menyimpan informasi tentang paket yang diinstalasi dalam sebuah database. penghapusan
paket berarti juga menghapus semua files dan direktori yang terdaftar pada database tersebut, lengkap
dengan nama PATH (lokasi diman afile dan direktori tersebut berada).
RPM menyimpan paket dalam bentuk file yang telah dikompres dan ditulis sebagai file degan
ekstensi *.rpm.

 FUNGSI MANAJER PAKET SOFTWARE


• Menghitung besar paket yang disesuaikan dengan kapasitas penyimpanan disk yang masih tersedia,
apakah cukup atau tidak.
• Memeriksa apakah ada library atau file-file lain yang dibutuhkan untuksoftware tersebut.
• Menghindari konflik dengan software yang telah terpasang di system.
• Proses instalasi tidak mengacaukan system (membuat system file menjadi terganggu / korup).
• Upgrade ke versi yang baru tanpa mengganggu konfigurasi yang sudah ada.
• Verifikasi files dalam paket tersebut.

3. PAKET SOFTWARE
Terdiri dari 2 jenis :

105
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
1. Paket binary (biner)
Terdiri atas kumpulan program executable. Paket ini berekstensi *.rpm.
2. Paket source
Berisi teks dari program yang kemudian dapat dikompilasi menjadi executable. Paket ini mempunyai
ekstensi *.src.rpm.

4. NAMA PAKET
Penamaan paket diatur dengan konvensi sebagai berikut :
• Nama
• Versi
• Release
• Platform arsitektur (Intel, Alpha, Risc, …)
xyz - 1.2 - 6.i386.rpm

nama versi release platform


Platform :
- i386 Intel
- alpha DEC
- sparc SUN
- mips MIPS
- ppc PowerPC
- m68k Motorola 680x0
- noarch Bebas, tanpa platform

5. RPM QUERY
RPM dengan opsi –q memberikan informasi tentang paket sebagai berikut :
# rpm –q samba
samba –2.0.5-1S
#
Informasi tentang versi paket samba adalah versi 2.0.5. Beberapa sub-opsi dapat diberikan, antara lain :
i menampilkan informasi yang lebih rinci
l list (daftar) semua file(s)
d tampilkan hanya file dokumentasi saja
c tampilkan hanya konfigurasi file
f info tentang paket memiliki file apa saja
p berfungsi pada paket yang belum diinstalasi
--s cripts menampilkan script untuk instalasi
6. TAR
Tar singkatan dari Tape ARchive. Tar mula-mula didesain untuk backup tape, tetapi digunakan untuk
membuat file tar pada semua sistem file. tar membuat satu "tar nama versi release platform file" (yang

106
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
disebut dengan "tarball") pada beberapa file dan direktori. File tar tidak dikompresi, hanya sebuah file heap
yang dibentuk bersama dalam satu kontainer.
Sehingga file tar akan mempunyai jumlah byte yang sama dengan semua file individu yang dikombinasikan
ditambah sedikit file ekstra. File tar dapat dikompresi dengan menggunakan gzip atau bzip2.
Contoh :
• tar –xvf example.tar mengekstraksi isi dari example.tar dan menunjukkan file yang akan
diekstraksi
• tar –cf backup.tar /home/ftp/pub membuat file tar bernama backup.tar dari isi direktori
/home/ftp/pub
• tar –tvf example.tar menampilkan isi dari example.tar pada screen.

7. GZIP
Gzip merupakan format ZIP UNIX yang asli. Biasanya membentuk file tar terlebih dahulu dan
kemudian mengkompresi dengan menggunakan gzip. File -file ini mempunyai ekstensi .tar.gz yang
menunjukkan file tar yang di-zip dengan gzip. Selain itu juga terdapat file berekstensi .tgz. File ini
merupakan file kompresi dengan gzip yang kompatibel dengan WinZip dan PkZip. Sehingga file zip pada
UNIX dapat di unzip pada Windows.
Contoh :
• Untuk kompresi file menggunakan gzip, eksekusi perintah berikut : gzip filename.tar (dimana filename.tar
adalah nama file yang dikompres). Hasil dari operasi ini adalah file yang bernama filename.tar.gz.
Defaultnya, gzip akan menghapus file filename.tar
• Untuk dekompresi file menggunakan gzip, eksekusi perintah berikut : gzip –d filename.tar.gz. Hasil dari
operasi ini adalah file bernama filename.tar. Defaultnya, gzip akan menghapus file filename.tar.gz

Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian
selesaikan soal-soal latihan !

Percobaan 1 : RPM Query


1. Pada percobaan ini paket samba dapat didownload pada website http://www.samba.org. Tetapi pada
percobaan ini sudah disediakan padahalaman website ini.
107
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
2. Ekstrak file samba menggunakan perintah tar
# tar –xvf samba
3. Informasi tentang paket software
# rpm –qi samba | more
4. Instal dari CDROM, bukan dari paket yang sudah diinstalasi. Untuk itu pindah direktori ke tempat
dimana file rpm tersebut berada
# cd /mnt/cdrom/Packages/RPMS
# rpm –qpi samba-2.0.5-1S.i386.rpm | more

5. Melihat files apa saja yang sudah diinstalasi, gunakan sub-opsi –l.
# rpm –ql samba | more
6. Melihat file konfigurasi
# rpm –qc samba | more
7. Melihat dokumentasi file
# rpm –qd samba | more
8. Melihat script file yang digunakan untuk instalasi. Perhatikan bahwa hasil output tergantung atas versi
Linux yang digunakan
# rpm –q --scripts samba

Percobaan 2 : Menghapus Paket


1. Opsi –e digunakan untuk menghapus paket yang sudah instalasi. Bila ada ketergantungan paket lain atas
paket yang akan dihapus, maka RPM membatalkan penghapusan tersebut
# rpm –q apache
# rpm –e apache

2. Paket apache tidak bisa dihapus karena masih ada paket lain yang tergantung atas paket tersebut, yaitu
modul PHP. Maka paket mod_php3 harus dihapus lebih dahulu
# rpm –e mod_php3

3. Setelah itu paket apache baru bisa dihapus


# rpm –e mod_php3
# rpm –q --scripts samba

Percobaan 3 : Menggunakan TAR


1. Logout dari root dan login sebagai <user>.
2. Pastikan berada pada home directory. Dan lihatlah isi home direktori Pindah ke direktori Desktop.
Setelah itu kembali ke home direktori
$ cd
$ ls –al
$ cd Desktop

108
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan
$ cd

3. Buatlah file tar pada direktori Desktop


$ tar –cvf desktop.tar Desktop
$ ls –al

4. Rename direktori Desktop menjadi Desktop.old. Lihatlah file desktop.tar pada direktori Desktop.old
$ mv Desktop Desktop.old
$ ls –l
$ cd Desktop.old
$ ls –l
$ cd ..

5. Ekstraksi isi dari file tar. Lihatlah isi direktori dan seharusnya akan terlihat direktori Desktop yang
original
$ tar –xvf desktop.tar
$ ls –al
$ cd Desktop

6. Hapus direktori Desktop


$ rm –rf Desktop

Percobaan 4 : Menggunakan GZIP


1. Buatlah file gzip dari desktop.tar, pastikan terbentuk file desktop.tar.gz
$ gzip desktop.tar
$ ls –al
2. Dekompresi file gzip desktop.tar.gz dan cobalah untuk ekstraksi isi file tar
$ gzip –d desktop.tar.gz
$ ls –al
$ tar –xvf desktop.tar
$ ls –al
$ cd Desktop
3. Hapus file tar dan direktori Desktop.old
$ rm desktop.tar
$ rm -rf Desktop.old

LATIHAN:
Buatlah file menggunakan editor vi dengan nama [Nama Anda].txt. Pada file ini tuliskan langkah-langkah
membuat file zip dari suatu direktori pada Linux. Kemudian file tersebut buatlah menjadi file tar dan
kompresi file tersebut menggunakan gzip.

BUATLAH LAPORAN PRAKTIKUM:


1. Analisa semua hasil percobaan yang Anda lakukan.
2. Kerjakan latihan diatas dan analisa hasil tampilannya.

109
Praktikum Sistem OperasiJurusan Teknik Informatika - Fakultas Teknik Perjuangan
Jurusan Teknik Informatika - Fakultas Teknik Perjuangan

Anda mungkin juga menyukai