Anda di halaman 1dari 217

Praktikum Sistem Operasi i

Praktikum
Sistem Operasi

Oleh
Agus Urip Ari Wibowo
Ibnu Surya

Politeknik Caltex Riau


Pekanbaru
2007

i
Daftar Isi
Praktikum Sistem Operasi ii

KATA SAMBUTAN

Saya menyambut baik penerbitan bahan ajar kuliah ini yang khusus
dipakai untuk mahasiswa Politeknik Caltex Riau, dengan tujuan
untuk memudahkan kegiatan belajar mengajar di Politeknik Caltex
Riau ini. Penerbitan bahan ajar ini merupakan salah satu wujud
nyata tekad Politeknik Caltex Riau dalam usaha mencerdaskan anak
bangsa.

Saya menyadari bahwa usaha penerbitan ini menuntut pengorbanan


waktu dan tenaga bagi penyusunnya. Untuk itu Saya mengucapkan
banyak terima kasih dan Saya sampaikan penghargaan yang
setinggi-tingginya kepada semua pihak yang terkait, atas
dedikasinya untuk membantu peningkatan mutu pendidikan di
Politeknik Caltex Riau.

Pekanbaru, November 2007


Direktur

Ir. R.Awan Setyawan

ii
Daftar Isi
Praktikum Sistem Operasi iii

KATA PENGANTAR

Alhamdulillah, puji syukur kita panjatkan kepada Allah SWT, Rabb


semesta alam, yang senantiasa melimpahkan rahmat dan kasih
sayang-Nya kepada kita sehingga penyuntingan buku modul
Praktikum Sistem Operasi ini dapat diselesaikan.

Danjuga kami selaku penyunting ulang modul ini mengucapkan


terimakasih yang sebesar-besarnya kepada Arna Fariza
( Politeknik Elektronika Negeri Surabaya ) yang telah
menyusun modul ini sebelumnya, sehingga dapat disunting
ulang dan memberikan banyak manfaat khususnya bagi
kemajuan perkembangan keilmuan Teknik di Politeknik
Caltex Riau ini.

Pada dasarnya panduan modul ini disusun sebagai penunjang mata


kuliah “ Praktikum Sistem Operasi ” yang berguna untuk membantu
mahasiswa dalam memahami materi perkuliahan tersebut. Dalam
modul ini terdapat contoh-contoh program yang disertai dengan
dasar teorinya sebagai sarana untuk lebih memahami Praktikum
Sistem Operasi. Selanjutnya diharapkan mahasiswa dapat
mengembangkan contoh program yang ada dan mengerjakan soal
latihan untuk meningkatkan kemampuan pemrograman dan
analisisnya.

Dalam penyuntingan modul ini, kami menyadari sepenuhnya masih


banyak kekurangan. Maka dari itu dimohonkan masukan dan saran
dari berbagai pihak untuk perbaikan modul ini .

iii
Daftar Isi
Praktikum Sistem Operasi iv

Pekanbaru, November 2007

Penulis

iv
Daftar Isi
Praktikum Sistem Operasi v

DAFTAR ISI
Lembar Awal...............................................................................i
Kata Sambutan.............................................................................ii
Kata Pengantar.............................................................................iii
Daftar Isi......................................................................................iv
Praktikum 1 Instalasi Windows 2000 Profesional.........................1
A. Tujuan.....................................................................................1
B. Dasar Teori..............................................................................1
1. Konfigurasi Sistem Komputer..........................................................1
2. Kompatibilitas Hardware dan Software...........................................2
3. Network..........................................................................................3
4. Jenis Instalasi..................................................................................4
5. Sistem File.......................................................................................4
6. User Account...................................................................................5
C. Langkah Percobaan..................................................................7
1. Partisi dan Format Disk...................................................................7
2. Setting Windows 2000 Professional................................................7
3. Identifikasi Jaringan........................................................................9
4. Membuat User Account...................................................................10
5. Setting Internet Protocol..................................................................11
6. Setting Internet................................................................................11
D. Latihan....................................................................................12

Praktikum 2 Instalasi RedHat Linux.............................................13


A. Tujuan.....................................................................................13
B. Dasar Teori..............................................................................13
1. Konfigurasi Sistem Komputer..........................................................13

v Daftar
Isi
Praktikum Sistem Operasi vi

2. Antarmuka Program Instalasi..........................................................14


3. Virtual Console...............................................................................14
4. Memulai Program Instalasi..............................................................15
5. Master Boot Record........................................................................16

C. Langkah Percobaan..................................................................16
1. Upgrade Sistem...............................................................................18
2. Log On Menggunakan Root............................................................18
3. Setting Lilo......................................................................................19
4. Log On Menggunakan User Account..............................................19
D. Latihan...................................................................................19

Praktikum 3 Perintah-perintah Dasar pada OS Linux....................20


A. Tujuan.....................................................................................20
B. Dasar Teori..............................................................................20
1. Format Intruksi Linux......................................................................20
2. Manual............................................................................................21
C. Langkah-langkah.....................................................................22
D. Percobaan................................................................................22
E. Latihan.....................................................................................28

Praktikum 4 Shell pada OS Linux dan Editor Vi...........................29


A. Tujuan.....................................................................................29
B. Dasar Teori..............................................................................29
1. Pipeline............................................................................................29
2. Reguler Expression.........................................................................29
3. Redirection......................................................................................30
4. Pengeditan Perintah.........................................................................31

vi Daftar
Isi
Praktikum Sistem Operasi vii

5. History............................................................................................31
6. Editor Vi..........................................................................................31

C. Langkah-langkah.....................................................................34
D. Percobaan................................................................................34
E. Latihan.....................................................................................38

Praktikum 5 Sistem File...............................................................40


A. Tujuan.....................................................................................40
B. Dasar Teori..............................................................................40
1. Organisasi File.................................................................................40
2. Directory Standart...........................................................................41
3. Directory /etc...................................................................................42
4. Directory /dev..................................................................................42
5. Directory /proc................................................................................43
C. Langkah-langkah.....................................................................48
D. Percobaan................................................................................48
E. Latihan.....................................................................................55

Praktikum 6 Proses I/O.................................................................56


A. Tujuan.....................................................................................56
B. Dasar Teori..............................................................................56
1. Proses I/O........................................................................................56
2. File Descriptor.................................................................................57
3. Pembelokan ( Redirection ).............................................................57
4. Pipa ( Pipeline )...............................................................................57
5. Filter................................................................................................58
C. Langkah-langkah.....................................................................59

vii Daftar
Isi
Praktikum Sistem Operasi viii

D. Percobaan................................................................................59
E. Latihan.....................................................................................63

Praktikum 7 Shell Lanjutan..........................................................65


A. Tujuan.....................................................................................65
B. Dasar Teori..............................................................................65
1. Shell.................................................................................................65
2. Profile..............................................................................................66
3. History............................................................................................67
4. Bash - Script....................................................................................68
5. Job Control......................................................................................68
C. Langkah-langkah.....................................................................68
D. Percobaan................................................................................68
E. Latihan.....................................................................................75

Praktikum 8 Manajemen Proses....................................................80


A. Tujuan.....................................................................................80
B. Dasar Teori..............................................................................80
1. Konsep Proses di Linux...................................................................80
2. Sinyal..............................................................................................81
3. Mengirim Sinyal..............................................................................81
C. Langkah-langkah.....................................................................81
D. Percobaan................................................................................82
E. Latihan.....................................................................................86

Praktikum 9 Utilitas Linux...........................................................89


A. Tujuan.....................................................................................89
B. Dasar Teori..............................................................................89

viii Daftar
Isi
Praktikum Sistem Operasi ix

1. Sortir................................................................................................89
2. Preformat.........................................................................................90
3. Word Count.....................................................................................90
4. Translate..........................................................................................90
5. Memotong Karakter........................................................................91
6. Head and Tile..................................................................................91
7. Find.................................................................................................91

C. Langkah-langkah.....................................................................93
D. Percobaan................................................................................93
E. Latihan.....................................................................................100

Praktikum 10 Pemrograman Shell ( 1 ).........................................102


A. Tujuan.....................................................................................102
B. Dasar Teori..............................................................................102
1. Shell Script......................................................................................102
2. Variable...........................................................................................103
3. Membaca Keyboard........................................................................104
4. Parameter........................................................................................104
5. Status Exit.......................................................................................104
6. Kontruksi If.....................................................................................104
7. Kontruksi if then else.......................................................................105
8. Intruksi Test....................................................................................105
9. Logical && dan || Shell Level.........................................................106
10. Operator Bilangan Bulat untuk Test...............................................107
11. Operator Logika ( Test Level ).......................................................107
12. Kontruksi If Then Else If................................................................108
13. Hitungan Aritmatika.......................................................................109

ix Daftar
Isi
Praktikum Sistem Operasi x

14. Intruksi exit....................................................................................109


C. Langkah-langkah.....................................................................109
D. Percobaan................................................................................110
E. Latihan.....................................................................................123

Praktikum 11 Pemrograman Shell ( 2 ).........................................128


A. Tujuan.....................................................................................128
B. Dasar Teori..............................................................................128
1. Kontruksi Case................................................................................128
2. Kontruksi For..................................................................................129
3. Kontruksi While..............................................................................129
4. Instruksi Dummy.............................................................................130
5. Fungsi..............................................................................................130
C. Langkah-langkah.....................................................................130
D. Percobaan................................................................................131
E. Latihan.....................................................................................138

Praktikum 12 RedHat Package Manager (RPM), TAR, GZIP.......142


A. Tujuan.....................................................................................142
B. Dasar Teori..............................................................................142
1. Manajemen Paket Software.............................................................142
2. Fungsi Manajer Paket Software.......................................................143
3. Paket Software................................................................................143
4. Nama Paket.....................................................................................143
5. RPM Query.....................................................................................144
6. Tar...................................................................................................145
7. GZIP...............................................................................................145

x Daftar
Isi
Praktikum Sistem Operasi xi

C. Langkah-langkah.....................................................................146
D. Percobaan................................................................................146
E. Latihan.....................................................................................149

Praktikum 13 Tutorial AWK .......................................................150


A. Defenisi...................................................................................150
B. Latihan....................................................................................150

Praktikum 14 Tutorial AWK ( 2 ).................................................157


A. Defenisi...................................................................................157
B. Latihan....................................................................................158

Praktikum 15 Informasi Hardware dari BIOS dan Linux..............162


A. Tujuan.....................................................................................162
B. Percobaan................................................................................162
1. Mengetahui Informasi Hardware dari BIOS....................................162
2. Mengetahui Informasi Hardware dari Linux....................................163
3. Informasi Lain.................................................................................166

Praktikum 16 Linux File...............................................................167


A. Tujuan.....................................................................................167
B. Percobaan................................................................................167
1. Pengantar.........................................................................................167
2. Mengenalii Sistem File....................................................................168
3. Mengenali Perintah Operasi Disk....................................................168

xi Daftar
Isi
Praktikum Sistem Operasi xii

Praktikum 17 Administrasi Proses................................................170


A. Tujuan.....................................................................................170
B. Percobaan................................................................................170
1. Mengenal Administrasi Proses pada Linux......................................170
2. Mengenal Penjadwalan Proses pada Linux......................................173
C. Tugas.......................................................................................174

Praktikum 18 Linux Booting Proses.............................................175


A. Tujuan.....................................................................................175
B. Dasar Teori..............................................................................175
1. PCBoot dan Linux Init Process........................................................175
2. Linux Init Process............................................................................176
3. Prosedur Boot..................................................................................176
4. Linux Run Level.............................................................................178
5. Aktivasi Skrip Init...........................................................................179
6. Skrip Init.........................................................................................181
7. CHKCONFIG.................................................................................184
C. Percobaan................................................................................185
E. Latihan.....................................................................................194

Praktikum 19 Starting UP pada Linux..........................................195


A. Deskripsi.................................................................................195
1. Starting UP......................................................................................195
2. Shutting Down.................................................................................200

xii Daftar
Isi
Praktikum Sistem Operasi xiii

xiii Daftar
Isi
Praktikum Sistem Operasi 1

Praktikum 1
Instalasi Windows 2000 Professional

A.TUJUAN
1. Mampu melakukan instalasi sistem operasi Windows 2000
Professional.
2. Mampu melakukan setting konfigurasi hardware dan sistem
komputer.
3. Mengetahui cara membuat user pada sistem operasi
Windows 2000 Professional.
4. Dapat melakukan setting jaringan lokal.

B.DASAR TEORI
1.Konfigurasi Sistem Komputer
Windows 2000 Professional membutuhkan sumber-
sumber daya yang relatif besar dibandingkan dengan Windows
9x dan Windows NT yang mendahuluinya. Konfigurasi sistem
komputer yang dibutuhkan untuk proses instalasi adalah
sebagai berikut:
Komponen Minimal Disarankan
Windows 95 atau 98
Sistem Operasi Windows NT 4.0
MS DOS
Prosesor Pentium Pentium III
2 GB dengan ruang
Hard disk kosong > 2 GB
minimal 1GB

1
Daftar Isi
Praktikum Sistem Operasi 2

RAM
32 MB 64 MB
(memori)
VGA (True
Display VGA (16 color)
Color)
Peralatan lain CD-ROM, keyboard, mouse
2.Kompatibilitas Hardware dan Software
Windows 2000 Professional dapat mendukung hampir
semua perangkat keras kompatibel dengan Windows 98 dengan Plug
and Play yang dimilikinya. Untuk mengetahui perangkat keras yang
didukung oleh Windows 2000 Professional, tersedia sebuah daftar
dinamakan HCL (Hardware Compatibility List) yang didapatkan
pada www.microsoft.com/hwtesthcl atau pada folder Support
pada CD-ROM Windows 2000 Professional.
Windows
Keistimewaan Windows 98 2000
Plug and Play Ya Ya
Universal Serial Bus (USB) Ya Ya
AGP Port Ya Ya
Driver Signing Ya Ya
Win32 Driver Model (WDM) Ya Ya
Multiprocessor Tidak Ya
Compag Alpha EV4
Tidak Ya
Processor
Sistem file FAT Ya Ya
Sistem file FAT 32 Tidak Ya
Sistem file NTFS Tidak Ya

Windows 2000 Professional juga kompatibel dengan


aplikasi (Software) 32-bit berbasis Windows. Untuk memeriksa
apakah perangkat lunak yang digunakan kompatibel dengan

2
Daftar Isi
Praktikum Sistem Operasi 3

Windows 2000 Professional, dapat dilihat pada alamat


www.microsoft.com/ windows/compatible.
Windows
Keistimewaan Windows 98 2000
Pembatasan sumber daya yang
Ya Tidak
digunakan
16-bit preemtive multitasking Tidak Ya
32-bit preemtive multitasking Ya Ya
Aplikasi Windows 32-bit Ya Ya
Antar muka pemrograman
Subset Ya
(Win32 API)
Mendukung aplikasi MS DOS Ya Sebagian
Mendukung driver MS DOS Ya Tidak
Mendukung aplikasi Windows
Ya Ya
16-bit
Mendukung driver Windows 16-
Ya Tidak
bit
POSIX (Portable OS Interface to
Tidak Ya
UNIX)
Multimedia API (DirectX) Ya Ya

3.Network
Apabila komputer dihubungkan dengan network, harus
ditentukan terlebih dahulu domain atau workgroup tempat komputer
tersebut terhubung. Apabila tidak mengetahuinya, pilihlah pilihan
workgroup dan bergabung ke domain tertentu setelah instalasi
Windows 2000 Professional selesai. Mintalah pada administrator
network untuk membuat account komputer baru pada domain
tersebut.
Informasi yang harus dikumpulkan sebelum memulai proses
instalasi:

3
Daftar Isi
Praktikum Sistem Operasi 4

a. Nama komputer anda


b. Nama domain atau workgroup
c. Alamat TCP/IP jika network anda tidak menggunakan
DHCP
d. Perangkat keras lain misalnya kabel dan network card

4.Jenis Instalasi
Windows 2000 Professional dapat di-install dengan 2 cara:
1. Meng-install baru pada sistem yang kosong
Instalasi baru biasanya dugunakan pada hard disk yang masih
kosong dan belum berisi sistem operasi apapun. Jika komputer
masih menggunakan Windows 3.1 atau OS/2, maka harus
melakukan instalasi baru. Semua program aplikasi harus di-
install ulang setelah proses instalasi selesai.
2. Meng-upgrade dari sistem operasi yang sudah ada
Dengan meng-upgrade atau mengganti sistem operasi Windows
yang sudah ada dengan Windows 2000 Professional, setting dan
program aplikasi yang sudah ada tidak akan terhapus. Tetapi ada
beberapa aplikasi yang tidak kompatibel dengan Windows 2000
Professional dan mungkin tidak akan berjalan pada Windows
2000 Professional setelah proses upgrade. Proses upgrade dapat
dilakukan dari Windows NT 3.51 Workstation, Windows NT
4.0 Workstation.

5.Sistem File
Sebelum meng-install Windows 2000 Professional, harus
ditentukan terlebih dahulu sistem file yang ingin digunakan. Sistem
file ini adalah cara untuk menyimpan informasi dalam hard disk
komputer. Windows 2000 mampu mendukung sistem file berikut
ini:
1. FAT dan FAT 32
FAT 32 adalah peningkatan dari sistem file FAT yang dapat
digunakan pada hard disk mulai dari 512 MB hingga 2 TB.

4
Daftar Isi
Praktikum Sistem Operasi 5

Kelebihan dari FAT dan FAT 32 adalah mereka kompatibel


dengan sistem operasi selain Windows 2000 Professional. Jika
partisi hard disk lebih kecil dari 2 GB atau bila ingin
menggunakan sarana dual-boot, kita gunakan sistem file FAT 32
ini.

2. NTFS
Sistem file ini adalah yang paling disarankan untuk Windows
2000 Professional. NTFS memiliki kemampuan dasar yang
sama dengan sistem file FAT dan memiliki kelebihan seperti:
1. File menjadi lebih aman
2. Kompresi disk menjadi lebih baik
3. Mampu mendukung hard disk lebih besar hingga 2 TB
(TeraByte) tanpa mengurangi kinerja seperti pada FAT.
Gunakanlah NTFS jika partisi hard disk anda lebih besar
dari 32 GB.
NTFS 5 merupakan sistem file NTFS terbaru yang disarankan
untuk digunakan pada Windows 2000 Professional. NTFS 5
mempunyai semua kemampuan FAT32 dan beberapa
kemampuan tambahan seperti keamanan, kompresi data, serta
mendukung file dan partisi yang sangat besar. Kelemahan dari
sistem file ini, hanya Windows 2000 Professional dan Windows
NT Workstation 4.0 yang mendukung NTFS 5 dan tidak bisa
dikenali oleh sistem operasi lain seperti Windows 9x dan
Windows 3x.

6.User Account
Untuk membuat user account perlu ditentukan group
keanggotaannya. Group akan menentukan permission untuk
melakukan beberapa task pada Windows 2000 Professional. Sebagai
contoh, apabila anggota dari Users Group, kita dapat membuat
dokumen tetapi tidak dapat meng-install program atau mengubah
sistem file dan setting.

5
Daftar Isi
Praktikum Sistem Operasi 6

User account selalu diasosiasikan dengan group. Pada


Windwos 2000 Professional terdapat beberapa group yaitu:
1. Administators
a. Power Users
b. Users
c. Guests
Keanggotaan group menentukan apakah dapat
mengakses file, folder, dan program pada komputer. Pada
banyak kasus, menambah user account ke Power User group
memberikan keluasan untuk menyelesaikan task yang biasa
digunakan, termasuk program dan menyimpan dokumen.
Permission dan task dari group adalah sebagai berikut:
Power User Gues
Uraian Administrator User s t
Membuat user

account
Mengubah sistem

file
Membaca file

user account lain
Menambah atau
menghapus √
hardware
Mengubah
password user √
account lain
Mengubah setting
√ √
sistem
Install semua

program
Install sebagian

besar program

6
Daftar Isi
Praktikum Sistem Operasi 7

Power User Gues


Uraian Administrator User s t
Menyimpan √ √
√ √
dokumen
Menggunakan √ √
√ √
program instalasi
Mengubah
password user √ √ √ √
account sendiri

C.LANGKAH PERCOBAAN
PARTISI DAN FORMAT DISK
a. Masukkan CD instalasi, lakukan booting dari CD.
b. Hapus semua partisi yang ada dan bentuklah partisi baru
dengan ukuran 5000 MByte.
c. Lakukan format hard disk untuk partisi baru tersebut.
d. Setelah proses format hard disk selesai, secara otomatis
Windows 2000 Professional akan reboot.

SETTING WINDOWS 2000 PROFESSIONAL


a. Setelah reboot, biarkan sistem melakukan booting malalui
hard disk. Pada halaman Welcome to the Windows Setup
Wizard, pilih Install a new copy if Windows 2000 (Clean
Install) dan klik Next.
b. Pada halaman License Agreement, klik I accept this
agreement, dan klik Next untuk melanjutkan.
c. Pada halaman Select Special Options, atur Setup Windows
2000 Professional, bahasa, dan setting aksesbilitas, klik salah
satu pilihan berikut (bila diperlukan):

7
Daftar Isi
Praktikum Sistem Operasi 8

1. Klik Language Options untuk memilih bahasa dan daerah


yang digunakan. Juga dapat digunakan untuk memilih
karakter tambahan untuk di-install.
2. Klik Advanced Options untuk menentukan lokasi dari
source file untuk instalasi dan folder tempat instalasi. Juga
dapat digunakan untuk menentukan bahwa akan meng-copy
semua file Setup ke hard disk dan menentukan drive
instalasi selama proses Setup.
3. Klik Accessibility Options untuk memilih apakah
menggunakan Magnifier (untuk membesarkan Setup screen)
atau Narrator (untuk membaca teks pada screen) selama
proses Setup. Kilk OK.

Kemudian klik Next untuk melanjutkan.


d. Apabila muncul halaman Upgrading to the Windows 2000
NTFS File System, pilih apakah akan meng-upgrade drive ke
sistem file NTFS. Apabila tidak yakin, kilik No, do not
upgrade my drive. Klik Next untuk melanjutkan.
e. Pada screen Welcome to Setup, tekan ENTER untuk setup
Windows 2000 Professional.
f. Pada daftar partisi yang sudah ada (existing), pilih disk atau
partisi dimana akan melakukan Setup untuk meng-install
Windows 2000 Professional dan kemudian tekan ESC.
g. Bila Setup mendeteksi sistem opersi pada partisi yang
dipilih, tekan C untuk mengonfirmasikan instalasi pada partisi
tersebut atau tekan ESC untuk memilih partisi lain. Kemudian
Setup menampilkan partisi instalasi dan terdapat pilihan untuk
mem-format partisi sebagai FAT atau NTFS. Pilih Leave the
current file system intact (no changes) dan kemudian tekan
ENTER. Tekan F untuk format disk atau ESC untuk memilih
partisi yang lain. Setup mem-format dan menghapus semua data
pada disk, meng-copy file dan kemudian restart komputer.
h. Pada halaman Installing Devices, klik Next untuk
melanjutkan.

8
Daftar Isi
Praktikum Sistem Operasi 9

i. Pada halaman Regional Setting, dapat dilakukan perubahan


sistem, user locale dan keyboard layout setting untuk daerah dan
bahasa yang berbeda. Klik Next untuk melanjutkan.
j. Pada halaman Personalize Your Software, enter nama
anda dan nama perusahaan. Klik Next untuk melanjutkan.
Name: LabProgram
Company Name: PCR
k. Pada halaman Your Product Key, masukkan product key
yang tertera pada CD dan klik Next untuk melanjutkan.
l. Pada halaman Computer Name and Administrator
Password, tuliskan:
Computer Name: wksXX(XX: nomor IP - 60 s/d
76)
Workgroup: LabProgram
Administrator Password: 123456
Klik Next untuk melanjutkan.
m. Pada halaman Date and Tine Settings, tentukan tanggal
dan waktu daerah, klik time zone yang tepat. Klik Next untuk
melanjutkan.
n. Pada halaman Networking Settings, setup instalasi
komponen jaringan. Klik Typical setting untuk konfigurasi
otomatis network client, service, dan protocol. Klik Next untuk
melanjutkan.
o. Pada halaman Workgroup or Computer Domain,
tentukan apakah komputer menjadi bagian dari workgroup atau
domain. Apabila tidak, klik No atau klik Next untuk
melanjutkan. Jika klik Yes, masukkan nama domain pada
workgroup or computer domain, dan klik Next untuk
melanjutkan. Pada dialog box yang muncul, berikan user
account yang valid dan password, kemudian klik OK.
p. Pada halaman Completing the Windows 2000 Setup
Wizard, keluarkan CD dan kemudian klik Finish. Komputer
akan restart dan anda dapat memulai untuk log on sebagai
Administrator.

9
Daftar Isi
Praktikum Sistem Operasi 10

IDENTIFIKASI JARINGAN
1. Pada halaman Welcome to the Network Identification
Wizard, klik Next.
1. Pada halaman Connecting to the Network, pilihlah This
computer is part of a business network dan tentukan apakah
network menggunakan domain dan kemudian kilik Next.
1. Bila dipilih My company uses a network with a domain,
pada halaman Network Information, berikan informasi user
name, password, user account domain, computer name, dan
computer domain. Klik Next untuk melanjutkannya. Pada
halaman User Account and Domain Information,
masukkan user name, password dan domain. Klik Next dan
kemudian klik Finish.
User name: student
Password: student
2. Bila dipilih My company uses a network without a
domain pada halaman Workgroup, tentukan nama dari
workgroup untuk komputer. Klik Next dan kemudian klik
Finish.
2. Pada halaman Users of This Computer, klik Users must
enter a user name and password to use this computer. Klik
Next untuk melanjutkan. Atau pilih Windows always assumes
the following user has logged on to this computer.
3. Klik Finish.

MEMBUAT USER ACCOUNT


1. Log on sebagai administrator.
2. Klik tombol Start, pilih Settings, klik Control Panel dan
kemudian double click Users and Passwords.
3. Pada tab User, klik Add.
4. Pada User Name, tulis nama user, seperti “student”. Pada
Full name, tulis full name seperti “studentXX”(XX: nomor IP).

10
Daftar Isi
Praktikum Sistem Operasi 11

Pada Description, tulis deskripsi seperti “Praktikum Sistem


Operasi”.
5. Klik Next.
6. Pada Password, tuliskan password: “student” dan kemudian
Confirm password, tuliskan kembali password di atas.
7. Klik Next.
8. Pilihlah Standard user (apabila membuat user account
sebagai Power User group).
9. Klik OK.
10. Log off sebagai administrator dan Log on menggunakan
user account “student”.

SETTING INTERNET PROTOCOL


a. Klik Start, pilih Settings, klik Network and Dial-up
Connection dan kemudian pilih Local Area Connection, klik
kanan Mouse, klik Properties.
b. Pilih Internet Protocol (TCP/IP) dan klik Properties.
c. Pilih Use the following IP address dan masukkan nomor-
nomor di bawah ini:
IP address: 10.252.9.XX (XX: 60 s/d 76)
Subnet mask: 255.255.248.0
Default gateway: 10.252.8.3

d. Pilih Use the following DNS server address dengan


Preferred DNS server: 202.95.151.132

SETTING INTERNET

11
Daftar Isi
Praktikum Sistem Operasi 12

a. Klik Start, pilih Settings, klik Network and Dial-up


Connection dan kemudian double-click Make New
Connection. Jika belum setup dialing rule, akan muncul dialog
box Location Information. Isilah informasi yang diperlukan
sebelum melanjutkan.
b. Pada Network Connection Wizard, klik Next.
c. Klik Dial-up to the internet, dan kemudian klik Next.
d. Pilih I want to set up my Internet connection manually,
or I want to connect through a local area network (LAN) dan
kemudian klik Next.
e. Pilih I connect through a local area network (LAN) dan
kemudian klik Next.
f. Pilih Automatic discovery or proxy server
[recommended] dan kemudian klik Next.
g. Pilih No pada email account dan klik Next.
h. Klik Finish.

D.LATIHAN
1. Buatlah sebuah user account nama anda dan password.
Pilihlah Power User dan cobalah untuk log on dengan user
account yang anda buat.
4. Cobalah untuk membuat alamat email pada free email
website misalnya yahoo, hotmail, dan lain-lain. Masukkan
alamat email anda pada Windows explorer.

12
Daftar Isi
Praktikum Sistem Operasi 13

Praktikum 2
Instalasi RedHat Linux

A.TUJUAN
a. Mampu melakukan instalasi sistem operasi RedHat Linux
7.0
b. Mampu melakukan setting konfigurasi hardware dan sistem
komputer
c. Mengetahui cara membuat user pada sistem operasi RedHat
Linux 7.0
d. Dapat melakukan setting jaringan local

13
Daftar Isi
Praktikum Sistem Operasi 14

B. DASAR TEORI
1.Konfigurasi Sistem Komputer
Sebelum memulai instalasi RedHat Linux 7.0, perhatikan
konfigurasi sistem komputer yang ada untuk memudahkan proses
instalasi, contohnya:
1. Tipe, label, ukuran hard disk drive, contoh: IDE hda
= 1.2 G
2. Peta partisi dan mount point, contoh
/dev/hda1=/home
/dev/hda2=/
3. Jumlah RAM yang di-install pada sistem, contoh: 64
MB, 128 MB
4. Tipe interface CD ROM, contoh SCSI, IDE
(ATAPI)
5. Apabila tersedia SCSI adapter, buatan dan nomer
model, contoh: BusLogic SCSI Adapter, Adaptec 2940UW
6. Apabila tersedia Network Card buatan dan nomer
model, contoh: Tulip, 3COM 3C590
7. Tipe, protokol, dan jumlah tombol mouse, contoh:
generic 3 button PS/2 mouse, MouseMan 2 button serial mouse
8. Buatan, model, dan spesifikasi manufaktur monitor,
contoh: Optiquest Q53, ViewSonic G773
9. Buatan, nomer model, dan ukuran VRAM Video
Card, contoh: Creative Labs Graphics Blaster 3D, 8 MB
10. Buatan, chipset, dan nomer model Sound Card,
contoh S3 SonicVibes, SoundBlaster 32/64 AWE
11. IP address : 10.252.9.XX (XX: 60 s/d 76)
12. Netmask : 255.255.248.0
13. Gateway : 10.252.8.3
14. Domain Name Server (DNS): 202.95.151.132

14
Daftar Isi
Praktikum Sistem Operasi 15

15. Nama domain (nama untuk organisasi komputer):


labprogram.com
16. Hostname (nama dari komputer): wksXX

2.Antar Muka Program Instalasi


Untuk melakukan proses instalasi, kita bisa menggunakan
graphical user interface (GUI) atau dengan menggunakan mode teks.
Secara default, proses instalasi menggunakan antar muka grafis
(GUI), tetapi apabila kita ingin menggunakan mode teks, pada boot
command kita tuliskan:
boot: text

3.Virtual Console
Pada program instalasi RedHat Linux, terdapat 5 virtual
console yang memungkinkan untuk menuliskan perintah dari shell
prompt, yang bisa dipindahkan menggunakan sebuah key.
Virtual console sangat membantu saat menemui
masalah selama instalasi RedHat Linux. Console, keystroke,
dan content dapat dilihat pada tabel di bawah ini:
Consol
e Keystrokes Isi
[Ctrl]-[Alt]-
1 Instalation dialog
[F1]
[Ctrl]-[Alt]-
2 Shell prompt
[F2]
[Ctrl]-[Alt]-
3 Install log (pesan dari
[F3]
[Ctrl]-[Alt]- System-related
4
[F4] message
[Ctrl]-[Alt]-
5 Other message
[F5]

15
Daftar Isi
Praktikum Sistem Operasi 16

Consol
e Keystrokes Isi
[Ctrl]-[Alt]-
7 X graphical display
[F7]

4.Memulai Program Instalasi


Untuk memulai instalasi, pertama kali kita harus melakukan
booting program instalasi. Langkah-langkah melakukan booting
adalah sebagai berikut:
a. Masukkan boot disk ke dalam disk drive pertama dan reboot.
Pastikan urutkan booting pada setting BIOS adalah A, C
(floppy drive [A] lebih dahulu baru hard disk [C]).
b. Setelah beberapa saat, screen akan tampil prompt boot: .
Apabila kita tidak mengetikkan apapun dalam menit pertama
instalasi program akan dimulai secara otomatis. Biasanya,
kita hanya perlu menekan [Enter] untuk melakukan booting.
Lihat pesan booting untuk melihat apakah kernel Linux
mendeteksi hardware. Apabila tidak berhasil mendeteksi
hardware, maka kita perlu mengulang instalasi dengan mode
“expert”. Tetapi apabila hardware berhasil dideteksi, kita
bisa melanjutkan ke bagian selanjutnya.
Cara lain memulai instalasi tanpa menggunakan boot disk
adalah menggunakan MS-DOS. Metode ini hanya khusus untuk
komputer berbasis Intel. Misalnya CD-ROM berada pada drive d:,
maka ikuti perintah berikut:
C:\> d:
D:\> cd \dosutils
D:\dosutils> autoboot.bat
5.Master Boot Record
Pada sebuah PC, kita dapat melakukan instalasi untuk dua
sistem operasi, yaitu Windows dan Linux. Master Boot Record
(MBR) adalah daerah khusus pada harddrive yang secara otomatis
di-load oleh BIOS komputer dan LILO mengontrol proses boot.
Apabila kita melakukan instalasi LILO pada MBR, pada saat

16
Daftar Isi
Praktikum Sistem Operasi 17

komputer melakukan booting, LILO akan menampilkan prompt


boot.

C.LANGKAH PERCOBAAN
a. Booting komputer, masukkan CD instalasi RedHat Linux
7.0.
b. Pada halaman Language Selection, pilih bahasa yang
digunakan selama instalasi dan sebagai sistem default.
Pemilihan bahasa yang sesuai akan membantu target dari
konfigurasi time zone pada instalasi selanjutnya. Program
instalasi akan mencoba mendefinisikan time zone yang sesuai
dengan spesifikasi yang dipilih. Tekan Next untuk melanjutkan.
c. Pada halaman Keyboard Configuration, pilihlah model
keyboard yang cocok untuk sistem, tipe layout yang benar untuk
keyboard (contoh: U.S. English) dan untuk membuat karakter
spesial dengan multiple keystroke (misalnya Ñ, Ô, dan Ç) bisa
dilakukan dengan menggunakan “dead key”. Secara default
dead key dimungkinkan. Apabila kita tidak ingin
menggunakannya, pilihlah Disable dead keys. Untuk mencoba
konfigurasi keyboard, gunakan field teks kosong di bawah
screen untuk memasukkan teks. Tekan Next untuk melanjutkan.
d. Pada halaman Mouse Configuration, pilihlah tipe mouse
yang benar untuk sistem. Tekan Next untuk melanjutkan.
e. Pada halaman Welcome to RedHat Linux, apabila ingin
membaca help teks dapat menekan tombol Hide Help pada kiri
bawah screen. Tekan Next untuk melanjutkan.
f. Pada halaman Install Options, terdapat pilihan tipe instalasi
yang terdiri dari Workstation, Server, Custom, atau Upgrade.
Kita akan install workstation. Tekan Next untuk melanjutkan.
g. Pada halaman Automatic Partitioning, pilihlah Manually
partition with Disk Druid Tekan Next untuk melanjutkan.
h. Pada halaman Partitions, buatlah beberapa partisi baru, yaitu:
- Partisi swap (paling sedikit 16 MB). Partisi swap digunakan
untuk mendukung virtual memory. Dengan kata lain, data

17
Daftar Isi
Praktikum Sistem Operasi 18

ditulis ke partisi swap apabila tidak terdapat cukup RAM


untuk meletakkan data selama sistem diproses.

<swap> hda5 128M 128M Linux swap


- Partisi /boot (maksimum 16 MB), berisi kernel sistem
operasi (yang memungkinkan sistem melakukan booting
pada RedHat Linux), selama file digunakan saat proses
bootstrap.
/boot hda1 16M 17M Linux native
- Partisi root (900 MB - 1.7 GB) merupakan tempat direktori
root berada. Pada setup, semua file (kecuali yang dikirim
pada /boot) berada pada partisi root. Partisi root 900 MB
diijinkan untuk instalasi workstation, sedangkan 1.7 GB
partisi root digunakan apabila kita meng-install semua paket
pada RedHat Linux. Pada Disk Druid, partisi / terlihat
seperti di bawah ini.
/ hda6 1M 1866M Linux native

Tekan Next untuk melanjutkan.


i. Pada halaman Choose Partitions to Format, pilihlah partisi
yang akan diformat. Tekan Next untuk melanjutkan.
j. Pada halaman Network Configuration, pilihlah Activate on
boot dan isikan IP address, Netmask, Network Broadcast,
Hostname, Gateway, dan Primary DNS. Tekan Next untuk
melanjutkan.
k. Pada halaman Time Zone Configuration¸setting zona
waktu berdasarkan lokasi fisik komputer atau berdasarkan
Universal Coordinate Time (UTC). Anda dapat klik pada titik
zona yang diinginkan. Tekan Next untuk melanjutkan.
l. Pada halaman Account Configuration, isilah password root
2 kali dan buatlah user account baru.
Root password : 123456
Account name : student

18
Daftar Isi
Praktikum Sistem Operasi 19

Password : student
Tekan Next untuk melanjutkan.
m. Pada halaman Selecting Package Groups, pilihlah paket
yang akan di-install: GNOME, KDE, atau Games. Apabila akan
memilih individual package, klik pada Select Individual
Packages. Tekan Next untuk melanjutkan.
n. Pada halaman About to Install¸ tekan Next untuk memulai
instalasi.
o. Setelah proses instalasi selesai akan ditampilkan halaman
Boot Disk Creation, klik pada Skip boot disk creation apabila
kita tidak akan membuat boot disk. Tekan Next untuk
melanjutkan.
p. Tekan Exit yang berarti instalasi selesai.

UPGRADE SISTEM
1. Pada halaman Install Options, pilihlah Upgrade. Tekan Next
untuk melanjutkan.
2. Pada halaman LILO Configuration¸pilihlah Install LILO boot
record on: MBR. tekan Next untuk melanjutkan.
3. Setelah itu akan dilakukan proses instalasi upgrading dan tekan
Exit yang berarti instalasi selesai.

LOG ON MENGGUNAKAN ROOT


1. Setelah komputer restart, masuklah ke sistem operasi Linux.
2. Log on sebagai root dan masukkan password.

SETTING LILO
o Masuk ke Linux Configuration atau ketik pada prompt #
linuxconf.

19
Daftar Isi
Praktikum Sistem Operasi 20

o Pilihlah Lilo pada menu dan pilihlah menu untuk menambah


sistem operasi lain.
o Ketikkan pada Label: Win2000 pada partisi /dev/hda1 untuk
menampilkan pilihan sistem operasi Windows 2000 pada
MBR.
o Aktifkan perubahan dan keluar dari linuxconf
o Restart komputer dengan perintah # shutdown -r now.
o Perhatikan bahwa pada awal booting akan ditampilkan menu
pilihan untuk masuk ke sistem operasi Windows 2000 atau
Linux.
o Cobalah untuk masuk ke sistem operasi Windows 2000.
o Restart komputer kembali

LOG ON MENGGUNAKAN USER ACCOUNT


o Setelah komputer restart dan muncul menu untuk memilih
sistem operasi Windows atau Linux, pilih Linux.
o Log on sebagai user account student dan masukkan
password.

D.LATIHAN
o Buatlah sebuah user account nama anda dan password
dengan menggunakan perintah linuxconf.
o Cobalah untuk melakukan telnet dengan komputer lain
dengan perintah telnet [ IP Address ]

20
Daftar Isi
Praktikum Sistem Operasi 21

Praktikum 3
Perintah-Perintah Dasar Pada
Sistem Operasi Linux

A.TUJUAN
a. Menggunakan perintah-perintah dasar untuk
informasi user
b. Mengenal format instruksi pada sistem operasi
Linux
c. Menggunakan perintah-perintah dasar pada sistem
operasi Linux
d. Mempelajari utilitas dasar pada sistem operasi Linux

B.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 bash
maka pada proses Login akan mengeksekusi program /etc/profile
(untuk semua pemakai) dan file .bash_profile di direktori awal
(HOME) masing-masing.

21
Daftar Isi
Praktikum Sistem Operasi 22

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 on-line. Beberapa kunci
keyboard yang penting dalam menggunakan manual adalah:
q untuk keluar dari program man
<Spasi> ke bawah, per halaman
b kembali ke atas, 1 halaman
/teks mencari teks (string)
n meneruskan pencarian string sebelumnya

Manual dibagi atas Bab-bab sebagai berikut:

22
Daftar Isi
Praktikum Sistem Operasi 23

Ba
b Isi
1 User commands
2 System calls
3 Library calls
4 Devices
5 File formats
6 Games
7 Miscellaneous
System
8
commands
9 Kernel internal
N Tcl/Tk command

C.LANGKAH-LANGKAH
1. Hidupkan komputer: tekan tombol POWER pada CPU dan
tekan tombol POWER pada monitornya.
2. Masuk ke sistem operasi Linux.
3. Tunggu sampai ada perintah login untuk mengisi nama user
dan perintah password untuk mengisi password dari user.
a. Nama user diisi dengan studentX (X: diisi 1 atau 2)
b. Password diisi dengan studentX
4. Untuk keluar dari sistem gunakan perintah logout atau exit.
5. Gunakan perintah-perintah untuk informasi user:
id, hostname, uname, w, who, whoami, chfn, finger
6. Gunakan perintah-perintah dasar (basic command):
date, cal, man, clear, apropos, whatis
7. Gunakan perintah-perintah dasar untuk manipulasi file:
23
Daftar Isi
Praktikum Sistem Operasi 24

ls, file, cat, more, cp, mv, rm, grep

D. PERCOBAAN
Percobaan 1:
Melihat identitas diri (nomor id dan group id)
[studentX@localhost studentX]$ id
Percobaan 2:
Mengganti prompt dengan “$”
[studentX@localhost studentX]$ PS1=“$”

Percobaan 3:
Melihat tanggal dan kalender dari sistem
1. Melihat tanggal saat ini
$ date
2. Melihat kalender
$ cal 9 2003
$ cal -y

Percobaan 4:
Melihat identitas mesin
$ hostname
$ uname
$ uname -a

Percobaan 5:
Melihat siapa yang sedang aktif
1. Mengetahui siapa saja yang sedang aktif

24
Daftar Isi
Praktikum Sistem Operasi 25

$w
$ who
$ whoami

2. Mengubah informasi finger


$ chfn studentX
Changing finger information for studentX.
Password:
Name [Student1]: <Nama Pengguna>
Office []: Lab Program
Office Phone []: 170
Home Phone []: 5947280
Finger information changed.

3. Melihat informasi finger


$ finger
$ finger studentX

Percobaan 6:
Menggunakan manual
$ man ls
$ man man
$ man -k file
$ man 5 passwd

Percobaan 7:
Menghapus layar

25
Daftar Isi
Praktikum Sistem Operasi 26

$ clear

Percobaan 8:
Mencari perintah yang deskripsinya mengandung kata kunci yang
dicari
$ apropos date
$ apropos mail
$ apropos telnet

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

Percobaan 10:
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 /

26
Daftar Isi
Praktikum Sistem Operasi 27

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 ^c.
$ ls -R /usr

Percobaan 11:
Melihat tipe file
$ file
$ file *
$ file /*
$ file /bin/ls

Percobaan 12:
Menyalin file
1. Mengkopi suatu file. Berikan opsi -i untuk pertanyaan interaktif
bila file sudah ada.
$ cp /etc/group f1
$ ls -l
$ cp -i f1 f2

27
Daftar Isi
Praktikum Sistem Operasi 28

2. Mengkopi ke direktori.
$ mkdir backup
$ cp f1 f3
$ cp f1 f2 f3 backup
$ ls backup
$ cd backup
$ ls

Percobaan 13:
Melihat isi file
1. Menggunakan instruksi cat
$ cat f1
2. Menampilkan file per satu layar penuh
$ more f1

Percobaan 14:
Mengubah nama file
1. Menggunakan instruksi mv
$ cd
$ 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
$ cp prog.txt f1
$ mv f1 f2 f3 mydir

28
Daftar Isi
Praktikum Sistem Operasi 29

Percobaan 15:
Menghapus file
$ cp mydir/f1 f1
$ cp mydir/f2 f2
$ rm f1
$ rm -i f2

Percobaan 16:
Mencari kata/kalimat dalam file
$ grep root /etc/passwd
$ grep “:0:” /etc/passwd
$ grep student /etc/passwd

E. LATIHAN
Praktikum 4 Ubahlah informasi finger pada komputer
anda.
1. Lihatlah user-user yang sedang aktif pada komputer anda.
2. Perintah apa yang digunakan untuk melihat kalender satu
tahun penuh?
3. Bagaimana anda dapat melihat manual dari perintah cal?
4. Bagaimana melihat perintah manual ls dengan kata kunci
sort?
5. Berikan contoh menggunakan manual untuk bab user
command.
6. Tampilkan semua file termasuk yang hidden file pada
diretktori /etc.
7. Tampilkan semua file secara lengkap pada direktori /etc.

29
Daftar Isi
Praktikum Sistem Operasi 30

8. Buatlah direktori prak1 pada direktori aktif, kemudian copy-


kan file /etc/group ke file tes1, tes2, dan tes3 pada direktori
ini.
9. Tampilkan isi file tes1 per satu layar penuh.
10. Pindahkan file tes1 dan tes2 ke direktori home.
11. Hapus file tes1 dan tes2 dengan konfirmasi.

Praktikum 5
Shell Pada Sistem Operasi Linux
dan Editor vi

A.TUJUAN
1. Menggunakan shell pada sistem operasi Linux.
2. Menggunakan pipeline, regular expression, dan redirection.
3. Menggunakan teks editor vi, dan mengerti fungsi dari tiap
kunci yang ada dalam teks editor ini.

B.DASAR TEORI
1.Pipeline
Pada Linux, hasil keluaran suatu proses program dapat
diberikan sebagai input pada proses lainnya. Tanda vertical bar (|)
adalah tanda yang digunakan untuk pipeline. Penggunaan pipeline
pada perintah-perintah Linux tidak terbatas.

30
Daftar Isi
Praktikum Sistem Operasi 31

2.Regular Expression
Regular expression adalah cara untuk menentukan sebuah
pola karakter untuk pencarian dan penfilteran. Dengan regular
expression, kita tidak harus menentukan pola karakter yang eksak.
Untuk menggunakan regular expression, kita harus
mengenal karakter khusus yang memiliki arti tersendiri jika
digunakan di dalam pola regular expression.
Karakte
r Arti
. Cocok dengan sebarang satu karakter
* Cocok dengan sebarang lebih dari satu karakter
^ Cocok dengan awal baris
$ Cocok dengan akhir baris
\< Cocok dengan awal kata
\> Cocok dengan akhir kata
Cocok dengan salah satu karakter yang terdapat di
[]
dalam kurung siku
Cocok dengan salah satu karakter yang tidak terdapat
[^]
pada kurung siku
\ Karakter selanjutnya akan dianggap literal

3.Redirection
Pada UNIX terdapat istilah standard input, standard output,
dan standard error. Standard input adalah masukkan atau input
standar dari suatu perintah atau program. Input standar ini adalah
keyboard. Standard output adalah keluaran atau output standar dari
suatu perintah atau program. Output standar ini adalah layar monitor
atau terminal. Standard error adalah keluaran atau output standar
jika pada program atau perintah terjadi error. Keluaran ini berupa
pesan-pesan kesalahan yang berguna bagi pembuat program atau
orang lain yang membutuhkan. Standar error biasanya adalah layar
console.

31
Daftar Isi
Praktikum Sistem Operasi 32

Pada UNIX pula, kita dapat membelok-belokan standar


input, standar output, dan standar error menuju ke tujuan lain.
Misalnya membelokkan standar output suatu program ke file atau
membelokkan standar input suatu program dari suatu file.
Proses pembelokkan ini disebut redirection dan
menggunakan symbol > (membelokkan standar output ke file) dan <
(membelokkan standar input dari file).

4.Pengeditan Perintah
Dengan bash shell, kita dapat mengedit suatu baris perintah
cukup dengan tombol panah kiri dan panah kanan pada keyboard.
Setelah selesai mengedit, kita dapat langsung menekan tombol
[ENTER] untuk menjalankan perintah.

5.History
Dengan bash shell, kita dapat memanggil kembali perintah-
perintah yang pernah diketikkan sebelumnya dengan menggunkan
tombol panah atas dan tombol panah bawah pada keyboard. Setelah
menemukan perintah yang dimaksud, kita dapat langsung menekan
tombol [ENTER] untuk menjalankan perintah ini.

6.Editor vi
vi adalah full screen editor, artinya editor tersebut dapat
memanfaatkan fasilitas satu layar penuh. vi mempunyai dua buah
modus, yaitu:
Command line
Editor vi menginterprestasikan input sebagai instruksi untuk
dieksekusi oleh editor, contoh seperti mencari teks, mengganti
teks secara otomatis dan lainnya.

Editing

32
Daftar Isi
Praktikum Sistem Operasi 33

Editing vi menginterprestasikan 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
Pindah
H kur Pindah kursor ke kiri satu karakter
J Pindah kursor ke kanan satu karakter
K Pindah kursor ke atas
L Pindah kursor ke bawah

O Menyimpan teks (satu baris setelah posisi Untuk keluar dari 5


kursor) model kunci insert
di samping ini dan
I Menyisipkan teks (di sebelah kiri posisi kursor)
mengaktifkan kunci-
A Menyisipkan teks (di sebelah kanan posisi kunci lain, maka
kursor) kita harus menekan
tombol Esc terlebih
I (shift i) Menyisipkan teks (di posisi awal baris)
dahulu.
A (shift a) Menyisipkan teks (di posisi akhir baris)

x Menghapus 1 huruf (di sebelah kanan posisi kursor)


dw Menghapus 1 kata (di sebelah kanan posisi kursor)
dd Menghapus 1 baris (di sebelah kanan posisi kursor)

33
Daftar Isi
Praktikum Sistem Operasi 34

Kunci Keterangan
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 kalimat lain
cc Mengganti 1 baris yang telah ditulis di sebelah kanan posisi kursor
dengan kalimat lain
ctrl-b Mundur satu langkah
ctrl-f Maju satu langkah
ctrl-d Maju setengah layer
b Menggerakkan kursor ke kiri satu kata
w Menggerakkan 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
:se nu Menampilkan nomor baris pada kiri layar

34
Daftar Isi
Praktikum Sistem Operasi 35

Kunci Keterangan
/string Mencari string kearah depan
?string Mencari string kearah belakang
n Meneruskan pencarian untuk arah yang sama
N Meneruskan pencarian untuk arah yang berbeda

C.LANGKAH-LANGKAH
1. Masuk ke sistem operasi Linux
2. Login sebagai studentX
3. Gunakan perintah-perintah pada shell: , , wildcard,
pipeline, redirection.
4. Gunakan editor vi untuk percobaan 5.

D.PERCOBAAN
Percobaan 1:
Menggunakan pipeline
$ ls -l /etc | more
$ ls -l /etc | sort | more

Percobaan 2:
Mengulang perintah sebelum atau sesudah
1. Gunakan tombol untuk mengulang perintah sebelumnya,
maka didapatkan hasil sebagai berikut:
$ ls -l /etc | more
2. Gunakan tombol untuk mengulang perintah
sesudahnya, maka didapatkan hasil sebagai berikut:

35
Daftar Isi
Praktikum Sistem Operasi 36

$ ls -l /etc | sort | more

Percobaan 3:
Menggunakan reguler expression
1. Tanda * digunakan untuk mencocokkan sejumlah karakter dengan
panjang bebas.
$ cd
$ touch contoh1 contoh2 contoh3
$ ls
$ ls c*
$ rm c*
$ ls c*

2. Tanda ? digunakan untuk mencocokkan dengan


karakter sebanyak jumlah karakter ?
$ touch cth1 cth2 cth3
$ ls
$ ls cth?
$ rm cth?
$ ls cth?

3. Tanda [ ] digunakan untuk mencocokkan sebarang


karakter tunggal yang terdapat dalam tanda kurung siku.
$ touch cth4 cth5 cth6
$ ls
$ rm cth[456]
$ ls

36
Daftar Isi
Praktikum Sistem Operasi 37

4. Tanda [ - ] digunakan untuk mencocokkan sebarang


karakter tunggal yang terdapat diantara tanda [ - ] dan
sesudahnya.
$ touch cth7 cth8 cth9
$ ls
$ rm cth[7-9]
$ ls

Percobaan 4:
Menggunakan redirection
1. Menyalin suatu file teks dengan menggunakan perintah cat.
$ cat > tes1
Baris pertama dari file tes1
Baris kedua dari file tes1
A
B
.
.
[lanjutkan]
^D
$ cat tes1
$ cat tes1 > tes2
$ ls
$ cat tes2

2. Menggabungkan suatu file teks dengan menggunakan perintah


cat.

37
Daftar Isi
Praktikum Sistem Operasi 38

$ cat tes1 >> tes2


$ cat tes2

3. Menggabungkan beberapa file teks dengan


mmenggunakan perintah cat.
$ cat > tes2
Baris pertama dari file tes2
Baris kedua dari file tes2
^D
$ cat tes1 tes2 > tes3
$ ls
$ cat tes3
$ cat tes1 tes2 >> tes3

4. Mengurut file teks


$ sort < tes3
$ sort < tes3 > tes4
$ cat tes4

Percobaan 5:
Menggunakan vi
1. Memulai vi
$ vi latihan
2. Sisipkan teks sebagai awal dari editing.
iKalimat pertama<CR>
Kalimat kedua<CR>
Kalimat ketiga<Esc>

38
Daftar Isi
Praktikum Sistem Operasi 39

3. Sisipkan judul pada awal kalimat pertama. Gunalan kursor


arrows-key ke baris pertama. Sisipkan dengan O.
Olatihan dengan vi<CR>
<CR><Esc>
4. Sisipkan pada “kalimat kedua” dengan kata “yang” di tengah
kedua kata tersebut.
5. Sisipkan kata pada awal baris kedua. Arahkan
kursor ke awal baris dengan tanda ^ kemudian i untuk insert dan
tulis “Ini adalah”.
6. Arahkan kursor pada huruf p, lalu gunakan tombol
R untuk mengganti huruf dengan huruf yang diketik sampai
<Esc> ditekan.
Rawal yang ditulis<Esc>
7. Arahkan kursor ke depan kata “Kalimat” (huruf K),
kemudian gunakan instruksi cw, setelah itu tulis “Baris“.
cwBaris
8. Hasil yang diperoleh harusnya:
Latihan dengan vi

Baris awal yang ditulis


Ini adalah Kalimat yang kedua
Kalimat yang ketiga
~
~

E.LATIHAN
1. Lihat semua file dan direktori /usr per
halaman
2. Lihat semua file dan dan direktori /usr
dan carilah file yang mengandung kata “passwd”

39
Daftar Isi
Praktikum Sistem Operasi 40

3. Daftar file dari direktori / masukkan ke


dalam file xx1.
4. Daftar file dari direktori /usr masukkan
ke dalam file xx2.
5. Daftar file dari direktori /bin masukkan
ke dalam file xx3.
6. Beberapa daftar file dari direktori /usr
masukkan kedalam file xx4.
7. Gabunglah file xx1 dengan file xx2
dengan menggunakan perintah cat.
8. Gabunglah file xx2 dengan file xx3
dengan menggunakan perintah cat.
9. Siapkan file latihan dengan isi sebagai
berikut:
Latihan dengan vi

Baris awal yang ditulis


Ini adalah kalimat yang kedua
Kalimat yang ketiga
a. Hapus baris ke 2 dengan perintah dd
b. Hapus 3 baris sekaligus dengan perintah 3dd
c. Batalkan penghapusan tersebut dengan u (undo)

10. Ketikkan teks di bawah ini dengan


menggunakan teks editor vi. Simpanlah dengan nama teks.txt.
Gunakan kunci-kunci vi.

Happiness doesn’t always go with money.


It often happens that success comes after many failures.
I quite agree, though I never thought of this before.

40
Daftar Isi
Praktikum Sistem Operasi 41

I’m very happy that you health is showing sign of improvement.


All I want is some peace and quiet.
We have visited this island year in year out and we never get
bored.
Everyone but myself, I said; to everyone else this be clear, but
not to me.
While I understand what you say, I can’t agree with you.
It gives me pleasure to see you looking happy.
He has been able to tell us more about computer than anyone
can do.
Gunakan perintah di bawah ini untuk memeriksa apakah
spelling dari teks berbahasa Inggris yang anda ketikkan di atas
benar atau tidak: $ spell teks.txt

Praktikum 6
Sistem File

A.TUJUAN
1. Mengenal organisasi file di Linux
2. Menciptakan dan manipulasi direktori
3. Mempelajari ijin akses (permission) dari
file dan direktori
4. Mengenal konsep Owner dan Group
5. Mengerti konsep link dan symbolic link

41
Daftar Isi
Praktikum Sistem Operasi 42

B.Dasar Teori
1.Organisasi File
Sistem file pada Linux menyerupai pepohonan (tree), yaitu
dimulai dari root, kemudian direktori dan sub direktori. Sistem file
pada Linux diatur secara hirarkhikal, yaitu dimulai dari root dengan
symbol “/”.
/

etc dev usr bin tmp

bin lib
Kita dapat menciptakan file dan direktori mulai dari root ke
bawah. Direktori adalah file khusus, yang berisi nama file dan
INODE (pointer yang menunjuk ke data/isi file tersebut). Secara
logika, direktori dapat berisi file dan direktori lagi (disebut juga
subdirektori).

2.Direktori Standar
Setelah proses instalasi, Linux menciptakan sistem file
yang baku, terdiri atas direktori sebagai berikut:
Direktori Deskripsi
/etc Berisi file administrative (konfigrasi dll.) dan file
executable atau script yang berguna untuk
administrasi sistem.
/dev Berisi file khusus yang merepresentasikan peralatan

42
Daftar Isi
Praktikum Sistem Operasi 43

hardware seperti memori, disk, printer, tape, jaringan


dll.
/bin Berisi program standar Linux (binary).
/usr/sbin Berisi utilitas Linux.
/usr/bin
/usr/lib Berisi program library yang diperlukan untuk
kompilasi program (misalnya C). Berisi instruksi
(command) misalnya untuk print Spooler (lpadmin)
dll.
/tmp Berisi file sementara, yang pada saat Bootstrap akan
dihapus.
/boot Berisi file yang sangat penting untuk proses
bootstrap. Kernel vmlinuz disimpan di direktori ini.
/proc Berisi informasi tentang kernel Linux, proses dan
virtual sistem file.
/var Direktori variabel, artinya tempat penyimpanan LOG
(catatan hasil output program), file ini dapat
membengkak dan perlu dimonitor perkembangannya.
/home Berisi direktori untuk pemakai Linux (pada SCO
diletakkan pada /usr).
/mnt Direktori untuk mounting sistem file.
/root Direktori home untuk superuser (root).
/ Symbolic link ke /usr/X11R6/bin, program untuk X-
usr/bin/X11 Window.
/usr/src Source code untuk Linux.
/opt Option, direktori ini biasanya berisi aplikasi
tambahan (“add-on”) seperti Netscape Navigator,
kde, gnome, applix dll.

43
Daftar Isi
Praktikum Sistem Operasi 44

3.Direktori /etc
Berisi file yang berhubungan dengan administrasi sistem,
maintenance script, konfigurasi, security dll. Hanya superuser yang
boleh memodifikasi file yang berada direktori ini. Subdirektori yang
sering diakses pada direktori /etc antara lain:
1. httpd, apache web server.
2. ppp, point to point protocol untuk
koneksi ke internet.
3. rc.d atau init.d, inisialisasi (startup) dan
terminasi (shutdown) proses di Linux dengan konsep
runlevel.
4. cron.d rincian proses yang dieksekusi
dengan menggunakan jadwal (time, dependent process)
5. FILES, file security dan konfigurasi
meliputi: passwd, hosts, shadow, ftpaccess, inetd.conf,
motd, printcap, profile, resolv.conf, sendmail.cf,
syslog.conf, smb.conf, fstab.

4.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
Hard disk 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

44
Daftar Isi
Praktikum Sistem Operasi 45

Peralatan Direktori
Universal: /dev/cdrom (link dari aktual cdrom ide
atau scsi)
Mouse PS2: /dev/lp0
Universal: /dev/mouse
Parallel LPT1 : /dev/lp0
Port
LPT2 : /dev/lp1
Serial Port COM: /dev/ttyS0
Universal: /dev/modem (link dari S0 atau S1)

5.Direktori /proc
Direktori /proc adalah direktori yang dibuat di atas RAM
(Random Access Memory) dengan sistem file yang diatur oleh
kernel. /proc berisi nomor proses dari sistem dan nama driver yang
aktif di sistem. Semua nomor yang ada pada direktori tsb.
merepresentasikan PID (Proses ID).

TIPE FILE
Pada Linux terdapat 6 buah tipe file yaitu:
1. Ordinary file
2. Direktori
3. Block Device (Peralatan I/O)
Merupakan representasi dari peralatan hardware yang
menggunakan transmisi data per-block (misalnya 1 KB block),
seperti disk, floppy, tape.
4. Character Device (peralatan I/O)
Merupakan representasi dari peralatan hardware yang
menggunakan transmisi data per karakter, seperti terminal,
modem, plotter dll.
5. Named pipe (FIFO)

45
Daftar Isi
Praktikum Sistem Operasi 46

File yang digunakan secara intern oleh sistem operasi untuk


komunikasi antar proses.
6. Link file

PROPERTI FILE
File mempunyai beberapa atribut, antara lain:
1. Tipe file: menentukan tipe dari file,
yaitu:
Karekte Arti
r
- File biasa
D Direktori
L Symbolic link
B Block special file
C Character special
file
S Socket link
P FIFO

2. Ijin akses : menentukan hak


user terhadap file ini
3. Jumlah link : jumlah link
untuk file ini
4. Pemilik (Owner) : menentukan
siapa pemilik file ini
5. Group : menentukan
group yang memilik file ini
6. Jumlah karakter : menentukan
ukuran file dalam byte

46
Daftar Isi
Praktikum Sistem Operasi 47

7. Waktu pembuatan : menentukan


kapan file terakhir dimodifikasi
8. 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

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

IJIN AKSES
Setiap obyek pada Linux harus mempunyai pemilik, yaitu
nama pemakai Linux (account) yang terdaftar pada /etc/passwd.

47
Daftar Isi
Praktikum Sistem Operasi 48

Ijin dibagi menjadi tiga peran yaitu:


1. Pemilik (Owner)
2. Kelompok (Group)
3. Lainnya (Others)

Setiap peran dapat melakukan tiga operasi yaitu:


1. Pada File
- r (Read) Ijin untuk membaca
- w (Write) Ijin mengubah/membuat
- x (eXecute) Ijin untuk menjalankan program

2. Pada direktori
- r (Read) Ijin untuk membaca daftar file dalam
direktori
- w (Write) Ijin mengubah/membuat file di direktori
- 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

other
group
user
Format untuk mengubah ijin akses:
chmod [ugoa] [= + -] [rwx] File(s)
chmod [ugoa] [= + -] [rwx] Dir(s)

48
Daftar Isi
Praktikum Sistem Operasi 49

dimana:
u = user (pemilik)
g = group (kelompok)
o = others (lainnya)
a = all (semua)
Format lain dari chmod adalah menggunakan bilangan oktal sebagai
berikut:
r w x
4 2 1=7

USER MASK
Untuk menentukan ijin akses awal pada saat file atau
direktori dibuat digunakan perintah umask. Untuk menghitung nilai
default melalui umask pada file, maka dapat dilakukan kalkulasi
sebagai berikut:
Kreasi file (biasa) 666
Nilai umask 022
------ -
644
Kreasi direktori 777
nilai umask 022
----- -
755

SYMBOLIC LINK
Link adalah teknik untuk memberikan lebih dari satu nama
file dengan data yang sama. Bila file asli dihapus, maka data baru
juga terhapus. Format dari link:

49
Daftar Isi
Praktikum Sistem Operasi 50

ln fileAsli fileDuplikat
Symbolic Link diperlukan bila file tersebut di “link” dengan
direktori/file yang berada pada partisi yang berbeda. Tipe file
menjadi | (link) dan file tersebut menunjuk ke tempat asal. Format:
ln -s /FULLPATH/fileAsli /FULLPATH/fileDuplikat

C. LANGKAH-LANGKAH
1. Masuk ke sistem operasi Linux
2. Login sebagai root
3. Buatlah user baru studentOSX dengan group yang sama
dengan studentX
4. Logout dan login kembali sebagai studentX
5. Gunakan perintah ps dan procinfo untuk melihat status dan
nomor proses pada direktori /proc
6. Gunakan perintah ls untuk melihat tipe file
7. Gunakan perintah-perintah direktori : pwd, cd, mkdir, dan
rmdir
8. Gunakan perintah-perintah ijin akses: id, grep, chmod,
chown, dan chgrp
9. Gunakan perintah user mask: umask
10. Gunakan perintah link ln

D.PERCOBAAN
Percobaan 1:
Melihat ps (proses status) dan status direktori /proc
1. ps menampilkan PID (proses ID) untuk shell dan proses ps itu
sendiri
$ ps
$ ls -l /proc/[Nomor PID]
50
Daftar Isi
Praktikum Sistem Operasi 51

2. Melihat status proses


$ cat /proc/[Nomor PID]/status

3. Melihat nilai pada variabel /proc


$ ls /proc/sys/net/ipv4

4. Melihat isi salah satu variabel


$ cat /proc/sys/net/ipv4/ip_forwad
$ echo 1 > /proc/sys/net/ipv4/ip_forwad (tidak bekerja)

5. Mengubah kernel variabel harus dengan ijin akses root.


Menjadi root dengan utilitas su (subtitute user)
$ su
Password:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# exit

6. Kembali ke user semula dan tampilkan variabel kernel


dengan nilai baru
$ cat /proc/sys/net/ipv4/ip_forwad

Percobaan 2:
Melihat tipe file
1. Melihat block device (peralatan I/O)
$ ls -l /dev/fd0

51
Daftar Isi
Praktikum Sistem Operasi 52

2. Melihat character device (peralatan I/O)


$ ls -l /dev/tty2

3. Melihat named pipe (FIFO)


$ ls -l /dev/initctl

4. Melihat direktori
$ ls -ld /dev

5. Melihat ordinary file


$ ls -l /etc/passwd

Percobaan 3:
Direktori
1. Melihat direktori HOME
$ pwd
$ echo $HOME

2. Melihat direktori aktual dan parent direktori


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

3. Membuat satu direktori, lebih dari satu satu direktori atau sub
direktori

52
Daftar Isi
Praktikum Sistem Operasi 53

$ cd
$ 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 pemilik kecuali
jika diberikan izin aksesnya
$ rmdir B (terdapat pesan error)
$ ls -l B
$ rmdir B/F B
$ ls -l B

5. Navigasi direktori dengan instruksi cd untuk pindah dari satu


direktori ke direktori lain
$ pwd
$ ls -l
$ cd A
$ pwd
$ cd ..
$ pwd
$ cd /home/studentX/C
$ pwd
$ cd
$ pwd

53
Daftar Isi
Praktikum Sistem Operasi 54

Percobaan 4:
Ijin Akses
1. Melihat identitas diri melalui etc/passwd atau etc/group
$ id
$ grep studentX /etc/passwd
$ grep [Nomor group id] etc/group

2. Memeriksa direktori home


$ ls -ld /home/studentX

3. Mengubah ijin akses (chmod)


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

54
Daftar Isi
Praktikum Sistem Operasi 55

4. Mengganti kepemilikan digunakan perintah chown. Beberapa hal


yang perlu diperhatikan adalah hanya pemilik file sendiri yang
dapat mengganti kepemilikan tersebut (kecuali superuser) dan
setiap kali file atau direktori dibuat, maka pemilik file tersebut
adalah yang menciptakannya
$ ls -l
$ chown studentX:student f1
$ chown studentX:student f2 f3
$ ls -l
$ id
$ chown studentX f1 (tidak bekerja)

5. Mengubah group hanya dapat dilakukan oleh pemilik


file/direktori tersebut dengan perintah chgrp
$ grep root /etc/group
$ grep other /etc/group
$ ls -l
$ chgrp root f1
$ ls –l
$ chgrp other f3
$ ls -l

Percobaan 5:
User Mask
1. Menentukan ijin akses awal pada saat file atau directori dibuat
$ touch myfile
$ ls -l myfile

55
Daftar Isi
Praktikum Sistem Operasi 56

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

Percobaan 6:
Simbolic Link
1. Link file
$ 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
$ ls -l mydir

56
Daftar Isi
Praktikum Sistem Operasi 57

2. Symbolic Link file


$ mount
$ ln /home/studentX/z /tmp/halo.txt
$ ln -s /home/studentX/z /tmp/halo.txt
$ ls -l /tmp/halo.txt
$ cat /tmp/halo.txt

E.LATIHAN
1. Tampilkan PID dari proses yang berjalan dengan option -ax
dan perhatikan proses-proses yang ditampilkan.
2. Lihat peralatan I/O, character device, dan named pipe yang
ada pada sistem komputer.
3. Buatlah sub direktori januari, pebruari, dan maret sekaligus
pada direktori latihan5.
4. Buatlah file dataku yang berisi nama, nrp, dan alamat anda
pada sub direktori januari dan copy-kan file tersebut ke sub
direktori pebruari dan maret.
5. Ubahlah ijin akses file dataku pada sub direktori januari
sehingga group dan others dapat melakukan write.
6. Ubahlah ijin akses file dataku pada sub direktori pebruari
sehingga user dapat melakukan baik write, read maupun
execute, tetapi group dan others hanya bisa read dan execute.
7. Ubahlah ijin akses file dataku pada sub direktori maret
sehingga semua dapat melakukan write, read, dan execute.
8. Hapuslah direktori maret.
9. Ubahlah kepemilikan file dataku pada sub direktori januari
menjadi milik studentX.
10. Ubahlah kepemilikan sub direktori pebruari sehingga user
dan group hanya dapat melakukan read, dan cobalah untuk
membuat direktori baru haha pada sub direktori pebruari.

57
Daftar Isi
Praktikum Sistem Operasi 58

11. Modifikasi umask dari file dataku pada sub direktori januari
menjadi 027 dan berapakah nilai default-nya?
12. Buatlah link dari file dataku ke file dataku.ini dan file
dataku.juga dan dengan perintah list perhatikan berapa link yang
terjadi?

Praktikum 7
Proses I/O

A.TUJUAN
1. Mengenal konsep proses I/O dan redirection
2. Memahami standar input, output, dan error
3. Menggunakan notasi output, append, dan here document
4. Mengenal konsep PIPE dan filter

B.DASAR TEORI
1.Proses I/O
Sebuah proses memerlukan input dan output.

Input Proses Output

Instruksi (command) yang diberikan kepada Linux melalui


Shell disebut sebagai eksekusi program yang selanjutnya disebut
proses.
Setiap kali instruksi diberikan, maka Linux kernel akan
menciptakan sebuah proses dengan menberikan nomor PID (Proses
Identity).

58
Daftar Isi
Praktikum Sistem Operasi 59

Proses dalam Linux selalu membutuhkan input dan


menghasilkan suatu output. Dalam konteks Linux input/output
adalah:
1. Keyboard (input)
2. Layar (output)
3. Files
4. Struktur data kernel
5. Peralatan I/O lainnya (misalnya Network)
2.File Descriptor
Linux berkomunikasi dengan file melalui file descriptor
yang direpresentasikan melalui angka 0, 1, 2 dan seterusnya.
Tiga buah file descriptor standar yang selalu diciptakan oleh
proses adalah:
 0 = keyboard (standar input)
 1 = layar (standar output)

Input Output
(keyboard) 1 (Monitor)
0 Proses

2
 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 standar input, output, dan
error, yaitu untuk mengalihkan file descriptor dari 0, 1, dan 2.
Simbol untuk pembelokan adalah:
0< atau < pengganti standar input

59
Daftar Isi
Praktikum Sistem Operasi 60

1> atau > pengganti standar output


2> pengganti standar error

4.Pipa (Pipeline)
Mekanisme pipa digunakan sebagai alat komunikasi antar
proses.
Input  Proses1  Output = Input  Proses2  Output
Proses1 menghasilkan output yang selanjutnya digunakan
sebagai input oleh proses2. Hubungan output input ini dinamakan
pipa yang menghubungkan Proses1 dengan Proses2 dan dinyatakan
dengan symbol “|” .
Proses1 | Proses2
5.Filter
Filter adalah utilitas Linux yang dapat memproses standar
input (dari keyboard) dan menampilkan hasilnya pada standar output
(layar). Contoh filter adalah cat, sort, grep, pr, head, tail, paste, dan
lainnya.
Pada sebuah rangkaian pipa:
P1 | P2 | P3 | Pn-1 | Pn
Maka P2 sampai dengan Pn-1 mutlak harus utilitas Linux
yang berfungsi sebagai filter. P1 (awal) dan Pn (akhir) boleh tidak
filter. Utilitas yang bukan filter misalnya who, ls, ps, lp, lpr, mail,
dan lainnya.
Beberapa perintah Linux yang digunakan unutuk proses
penyaringan antara lain:
Perintah grep
Digunakan untuk menyaring masukannya 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 diberi kepadanya. Untuk

60
Daftar Isi
Praktikum Sistem Operasi 61

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
masukannya, yang ditentukan pada option -c.
Perintah uniq
Digunakan untuk menghilangkan baris-baris berurutan yang
mengalami duplikasi, biasanya digabungkan dengan pipeline
dengan sort.

C.LANGKAH-LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai root.
3. Gunakan file descriptor: standard ouput, standard input, dan
standard error.
4. Gunakan redirection untuk mebelokkan standard ouput,
standard input, dan standard error.
5. Gunakan notasi 2>&1, notasi 1>&2 (atau >&2), notasi >>,
notasi here document (<<++…++) dan notasi -.
6. Gunakan pipeline untuk melakukan komunikasi antar proses.

61
Daftar Isi
Praktikum Sistem Operasi 62

D. PERCOBAAN
Percobaan 1: File descriptor
1. Output ke layar (standard output), input dari sistem (kernel)
$ ps

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


(standard input)
$ cat
hallo, apa kabar
hallo, apa kabar
exit dengan ^d
exit dengan ^d
[Ctrl-d]

3. Input dari keyboard dan output ke alamat internet


$ mail studentX@localhost.localdomain
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)

62
Daftar Isi
Praktikum Sistem Operasi 63

1. Pembelokan standar output


$ cat 1> myfile.txt
ini adalah text yang saya simpan
ke file myfile.txt

2. Pembelokan standard 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
$ find /var/spool/cron –print (Terdapat pesan error)
$ find /var/spool/cron –print 2> out.txt
$ cat out.txt

5. Notasi 1>&2 (atau >&2): pembelokan standard output adalah


sama dengan file descriptor 2 yaitu standar error
$ find /var/spool/cron –print 2> outx.txt 1>&2

6. Notasi >> (append)


$ echo “kata pertama” > surat
$ echo “kata kedua” >> surat

63
Daftar Isi
Praktikum Sistem Operasi 64

$ 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 file2. Perhatikan bahwa
notasi “-“ berarti menyelipkan input dari keyboard.
$ cat myfile.txt – surat
Percobaan 3: Pipa (pipeline)
$ who
$ who | sort
$ who | sort -r

64
Daftar Isi
Praktikum Sistem Operasi 65

$ who > tmp


$ sort tmp
$ rm tmp
$ ls –l /etc | more
$ ls –l /etc | sort | more
Percobaan 4: Filter
$ w –h | grep pm
$ grep st /etc/passwd
$ ls /etc | wc –l
$ cat > kelas1.txt
Badu
Zulfikar
Yulizir
Yudi
Ade
[Ctrl-d]
$ cat > kelas2.txt
Budi
Gama
Asep
Muchlis
[Ctrl-d]
$ cat kelas1.txt kelas2.txt | sort
$ who | cut –c1-8
$ cat kelas1.txt kelas2.txt > kelas.txt
$ cat kelas.txt | sort | uniq

65
Daftar Isi
Praktikum Sistem Operasi 66

E. LATIHAN
1. Lihat daftar secara lengkap pada direktori aktif, belokkan
tampilan standar 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 standar input.
4. Urutkan file baru dengan cara membelokkan standar input dan
standard output ke file baru.urut.
5. Buatlah direktori latihan6 sebanyak 2 kali dan belokkan standard
error ke file rmdirerror.txt.
6. Urutkan kalimat berikut:
Jakarta
Bandung
Surabaya
Padang
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 /etc/passwd | sort | pr –n | grep st
$ find /etc –print | head
$ head /etc/passwd | tail –5 | sort
9. Gunakan perintah $ who | cat | cat | sort | pr | head | cat | tail dan
perhatikan hasilnya.

66
Daftar Isi
Praktikum Sistem Operasi 67

Praktikum 8
Shell Lanjutan

A.TUJUAN
1. Mengenal Profile
2. Mengerti konsep history
3. Membuat dan mengeksekusi shell script sederhana
4. Mengerti Job control

B.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 super user menggunakan prompt #.
Beberapa macam shell:

67
Daftar Isi
Praktikum Sistem Operasi 68

1. /bin/sh
Bourne shell, dirancang oleh Steve Bourne dari AT&T
2. /bin/csh
Dikembangkan oleh UNIX Berkeley yang dikenal dengan C-
Shell
3. /bin/bash
Kompatibel dengan Bourne Shell dan juga mengadaptasi
kemampuan Korn-Shell.
Perbedaan mendasar antara shell di atas hampir tidak ada,
kecuali pada fasilitas pemograman 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 sebelum logout.

Isi dari /etc/profile

68
Daftar Isi
Praktikum Sistem Operasi 69

# System wide environment and startup programs


# Function and alises go in /etc/bashrc

PATH=”SPATH:/usr/X11R6/bin”
PS1=”[\u@\h \W]\\S “
umask 022

USER=’id –un’
LOGNAME=$USER
MAIL=”/var/spool/mail/$USER”

HOSTNAME=’/bin/hostname’
HISTSIZE=1000
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 direktori

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

69
Daftar Isi
Praktikum Sistem Operasi 70

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 karakater kontrol
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
4.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 aktual.

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

C.LANGKAH-LANGKAH
1. Masuk ke system operasi Linux
2. Login sebagai studentX
3. Melihat profile pada file .bash_profile dan .bash_logout
4. Gunakan instruksi history: history dan fc
5. Buatlah file bash script dengan editor vi; instruksi chmod,
&, fg, bg
6. Gunakan perintah job control: jobs

70
Daftar Isi
Praktikum Sistem Operasi 71

7. Gunakan perintah manipulasi stack untuk direktori: dirs,


pushd, popd
8. Gunakan perintah alias dan unalias

D. PERCOBAAN
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 dieksekusi 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: History
1. Melihat batasan maksimum instruksi yang dapat disimpan
$ echo $HISTSIZE

2. Melihat daftar instruksi yang telah dilakukan dengan perintah


history. Daftar instruksi dilengkapi dengan nomor urut. Nomor
ini dapat dijadikan parameter dalam mengedit atau mengulang
instruksi.
$ history

3. Selain history, instruksi fc (fix command) juga dapat


digunakan
$ fc –l

71
Daftar Isi
Praktikum Sistem Operasi 72

4. Instruksi fc dapat menampilkan instruksi antara 2 nomor atau


dengan menggunakan kata depan instruksi yang diberikan
$ fc –l [Nomor urut1] [Nomor urut2] (Misalnya fc –l 85 88)
$ fc [Instruksi1] [Instruksi2] (Misalnya fc –l exit more)

Percobaan 3: Membuat bash-script dan menjalankannya


1. Membuat file p1.sh
$ vi p1.sh
echo “Program bash script”
2. Membuat 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
$ ./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”

72
Daftar Isi
Praktikum Sistem Operasi 73

5. Buatlah file p2.sh


$ vi p2.sh
#!/bin/bash
echo “Program 2 bash script”

6. Manjalankan beberapa program shell dalam satu baris instruksi


yang dipisahkan dengan tanda ;
$ cat p1.sh ; cat p2.sh
$ ./p1.sh ; ./p2.sh

7. Menjalankan script sebagai proses background, sehingga


prompt tidak menunggu program tersebut selesai. Untuk
menjalankan proses background gunakan tanda & pada akhir
instruksi.
$ ./p1.sh &
$ ./p2.sh &

8. Untuk menjalankan 2 program atau lebih dalam satu block,


kemudian dieksekusi sebagai proses background, gunakan tanda
(…)
$ (ls ; who) > hasil &
$ cat hasil

Percobaan 4: Job Control


1. Proses foreground
$ ps x

2. Proses background

73
Daftar Isi
Praktikum Sistem Operasi 74

$ 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

6. Jalankan program sebagai background


$ ./ploop.sh &

7. Periksa job yang aktif


$ jobs

74
Daftar Isi
Praktikum Sistem Operasi 75

8. Ubah job menjadi foreground, gunakan fg dan nomor job, atau


fg dengan argumen berupa nama jobs yang sedang berjalan, atau
bila tidak rancu dengan jobs yang lain, gunakan huruf depan
nama jobs yang sedang berjalan.
$ fg %[Nomor Job] (Contoh: fg %1) atau
$ fg %ploop.sh

9. Untuk mengembalikan jobs tersebut ke background, tekan


Ctrl-Z (^Z), kemudian jalankan instruksi bg
$ bg
$ jobs
Percobaan 5: 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. Masukkan direktori sales ke dalam stack dengan instruksi


pushd. Maka terdapat 2 direktori dalam stack yaitu $HOME/sales
dan $HOME. Kemudian lihat direktori aktual
$ pushd sales
$ pwd

4. Masuk ke direktori support


$ pushd /home/studentX/support
$ pwd

75
Daftar Isi
Praktikum Sistem Operasi 76

5. Lakukan kembali untuk direktori marketing


$ pushd ../marketing
$ pwd

6. Bila pushd dilakukan tanpa argumen, maka stack akan


memanggil direktori berikutnya
$ pushd
$ pushd
$ pushd

7. Untuk membuat direktori sales menjadi direktori paling atas


(top stack), maka pushd dapat dilakukan dengan argumen +n,
dimana n adalah nomor urut direktori tersebut
$ pushd +2
$ pwd

8. Untuk menghapus direktori dari stack, gunakan instruksi popd


$ popd
$ popd +2
$ dirs

Percobaan 6: Alias
1. Alias adalah mekanisme untuk memberi nama alias pada satu
atau sekelompok instruksi. Untuk melihat alias yang sudah
terdaftar pada sistem:
$ alias

2. Membuat beberapa alias

76
Daftar Isi
Praktikum Sistem Operasi 77

$ alias del=’rm -R’


$ alias h=’history’

3. Gunakan instruksi hasil alias


$ ls
$ mkdir hasil
$ del hasil
$ h | more

4. Untuk menghapus alias gunakan instruksi unalias


$ mkdir files
$ unalias del
$ del files (Terdapat pesan kesalahan)

E.LATIHAN
1. Eksekusi seluruh profile yang ada:
a. Edit file profile /etc/profile dan tampilkan pesan
sebagai berikut:
echo “Profile dari /etc/profile”
b. Edit semua profile yang ada yaitu:
/home/studentX/.bash_profile
/home/studentX/.bash_login
/home/studentX/.profile
/home/studentX/.bashrc
Pada setiap file tersebut, cantumkan instruksi echo,
misalnya pada /home/studentX/ .bash_profile:
echo “Profile dari .bash_profile”

77
Daftar Isi
Praktikum Sistem Operasi 78

Lakukan hal yang sama untuk file lainnya, sesuaikan


tampilan dengan nama file yang bersangkutan.
c. Jalankan instruksi subtitute user, kemudian keluar
dengan perintah exit sebagai berikut:
$ su studentX
$ exit
Kemudian gunakan opsi-opsi sebagai berikut:
$ su - studentX
$ exit
Jelaskan perbedaan kedua utilitas tersebut.

2. Prompt String (PS)


a. Edit file .bash_profile, ganti prompt PS1 dengan
‘>’. Instruksi export diperlukan dengan parameter nama
variabel tersebut, agar perubahan variabel PS1 dikenal oleh
semua shell.
PS1=’> ’
Export PS1

b. Eksperimen hasil PS1:


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

3. Logout
Edit file .bash_logout, tampilkan pesan dan tahan selama 5
detik, sebelum eksekusi logout

78
Daftar Isi
Praktikum Sistem Operasi 79

echo “Terima kasih atas sesi yang diberikan”


sleep 5
clear

4. 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. Jalankan script tersebut sebagai berikut :


$ ./p1.sh ; ./p3.sh ; ./p2.sh
$ ./p1.sh &
$ ./p1.sh & ; ./p2.sh & ; ./p2.sh
$ (./p1.sh & ./p3.sh) &

79
Daftar Isi
Praktikum Sistem Operasi 80

5. 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 menjadi foreground, tekan ^Z


dan kembalikan program tersebut ke background
$ fg %1
$ bg

d. Stop program background dengan utilitas kill


$ ps x
$ kill [Nomor PID]

80
Daftar Isi
Praktikum Sistem Operasi 81

6. History
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. Ulangi instruksi pada history buffer nomor 150


$ !150
e. Ulangi instruksi dengan prefix ”ls”
$ !ls

81
Daftar Isi
Praktikum Sistem Operasi 82

Praktikum 9
Manajemen Proses

A.TUJUAN
1. Mengenal konsep proses di Linux
2. Mengerti konsep sinyal dan bagaimana cara mengelola
sinyal tersebut

B.DASAR TEORI
1.Konsep Proses di Linux
Setiap kali instruksi diberikan pada Linux shell, maka kernel
akan menciptakan sebuah proses-id. Proses ini disebut juga dengan
terminology 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:
a. Foreground

82
Daftar Isi
Praktikum Sistem Operasi 83

Proses yang diciptakan oleh pemakai langsung pada terminal


(interaktif, dialog)
b. Batch
Proses yang dikumpulkan dan dijalankan secara sekuensial (satu
persatu). Prose Batch tidak diasosiasikan (berinteraksi) dengan
terminal.
c. 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 dll
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
sistem
Standar nomor sinyal yang terpenting adalah:
N Sinyal Nama Deskripsi
o
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 SIGTER Sinyal terminasi software
M

83
Daftar Isi
Praktikum Sistem Operasi 84

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.

C.LANGKAH – LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai studentX.
3. Gunakan instruksi status proses: ps.
4. Gunakan instruksi untuk mengelola
sinyal: kill, trap, nohup

D.PERCOBAAN
Percobaan 1: Status Proses
1. 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

2. 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,

84
Daftar Isi
Praktikum Sistem Operasi 85

RSS (Real System Storage) adalah jumlah memori yang


digunakan, START adalah kapan proses tersebut diaktifkan.
$ ps –u

3. Mencari proses yang spesifik pemakai. Proses di atas hanya


terbatas pada proses milik pemakai, dimana pemakai teresbut
melakukan login.
$ ps –u studentX

4. Mencari proses lainnya gunakan option a (all) dan au (all


user).
$ ps –a
$ ps –au

Percobaan 2: Sinyal
1. Membuat shell script dengan nama loop.sh
$ vi loop.sh
## Sebuah shell script : loop.sh
while [ 1 ]
do
echo “.\c”
sleep 10
done

2. Eksekusi file loop.sh sebagai background


$ chmod +x loop.sh
$ ./loop.sh &

85
Daftar Isi
Praktikum Sistem Operasi 86

3. Melihat proses id
$ ps

4. Menghentikan proses. Nomor 15 (SIGTERM) merupakan


default
$ kill –15 [nomor PID] atau
$ kill [nomor PID]

5. Menghentikan proses secara mutlak


$ kill –9 [nomor PID]

Percobaan 3: Mengelola sinyal


1. Membuat file prog.sh
$ vi prog.sh
#!/bin/sh
echo “Program berjalan …”
while :
do
echo “X”
sleep 20
done

2. Jalankan program tersebut. Karena program melakukan


looping, maka stop dengan mengirim sinyal interrupt (^C)
$ chmod +x prog.sh
$ ./prog.sh

86
Daftar Isi
Praktikum Sistem Operasi 87

3. Jalankan program tersebut sebagai background. Catat nomor


PID proses, tekan Enter untuk ke foreground dan periksa
melalui instruksi ps
$ ./prog.sh &
$ ps

4. Kirimkan sinyal terminasi sebagai berikut


$ kill [Nomor PID]
5. Ubahlah program prog.sh dengan instruksi trap untuk
menangkap sinyal yang dikirim
$ vi prog.sh
#!/bin/sh
trap ““ 1 2 3 15
echo “Program berjalan …”
while :
do
echo “X”
sleep 20
done

6. Jalankan program tersebut sebagai background. Coba


lakukan kill dengan nomor PID proses tersebut.
$ ./prog.sh &
$ kill [Nomor PID] atau
$ kill –1 [Nomor PID] atau
$ kill –2 [Nomor PID] atau
$ kill –15 [Nomor PID]

87
Daftar Isi
Praktikum Sistem Operasi 88

7. Perintah kill diatas tidak akan menghentikan proses karena


dihalangi dengan perintah trap. Cobalah menggunakan
nomor sinyal 9
$ kill –9 [Nomor PID]
Percobaan 4: No Hangup
1. Adakalanya sebuah proses memerlukan waktu yang cukup
lama, misalnya proses sortir, sehingga perlu dilakukan sebagai
proses background. Namun bila proses masih berlangsung dan
kita melakukan logout, maka otomatis proses akan ikut berhenti,
yang artinya proses sortir harus diulang kembali. Simulasi dari
proses sort
$ vi myjob.sh
#!/bin/sh
i=1
while :
do
find / -print > berkas
sort berkas –o hasil
echo –n “Proses selesai pada ” >> proses.log ; date >>
proses.log
sleep 60
done

2. Jalankan proses tersebut sebagai proses background


$ chmod +x myjob.sh
$ ./myjob.sh &

3. Kemudian logout dan login kembali. Periksa sampai dimana


job bekerja.
$ ps

88
Daftar Isi
Praktikum Sistem Operasi 89

4. Gunakan nohup (NoHangup) agar job tetap berjalan


meskipun pemakai logout. Catatan: fungsi ini tidak berjalan di
non System V (Linux)
$ ./myjob.sh &
$ nohup myjob.sh

5. Kemudian logout dan login kembali. Periksa apakah job


masih bekerja.
$ ps

E. LATIHAN
1. Login sebagai studentX dan lihat status proses, perhatikan
kolom keluaran ps –au 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
Sebutkan PID yang paling besar dan kemudian buat urut-
urutan proses sampai ke PPID = 1. Lakukan ^d atau exit
atau logout sampai kembali muncul login: prompt

89
Daftar Isi
Praktikum Sistem Operasi 90

2. Modifikasi program prog.sh sebagai berikut:


$ vi prog.sh
#!/bin/sh
trap “echo Hello Goodbye ; exit 0 “ 1 2 3 15
echo “Program berjalan …”
while :
do
echo “X”
sleep 20
done
Jalankan program tersebut sebagai background. Coba lakukan
kill dengan nomor sinyal 1, 2, 3 dan 15 pada nomor PID proses
tersebut. Apakah proses berhenti atau tetap berjalan? Nomor
sinyal berapa yang digunakan untuk menghentikan proses di
atas?

3. Modifikasi program myjob.sh. Buatlah trap sedemikian rupa,


sehingga bila proses tersebut dihentikan (kill), otomatis file
berkas akan terhapus.
$ vi myjob.sh
#!/bin/sh
trap ______________________________
i=1
while :
do
find / -print > berkas
sort berkas –o hasil
echo “Proses selesai pada ‘date’” >> proses.log

90
Daftar Isi
Praktikum Sistem Operasi 91

sleep 60
done
$ kill –15 [Nomor PID]
$ ls -l
Maka file berkas tidak ada lagi!

Praktikum 10
Utilitas Linux

A.TUJUAN
1. Mengenal utilitas dasar Linux dan Unix
2. Merangkaikan utilitas dengan pipe
3. Mempelajari konsep delimiter

91
Daftar Isi
Praktikum Sistem Operasi 92

B.DASAR TEORI
1.Sortir
Sortir dengan utilitas sort akan menyusun data berdasarkan
kriteria. Utilitas sort dilakukan dengan format:
sort option file(s)
Adapun option yang dapat diberikan:
 -r (reserve) yaitu menyusun terbalik dari Z ke A
 ±f.c yaitu penyusunan berdasarkan pointer yang diperintahkan. f
adalah nomor field, c adalah nomor karakter
Contoh: +2 berarti pointer berada setelah 2 field
+2.3 berarti pointer berada setelah 2 field + 3 karakter
-2 berarti pointer berada sebelum 2 field
-2.5 berati pointer berada sebelum 2 field + 5 karakter
 -n yaitu komparasi untuk menyusun berdasarkan nilai numerik
 -t yaitu sebagai pemberitahuan suatu pemisah (delimiter) dari
suatu tabel
2.Preformat
Instruksi pr (preformat) digunakan untuk menyusun data
sebelum dicetak ke printer. Instruksi pr akan menyiapkan header,
nomor halaman, dan lainnya. Opsi untuk instruksi pr antara lain:
 -n : menampilkan nomor baris
 -Nr : menampilkan nomor halaman dimulai dengan Nr
 -t : tidak menggunakan header atau trailer
 -h teks : menampilkan teks sebagai judul
 -l jml : jumlah baris dalam jml, default adalah 66 baris

3.Word Count
Utilitas wc (word count) digunakan untuk:
92
Daftar Isi
Praktikum Sistem Operasi 93

 -c : menghitung jumlah karakter (chars)


 -w : menghitung jumlah kata (words)
 -l : menghitung jumlah baris (lines)
Utilitas wc banyak digunakan untuk pemrograman shell, terutama
untuk sysadmin, misalnya melihat jumlah pemakai yang terdaftar di
/etc/passwd atau melihat jumlah group dalam sistem.

4.Translate
Utilitas tr (translate) mengubah pengulangan karakter
menjadi karakter yang lain. Utilitas tr akan membaca input dari
standard input, kemudian mengubahnya dari satu pola ke karakter
yang lain. Opsi untuk instruksi tr antara lain:
 -s : menghapus pengulangan (squeeze repeats)
 -d : menghapus karakter tertentu

5.Memotong Karakter
Utilitas cut (memotong karakter) digunakan untuk
memotong karakter dari sebuah kata dalam baris. Opsi untuk
instruksi cut antara lain:
 -f: memenggal berdasarkan posisi field. Opsi ini hanya akan
berhasil bila antara kata dipisahkan dengan delimiter (separator)
yaitu tabulator. Bila delimiter bukan tab, maka opsi –d harus
ditambahkan sebagai info tentang delimiter yang dimaksud.
 -c: memenggal berdasarkan posisi karakter.

6.Head dan Tail


Utilitas head akan menampilkan isi file dari awal hingga
akhir, sesuai dengan opsi yang diberikan. Utilitas tail akan
menampilkan isi file dari akhir hingga awal, sesuai dengan opsi yang
diberikan. Utilitas ini sangat bermanfaat terutama untuk
menampilkan awal atau akhir dari satu bagian file yang besar.

93
Daftar Isi
Praktikum Sistem Operasi 94

7.Find
Utilitas find digunakan untuk menemukan file dengan
kriteria tertentu. Utilitas ini banyak digunakan untuk melokalisasi
file dan kepentingan backup. Sintak dari utilitas find:
find [daftar direktori] [ekspresi]
Opsi dari utilitas find:
 -print : menampilkan hasil pencarian ke
standard output
 -name [Namafile] : mencari file dengan nama yang sama
dengan [Namafile]
 -type [Tipefile] : mencari file dengan tipe file seperti
ordinary (-), directory (d), pipe, socket (s), block device (b),
character device (c) dll
 -links ±n : mencari file dengan jumlah link sama
dengan n, lebih besar atau lebih kecil dari n
 -user [NamaUser] : mencari file dengan nama user sama
dengan nama yang terdaftar di /etc/passwd
 -group [NamaGroup] : mencari file dengan nama group
yang sama dengan nama yang terdaftar di /etc/group
 -perm [Mode] : mencari file dengan ijin akses
tertentu
 -inum [Nomor] : mencari file dengan nomor inode
tertentu. Setiap file mempunyai nomor inode yang dapa dilihat
dengan opsi –i pada instruksi ls
 -size ±n[c|k] : mencari file dengan jumlah karakter (c)
tertentu atau dalam kilobyte (b)
 -atime ±n : mencari file yang terakhir diakses pada
jumlah hari tertentu
 -mtime ±n : mencari file yang terakhir dimodifikasi
pada jumlah hari tertentu

94
Daftar Isi
Praktikum Sistem Operasi 95

 -newer [NamaFile] : mencari file yang berusia lebih baru dari


[NamaFile]
 -exec [command]\ : bila kriteria terpenuhi, maka command
akan dieksekusi
 -ok [command]\ : sama dengan exec, kecuali find akan
memberikan pertanyaan yes atau no untuk mengeksekusi
command tersebut.
 -depth : mengolah subdirektori terlebih
dahulu
 -nouser : mencari file yang pemiliknya
tidak lagi terdaftar pada /etc/passwd
 -nogroup : mencari file yang groupnya tidak
lagi terdaftar pada /etc/group

C.LANGKAH – LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai studentX.
3. Gunakan utilitas Linux: sort, pr, wc, tr, cut, head, tail, dan
find.
4. Gunakan pipe dan delimiter pada utilitas tersebut.

D.PERCOBAAN
Percobaan 1: Sortir
1. Buatlah file mobil.db sebagai berikut:
$ cat > mobil.db
Badu Honda Prelude 150.000.000

95
Daftar Isi
Praktikum Sistem Operasi 96

Hasan Toyota Kijang 125.450.000


Adam BMW 320i 191.000.000
Zoros Toyota Kijang 116.000.000
Stefan Peugeot 405 288.654.000
Andriane Opel Blazer 186.500.000
^D
2. Lakukan proses sorting pada file mobil.db
$ sort mobil.db

3. Lakukan proses sorting dengan susunan terbalik


$ sort –r mobil.db

4. Lakukan proses sorting berdasarkan karakter kedua pada field


pertama
$ sort +0.1 mobil.db

5. Lakukan proses sorting berdasarkan manufaktur mobil


$ sort +1 mobil.db

6. Lakukan proses sorting berdasarkan manufaktur dan nama


pemilik mobil
$ sort +1 –2 mobil.db

7. Lakukan proses sorting berdasarkan nilai numerik (yaitu field


ke 4)
$ sort –n +3 mobil.db

8. Lakukan proses sorting berdasarkan harga termahal

96
Daftar Isi
Praktikum Sistem Operasi 97

$ sort –nr +3 mobil.db


Percobaan 2: Separator
1. Sebuah tabel umumnya dipisahkan dengan spasi atau
tabulator, tetapi bisa juga dengan menggunakan tanda koma
untuk memisahkan kolom
$ cat > peserta
Anjas Asmara,NT Full Package,Jakarta
Shamir Gwindani,Unix Advanced,Bandung
Shakila,ASP.NET,Yogya
Agustin Rosa,VB.NET,Bali
Imelda Pora,Cisco Routing,Jakarta
Sabar Sobar,Linux Network,Bandung
^D
2. Lakukan proses sorting
$ sort peserta
3. Menyusun berdasarkan kota, hal ini tidak dapat dilakukan.
Agar sort mengerti pemisah (delimiter) adalah koma, maka harus
diberikan opsi -t
$ sort +2 peserta
$ sort –t, +2 peserta

Percobaan 3: Preformat
$ pr mobil.db|more
$ pr –h “Daftar Pemilik Mobil” –n mobil.db|more
Percobaan 4: Word Count
$ wc mobil.db
$ wc –l mobil.db
$ wc –w mobil.db

97
Daftar Isi
Praktikum Sistem Operasi 98

$ wc –c mobil.db
Percobaan 5: Paste untuk menggabungkan 2 atau lebih file
secara vertikal
$ cat > fileA
aaaaa
bbbbb
ccccc
$ cat > file1
11111
22222
33333
44444
55555
$ paste fileA file1
$ paste fileA file1 > fileX
Percobaan 6: Translate
1. Mengubah huruf a yang diinputkan dari keyboard menjadi X
$ tr ‘a’ ‘X’
apa
XpX
Khabar
khXbXr
^D

2. Mengubah semua huruf kecil menjadi huruf besar dan


sebaliknya
$ cat mobil.db|tr ‘[a-z]’ ‘[A-Z]’
$ cat mobil.db|tr ‘[A-Z]’ ‘[a-z]’

98
Daftar Isi
Praktikum Sistem Operasi 99

3. Menghapus huruf a yang berulang dan diganti dengan 1 huruf


a saja
$ tr –s ‘a’ ‘a’
apaa khaaaaaabaaar
apa khabar

4. Menghapus spasi pada file mobil.db


$ cat mobil.db | tr –s ‘ ‘ ‘ ‘

5. Enkripsi file sederhana dengan mengacak huruf


$ cat > to-pacar
Kepada pacar saya,
Jangan lupa nonton di plasa pekanbaru
Jam 5 ketemu di saya ya
Pacar kamu
^D
$ cat to-pacar | tr ‘[A-M] [N-Z] [a-m] [n-z]’ ‘[N-Z] [AM]
[n-z] [a-m]’ > secret-mail
$ cat secret-mail

6. Mengembalikan enkripsi file dengan cara yang sama secara


terbalik
$ cat secret-mail | tr ‘[N-Z] [A-M] [n-z] [a-m]’ ‘[A-M] [N-Z] [a-
m] [n-z]’

7. Menghilangkan karakter tertentu


$ cat to-pacar | tr –d ‘a’

99
Daftar Isi
Praktikum Sistem Operasi 100

$ cat to-pacar | tr –d ‘\n’


Percobaan 7: Memotong karakter
1. Mengambil field ke 2 dari file mobil.db dengan terlebih dahulu
menghilangkan pengulangan spasi terlebih dahulu
$ cat mobil.db|tr –s ‘ ‘ ‘ ‘
$ cat mobil.db|tr –s ‘ ‘ ‘ ‘|cut –d’ ‘ –f2

2. Mengurut output
$ cat mobil.db|tr –s ‘ ‘ ‘ ‘|cut –d’ ‘ –f2|sort
3. Menghilangkan baris duplikasi
$ cat mobil.db|tr –s ‘ ‘ ‘ ‘|cut –d’ ‘ –f2|sort|uniq

4. Memotong karakter posisi ke 3 sampai dengan posisi ke 5 dari


nama pemilik mobil
$ cut –c3-5 mobil.db
5. Kombinasi memotong field dengan koma
$ cat mobil.db|tr –s ‘ ‘ ‘ ‘|cut –d’ ‘ –f2,4

6. Menggunakan tab yang diselipkan sebagai delimiter untuk


tampilan lebih baik
$ cat mobil.db|tr –s ‘ ‘ ‘ ‘|cut –d’ ‘ –f2,4|tr ‘ ‘ ‘\t’
Percobaan 8: Head dan Tail
1. Mengambil 3 baris dari awal (head) dan 3 baris terakhir (tail)
$ cat mobil.db
$ head -3 mobil.db
$ tail –3 mobil.db
Percobaan 9: Find
1. Menampilkan semua file yang ada di current direktori

100
Daftar Isi
Praktikum Sistem Operasi 101

$ find . –print

2. Mencari file passwd di direktori /etc, /lib, dan /usr/bin


$ find /etc /lib /usr/bin –name passwd

3. Mencari file group pada root direktori. Karena bukan


superuser, banyak ijin akses ditolak. Untuk membuangnya
gunakan descriptor 2>
$ find / –name group
$ find / –name group 2>/dev/null

4. Mencari file dengan tipe pipe


$ find / –type p 2>/dev/null

5. Mencari socket di sistem file


$ find / –type s 2>/dev/null
6. Mencari jumlah link 6
$ find /lib –links 6

7. Mencari nama user student


$ find / -user student 2>dev/null

8. Mencari nama group student


$ find /tmp -group student 2>dev/null

9. Mencari ijin akses 777 pada root direktori


$ find / -perm 777 2>dev/null

101
Daftar Isi
Praktikum Sistem Operasi 102

10. Mencari file dengan nomor inode tertentu (link lebih dari
satu)
$ ls -l
$ find /home –inum [NomorInode]
11. Mencari file yang berukuran 4K, lebih besar dari 4K dan
lebih kecil dari 4K
$ find . –size 4K
$ find . –size +4K
$ find . –size -4K

12. Mencari file yang terakhir diakses pada satu hari sebelumnya
$ find /home –atime -1

13. Mencari file yang terakhir dimodifikasi dalam satu hari


$ find /home –mtime +1
14. Mencari file yang lebih baru dari file x
$ touch x
$ find . –newer x
$ touch y
$ find . –newer c

15. Melihat isi direktori bila file x ditemukan. Tanda {}


merepresentasikan nama file yang ditemukan
$ find –name x
$ find –name x –exec ls –l {} \;
16. Menghapus file x bila ditemukan
$ find –name x –ok rm {} \;

102
Daftar Isi
Praktikum Sistem Operasi 103

E. LATIHAN
1. Jelaskan tujuan dari perintah berikut:
$ wc –l /etc/passwd
$ wc –l /etc/group

2. Buatlah file status dan gabungkan file ini dengan mobil


$ cat > status
-
-
dijual
-
dijual
-
3. Gunakan utilitas translate untuk mengganti seluruh huruf
hidup dari teks nyanyian berikut dengan huruf o semua
$ cat > burung
burung kakak tua
hinggap di jendela
nenek sudah tua
giginya tinggal dua
^D
4. Periksa /etc/passwd dan ambil field ke 5 dengan perintah cut.
Jangan lupa mencantumkan delimiter yang berupa tanda ‘:’.

5. Apa maksud dari perintah berikut:


who | cut –c 1|sort|uniq|wc

103
Daftar Isi
Praktikum Sistem Operasi 104

Praktikum 11
Pemrograman Shell (1)

A.TUJUAN
1. Mempelajari elemen dasar shell script
2. Membuat program shell interaktif
3. Menggunakan parameter dalam program
4. Mempelajari test kondisi serta operator logika yang terkait
dengan instruksi test
5. Mengenal variabel built-in dari shell

104
Daftar Isi
Praktikum Sistem Operasi 105

6. Membuat aplikasi dengan shell menggunakan konstruksi if-


then-else

B.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.
#!/bin/sh 
# Program shell 
#
var1=x 
var2=8
 Awal dari program shell, komentar awal ini akan dibaca
oleh sistem, kemudian system mengaktifkan program shell
(/bin/sh) yang tertera di situ. Program shell dapat dipilih,
misalnya /bin/csh, /bin/ksh dan lainnya
 Adalah komentar, sebagai dokumentasi, baris ini akan
diabaikan oleh program shell
 Penggunaan variabel (assignment), tidak boleh ada spasi di
antara nama variabel dan konstanta
2.Variabel
Variabel shell adalah variabel yang dapat mempunyai nilai
berupa nilai String. Tata penulisan variabel adalah sebagai berikut:
nama_var=nilai_var
Variabel 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

105
Daftar Isi
Praktikum Sistem Operasi 106

i=5
Pemberian nilai variabel 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 variabel, gunakan tanda
$ di depan nama variabel tersebut. Pada shell, instruksi echo dapat
menampilkan isi variabel tersebut, contoh:
VPT=poltek
echo $VPT

Gaji=450000
echo $Gaji
echo $VPT $Gaji
Bila menggunakan string yang terdiri dari lebih dari satu
kata, maka string tersebut harus berada dalam tanda kutip atau
apostrof, contoh:
VPT=poltek
VPT2=”poltek elektronika ITS”

3.Membaca Keyboard
Nilai variabel dapat diisi melalui keyboard (stdin) dengan
instruksi read.
4.Parameter
Sebuah program shell dapat mempunyai parameter
sebanyak 9 buah dan direpresentasikan melalui variabel khusus yaitu
variabel $1, $2, $3, $4, $5, $6, $7, $8, dan $9. Nama program shell
(nama script) direpresentasikan melalui variabel $0.
Jumlah parameter dinyatakan sebagai $#. Bila tidak
memberikan parameter, maka nilai $# adalah 0.

106
Daftar Isi
Praktikum Sistem Operasi 107

Shell variabel $* 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 variabel 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 akan mengeksekusi instruksi-awal, dan exit status dari
instruksi tersebut akan menjadi kondisi. Bila 0, maka instruksi
selanjutnyua masuk ke dalam blok then. Bila tidak 0, maka alur
program diteruskan setelah kunci kata fi.
if instruksi-awal
then
instruksi1
instruksi2
………………
fi
7.Konstruksi if then else
Bila status exit tidak sama dengan 0, maka kondisi menjadi
FALSE dan instruksi setelah else akan dijalankan.
if instruksi1
then
instruksi1.1
instruksi1.2

107
Daftar Isi
Praktikum Sistem Operasi 108

………………
else
instruksi2.1
instruksi2.2
………………
fi
8.Instruksi test
Instruksi test digunakan untuk memeriksa kondisi dari
sebuah ekspresi. Ekspresi terdiri dari faktor 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 != Not identical
string2
-n string String is not null
-z string String is null

• test untuk file dan direktori


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

108
Daftar Isi
Praktikum Sistem Operasi 109

Operator 0 atau TRUE, jika


-w File dapat ditulis
namafile
-x namafile File adalah executable
-s namafile File ada dan tidak kosong
-w File dapat ditulis
namafile
Untuk memudahkan pembacaan (readability), test dapat
ditulis dengan
[ ekspresi ]
[ sebenarnya adalah nama lain dari test, bedanya [ akan
mencari kurung penutup ] pada akhir ekspresi yang harus
dipisahkan oleh spasi.

9.Logikal && dan || (Shell Level)


Notasi && dan || digunakan untuk menggabungkan
instruksi shell sebagai alternatif untuk if then else. Notasi && dan ||
sering ditemukan dalam shell script system administrator untuk
menjalankan rutin dari sistem 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 mengeksekusi 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.

109
Daftar Isi
Praktikum Sistem Operasi 110

10.Operator Bilangan Bulat untuk test


Untuk membandingkan 2 buah bilangan, test memerlukan
operator yang berbeda dengan string.
Operato 0 atau TRUE, jika
r
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 Logika (Test Level)


Operator logika terdiri dari AND, OR dan NOT. Operator
ini menggabungkan hasil ekspresi sebagai berikut:
NOT: simbol !
!
True Fals
e
Fals True
e
AND: simbol -a
V1 V2 V1 –a
V2
Fals Fals False
e e
Fals True False

110
Daftar Isi
Praktikum Sistem Operasi 111

V1 V2 V1 –a
V2
e
True Fals False
e
True True True

OR: simbol -o
V1 V2 V1 –o
V2
Fals Fals False
e e
Fals True True
e
True Fals True
e
True True True

12.Konstruksi if then else if


Bila status exit tidak sama dengan 0, maka kondisi menjadi
FALSE dan instruksi setelah else akan dijalankan.
if instruksi1
then
instruksi1.1
instruksi1.2
………………
elif instruksi2
then

111
Daftar Isi
Praktikum Sistem Operasi 112

instruksi2.1
instruksi2.2
………………
else
instruksi3.1
instruksi3.2
………………
fi

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

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

C.LANGKAH – LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai studentX.
3. Lakukan percobaan di bawah ini.

112
Daftar Isi
Praktikum Sistem Operasi 113

D.PERCOBAAN
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 variabel pada shell interaktif
$ VPT=poltex
$ echo $VPT

2. Pemisahan 2 kata dengan spasi menandakan eksekusi 2 buah


instruksi. Karakter $ harus ada pada awal nama variabel untuk
melihat isi variabel tersebut, jika tidak, maka echo akan
mengambil parameter tersebut sebagai string.
$ VPT2=poltex riau (Terdapat pesan error)

113
Daftar Isi
Praktikum Sistem Operasi 114

$ VPT2=”poltex riau”
$ echo VPT2
$ echo $VPT2
3. Menggabungkan dua variabel atau lebih
$ V1=poltex
$ V2=’:’
$ V3=riau
$ V4=$V1$V2$V3
$ echo $V4

4. Menggabungkan isi variabel dengan string yang lain. Jika


digabungkan dengan nama variabel yang belum didefinisikan
(kosong) maka instruksi echo menghasilkan string kosong.
Untuk menghindari kekeliruan, nama variabel perlu diproteksi
dengan { } dan kemudian isi variabel tersebut digabung dengan
string.
$ echo $V3
$ echo $V3PCR
$ echo ${V3}PCR

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

114
Daftar Isi
Praktikum Sistem Operasi 115

#!/bin/sh
V1=poltex
V2=’:’
V3=riau
echo “Pemrograman shell”
echo $V1$V2$V3
V3=PCR
echo $V1$V2 di $V3

7. Cara sederhana mengeksekusi shell adalah dengan


menggunakan notasi titik di depan nama shell script tersebut.
Bila direktori aktual 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

115
Daftar Isi
Praktikum Sistem Operasi 116

# 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”
3. Eksekusi program prog02.sh
$ . prog02.sh
Nama Anda :
Amir
Alamat :
Jl semangka 67
Kota :
Pekanbaru
Hasil adalah : Amir, Jl semangka 67 di Pekanbaru
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 : “

116
Daftar Isi
Praktikum Sistem Operasi 117

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

Hasil adalah : Amir, Jl semangka 67 di Pekanbaru

6. Variabel kosong adalah variabel yang tidak mempunyai nilai.


Variabel ini didapat atas assignment atau membaca dari keyboard
atau variabel 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

117
Daftar Isi
Praktikum Sistem Operasi 118

dahulu dengan sepasang Back Quate (tanda kutip terbalik). Hasil


dari eksekusi tersebut akan masuk sebagai nilai variabel DIR
$ pwd
$ DIR=`pwd`
$ echo $DIR

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”

118
Daftar Isi
Praktikum Sistem Operasi 119

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

5. Membuat shell script prog04.sh versi 3 dengan menambahkan


total parameter dan nomor proses id (PID)
$ vi prog04.sh
#!/bin/sh

119
Daftar Isi
Praktikum Sistem Operasi 120

# 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 studentX /etc/passwd
$ echo $?
Percobaan 6: Konstruksi if
1. Instruksi dengan exit status 0
$ who
$ who | grep studentX
$ echo $?

120
Daftar Isi
Praktikum Sistem Operasi 121

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) di atas dapat disederhanakan dengan


$ if who|grep studentX >/dev/null
> then
> echo okay
> fi
Percobaan7 : Konstruksi if then else
1. Membuat shell script prog05.sh
$ vi prog05.sh
#!/bin/sh
# prog05.sh
# Program akan memberikan konfirmasi 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”

121
Daftar Isi
Praktikum Sistem Operasi 122

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=studentX]
$ . prog05.sh [nama=student]

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

122
Daftar Isi
Praktikum Sistem Operasi 123

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

123
Daftar Isi
Praktikum Sistem Operasi 124

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 kedua, 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
$ echo $?

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


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

124
Daftar Isi
Praktikum Sistem Operasi 125

3. 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”

4. 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 aritmatika


1. Menggunakan utilitas expr
$ expr 5 + 1

125
Daftar Isi
Praktikum Sistem Operasi 126

$ 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 variabel 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
#!/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 $?

126
Daftar Isi
Praktikum Sistem Operasi 127

E. LATIHAN
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 direktori, 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”
……
……

127
Daftar Isi
Praktikum Sistem Operasi 128

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 logika && 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:
 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

128
Daftar Isi
Praktikum Sistem Operasi 129

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
Solusi:
Variabel: pph = pajak penghasilan
pkp = penghasilan kena pajak
gaji = gaji yan gditerima dalam ribuan rupiah
#!/bin/sh
# prog: pph.sh
echo –n “Berikan gaji dalam ribuan rupiah : “
read gaji
pkp = 10000

129
Daftar Isi
Praktikum Sistem Operasi 130

if [ $gaji –le $pkp ]


then
pkp=$gaji
pph=`expr $pkp \* 15 / 100`
else
gaji=`expr $gaji - $pkp`
pph=1500
pkp=25000
if [ $gaji –le $pkp ]
then
pkp=$gaji
pph=`expr $pph + $pkp \* 25 / 100`
else
pph=`expr $pph + $pkp \* 25 / 100`
gaji=`expr $gaji - $pkp`
if [ $gaji –gt 0 ]
then
pkp=$gaji
pph=`expr $pph + $pkp \* 35 / 100`
fi
fi
fi
echo “Pajak Penghasilan = $pph”

130
Daftar Isi
Praktikum Sistem Operasi 131

Praktikum 12
Pemrograman Shell (2)

A.TUJUAN
1. Menggunakan struktur case – esac.
2. Loop dengan while, for, do while.
3. Membuat fungsi dan mengetahui cara memanggil fungsi tersebut.

B.DASAR TEORI
1.Konstruksi case
case digunakan untuk menyederhanakan pemakaian if yang
berantai, sehingga dengan case, kondisi dapat dikelompokkan secara
logis dengan lebih jelas dan mudah untuk ditulis.
case variable in
match1)
instruksi1.1
instruksi1.2
………………
;;

131
Daftar Isi
Praktikum Sistem Operasi 132

match2)
instruksi2.1
instruksi2.2
………………
;;
*)
instruksi3.1
instruksi3.2
………………
;;
esac
case diakhiri dengan esac dan pada setiap kelompok
instruksi diakhiri dengan ;;. Pada akhir pilihan yaitu *) yang berarti
adalah “default”, bila kondisi tidak memenuhi pola sebelumnya.
2.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
3.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 FALSE, atau program keluar dari blok while melalui exit
atau break.

132
Daftar Isi
Praktikum Sistem Operasi 133

while kondisi
do
instruksi1
instruksi2
………………
done
4.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  :
5.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
}
Variabel dapat didefinisikan dalam fungsi sebagai variabel
lokal atau global. Hal yang perlu diperhatikan, nama variabel yang
digunakan dalam sebuah fungsi, jangan sampai bentrok dengan
nama variabel yang sama di luar fungsi, sehingga tidak terjadi isi
variabel berubah.

133
Daftar Isi
Praktikum Sistem Operasi 134

C.LANGKAH – LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai studentX.
3. Gunakan instruksi case-esac.
4. Gunakan instruksi looping for-do-done, while-do-done, dummy.
5. Buatlah fungsi dengan variabel lokal dan global.

D.PERCOBAAN
Percobaan 1: 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

134
Daftar Isi
Praktikum Sistem Operasi 135

;;
3)
echo “Kalender bulan ini”
cal
;;
*)
echo “Salah pilih !!”
;;
esac
Jalankan program prog09.sh, cobalah beberapa kali dengan
inputan yang berbeda
$ . prog09.sh
Buatlah file prog10.sh yang merupakan bentuk lain dari case
$ vi prog10.sh
#!/bin/sh
# Prog: prog10.sh
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
Jalankan program prog10.sh, cobalah beberapa kali dengan
inputan yang berbeda
$ . prog10.sh
Modifikasi file prog10.sh yang merupakan bentuk lain dari case
$ vi prog10.sh
#!/bin/sh

135
Daftar Isi
Praktikum Sistem Operasi 136

# Prog: prog10.sh
echo –e “Jawab (Y/T) : \c“
read JWB
case $JWB in
[yY] | [yY][aA] ) JWB=y ;;
[tT] | [tT]idak ) JWB=t ;;
*) JWB=? ;;
esac
Jalankan program prog10.sh, cobalah beberapa kali dengan
inputan yang berbeda
$ . prog10.sh
Percobaan 2: Konstruksi for-do-done
2. 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
Jalankan program prog11.sh
$ . prog11.sh
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

136
Daftar Isi
Praktikum Sistem Operasi 137

for F in *
do
echo $F
done
Jalankan program prog12.sh
$ . prog12.sh
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
Jalankan program prog12.sh
$ . prog12.sh
Percobaan 3: Konstruksi while-do-done
3. 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”

137
Daftar Isi
Praktikum Sistem Operasi 138

echo “3. Kalender bulan ini”


echo “4. Keluar”
echo –e “ Pilihan : \c”
read PILIH
if [ $PILIH –eq 4 ]
then
break
fi
clear
done
echo “Program berlanjut di sini setelah break”
Jalankan program prog13.sh
$ . prog13.sh
Percobaan 4: Instruksi dummy
4. 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 –e “ Pilihan : \c”
read PILIH

138
Daftar Isi
Praktikum Sistem Operasi 139

if [ $PILIH –eq 4 ]
then
break
fi
clear
done
echo “Program berlanjut di sini setelah break”
Jalankan program prog13.sh
$ . prog13.sh
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
Jalankan program prog14.sh beberapa kali dengan input yang
berbeda
$ . prog14.sh
Percobaan 5: Fungsi
5. Buatlah file fungsi.sh
$ vi fungsi.sh

139
Daftar Isi
Praktikum Sistem Operasi 140

#!/bin/sh
# Prog: fungsi.sh
F1( ) {
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
F1
F1
echo $?
Jalankan program fungsi.sh
$ . fungsi.sh
Menggunakan variabel 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 $?”

140
Daftar Isi
Praktikum Sistem Operasi 141

echo “Honor = $Honor”


Jalankan program fungsi.sh
$ . fungsi.sh
Menggunakan variabel 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”
Jalankan program fungsi.sh
$ . fungsi.sh

E. LATIHAN
1. Buatlah program myprog.sh yang memproses parameter $1,
nilai parameter harus berupa string:
start
stop

141
Daftar Isi
Praktikum Sistem Operasi 142

status
restart
reload
Bila bukan 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}”
;;
esac
return

2. 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() {

142
Daftar Isi
Praktikum Sistem Operasi 143

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

143
Daftar Isi
Praktikum Sistem Operasi 144

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.

144
Daftar Isi
Praktikum Sistem Operasi 145

Praktikum 13
Redhat Package Manager (RPM),
TAR dan GZIP

A.TUJUAN
1. Mengerti konsep RPM, TAR dan GZIP.
2. Menggunakan RPM untuk melihat Package software yang sudah
diinstalasi.
3. Menggunakan RPM untuk instalasi software baru.
4. Menggunakan RPM untuk menghapus package software yang ada
di sistem.
5. Menggunakan TAR untuk instalasi software.
6. Menggunakan GZIP untuk instalasi software.

B.DASAR TEORI
1.Manajemen Paket Software
Setiap sistem Linux mempunyai manajemen paket software,
yang paling popular adalah RPM (Redhat Package Manajemen).

145
Daftar Isi
Praktikum Sistem Operasi 146

RPM mengatur instalasi paket software,


maintenance/upgrade dan menghapus paket software dari sistem,
atau lebih dikenal dengan install dan uninstall (remove).
RPM menyimpan informasi tentang paket yang di-install
dalam database. Penghapusan paket berarti juga menghapus semua
files dan direktori yang terdaftar pada database tersebut, lengkap
dengan nama PATH (lokasi dimana file dan direktori tersebut
berada).
RPM menyimpan paket dalam bentuk file yang telah
dikompress dan ditulis sebagai file dengan ekstensi *.rpm.
2.Fungsi Manajer Paket Software
a. Menghitung besar paket yang disesuaikan dengan
kapasitas penyimpanan disk yang masih tersedia, apakah cukup
atau tidak.
b. Memerikasa apakah ada library atau file-file lain yang
dibutuhkan untuk software tersebut.
c. Menghindari konflik dengan software yang telah terpasang di
sistem.
d. Proses instalasi tidak mengacaukan sistem (membuat sistem
file terganggu/korup).
e. Upgrade ke versi yang baru tanpa mengganggu konfigurasi
yang sudah ada.
f. Verifikasi file dalam paket tersebut.

3.Paket Software
Terdiri dari 2 jenis:
a. Paket binary (biner)
Terdiri atas kumpulan program executable. Paket ini berekstensi
*.rpm.

b. Paket source

146
Daftar Isi
Praktikum Sistem Operasi 147

Berisi teks dari program yang kemudian dapat dikompilasi


menjadi executable. Paket ini berekstensi *.src.rpm.

4.Nama Paket
Penamaan paket diatur denga konvensi sebagai berikut:
1. Nama
2. Versi
3. Release

4. 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:

147
Daftar Isi
Praktikum Sistem Operasi 148

# 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 menampilakan 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 memilih file apa saja
p berfungsi pada paket yang belum diinstalasi
--scripts menampilkan script untuk instalasi

6.TAR
TAR singkatan dati Tape Archive. Tar mula-mula didesain
untuk backup tape, tetapi digunakan untuk membuat file tar pada
semua sistem file. Tar membuat satu “tar file” (yang disebut dengan
“tarball”) pada beberapa file dan direktori. File tar tidak dikompresi,
hanya sebuah file heap yang dibentuk bersama dalam satu container.
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:
1. tar –xvf example.tar mengekstrasi isi dari
example.tar dan menunjukkan file yang akan diekstrasi
2. tar –cf backup.tar /home/ftp/pub membuat file tar bernama
backup.tar dari isi direktori /home/ftv/pub
3. tar –tvf example.tar menampilkan isi dari example.tar pada
screen.

148
Daftar Isi
Praktikum Sistem Operasi 149

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 compatible denga WinZip dan PkZip. Sehingga
file ZIP pada UNIX dapat di unzip pada windows.
Contoh:
a. 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
b. untuk dekompresi file menggunakan gzip, eksekusi perintah
berikut: gzip –d filename.tar, hasil dari operasi ini adalah file
bernama filename.tar. Defaultnya, gzip akan menghapus file
filename.tar.gz

C.LANGKAH-LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai root.
3. Instalasi paket software menggunakan rpm.

D. PERCOBAAN
Percobaan 1: RPM query
Informasi tentang paket software
# rpm –qi samba|more

149
Daftar Isi
Praktikum Sistem Operasi 150

Instal dari CD-ROM, 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.lS.i386.rpm | more

Melihat file apa saja yang sudah diinstalasi, gunakan sub-opsi -l.
#rpm –ql samba |more

Melihat file konfigurasi


#rpm –qc samba | more
Melihat dokumentasi file
#rpm –qd samba | more

Melihat script file yang digunakan untuk instalasi. Perhatikan


bahwa hasli output tergantung atas versi Linux yang digunakan
# rpm –q –scripts samba

Percobaan 2: Menghapus paket


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

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

150
Daftar Isi
Praktikum Sistem Operasi 151

Setelah itu paket apache baru bisa dihapus


# rpm –e apache

Percobaan 3: Menggunakan tar


Logout dari root dan login sebagai studentX.
Pastikan berada pada direktori home dan lihatlah isi direktori
home. Pindah ke direktori desktop. Setelah itu kembali ke
direktori home.
$ cd
$ ls –al
$ cd Desktop
$ cd

Buatlah file tar pada direktori desktop


$ tar –svf desktop.tsr Desktop

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

Ekstrasi isi dari file tar. Lihatlah isi direktori dan seharusnya akan
terlihat direktori Desktop yang original
$ tar –xvf desktop.tar

151
Daftar Isi
Praktikum Sistem Operasi 152

$ls –al
$ cd Desktop

Hapus direktori Desktop


$ rm –rf Desktop

Percobaan 4: Menggunakan gzip


Buatlah file gzip dari desktop.tar, pastikan terbentuk file
desktop.tar.gz
$ gzip desktop.tar
$ ls –al
Dekompresi file gzip desktop.tar.gz dan cobalah untuk ekstrasi
isi file tar
$ gzip –d desktop.tar.gz
$ ls –al
$ tar –xvf desktop.tar
$ ls –al
$ cd Desktop

Hapus file tar dan direktori Desktop.old


$ rm desktop.tar
$ rm –rf Desktop.old

E. LATIHAN
1. Masukkan cd 1 dari Redtah Linux 7.0 Installation dan pilihlah
salah satu file rpm pada direktori games dan cobalah untuk
melakukan instalasi file rpm tersebut

152
Daftar Isi
Praktikum Sistem Operasi 153

2. Masuklah ke XWindow dan bukalah cd instalasi tersebut dan


cobalah untuk melakukan instalasi menggunakan menu pada
XWindow.
3. 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 tersebuat buatlah
menjadi file tar dan kompresi file tersebut menggunakan gzip.

Praktikum 14
Tutorial AWK

A. DEFENISI
AWK merupakan bahasa pemrograman yang dapat
digunakan untuk tugas-tugas manipulasi data. AWK dikembangkan
pada tahun 1977 di laboratorium AT&T sebagai bagian dari dari
percobaan terhadap grep dan sed. Dengan kemampuan untuk
menerima suatu pattern matching, kita dapat memanfaatkan AWK
untuk mengembangkan sebuah aplikasi script yang dapat
memanipulasi data dengan mudah.

B. LATIHAN
1. Buatlah sebuah file text dengan isi dokumen sebagai berikut
Beth 4.00 0

153
Daftar Isi
Praktikum Sistem Operasi 154

Dan 3.75 0
Kathy 4.00 10
Mark 5.00 20
Mary 5.50 22
Susie 4.25 18
Catatan: Gunakan tab untuk pemisah antar field. Simpanlah
dengan nama data.

2. Pada prompt shell Anda, ketiklah perintah berikut


$ awk '{ print }' data
$ awk '{ print $0 }' data
$ awk '{ print $1, $2 * $3 }' data
$ awk '$3 != 0 {print $1, $2, $3 }' data
$ awk '{ print NR, $1, $2, NF }' data
$ awk '{printf("%d Total pay for %s is %.2f\n", NR, $1, $2 *
$3)}' data
$ awk '{printf("%3d Total pay for %-10s is %8.2f\n", NR, $1, $2
* $3)}' data
$ awk '/Susie/ {print $1, $2 * $3}' data

3. Buatlah sebuah file dengan nama a.awk yang berisi


BEGIN { print "No- Employee------------------- --Salary"}
{printf("%3d Total pay for %-10s is %8.2f\n", NR, $1, $2 * $3)}
END { print "--- --------------------------- --------"}

lalu jalankan dengan perintah berikut


$ awk -f a.awk data

154
Daftar Isi
Praktikum Sistem Operasi 155

BEGIN dan END adalah keyword yang akan mencocokan di


awal dan diakhir dari input file.

4. Sekarang kita coba untuk melakukan perhitungan sederhana.


Buat file dengan nama b.awk yang berisi
{jum = jum + $2 * $3}
END {printf("Total pay for all emp is %10.2f\n", jum)}

lalu jalankan dengan perintah berikut

$ awk -f b.awk data


Bagaimana dengan menghitung rata-ratanya?
5. Kita coba mencari nilai terbesar. Buatlah file c.awk dengan isi
sebagai berikut

$2 > max { max = $2; maxemp = $1}


END { print "Jam kerja tertinggi :", max, " oleh ", maxemp }
Cobalah Anda buat untuk mencari gaji terbesar!

6. Perintah Kontrol if. Buatlah sebuah file dengan nama d.awk yang
berisi

$2 > 4 { n = n +1; pay = pay + $2 * $3}


END { if (n > 0)
print n, "employees, total pay is ", pay,
"average pay is", pay/n
else
print "no employees are paid more than $6/hour"

155
Daftar Isi
Praktikum Sistem Operasi 156

7. Perintah Kontrol while. Buatlah sebuah file dengan nama e.awk


yang berisi

{
i=1
while (i <= $3) {
printf("\t%8.2f\n", (1 + $2) ^ i)
i=i+1
}
}
8. Perintah Kontrol for. Buatlah sebuah file dengan nama f.awk
yang berisi

{
for (i=1; i <= $3; i = i + 1)
printf("\t%8.2f\n", (1+$2)^i)
}

9. Array dapat Anda buat dengan cara seperti contoh berikut ini
{ line[NR] = $0 }
END { i = NR
while (i > 0) {
print line[i]
i=i-1
}
}

156
Daftar Isi
Praktikum Sistem Operasi 157

10.Buatlah file data kedua dengan nama countries dengan isi


berikut

USSR 8649 275 Asia


Canada 3852 25 Nort America
China 3705 1032 Asia
USA 3615 237 North America
Brazil 3286 134 South America
India 1267 746 Asia
Mexico 762 78 North America
France 211 55 Europe
Japan 144 120 Asia
Germany 96 61 Europe
England 94 56 Europe

11.Buatlah file dengan nama g.awk yang berisi

/Asia/ { pop["Asia"] += $3 }
/Europe/ { pop["Europe"] += $3 }
END { print "populasi Asia ", pop["Asia"], " juta"
print "populasi Eropa ", pop["Europe"], " juta"
}

Cobalah Anda menampilkan field demi field untuk data berikut

Beth:4.00:0

157
Daftar Isi
Praktikum Sistem Operasi 158

Dan:3.75:0
Kathy:4.00:10
Mark:5.00:20
Mary:5.50:22
Susie:4.25:18

Catatan: FS adalah variabel internal yang digunakan sebagai


informasi field separator.

12.Coba dengan script berikut

BEGIN {FS = "\t"}


{ pop[$4] += $3 }
END { for (name in pop)
print name, pop[name]
}

13. Pola pencocokan String pada awk dapat dilakukan dengan


mengikuti sintak berikut

Sintak Keterangan

/regexp/ Mencocokan inputan dengan regexp yang diberikan


expression ~

158
Daftar Isi
Praktikum Sistem Operasi 159

/regexp/ Mencocokan apakah string expression berisi substring


dari regexp expression !~
/regexp/ Mencocokan apakah string expression tidak berisi
substring dari regexp

Regular Expression:
\^$.[]|()*+?
\ spesial karakter
^ pencocokan pada posisi awal
$ pencocokan pada posisi akhir
. mewakili sembarang 1 karakter
[ABC] mencocokan sembarang karakter A atau B atau C
[A-Za-z]
[^0-9] yang bukan antara 0 - 9
A|B A atau B
A* mencocokan ada atau 1 atau lebih dari 1 A
A+ mencocokan ada satu atau lebih A
A? mencocokan null string atau A
( r ) mencocokan beberapa string seperti pola r

159
Daftar Isi
Praktikum Sistem Operasi 160

Praktikum 15
Tutorial AWK ( 2 )

A. DEFENISI
Bahasa yang disediakan oleh Linux dan merupakan standar
di banyak (sebagian besar) sistem UNIX adalah awk. Singkatan awk
merupakan kependekan dari huruf pertama last-name
pengembangnya: Alfred Aho, Peter Weinberger, dan Brian
Kernighan. Seperti sed, awk merupakan bahasa interpreter pattern-
matching. Bahasa awk dapat membaca dari stdin dan dapat
melewatkan nama file yang berisi argumennya.

B. LATIHAN
1. Buatlah file awk.data yang berisi:
Blinn, David;42 Clarke

160
Daftar Isi
Praktikum Sistem Operasi 161

Street;Sunnyvale;California;95123;33
Dickson, Tillman;8250 Darryl Lane;San
Jose;California;95032;34
Giberson, Suzanne;102 Truck Stop Road;Ben
Lomond;California;96221;26
Holder, Wyliam; 1932 Nuldev Street;Mount
Hermon;California;95431;42
Nathanson, Robert;12 Peabody
Lane;Beaverton;Oregon;97532;33
Richards, John;1232 Bromide
Drive;Boston;Massachusetts;02134;36
Shaffer, Shannon;98 Whatever
Way;Watsonville;California;95332;24

Data di atas terdiri dari: nama, alamat, kota, negara


bagian, kode pos, dan umur yang dipisahkan dengan
tanda ";".

2. Kita ingin mencetak nama dan kota dimana orang tersebut


berumur kurang dari 30
tahun.
$ awk -F";" '$6 < 30 { print $1, $3 }' awk.data

3. Kita ingin mencetak nama dan kota dimana negara bagiannya


California.
$ awk -F";" '$4 == "California" { print $1, $3 }' awk.data

4. Kita ingin mencetak nama dan kota dimana umur orang


tersebut 33.
$ awk -F";" '$6 == 33 { print $1, $3 }' awk.data

161
Daftar Isi
Praktikum Sistem Operasi 162

5. Kita ingin mencetak baris dimana pada baris tersebut berisi


karakter "on", sehingga kita dapat menggunakan regular
expression di dalam kriteria pencarian.
$ awk -F";" '/on/ { print $0 }' awk.data

6. Pada awk, regular expression dapat dibuat lebih rumit.


$ awk -F";" '/[^s]on[^;]/ { print $0 }' awk.data

Apa maksud dari perintah diatas?

7. Kita ingin mencetak hanya baris yang pada field pertamanya


(last-name nama orang)
dimulai dari A hingga M. Karena data sudah terurut, maka:
$ awk -F";" '/^A/,/^M/ { print $0 }' awk.data
Tapi apa yang kita dapat?
8. Hal di atas bisa terjadi karena awk mencari baris yang
cocok/sesuai dengan kriteria yang kita tentukan. Sehingga,
perintah diatas mempunyai arti "Cari baris pertama yang
dimulai dengan A dan kemudian cetak semua baris termasuk
baris terakhir dengan awalan M". Karena tidak ada baris yang
dimulai dengan "A", maka "alamat awal" tidak ada.
$ awk -F";" '/^[A-M]/ { print $0 }' awk.data
9. Jika kita ingin menggunakan "alamat awal" dan "alamat
akhir", kita harus menentukan secara spesifik huruf awal
nama yang benar-benar ada pada file kita.
$ awk -F";" '/^B/,/^H/ { print $0 }' awk.data
10. Karena mencetak merupakan hal sangat penting bagi awk, ada
dua cara mencetak dengan awk. Pertama sudah kita lakukan
di atas. Kedua kita bisa menggunakan printf, sehingga kita
bisa menentukan bentuk keluaran lebih detil.
$ awk -F";" '$6 > 30 { printf"%-20s %5d\n", $1, $6 }'
awk.data

162
Daftar Isi
Praktikum Sistem Operasi 163

11. Cara lain menggunakan awk dengan menggunakan pipe.


$ ls -l | awk '{ print $1" "$9 }'
12. awk mempunyai kemampuan melakukan banyak task
pada tiap baris dengan dimulai dengan membaca dan
setelah itu mengakhiri membaca. Kita menggunakan
pasangan BEGIN dan END sebagai penanda.

BEGIN { FS=";" }
{printf"%s\n", $1}
{printf"%s\n", $2}
{printf"%s, %s\n",$3,$4}
{printf"%s\n", $5}
END { print "Total Nama: " NR }
Tulis script di atas dan simpan ke dalam file dengan nama
awk.scr.
Kemudian lakukan sebagai berikut.
$ awk -f awk.scr awk.data
13. Tambahkan pada script di atas dengan sebelum END.
{total = total + $6}

Setelah END tambahkan.


{print "Rata-rata umur: " total/NR}

Tabel Operator Pembanding


No Operator Arti
1. < kurang dari
2. <= kurang dari atau sama dengan
3. == sama dengan

163
Daftar Isi
Praktikum Sistem Operasi 164

4. != tidak sama dengan


5. >= lebih dari atau sama dengan
6. > lebih dari

Tabel Nilai Default dari Variabel yang Built-in


No. Variabel Arti Default
1. ARGC number of command-line arguments -
2. ARGV array of command-line arguments -
3. FILENAME name of current input file -
4. FNR record number in current file -
5. FS input field separator space or tab
6. NF number of fields in the current record -
7. NR number of records read -
8. OFMT numeric output format %.6g
9. OFS output field separator space
10. ORS output record separator new line
11. RS input record separator new line

164
Daftar Isi
Praktikum Sistem Operasi 165

Praktikum 16
Informasi Hardware dari BIOS
dan Linux

A. TUJUAN
1. Peserta praktikum dapat mengenal konfigurasi hardware
komputer dari informasi yang diberikan oleh BIOS maupun
dari Linux, sehingga diharapkan peserta dapat memahami
penanganan konfigurasi hardware oleh Linux.
2. Mengetahui informasi hardware dari BIOS ataupun Linux.
3. Mengetahui beberapa perintah yang digunakan untuk
mendapatkan informasi hardware pada Linux.

B. PERCOBAAN

165
Daftar Isi
Praktikum Sistem Operasi 166

1. Mengetahui Informasi Hardware dari BIOS


1. Cold boot
2. Selama proses cold boot, perhatikan parameter-parameter yang
ditampilkan oleh BIOS.
Catatlah, kemudian isilah item-item berikut:
No. Jenis Nilai
1. CPU Prosesor: ........................
Clock: ..... ………MHz
2. RAM ............. MByte
3. HD Cyl ....., Head ....., Sector ....., Size
.....
4. BIOS Merk .....
5. Floppy Jenis .....
6. Paralel Port I/O ....., IRQ .....
7. Serial Port COM1: I/O ....., IRQ .....
COM2: I/O ....., IRQ .....
8. VGA Card Merk/Type .........., VRAM .....
MByte

2. Mengetahui Informasi Hardware dari Linux


1. a. Cold boot
b. Linux started...
c. Menjalankan LILO/Grub

LILO/Grub merupakan boot manager Linux yang


disimpan sebagian umumnya di daerah MBR (Master
Boot Record). LILO/Grub dijalankan untuk menjalankan
kernel Linux yang tersimpan di direktori /boot.

166
Daftar Isi
Praktikum Sistem Operasi 167

2. Kernel Linux dijalankan.

3. Prompt login muncul

Login session pada terminal ditangani oleh program


mingetty. Program mingetty akan menampilkan prompt
login, menerima password dan autentikasinya. Pada mesin
kita sekarang, telah disiapkan beberapa virtual terminal yang
diberi nama dari tty1, tty2, dst. Untuk mengetahui informasi
ini lakukan perintah berikut:

• login dengan nama studentX


• jika berhasil maka akan muncul prompt shell yang siap
menerima perintah
• ketikkan more /etc/inittab
• ketik /tty1
• ada berapa tty yang disiapkan? berada di dalam
direktori apa program mingetty disimpan?

Misal tty yang disiapkan sebanyak 3, hal tersebut berarti


bahwa seolah-olah pada satu mesin yang sama, kita dapat
bekerja dengan 3 buah terminal yang berbeda. Lakukan
langkah berikut:
• tekan ALT-F2, login dengan username studentX
• ketikkan perintah tty, anda berada di terminal berapa?
• tekan ALT-F1
• pada terminal tty1 ini, ketikkan perintah : cat /etc/issue >
/dev/tty2
• tekan ALT-F2, apa yang terlihat pada terminal tty2
sekarang? apa yang terjadi?
• tekan ENTER untuk kembali ke prompt

167
Daftar Isi
Praktikum Sistem Operasi 168

• ketik perintah logout untuk menutup session


• tekan kembali ALT-F1

4. a. untuk mengetahui jenis shell yang dipakai, ketikkan echo


$SHELL
b. shell apa yang sedang digunakan sekarang?
c. untuk mengetahui tipe terminal ketikkah echo $TERM

5. Untuk informasi device yang terbaca Linux di mesin kita,


ketikkan dmesg | more.

168
Daftar Isi
Praktikum Sistem Operasi 169

6. Berdasarkan informasi saat proses boot tersebut, catatlah


beberapa informasi yang tertera pada tabel berikut:

No. Jenis Tuliskan seperti apa yang


diberikan dmesg

1. CPU Prosesor: .....


Clock: ..... MHz
2. RAM ..... MByte
3. HD Cyl ....., Head ....., Sector ....., Size
.....
4. Partition check .....
5. Floppy Jenis .....
6. Paralel Port I/O ....., IRQ .....
7. Serial Port COM1: I/O ....., IRQ .....
COM2: I/O ....., IRQ .....
8. VGA Card Merk/Type .........., VRAM .....
MByte

Sebagai alat bantu:

• CPU, gunakan cat /proc/cpuinfo


• RAM, cat /proc/meminfo
• HD, dengan kode hdx (ganti x dengan a, b, c atau d),
iden (ganti n dengan 0 atau 1)
untuk interface IDE
• Floppy, kode fdn (ganti n dengan 0 atau 1)
• Paralel Port, kode parportn (ganti n dengan 0 atau 1)
• Serial Port, kode ttySnn (ganti nn dengan 00, 01, dst)

169
Daftar Isi
Praktikum Sistem Operasi 170

Jika ingin tahu data yang ditampilkan dari setiap file


dalam direktori /proc, silakan ketikkan man proc.

3. Informasi lain

1. Hampir semua informasi hardware yang dikenal saat boot


disimpan pada direktori /proc.

a. Versi kernel: cat /proc/version


b. Informasi I/O Port address: cat /proc/ioports
c. Informasi Mem tiap device: cat /proc/iomem
d. Informasi device PCI: cat /proc/pci
Apa informasi VGA Card anda?
e. Informasi no. interrupt: pada file /proc/interrupts

2. Perintah lain untuk mengetahui informasi Linux,


gunakan uname. Cobalah semua option/pilihan yang ada
(man uname atau uname --help). Catatlah:

a. Hostname: .....
b. Versi Kernel: .....
c. Model mesin prosesor: .....

3. Untuk mengetahui sudah berapa lama sistem Linux


running pada mesin kita, gunakan perintah uptime. Jelaskan
informasi yang anda peroleh! Catatlah:
a. Jam mulai: .....
b. Waktu penggunaan: .....
c. Jumlah user: ..... Siapa saja? .....

170
Daftar Isi
Praktikum Sistem Operasi 171

Praktikum 17
Linux File

A. TUJUAN
1. Peserta praktikum Linux dapat mengenal Linux File
2. Mengetahui permission pada tiap objek file atau direktori pada
Linux
3. Mengetahui perintah-perintah untuk administrasi file dan direktori
pada Linux

B. PERCOBAAN
1. Pengantar
Dalam menggunakan suatu sistem operasi, selain
digunakan untuk dapat mengontrol periferal yang kita gunakan,
ada satu alasan penting lainnya, yaitu agar dapat memanjemen
file dalam media penyimpanan kita. Manajemen file
diimplementasikan oleh Linux dalam suatu sistem file tertentu.
Linux mengenal beberapa sistem, diantaranya: ext2 (sistem file
standar Linux), ext3 (ext2 ditambah dengan journaling system).
Selain dua tersebut, kernel Linux juga dapat dibuat untuk
mengenal sistem file lain seperti NTFS (ntfs), FAT16 (fat),
FAT32 (vfat), ISO9660 CDROM (iso9660), dan sebagainya (lihat
perintah mount).
Sistem file pada Linux diorganisasikan sebagai sebuah
tree dengan sebuah single node root (/), setiap node non-leaf dari
sistem file adalah sebuah direktori, sedangkan node leaf dapat
berupa file, direktori.
Pada Linux, dan UNIX umumnya, sebuah direktori
sebenarnya adalah sebuah file biasa yang berisi semua informasi
file-file lain yang terletak dalam direktori tersebut. Pada sistem

171
Daftar Isi
Praktikum Sistem Operasi 172

UNIX, keunggulan yang dimiliki adalah pemakai dapat


menentukan hak akses (access permission) untuk tiap file atau
direktori yang tersimpan pada media penyimpanan. Linux
memperlakukan device atau periferal, seperti floppy disk, hard
disk, cdrom, printer, dan sebagainya sebagai sebuah file khusus,
yang secara sintak pengaksesannya sama dengan file lainnya.
Sistem file juga merupakan sebuah tree yang berisi root,
cabang dan leaf. Suatu sistem file dicangkokkan bersama-sama
dengan melekatkan root suatu sistem file ke sebuah direktori
sistem file lain dengan perintah mount. Perintah umount
digunakan untuk memutuskan cangkokan yang dibuat oleh utiliti
mount.

2. Mengenali Sistem File


1. Hidupkan komputer, tunggu sampai tampil prompt login.
Loginlah sebagai studentX.
2. Pada prompt shell, ketikkan perintah df -T.
3. Apa fungsi perintah df? (gunakan man df atau df --help)
4. Dari output yang diberikan oleh df, tulis partisi yang ada.
5. Selain itu dari perintah df -T tersebut, jenis sistem file apa saja
yang ditemukan. Tuliskan deskripsi singkat tentang sistem
file tersebut (sebagai bantuan gunakan perintah man
mount, kemudian ketikkan /Mount options for <nama
sistem file>. Contoh /Mount options for ext2).
6. Tuliskan perintah df yang dapat menampilkan informasi
yang mudah dibaca tentang kapasitas, terpakai, dan sisa dari
tiap partisi yang ada (ditampilkan dalam format KByte atau
MByte atau GByte).

3. Mengenal Perintah Operasi Disk (gunakan /dev/sda1 atau sdb1 dst. untuk
flashdisk)

1. Anda sekarang berada di dalam direktori mana? Ketikkan


perintah pwd dan tulis direktori anda sekarang berada.

172
Daftar Isi
Praktikum Sistem Operasi 173

2. Sekarang pastikan bahwa anda berada di dalam direktori


/home/studentX. Jika tidak ketikkan cd.
3. Ketikkan du untuk mengetahui informasi daftar direktori
dan subdirektorinya dalam direktori aktif anda. Berapa total
space yang telah digunakan dalam direktori anda sekarang?
(Lihat baris terakhir yang ditampilkan). Sulitkah
membacanya? Ada opsi yang dapat diberikan untuk dapat
menampilkan hanya informasi total space yang digunakan dan
dalam format yang mudah dibaca. Tuliskan perintahnya
untuk mendapatkan informasi tersebut dengan du.
4. Jika pada diskdrive tersedia sebuah floppy disk 3,5 inch
1,44 MByte Double Side, formatlah dengan perintah
fdformat /dev/fd0H1440.
5. Tunggulah proses pemformatan tersebut.
6. Selanjutnya, lakukan pengecekan terhadap bad
block, dengan perintah
/sbin/badblocks /dev/fd0.
7. Selanjutnya kita tentukan sistem file pada floppy disk tersebut.
Misalkan jadikan floppy disk tersebut memiliki sistem file
FAT atau VFAT yang nantinya dapat dibaca oleh Windows
atau DOS. Ketikkan perintah /sbin/mkfs.msdos /dev/fd0.
8. Lakukan mounting floppy disk tersebut, dengan cara: mount
/dev/fd0.
9. Sekarang cek tipe file system dengan df -T. Tulis tipe sistem
file /dev/fd0, jumlah byte tersedia dan dimount di direktori
apa?
10. Jadikan floppy disk tersebut memiliki sistem file ext2 untuk
dikenal di Linux. Ketikkan perintah /sbin/mkfs.ext2 /dev/fd0.
11. Lakukan mounting floppy disk tersebut.
12. Sekarang cek kembali langkah 9.
13. Lakukan unmounting floppy disk tersebut dengan cara
umount /mnt/floppy.
14. Coba berikan perintah df -T. Apakah terlihat informasi tentang
floppy disk? Mengapa?

173
Daftar Isi
Praktikum Sistem Operasi 174

Praktikum 18
Administrasi Proses

A. TUJUAN
1. Peserta praktikum dapat mengenal administrasi proses
2.Mengetahui perintah-perintah untuk administrasi proses pada
Linux

B. PERCOBAAN
Mengenal Administrasi Proses pada Linux
1. Proses adalah program yang sedang dieksekusi. Setiap kali
menjalankan suatu program, sistem UNIX melakukan suatu
fork(), yaitu melakukan beberapa urutan operasi untuk membuat
suatu process context dan kemudian mengeksekusi program
tersebut dalam context yang telah dibuat. Setiap proses yang
dijalankan akan memiliki PID (Proses ID). Kita dapat melihat
semua proses yang sedang berjalan dengan perintah ps. Oleh
karena Linux
(UNIX) mengimplementasikan multitasking dan multithreading,
kita dapat membuat suatu proses berjalan secara background
(perintah bg) ataupun foreground (perintah fg). Selain itu kita juga
dapat mengirim suatu signal kepada suatu proses tertentu
dengan perintah kill. Macam-macam signal dapat kita lihat dengan
cara kill -l.

2. Kita akan mencoba beberapa hal dan perintah menyangkut


administrasi proses pada
Linux.

3. Terlebih dahulu, jika kita ingin mengetahui berapa jumlah

174
Daftar Isi
Praktikum Sistem Operasi 175

memori yang tersisa dan yang terpakai, kita dapat menggunakan


perintah berikut: free -okt. Perintah tersebut akan
menampilkan jumlah byte tentang memori, baik main memory
maupun swap memory dalam satuan Kilo Byte. Berapa total
memori RAM anda? Masih ada free berapa KByte-kah RAM
anda? Berapa total swap space yang disediakan? Swap free berapa
KByte?

4. Mari kita cocokkan dengan informasi dari program top.


Ketikkan perintah top.

5. Apakah sama informasi yang disediakan oleh top dengan free


tentang RAM Free anda ataupun Swap Free anda? Apa manfaat
dari perintah top?

6. Apakah sekarang anda memiliki proses yang sedang dijalankan


secara background atau suspend? Untuk mengetahui hal tersebut,
ketiklah jobs. Adakah? Jika tidak ada, mari kita coba!

7. Di dalam home direktori anda, buatlah sebuah file dengan nama


makebg.sh yang berisi baris perintah shell berikut:
#!/bin/sh
i=0
while [ true ];
do
i=$(($i+1))
done
echo $i

8. Ketikkah perintah chmod 755 makebg.sh. Jalankan dengan


./makebg.sh. Apa yang terjadi?

175
Daftar Isi
Praktikum Sistem Operasi 176

9. Tekan CTRL-Z akan membuat proses makebg.sh akan


disuspend. Ketik perintah ps. Apakah anda melihat proses
makebg.sh? PID-nya berapa?
(Jika anda ingin mengetahui informasi lengkap untuk
tiap proses, anda dapat menggunakan perintah ps -f)

Informasi tiap kolom yang dihasilkan dari ps -f:


UID : user ID yang menjalankan proses tersebut
PID : Process ID
PPID : Parent Process ID
C : CPU% utilization
STIME: Start Time proses berjalan
TTY : terminal dimana
TIME : lamanya proses berjalan
CMD : perintah yang dijalankan

10. Karena di-suspend, maka proses makebg.sh akan dihentikan.


Cobalah anda lihat dengan mengtikkan jobs. Anda akan melihat
bahwa makebg.sh Stopped. Untuk menjalankannya kembali, tapi
tidak mengganggu console prompt Anda, maka proses
makebg.sh harus dijalankan secara background. Ketikkan bg %1.
Ketikkan jobs kembali. Status apa yang Anda lihat dari proses
makebg.sh?

11. Sekarang, kita akan "membunuh" proses makebg.sh


tersebut berdasar PID-nya. Ketikkan kill <noPIDmakebg.sh>.
Misal PID makebg.sh 3684, maka ketikkan kill 3684.

12. Coba anda cek apakah benar sudah di"bunuh" proses tersebut,
dengan cara ketikkan ps ataupun ps -ax ataupun jobs.

176
Daftar Isi
Praktikum Sistem Operasi 177

Mengenal Penjadwalan Proses pada Linux

1. Menggunakan perintah at
a. Perintah at memungkinkan kita untuk mengantrikan
eksekusi suatu perintah pada waktu tertentu.
b. - ketikkan cd
- ketikkan date untuk mengetahui waktu saat ini
- ketikkan at <waktu yang mendekati waktu saat ini>
misal: at 09:20
- akan dimunculkan prompt at>
- ketikkan perintah yang akan dijalankan, misal ketikkan du -a
>/tmp/du.out
- tekan ENTER, kemudian tekan CTRL-D
- dengan demikian kita telah memberitahu kepada at
untuk menjalankan perintah tersebut pada waktu yang telah kita
tentukan
- lihatlah daftar antrian tersebut dengan mengetikkan at -l
- tunggulah sesuai waktu yang telah kita tentukan tadi.
Setelah melewati waktu yang kita tentukan, cobalah ketikkan at -l
kembali. Apakah sudah tidak ada daftar antrian? Jika tidak ada
berarti telah dikerjakan. Cek hasilnya dengan cara less /tmp/du.out

2. Menggunakan perintah crontab


a. Ada perintah lain selain at, yang dapat digunakan untuk
dapat menjalankan suatu perintah secara terjadwal, yaitu crontab.
b. Kita buat konfigurasi yang akan digunakan crontab. Ketikkan
perintah vi mycrontab.
c. Ketikkan 1 baris pada file tersebut dengan format berikut:
mnt hrs day month weekday username command
arguments

177
Daftar Isi
Praktikum Sistem Operasi 178

misal:
30 12 * * * studentX /usr/bin/du -a >
/tmp/ducron.out
artinya kerjakan du -a > /tmp/ducron.out pada jam 12:30 tiap
hari
d. Simpanlah! Dari prompt shell anda, ketikkan
crontab mycrontab
e. Lihatlah daftar yang harus dikerjakan crontab dengan cara
crontab -l
f. Tunggulah dan cek hasilnya.
g. Setelah perintah yang kita berikan dikerjakan oleh crontab,
apakah crontab masih akan menyimpan daftar tersebut? (cek
dengan crontab -l setelah perintah dikerjakan)

C. TUGAS
1. Tuliskan perintah untuk menghapus antrian perintah pada at!
2. Tuliskan perintah untuk mengedit dan menghapus schedule pada
perintah crontab!

178
Daftar Isi
Praktikum Sistem Operasi 179

Praktikum 19
Linux Booting Process

A.TUJUAN
1. Mengetahui inisialisasi booting proses pada sistem operasi
Linux
2. Melakukan perubahan inisia lisasi booting proses

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

179
Daftar Isi
Praktikum Sistem Operasi 180

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 :
Process ID Descriptio n
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 :
a. Mengeksekusi program /sbin/init yang memulai semua
proses -proses lain. Program ini akan diberikan ke mesin oleh

180
Daftar Isi
Praktikum Sistem Operasi 181

proses awal yang didefinisikan pada file


/etc/inittab

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

c. Satu dari proses- proses yang dimulai oleh init adalah


/sbin/rc. Skrip ini menjalankan sekumpulan skrip
pada directory /etc/rc.d/rc0.d/, /etc/rc.d/rc1.d, /etc/rc.d/rc2.d dan
seterusnya.

d. Skrip pada direktory tersebut dieksekusi pada setiap boot state


dari oeprasi sampai menjadi operasi yang lengkap. S krip 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 bac


kground), Linux akan menjalankan semua , menyebabkan
mesin lebih lambar. Kita bisa memulai (start) / menghentikan
(stop) daemon secara individual dengan mengubah direktory :

181
Daftar Isi
Praktikum Sistem Operasi 182

/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 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 gr aphical 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.

182
Daftar Isi
Praktikum Sistem Operasi 183

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
directory /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.
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

183
Daftar Isi
Praktikum Sistem Operasi 184

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 :

184
Daftar Isi
Praktikum Sistem Operasi 185

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

185
Daftar Isi
Praktikum Sistem Operasi 186

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

186
Daftar Isi
Praktikum Sistem Operasi 187

$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

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

187
Daftar Isi
Praktikum Sistem Operasi 188

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

188
Daftar Isi
Praktikum Sistem Operasi 189

chkconfig --level 0123456 <name> off

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

189
Daftar Isi
Praktikum Sistem Operasi 190

C.PERCOBAAN
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

190
Daftar Isi
Praktikum Sistem Operasi 191

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

3. Setelah dilakukan perubahan variabel


initdefault, lakukan reboot. Perhatikan apakah masuk ke
mode teks

191
Daftar Isi
Praktikum Sistem Operasi 192

# 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 virtu al 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

192
Daftar Isi
Praktikum Sistem Operasi 193

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 berada pada 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.
# 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

193
Daftar Isi
Praktikum Sistem Operasi 194

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

194
Daftar Isi
Praktikum Sistem Operasi 195

2. Hidupkan sistem Anda

3. Jika screen Linux muncul, Anda dapat


memilih kernel yang diinstal pada sistem. Ketik ”a”
untuk ”append”. Maka akan didapa tkan prompt untuk
menambah opsi boot pada file grub.conf.

grub append> ro root=LABEL=/

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

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

195
Daftar Isi
Praktikum Sistem Operasi 196

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 tertentu. Misalnya Sendmail akan dimulai
pada startup runlevel 3 atau 5. Ubahlah Sendmail tidak dimulai
pada saat boot.

196
Daftar Isi
Praktikum Sistem Operasi 197

3. Perintah chkconfig dapat digunakan dengan grep untuk


menentukan run level dimana Sendmail akan berjalan. Disini
terlihat berjalan pada level 3 dan5.
# chkconfig –list | grep mail

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

197
Daftar Isi
Politeknik Caltex Riau
Praktikum Sistem Operasi

D.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. ne twork
i. syslog
j. keytable
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.

198
Politeknik Caltex Riau
Praktikum Sistem Operasi

Praktikum 20
Starting Up pada Linux

A. DESKRIPSI
Starting Up
All of the Linux distros and flavors of UNIX can be
grouped into two families due to the evolution of UNIX; "System
V" (System Five) and "BSD". This knowledge is useful only in
that the two families use different directory structures for their
startup files, and you'll want to know what files are used
during the startup process so you can set certain processes to
start up automatically when the system boots up.
Debian and most other Linux distros are part of the
System V family. A couple releases back Sun Microsystems
changed their Solaris operating system to be a part of the System V
family also. As a result, knowing this startup directory system
structure is useful for most Linux/UNIX systems. There may be
some variations in directory names, etc. among different distros but
the concept is the same for all.
When you boot your system, services and processes are
started via shell scripts. All shell scripts that could possibly get
executed when you boot your system are stored in the
/etc/init.d sub-directory. (Note that even directories can have periods
in their name.)

Pertanyaan:
File script apa saja yang ada pada folder /etc/init.d Linux anda?

In order to understand the boot-up process you have


to be familier with runlevels. Linux/UNIX systems can be set
to run in different modes of functionality. They can operate

199
Politeknik Caltex Riau
Praktikum Sistem Operasi

in a single-user mode, such as in the case of strictly being a


"workstation" (desktop PC), or they can run in multi-user mode to
operate as a server. Each runlevel is identified by a single-digit
number. The runlevels worth remembering are:
0 - shut down the system
1 - single-user mode
2 - 5 multi-user mode
6 – reboot

Runlevel 2 is Debian's default. Having several different


multi-user runlevels means that you can customize them. For
example, you could disable NFS file sharing in runlevel 2
because that's not something you want enabled on an Internet
server. If you're planning on setting up a file server for your
internal network, you could then change the default runlevel to 3
which would still have NFS file sharing. Initially there's no
difference between the four multi-user runlevels because they're
all set up the same (all start the same services during bootup).
You can change to different runlevels on the fly using the
init command followed by the desired runlevel. This can be
useful, for example, if you wanted to restart the system
remotely. You couldn't use the Ctrl-Alt-Del key sequence to
restart a system you were connected to via a telnet session.
Instead you would just use the init 6 command. Of course,
doing so would disconnect your telnet session, but you could
telnet back in once the system has had a chance to reboot.
Recall that any shell script that might be run at system
startup are stored in the /etc/init.d directory. All these different
runlevels do is run a different set of the scripts stored in this
directory at startup. When the system boots up the first
startup file it reads is the
/etc/inittab text file. This file basically tells the system what the
default run level is via the line
id:2:initdefault:

200
Politeknik Caltex Riau
Praktikum Sistem Operasi

This is the line in the /etc/inittab file you need to edit if


you want to change the default run level. Most distros default to
runlevel 3 which is not a secure thing to do for Internet servers.
Each runlevel also has it's own subdirectory under the /etc
directory, and the subdirectory name contains the runlevel number.
The naming convention for these subdirectories is:
rc2.d
with the runlevel represented as the number above.

Pertanyaan:
1. Apa isi dari file /etc/inittab Linux anda?
2. run level default sistem anda apa/berapa?
3. Di direktori mana run level anda mempunyai direktori?
4. Apa saja isi direktori tersebut?

These runlevel subdirectories don't actually contain any


scripts. Rather, they all contain symbolic links to the scripts in
the /etc/init.d subdirectory. This is so all the different runlevels
can share common scripts eliminating the need to have multiple
copies of the same script in multiple runlevel subdirectories.
(That's why any script that could be run at startup is saved to the
/etc/init.d subdirectory.)
Initially (on a Debian system), all the different runlevel
subdirectories contain the same set of links to the same scripts in
the /etc/init.d subdirectory. As a result, the system is functionally
the same no matter which multi-user runlevel is chosen. You
customize the system's behavior for each runlevel by adding
and/or deleting links in the different runlevel subdirectories.

For example, if you want runlevel 2 to be for Internet


services, you could go into the /etc/rc2.d subdirectory and delete
the links to the NFS scripts. Then you could go into the /etc/rc3.d
subdirectory and delete all the links to the Internet services

201
Politeknik Caltex Riau
Praktikum Sistem Operasi

scripts (like Apache, Sendmail, and inetd) so that runlevel 3 was set
for network file sharing.

Pertanyaan:
1. Script apa saja isi direktori run level default Linux anda?
2. Link kemana script-script tersebut?
3. Bagaimana cara mematikan aplikasi sendmail supaya tidak
dijalankan saat startup?

It all seems confusing the first time you find out about it.
Here's a diagram of the process. Note that special single-user
runlevel is always run at bootup to set up the basic system. The
higher runlevel scripts are additionally run to provide the
multi-user/server functionality.

202
Politeknik Caltex Riau
Praktikum Sistem Operasi

Pertanyaan:
Apa maksud penjelasan di atas?

There's another reason for using links in the individual


runlevel subdirectories. These links use a special naming
convention to indicate when they should be run and in what order
they should be run. Links that have names starting with an upper-
case S are called when the runlevel is entered (starting). Links that
have names starting with an upper-case K are called when the
runlevel is exited to Kill services. (Due to this naming
convention it is more common to simply rename a symbolic
link so that it begins with a dash (-) or underscore (_) rather
than delete them when customizing a runlevel.)
The directories for the multi-user runlevels only contain
links that start with an S. Only those run levels that deal with
shutting down or restricting functionality of the system (0,
1, 6) have links that start with a K to kill services.
The numbers after the leading S or K determine the
order in which the links are called, lowest number first. This is
important for process dependancy reasons. For example, you
wouldn't want to start up the Samba service if the networking
service wasn't already running. For example:
S20thisservice
S30thatservice
S40anotherservice
S80yetanother
You'll see how to add your own script to the startup
process near the end of the Proxy/NAT page. When you add a
link to one your scripts you typically use a high number (70s and
above) to make sure everything your script needs is already running.

Pertanyaan:
1. Apa maksud huruf S atau K di awal script-script tersebut?

203
Politeknik Caltex Riau
Praktikum Sistem Operasi

2. Bagaimana cara paling sederhana mematikan script-script


tersebut supaya tidak jalan di awal proses start up?

Shutting Down
You can't just turn off a Linux system like you would a
DOS system. It has to be "shut down". If you want to turn the
system off, there are several shutdown commands you can use but
with most Linux distros (most UNIX flavors don't support this)
I find it much easier just to hit Ctrl-Alt-Del. Unlike a DOS
system, doing this will not immediately reboot the system. It will
first shut down all processes and dismount the file systems.
Once it starts to reboot you can turn the system off.
If you want to keep the system running but not be logged
in (as in the case of using the system as a server), just type in exit
at the shell prompt. This will log you out and return to the login
screen.

Note: You should never leave an Internet-connected server


console logged in as anyone, especially root.

Pertanyaan:
1. Bagaimana cara mengubah tombol Ctrl+Alt+Del supaya
berfungsi menjadi
restart/reboot bukan shutdown?
2. Apa yang terjadi saat proses shutdown berlangsung?
3. Mengapa pada Linux kita bisa memberikan perintah
shutdown/reboot pada
console?

204

Anda mungkin juga menyukai