Sistem Operasi
Oleh
Muhammad Arif Fadhly Ridha
Agus Urip Ari Wibowo
Ibnu Surya
Pekanbaru
2014
i
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.
ii
DAFTAR ISI
iii
A. TUJUAN ............................................................................... 17
B. DASAR TEORI .................................................................. 17
1. Pipeline .................................................................................. 17
2. Regular Expression............................................................. 17
3. Redirection............................................................................ 18
4. Pengeditan Perintah ............................................................ 18
5. History ................................................................................... 19
6. Editor vi ................................................................................. 19
C. LANGKAH-LANGKAH ................................................. 21
D. PERCOBAAN ..................................................................... 22
E. LATIHAN ............................................................................ 26
Praktikum 5 ............................................................................................ 28
Sistem File.............................................................................................. 28
A. TUJUAN ............................................................................... 28
B. Dasar Teori ........................................................................... 28
1. Organisasi File ..................................................................... 28
2. Direktori Standar ................................................................. 29
3. Direktori /etc ........................................................................ 30
4. Direktori /dev ....................................................................... 31
5. Direktori /proc ..................................................................... 31
C. LANGKAH-LANGKAH ................................................. 36
D. PERCOBAAN ..................................................................... 36
E. LATIHAN ............................................................................ 43
Praktikum 6 ............................................................................................ 44
Proses I/O ............................................................................................... 44
A. TUJUAN ............................................................................... 44
iv
B. DASAR TEORI .................................................................. 44
1. Proses I/O .............................................................................. 44
2. File Descriptor ..................................................................... 45
3. Pembelokan (Redirection) ................................................ 45
4. Pipa (Pipeline) ..................................................................... 46
5. Filter ....................................................................................... 46
C. LANGKAH-LANGKAH ................................................. 47
D. PERCOBAAN ..................................................................... 47
E. LATIHAN ............................................................................ 51
Praktikum 7 ............................................................................................ 53
Shell Lanjutan ....................................................................................... 53
A. TUJUAN ............................................................................... 53
B. DASAR TEORI .................................................................. 53
1. Shell ........................................................................................ 53
2. Profile..................................................................................... 54
3. History ................................................................................... 55
4. Bash-script ............................................................................ 56
5. Job control ............................................................................ 56
C. LANGKAH-LANGKAH ................................................. 56
D. PERCOBAAN ..................................................................... 57
E. LATIHAN ............................................................................ 63
Praktikum 8 ............................................................................................ 68
Manajemen Proses ............................................................................... 68
A. TUJUAN ............................................................................... 68
B. DASAR TEORI .................................................................. 68
1. Konsep Proses di Linux..................................................... 68
v
2. Sinyal ..................................................................................... 69
3. Mengirim Sinyal ................................................................. 69
C. LANGKAH – LANGKAH .............................................. 69
D. PERCOBAAN ..................................................................... 70
E. LATIHAN .................................................................................... 74
Praktikum 9 ............................................................................................ 77
Utilitas Linux ......................................................................................... 77
A. TUJUAN ............................................................................... 77
B. DASAR TEORI .................................................................. 77
1. Sortir....................................................................................... 77
2. Preformat............................................................................... 78
3. Word Count .......................................................................... 78
4. Translate ................................................................................ 78
5. Memotong Karakter ........................................................... 79
6. Head dan Tail ....................................................................... 79
7. Find ......................................................................................... 79
C. LANGKAH – LANGKAH .............................................. 81
D. PERCOBAAN ..................................................................... 81
E. LATIHAN ............................................................................ 88
Praktikum 10 ......................................................................................... 90
Pemrograman Shell (1) ....................................................................... 90
A. TUJUAN ............................................................................... 90
B. DASAR TEORI .................................................................. 90
1. Shell Script ........................................................................... 90
2. Variabel ................................................................................. 91
3. Membaca Keyboard ........................................................... 92
vi
4. Parameter .............................................................................. 92
5. Status exit .............................................................................. 92
6. Konstruksi if ......................................................................... 92
7. Konstruksi if then else ....................................................... 93
8. Instruksi test ......................................................................... 93
9. Logikal && dan || (Shell Level) ...................................... 94
10. Operator Bilangan Bulat untuk test ............................ 95
11. Operator Logika (Test Level) ...................................... 95
12. Konstruksi if then else if ............................................... 96
13. Hitungan Aritmatika ...................................................... 97
14. Instruksi exit..................................................................... 97
C. LANGKAH – LANGKAH .............................................. 97
D. PERCOBAAN ..................................................................... 97
E. LATIHAN .......................................................................... 111
Praktikum 11 ....................................................................................... 116
Pemrograman Shell (2) ..................................................................... 116
A. TUJUAN ............................................................................. 116
B. DASAR TEORI ................................................................ 116
1. Konstruksi case.................................................................. 116
2. Konstruksi for .................................................................... 117
3. Konstruksi while ............................................................... 117
4. Instruksi dummy ............................................................... 118
5. Fungsi................................................................................... 118
C. LANGKAH – LANGKAH ............................................ 118
D. PERCOBAAN ................................................................... 119
E. LATIHAN .......................................................................... 126
vii
Praktikum 12 ....................................................................................... 130
Redhat Package Manager (RPM), TAR dan GZIP.................... 130
A. TUJUAN ............................................................................. 130
B. DASAR TEORI ................................................................ 130
1. Manajemen Paket Software............................................ 130
2. Fungsi Manajer Paket Software .................................... 131
3. Paket Software ................................................................... 131
4. Nama Paket......................................................................... 131
5. RPM Query ........................................................................ 132
6. TAR ...................................................................................... 133
7. GZIP ..................................................................................... 133
C. LANGKAH-LANGKAH ............................................... 134
D. PERCOBAAN ................................................................... 134
E. LATIHAN .......................................................................... 137
Praktikum 13 ....................................................................................... 138
Praktikum 14 ....................................................................................... 145
Praktikum 15 ....................................................................................... 150
Praktikum 16 ....................................................................................... 155
Praktikum 17 ....................................................................................... 158
Praktikum 18 ....................................................................................... 163
A. TUJUAN ............................................................................. 163
B. DASAR TEORI ................................................................ 163
C. PERCOBAAN ................................................................... 174
D. LATIHAN .......................................................................... 182
Praktikum 19 ....................................................................................... 183
A. TUJUAN ............................................................................. 183
viii
B. PERCOBAAN ................................................................... 183
Praktikum 20 ....................................................................................... 187
A. TUJUAN ............................................................................. 187
B. PERCOBAAN ................................................................... 187
ix
Praktikum 1
Instalasi Windows 7 Professional
A. TUJUAN
1. Mampu melakukan instalasi sistem operasi Windows 7
Professional.
2. Mampu melakukan setting konfigurasi hardware dan sistem
komputer.
3. Mengetahui cara membuat user pada sistem operasi Windows 7
Professional.
B. LANGKAH PERCOBAAN
INSTALASI WINDOWS 7
Untuk memulai proses instalasi Windows 7, terlebih dahulu BIOS
komputer harus dikonfigurasi boot pertama menggunakan
CD/DVD ROM atau USB jika menggunakan Flashdisk sebagai
media instalasinya.
1. Langkah pertama masukkan DVD instalasi Windows 7
dan boot komputer, akan muncul pesan Press Any Key to
Boot From CD/DVD lalu tekan tombol apa saja pada
keyboard.
1
2. Windows 7 akan loading dan muncul tampilan seperti
dibawah ini, pilih Next dan kemudian Install Now
2
8. Setelah komputer restart tunggu hingga muncul form
untuk mengisikan username baru dan password, isikan
sesuai keinginan dan klik Next
3
MEMBUAT USER ACCOUNT
1. Log on sebagai administrator.
2. Klik tombol Start, klik Control Panel dan kemudian double
click User Accounts.
3. Pilih Manage another account pada bagian bawah klik Create
new Account.
4. Pada User Name, tulis nama user, seperti “student”.
5. Pilihlah Standard user
6. Klik OK.
7. Log off sebagai administrator dan Log on menggunakan user
account “student”.
C. LATIHAN
1. Buatlah sebuah user account nama anda dan password. Pilihlah
Administrator sebagai account type dan cobalah untuk log on
dengan user account yang anda buat.
2. Cobalah untuk menggunakan aplikasi standar yang disediakan
oleh Windows 7 dengan membuka berbagai macam tipe file.
4
Praktikum 2
Instalasi CentOS Linux
A. TUJUAN
a. Mampu melakukan instalasi sistem operasi CentOS
b. Mampu melakukan setting konfigurasi hardware dan sistem
komputer
c. Mengetahui cara membuat user pada sistem operasi CentOS
B. LANGKAH PERCOBAAN
CentOS (Community ENTerprise Operating System) merupakan
Distro Linux yang cocok dipergunakan dalam skala Enterprise
selain itu juga gratis. CentOS di buat dari source code Red Hat
Enterprise (RHEL) yang dikembangkan oleh sebuah komunitas yang
disebut CentOS Project.
CentOS pada dasarnya dibuat dari source code Ret Hat Enterprise.
Software ini dirilis dibawah General Public License (GPL) yang
selanjutnya dikembangkan oleh sebuah komunitas yang disebut
CentOS Project.
5
b. Selanjutnya proses pengecekan CD instalasi, Pilih skip untuk
melanjutkan instalasi. Akan muncul tampilan grafik sebagai
panduan instalasi
6
i. Terakhir akan muncul login untuk mulai menggunakan CentOS
Linux, login menggunakan user root dan password yang diisikan
pada saat instalasi
C. LATIHAN
o Buatlah sebuah user account nama anda dan password dengan
menggunakan perintah adduser.
o Buatlah password untuk user yang barusan anda buat dengan
menggunakan perintah passwd.
o Cobalah untuk login menggunakan username dan password
yang baru anda buat.
7
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.
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:
8
$ 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
9
Bab Isi
6 Games
7 Miscellaneous
8 System 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:
ls, file, cat, more, cp, mv, rm, grep
D. PERCOBAAN
Percobaan 1:
Melihat identitas diri (nomor id dan group id)
[studentX@localhost studentX]$ id
10
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
$w
$ who
$ whoami
11
Changing finger information for studentX.
Password:
Name [Student1]: <Nama Pengguna>
Office []: Lab Program
Office Phone []: 170
Home Phone []: 5947280
Finger information changed.
Percobaan 6:
Menggunakan manual
$ man ls
$ man man
$ man -k file
$ man 5 passwd
Percobaan 7:
Menghapus layar
$ clear
Percobaan 8:
Mencari perintah yang deskripsinya mengandung kata kunci yang
dicari
$ apropos date
$ apropos mail
12
$ 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 /
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
13
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
2. Mengkopi ke direktori.
$ mkdir backup
$ cp f1 f3
$ cp f1 f2 f3 backup
$ ls backup
$ cd backup
$ ls
14
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
Percobaan 15:
Menghapus file
$ cp mydir/f1 f1
$ cp mydir/f2 f2
$ rm f1
$ rm -i f2
15
Percobaan 16:
Mencari kata/kalimat dalam file
$ grep root /etc/passwd
$ grep “:0:” /etc/passwd
$ grep student /etc/passwd
E. LATIHAN
1. Ubahlah informasi finger pada komputer anda.
2. Lihatlah user-user yang sedang aktif pada komputer anda.
3. Perintah apa yang digunakan untuk melihat kalender satu
tahun penuh?
4. Bagaimana anda dapat melihat manual dari perintah cal?
5. Bagaimana melihat perintah manual ls dengan kata kunci
sort?
6. Berikan contoh menggunakan manual untuk bab user
command.
7. Tampilkan semua file termasuk yang hidden file pada
diretktori /etc.
8. Tampilkan semua file secara lengkap pada direktori /etc.
9. Buatlah direktori prak1 pada direktori aktif, kemudian copy-
kan file /etc/group ke file tes1, tes2, dan tes3 pada direktori
ini.
10. Tampilkan isi file tes1 per satu layar penuh.
11. Pindahkan file tes1 dan tes2 ke direktori home.
12. Hapus file tes1 dan tes2 dengan konfirmasi.
16
Praktikum 4
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.
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.
Karakter Arti
. Cocok dengan sebarang satu karakter
* Cocok dengan sebarang lebih dari satu karakter
17
Karakter Arti
^ 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.
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.
18
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
Editing vi menginterprestasikan input sebagai teks yang akan
dimasukkan ke dalam buffer editor. Pada bagian bawah layar
akan tampil teks “INSERTING”.
19
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 kursor) Untuk keluar dari 5
model kunci insert di
I Menyisipkan teks (di sebelah kiri posisi kursor)
samping ini dan
A Menyisipkan teks (di sebelah kanan posisi kursor) mengaktifkan kunci-
kunci lain, maka kita
I (shift i) Menyisipkan teks (di posisi awal baris)
harus menekan
A (shift a) Menyisipkan teks (di posisi akhir baris) tombol Esc terlebih
dahulu.
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
20
Kunci Keterangan
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
:! 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
C. LANGKAH-LANGKAH
1. Masuk ke sistem operasi Linux
2. Login sebagai studentX
21
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:
$ 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*
22
$ ls c*
Percobaan 4:
Menggunakan redirection
1. Menyalin suatu file teks dengan menggunakan perintah cat.
23
$ cat > tes1
Baris pertama dari file tes1
Baris kedua dari file tes1
A
B
.
.
[lanjutkan]
^D
$ cat tes1
$ cat tes1 > tes2
$ ls
$ cat tes2
24
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>
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“.
25
cwBaris
8. Hasil yang diperoleh harusnya:
Latihan dengan vi
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”
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
26
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.
27
Praktikum 5
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
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 “/”.
/
28
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
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
29
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).
/usr/bin/X11 Symbolic link ke /usr/X11R6/bin, program untuk
X-Window.
/usr/src Source code untuk Linux.
/opt Option, direktori ini biasanya berisi aplikasi
tambahan (“add-on”) seperti Netscape Navigator,
kde, gnome, applix dll.
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.
30
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
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
31
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)
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:
Karekter Arti
- File biasa
D Direktori
L Symbolic link
B Block special file
C Character special file
S Socket link
P FIFO
32
4. Pemilik (Owner) : menentukan siapa pemilik file ini
5. Group : menentukan group yang memilik file ini
6. Jumlah karakter : menentukan ukuran file dalam byte
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
33
IJIN AKSES
Setiap obyek pada Linux harus mempunyai pemilik, yaitu
nama pemakai Linux (account) yang terdaftar pada /etc/passwd.
Ijin dibagi menjadi tiga peran yaitu:
1. Pemilik (Owner)
2. Kelompok (Group)
3. Lainnya (Others)
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)
other
group
user
Format untuk mengubah ijin akses:
chmod [ugoa] [= + -] [rwx] File(s)
34
chmod [ugoa] [= + -] [rwx] Dir(s)
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
35
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:
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
36
$ ps
$ ls -l /proc/[Nomor PID]
Percobaan 2:
Melihat tipe file
1. Melihat block device (peralatan I/O)
$ ls -l /dev/fd0
37
2. Melihat character device (peralatan I/O)
$ ls -l /dev/tty2
4. Melihat direktori
$ ls -ld /dev
Percobaan 3:
Direktori
1. Melihat direktori HOME
$ pwd
$ echo $HOME
3. Membuat satu direktori, lebih dari satu satu direktori atau sub
direktori
38
$ cd
$ pwd
$ mkdir A B C A/D A/E B/F A/D/A
$ ls -l
$ ls -l A
$ ls -l A/D
39
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
40
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)
Percobaan 5:
User Mask
1. Menentukan ijin akses awal pada saat file atau directori dibuat
$ touch myfile
$ ls -l myfile
41
2. Melihat nilai umask
$ umask
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
42
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.
43
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 6
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.
44
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
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
1> atau > pengganti standar output
2> pengganti standar error
45
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
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
46
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.
D. PERCOBAAN
Percobaan 1: File descriptor
1. Output ke layar (standard output), input dari sistem (kernel)
47
$ ps
48
2. Pembelokan standard input, yaitu input dibelokkan dari
keyboard menjadi dari file
$ cat 0< myfile.txt
$ cat myfile.txt
49
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!
%%%
50
$ 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
E. LATIHAN
1. Lihat daftar secara lengkap pada direktori aktif, belokkan tampilan
standar output ke file baru.
51
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.
52
Praktikum 7
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:
1. /bin/sh
Bourne shell, dirancang oleh Steve Bourne dari AT&T
2. /bin/csh
Dikembangkan oleh UNIX Berkeley yang dikenal dengan C-
Shell
53
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.
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.
PATH=”SPATH:/usr/X11R6/bin”
54
PS1=”[\u@\h \W]\\S “
umask 022
USER=’id –un’
LOGNAME=$USER
MAIL=”/var/spool/mail/$USER”
HOSTNAME=’/bin/hostname’
HISTSIZE=1000
HISTFILESIZE=1000
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
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:
55
^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
7. Gunakan perintah manipulasi stack untuk direktori: dirs,
pushd, popd
8. Gunakan perintah alias dan unalias
56
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
57
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
58
6. Manjalankan beberapa program shell dalam satu baris instruksi
yang dipisahkan dengan tanda ;
$ cat p1.sh ; cat p2.sh
$ ./p1.sh ; ./p2.sh
2. Proses background
$ ps x > hasil &
59
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
60
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
61
$ pushd
$ pushd
$ pushd
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
62
$ del hasil
$ h | more
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”
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:
63
$ su - studentX
$ exit
Jelaskan perbedaan kedua utilitas tersebut.
3. Logout
Edit file .bash_logout, tampilkan pesan dan tahan selama 5 detik,
sebelum eksekusi logout
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:
64
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
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
65
date >> hasil
sleep 10
done
6. History
a. Ganti nilai HISTSIZE dari 1000 menjadi 20
$ HISTSIZE=20
$h
66
c. Ulangi instruksi yang terakhir. Gunakan juga ^P dan
^N untuk bernavigasi pada history buffer
$ !!
67
Praktikum 8
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
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
68
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:
No Sinyal Nama Deskripsi
1 SIGHUP Hangup, sinyal dikirim bila proses terputus,
misalnya melalui putusnya hubungan modem
2 SIGINT Sinyal interrupt, melalui ^C
3 SIGQUIT Sinyal Quit, melalui ^\
9 SIGKILL Sinyal Kill, menghentikan proses
15 SIGTERM Sinyal terminasi software
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.
69
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
70
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
3. Melihat proses id
$ ps
71
$ vi prog.sh
#!/bin/sh
echo “Program berjalan …”
while :
do
echo “X”
sleep 20
done
72
while :
do
echo “X”
sleep 20
done
73
sort berkas –o hasil
echo –n “Proses selesai pada ” >> proses.log ; date >>
proses.log
sleep 60
done
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
74
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
75
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
sleep 60
done
$ kill –15 [Nomor PID]
$ ls -l
Maka file berkas tidak ada lagi!
76
Praktikum 9
Utilitas Linux
A. TUJUAN
1. Mengenal utilitas dasar Linux dan Unix
2. Merangkaikan utilitas dengan pipe
3. Mempelajari konsep delimiter
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
77
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:
-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
78
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.
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
79
-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
-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
80
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
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
81
5. Lakukan proses sorting berdasarkan manufaktur mobil
$ sort +1 mobil.db
82
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
$ 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
83
Percobaan 6: Translate
1. Mengubah huruf a yang diinputkan dari keyboard menjadi X
$ tr ‘a’ ‘X’
apa
XpX
Khabar
khXbXr
^D
84
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
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
85
5. Kombinasi memotong field dengan koma
$ cat mobil.db|tr –s ‘ ‘ ‘ ‘|cut –d’ ‘ –f2,4
86
$ find / –type s 2>/dev/null
6. Mencari jumlah link 6
$ find /lib –links 6
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
87
$ touch x
$ find . –newer x
$ touch y
$ find . –newer c
E. LATIHAN
1. Jelaskan tujuan dari perintah berikut:
$ wc –l /etc/passwd
$ wc –l /etc/group
88
$ 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 ‘:’.
89
Praktikum 10
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
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
90
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
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:
91
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.
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
92
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
………………
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 != string2 Not identical
-n string String is not null
-z string String is null
93
• 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
-w namafile File dapat ditulis
-x namafile File adalah executable
-s namafile File ada dan tidak kosong
-w namafile File dapat ditulis
Untuk memudahkan pembacaan (readability), test dapat
ditulis dengan
[ ekspresi ]
[ sebenarnya adalah nama lain dari test, bedanya [ akan
mencari kurung penutup ] pada akhir ekspresi yang harus
dipisahkan oleh spasi.
94
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.
95
V1 V2 V1 –a V2
True False False
True True True
OR: simbol -o
V1 V2 V1 –o V2
False False False
False True True
True False True
True True True
96
instruksi3.2
………………
fi
C. LANGKAH – LANGKAH
1. Masuk ke sistem operasi Linux.
2. Login sebagai studentX.
3. Lakukan percobaan di bawah ini.
D. PERCOBAAN
Percobaan 1: Membuat shell script
97
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
98
$ V2=’:’
$ V3=riau
$ V4=$V1$V2$V3
$ echo $V4
99
V3=PCR
echo $V1$V2 di $V3
100
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 : “
read nama
echo –n “Alamat : “
read alamat
echo –n “Kota : “
read kota
echo
101
echo “Hasil adalah : $nama, $alamat di $kota”
5. Eksekusi program prog02.sh
$ . prog02.sh
Nama Anda : Amir
Alamat : Jl semangka 67
Kota : Pekanbaru
102
$ vi prog03.sh
#!/bin/sh
# prog03.sh
#
NAMA=`whoami`
echo Nama Pengguna Aktif adalah $NAMA
tanggal=`date | cut –c1-10`
echo Hari ini tanggal $tanggal
9. Eksekusi prog03.sh
$ . prog03.sh
Percobaan 4: Parameter
1. Membuat shell script prog04.sh
$ vi prog04.sh
#!/bin/sh
# prog04.sh versi 1
# Parameter passing
#
echo “Nama program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”
2. Eksekusi prog04.sh tanpa parameter, dengan 2 parameter, dengan
4 parameter
$ . prog04.sh
$ . prog04.sh amir hasan
$ . prog04.sh amir hasan badu ali
103
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
104
echo “Total parameter adalah $*”
echo “PID proses shell ini adalah $$”
6. Eksekusi prog04.sh dengan 4 parameter
$ . prog04.sh amir hasan badu ali
105
> 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”
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]
106
$ test $NAMA = amir
$ echo $?
$ test $NAMA = boris
$ echo $?
107
if [ “$NAMA” = amir ]
then
echo “Selamat Datang $NAMA”
else
echo “Anda bukan amir, sorry!”
fi
2. File prog99.sh tidak ada, karena itu exit status adalah FALSE dan
instruksi echo tidak dijalankan
$ [ -f prog99.sh ] && echo “Prog99.sh ada”
108
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”
109
then
BIAYA=25
else
BIAYA=35
fi
echo “Biaya = $BIAYA”
110
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 $?
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
111
#!/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”
……
……
112
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
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
113
++ 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
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`
114
gaji=`expr $gaji - $pkp`
if [ $gaji –gt 0 ]
then
pkp=$gaji
pph=`expr $pph + $pkp \* 35 / 100`
fi
fi
fi
echo “Pajak Penghasilan = $pph”
115
Praktikum 11
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
………………
;;
match2)
instruksi2.1
instruksi2.2
………………
;;
*)
116
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.
while kondisi
do
instruksi1
instruksi2
………………
done
117
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.
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.
118
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
;;
3)
echo “Kalender bulan ini”
cal
;;
*)
119
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
# Prog: prog10.sh
echo –e “Jawab (Y/T) : \c“
read JWB
case $JWB in
[yY] | [yY][aA] ) JWB=y ;;
[tT] | [tT]idak ) JWB=t ;;
120
*) 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
for F in *
do
echo $F
done
Jalankan program prog12.sh
$ . prog12.sh
121
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”
echo “3. Kalender bulan ini”
echo “4. Keluar”
echo –e “ Pilihan : \c”
read PILIH
if [ $PILIH –eq 4 ]
then
break
122
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
if [ $PILIH –eq 4 ]
then
break
fi
clear
done
echo “Program berlanjut di sini setelah break”
123
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
#!/bin/sh
# Prog: fungsi.sh
F1( ) {
echo “Fungsi F1”
return 1
}
echo “Menggunakan Fungsi”
124
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 $?”
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
125
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
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
126
start)
echo “Ini adalah start”
;;
stop)
echo “Ini adalah stop”
;;
*)
echo $”Usage:$0 {start|stop|restart|reload|status}”
;;
esac
return
127
if [ “$answer” = “” –0 “$answer” = $YES ]
then
return 0
elif ….
then
return 2
elif ….
then
return 1
fi
done
}
128
Perhatikan baris pertama, adalah loading dari fungsi confirm yang
terdapat di script confirm.sh. Setelah eksekusi script tersebut, maka
fungsi confirm dapat digunakan.
129
Praktikum 12
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).
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.
130
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
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
131
4. Platform arsitektur (Intel, Alpha, Risc,…)
xyz-1.2-6.i386.rpm
Platform :
i386 Intel
alpha DEC
sparc SUN
mips MIPS
ppc PowerPC
m68k Motorola 680x0
noarch Bebas, Tanpa platform
5. RPM Query
RPM dengan opsi –q memberikan informasi tentang paket
sebagai berikut:
# rpm –q samba
samba -2.0.5-1s
#
Informasi tentang versi paket samba adalah versi 2.0.5.
Beberapa sub-opsi dapat diberikan, antara lain :
i 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
132
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.
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
133
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
Melihat file apa saja yang sudah diinstalasi, gunakan sub-opsi -l.
#rpm –ql samba |more
134
Melihat script file yang digunakan untuk instalasi. Perhatikan
bahwa hasli output tergantung atas versi Linux yang digunakan
# rpm –q –scripts samba
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
135
Buatlah file tar pada direktori desktop
$ tar –svf desktop.tsr Desktop
Ekstrasi isi dari file tar. Lihatlah isi direktori dan seharusnya akan
terlihat direktori Desktop yang original
$ tar –xvf desktop.tar
$ls –al
$ cd Desktop
136
$ gzip –d desktop.tar.gz
$ ls –al
$ tar –xvf desktop.tar
$ ls –al
$ cd Desktop
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
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.
137
Praktikum 13
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
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.
138
$ 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
139
5. Kita coba mencari nilai terbesar. Buatlah file c.awk dengan isi
sebagai berikut
6. Perintah Kontrol if. Buatlah sebuah file dengan nama d.awk yang
berisi
{
i=1
while (i <= $3) {
printf("\t%8.2f\n", (1 + $2) ^ i)
i=i+1
}
}
140
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
}
}
10.Buatlah file data kedua dengan nama countries dengan isi berikut
141
Germany 96 61 Europe
England 94 56 Europe
/Asia/ { pop["Asia"] += $3 }
/Europe/ { pop["Europe"] += $3 }
END { print "populasi Asia ", pop["Asia"], " juta"
print "populasi Eropa ", pop["Europe"], " juta"
}
Beth:4.00:0
Dan:3.75:0
Kathy:4.00:10
Mark:5.00:20
Mary:5.50:22
Susie:4.25:18
142
BEGIN {FS = "\t"}
{ pop[$4] += $3 }
END { for (name in pop)
print name, pop[name]
}
Sintak Keterangan
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
143
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
144
Praktikum 14
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
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
145
Data di atas terdiri dari: nama, alamat, kota, negara bagian,
kode pos, dan umur yang dipisahkan dengan tanda ";".
4. Kita ingin mencetak nama dan kota dimana umur orang tersebut
33.
$ awk -F";" '$6 == 33 { print $1, $3 }' awk.data
146
$ 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
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 }
147
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}
148
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
149
Praktikum 15
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
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 .....
150
6. Paralel Port I/O ....., IRQ .....
7. Serial Port COM1: I/O ....., IRQ .....
COM2: I/O ....., IRQ .....
8. VGA Card Merk/Type .........., VRAM .....
MByte
151
• ketikkan more /etc/inittab
• ketik /tty1
• ada berapa tty yang disiapkan? berada di dalam
direktori apa program mingetty disimpan?
152
6. Berdasarkan informasi saat proses boot tersebut, catatlah
beberapa informasi yang tertera pada tabel berikut:
153
Jika ingin tahu data yang ditampilkan dari setiap file
dalam direktori /proc, silakan ketikkan man proc.
3. Informasi lain
a. Hostname: .....
b. Versi Kernel: .....
c. Model mesin prosesor: .....
154
Praktikum 16
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 UNIX,
keunggulan yang dimiliki adalah pemakai dapat menentukan hak
155
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.
3. Mengenal Perintah Operasi Disk (gunakan /dev/sda1 atau sdb1 dst. untuk
flashdisk)
156
/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?
157
Praktikum 17
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.
158
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?
159
(Jika anda ingin mengetahui informasi lengkap untuk
tiap proses, anda dapat menggunakan perintah ps -f)
12. Coba anda cek apakah benar sudah di"bunuh" proses tersebut,
dengan cara ketikkan ps ataupun ps -ax ataupun jobs.
160
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
161
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!
162
Praktikum 18
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
163
6. Berdasarkan run- level yang ditentukan, skrip dieksekusi
untuk memulai proses tertentu untuk menjalankan sistem
dan membuat sistem lebih fungsional.
Proses sistem :
Process ID Description
0 The Scheduler
1 The init process
2 kflushd
3 kupdate
4 kpiod
5 kswapd
6 mdrecoveryd
3. PROSEDUR BOOT
Linux mempunyai 6 state operasi dimana “0” adalah shutdown
state dan “3” keatas adalah operasional penuh dengan semua
proses yang esensial dijalankan untuk interaksi user. Berdasarkan
sistem boot, Linux sistem akan melakukan :
a. Mengeksekusi program /sbin/init yang memulai semua proses
-proses lain. Program ini akan diberikan ke mesin oleh proses awal
164
yang didefinisikan 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.
165
/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
166
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
167
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 :
168
Service utama yang direkomendasikan adalah : anacron, ard,
autofs, crond, gpm, iptables, keytable, kudzu, microcode_ctl
(Intel32 hardware only), network, random. syslog
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
169
# Source function library.
This creates the operating environment for the process to be started
. /etc/rc.d/init.d/functions
case "$1" in
start)
echo -n "Starting process-name: "
daemon
process-name -Starts only one process of a given name.
echo
touch /var/lock/subsys/process-name
;;
stop)
echo -n "Shutting down process-name: "
killproc process-name
echo
rm -f /var/lock/subsys/process-name
rm -f /var/run/process-name.pid
- Only if process generates this file
;;
status)
status process-name
;;
restart)
$0 stop
$0 start
;;
170
reload)
echo -n "Reloading process-name: "
killproc process-name -HUP
echo
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
/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
171
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
Contoh :
172
chkconfig --level 345 httpd on
chkconfig --list ]
173
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
# ls -l /etc/rc.d
174
dengan menggunakan variabel initdefault. Jika diset "3",
sistem boot menggunakan antar muka teks pada console
VGA; jika diset "5", menggunakan GUI.
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
# reboot
175
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.
# init 5
176
GUI berjalan sebagai nomor 7. Perhatikan baris
mingetty pada file /etc/ inittab, virtual console nomor berapa
yang dikontrol ?
# cat /etc/inittab
177
5. Reboot juga dapat dilakukan dengan perintah shutdown
menggunakan opsi “- r” dan menentukan delai misalnya 10 menit.
# shutdown –ry 10
# shutdown 1
178
untuk ”append”. Maka akan didapa tkan prompt untuk
menambah opsi boot pada file grub.conf.
bash-2.05b# exit
179
root, atau sistem administrator sebelumnya tidak memberi
password kepada Anda
2. Masuk ke console VGA dan tekan <CTRL> <ALT> <DEL>.
Sistem akan shutdown
# chkconfig –list
180
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
181
Politeknik Caltex Riau
Praktikum Sistem Operasi
D. LATIHAN
182
Politeknik Caltex Riau
Praktikum Sistem Operasi
Praktikum 19
Konfigurasi Jaringan di Linux
A. TUJUAN
1. Melakukan konfigurasi dasar jaringan pada sistem operasi linux
2. Melakukan File Sharing pada sistem operasi linux
B. PERCOBAAN
IP Address merupakan jalan yang digunakan untuk melakukan
koneksi dengan PC pada sebuah infrastruktur jaringan, sehingga IP
Address sangat penting untuk diperhatikan. Sebab dengan IP Address
sebuah PC bisa terhubung dengan jaringan yang lebih luas seperti
internet. Dalam konfigurasi IP Address di CentOS memiliki beberapa
cara yaitu dalam mode GUI dan mode text, tapi kali ini penulis akan
menjelaskan bagaimana konfigurasi dalam mode text.
IP Address Automatic
Konfigurasi ini biasanya digunakan ketika komputer server
terhubung dengan sebuah perangkat yang memiliki DHCP
Server seperti pada router dan modem. Anda bisa
menambahkan fitur automatic pada server anda agar mendapatkan IP
Address secara otomatis yaitu dengan konfigurasi seperti dibawah ini:
183
Politeknik Caltex Riau
Praktikum Sistem Operasi
BOOTPROTO=dhcp
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
IP Address Static
Pada konfigurasi IP Address Static tidak jauh berbeda dengan
konfigurasi sebelumnya hanya saja yang membedakannya yaitu
menggunakan IP Address yang sudah ditentukan
184
Politeknik Caltex Riau
Praktikum Sistem Operasi
security = shared
185
Politeknik Caltex Riau
Praktikum Sistem Operasi
[data]
path = /home/data
guest ok = yes
writeable = yes
browseable = yes
create mode = 0770
directory mode = 0770
Untuk mengakses file dan folder yang telah disharing oleh samba,
bisa menggunakan windows \\alamat_ip\ atau sesama linux dengan
mengetik protokolnya smb:\\alamat_ip\
186
Politeknik Caltex Riau
Praktikum Sistem Operasi
Praktikum 20
Akses Remote di Linux
A. TUJUAN
1. Melakukan remote login terhadap sistem linux menggunakan
SSH
B. PERCOBAAN
REMOTE SSH
Kebutuhan untuk mengendalikan server dari jarah jauh adalah
hal yang terpenting dari seorang Administrator, dengan
kemampuan remote dari jarah jauh seorang Administrator
mempermudah beberapa pekerjaan yang bersangkutan dengan server,
sebab tidak harus berada di lokasi dimana server berada, terutama
kerusakan dalam segi software maka pengendalian hak akses
jarak jauh sangat dibutuhkan.
SSH merupakan service yang paling banyak digunakan untuk
kebutuhan remote sebuah server. SSH merupakan alternative
penganti dari telnet, telnet adalah software yang digunakan untuk
aktifitas remote server, tapi telnet sendiri memeliki beberapa
kekurangan diantaranya dari segi keamanan yang dengan
mudahnya diambil alih dari pihak lain, sebab telnet dalam pengiriman
berupa data tidak disertakan encripsi, sehingga kemanan data kurang
terjamin.
187
Politeknik Caltex Riau
Praktikum Sistem Operasi
Apabila service ssh sudah berjalan, maka linux sudah dapat diremote
dengan protokol ssh. Untuk melakukan remote dari windows, dapat
menggunakan software tambahan seperty PuTTY. Untuk melakukan
remote dari linux dapat menggunakan perintah berikut:
ssh username@ip_address
contoh
ssh fadhly@192.168.0.1
188