Praktikum
2 Pembuatan Bash Script
A. T U J U A N
1. Menggunakan History untuk mengedit kembali instruksi yang telah
dilakukan.
2. Menggunakan perintah Filter untuk memproses standard input dan
menampilkan hasilnya pada layar (standard output).
3. Menggunakan Job Control untuk mengeksekusi program, baik proses
background maupun foreground.
4. Pembuatan Bash Script yang berisi koleksi program yang dapat dieksekusi.
B. DASAR TEORI
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
kesalaha pada penulisan instruksi maupun parameter. Navigasi pada daftar
history menggunakan karakter kontrol sebagai berikut :
^P (Ctrl-P) melihat instruksi sebelumnya
^N (Ctrl-N) melihat instruksi berikutnya
!! eksekusi kembali instruksi sebelumnya
!! -3 instruksi sebelumnya akan diulang
!!88 ulangi instruksi no 88
8
Filter
Filter adalah utilitas Linux yang dapat mem proses standard input (dari
keyboard) dan menampilkan hasilnya pada standard output (layar). Contoh
filter adalah cat, sort, grep, pr, head, tail, paste dan lainnya.
Pada sebuah rankaian pipa :
P1 | P2 | P3 ........ | Pn-1 | Pn
P2 sampai dengan Pn-1 mutlak harus utilitas Linux yang berfungsi sebagai
filter. P1 (awal) dan Pn (terakhir) boleh tidak filter. Utilitas yang bukan filter
misalnya who, ls, ps, lp, lpr, mail dan lainnya.
Beberapa perintah shell Linux yang digunakan untuk 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 diberikan kepadanya. Untuk mengetahui berapa baris
gunakan option –l, untuk mengetahui berapa kata, gunakan option –w dan
untuk mengetahui berapa karakter, gunakan option –c. Jika salah satu
option tidak digunakan, maka tampilannya adalah jumlah baris, jumlah kata
dan jumlah karakter.
• Perintah sort
Digunakan untuk mengurutkan masukannya berdasarkan urutan nomor
ASCII dari karakter.
• Perintah cut
Digunakan untuk mengambil kolom tertentu dari baris-baris
masukannya, yang ditentukan pada option –c.
• Perintah uniq
Digunakan untuk menghilangkan baris-baris berurutan yang mengalami
duplikasi, biasanya digabungkan dalam pipeline dengan sort.
9
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.
Bash Script
Bash script adalah file yang berisi koleksi program yang dapat dieksekusi.
Untuk eksekusi bash script menggunakan tanda . (dot) sebelum file bash script
yang berarti eksekusi shell dan tanda ./ berarti file bash script barada pada
direktori aktual. Secara default dalam Linux menggunakan bash shell.
Tabel 2. Jenis Shell
Shell Jenis
/bin/csh atau /usr/bin/csh C shell
/bin/sh Bourne shell (bash)
/bin/rsh Restricted Bourne Shell
/bin/jsh Bourne shell termasuk jobs control
/bin/ksh Korn shell
/bin/rksh Restricted Korn shell
Langkah awal untuk mengetahui shell yang aktif pada sistem yaitu dengan
menggunakan perintah ps (report process status)
$ps
PID TTY TIME CMD
219 tty1 00:00:00 bash
301 tty1 00:00:00 ps
atau dengan mengetikkan syntak sebagai berikut :
$grep nama_user /etc/passwd
Hasil dari perintah diatas menunjukkan bahwa bash adalah shell aktif di
system, jika disystem ternyata berbeda misalnya csh atau ksh. Maka jenis
shell dapat diubah dengan perintah change shell.
10
$chsh
Password:
New shell [/bin/csh]:/bin/bash
Shell changed
atau dengan mengetikkan bash
$bash
kemudian mengetik perintah pada prompt shell sebagai berikut :
$echo "Script shell pertamaku di linux"
Script shell pertamaku di linux
string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada
layar, echo adalah statement (perintah) built-in bash yang berfungsi
menampilkan informasi ke standard output yang defaultnya adalah layar. jika
diinginkan mengulangi proses tersebut, dapat mengetikkan kembali perintah
tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah
dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah
yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga
mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu
mungkin perintah-perintah tadi sudah tertimpa oleh perintah lain karena history
mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya
perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil
kapanpun diinginkan.
Vi Editor
Vi merupakan editor yang paling terkenal di dunia UNIX. Vi ialah kepanjangan
dari "Visual" editor. Untuk menjalan perintah vi, menggunakan sintaks sbb :
vi <nama_file>
Status Vi
Editor Vi mempunyai 2 buah modus, yaitu :
1. Command line
11
Editor vi mengintepretasikan input sebagai instruksi untuk dieksekusi oleh
editor, contoh seperti mencari teks, mengganti teks secara otomatis dan
lainnya.
2. Editing
Editor vi mengintepretasikan input sebagai teks yang akan dimasukkan ke
dalam buffer editor. Pada bagian bawah layar akan tampil teks “INSERTING”.
Pada awal vi dijalankan, maka program memasuki command mode. Dengan
menekan tombol “i” maka akan memasuki editing. Untuk kembali ke command
mode, tekan tombol Esc.
Notasi yang digunakan
CTRL-c, CTRL adalah tombol control pada keyboard, sehingga CTRL-c berarti
"control c". CR (Carriage Return) ialah tombol enter.
Manipulasi file
Tabel 7.1 Perintah vi manipulasi file
Tombol Fungsi
:wq Save file dan exit
:q Keluar dari vi
:q! Keluar dari vi tanpa menyimpan
:w Menyimpan file
C. PROSEDUR
1. Masuk ke sistem operasi Linux.
2. Login sebagai stD3XXYYY.
3. Gunakan perintah-perintah pada shell : History , Filter , Job Conrtol, Cat dan
penggunaan Vi editor.
4. Catatlah hasil dari setiap perintah pada prosedur no.3 sebagai laporan
sementara.
5. Kerjakan soal latihan yang telah disediakan pada modul praktikum.
12
D. PERCOBAAN
Percobaan 1 : History
1. Menampilkan file dari direktori aktif
$ls
2. Melihat semua file lengkap
$ls -l
3. Menampilkan semua file atau direktori yang tersembunyi
$ls –a
4. Menampilkan isi suatu direktori
$ls /usr
5. Menampilkan isi direktori root
$ls /
6. Melihat daftar instruksi yang telah dilakukan dengan perintah history. Daftar
instruksi dilengkapi dengan nomor urut yang dapat dijadikan parameter
dalam mengedit atau mengulangi instruksi
$history
7. Melihat batasan maksimum instruksi yang dapat disimpan
$echo $HISTSIZE
8 Selain history, instruksi fc (fix command) juga dapat digunakan
$fc –l
9. Instruksi fc dapat menampilkan instruksi antara 2 nomor atau dengan
menggunakan kata depan instruksi yang diberikan
$fc –l nomor-urut1 nomor-urut2 misal : fc –l 85 88
$fc instruksi1 instruksi2 misal: fc –l uname hostname
Percobaan 2 : Filter
1. Perintah grep untuk melihat tipe shell dari user
$grep st /etc/passwd
$ls /etc | wc –l
2. Perintah grep untuk mencari kata/kalimat dalam file
$cat > [Link]
Badu
Zulkifli
Yudi
Ade
Anisa
13
[Ctrl-d]
$grep Yudi [Link]
3. Perintah cat dan sort untuk menampilkan isi beberapa file secara urut
$cat > [Link]
Budi
gama
Asep
Muklis
[Ctrl-d]
$cat [Link] [Link] | sort
$who | cut –c1-8
4. Perintah cat, sort dan uniq untuk menampilkan isi beberapa file secara urut
$cat [Link] [Link] > [Link]
$cat [Link] | sort | uniq
Percobaan 3 : Pembuatan Bash Script
Cara 1: Menggunakan editor Vi
1. Membuat file [Link]
$vi [Link]
echo “Program bash script”
2. Mengubah program menjadi executable
$ls –l [Link]
$chmod +x [Link]
$ls –l [Link]
3. Menjalankan script
$bash [Link]
$sh [Link]
$.[Link]
$./[Link]
4. Konvensi dalam pembuatan script shell dinyatakan sebagai #!/bin/bash.
$vi [Link]
#!/bin/bash
echo “Program 2 bash script”
5. Menjalankan beberapa program shell dalam satu baris instruksi
$./[Link] ; ./[Link] atau ./[Link] ; bash [Link]
6. Menjalankan script sebagai proses background menggunakan tanda & pada
akhir instruksi
$./[Link] &
$./[Link] &
14
Cara 2: Menggunakan perintah cat
1. Membuat file [Link]
$cat >[Link]
#Ini adalah program script saya yang pertama
echo Contoh program script
echo Ini adalah listing dari direktori
#Memanggil perintah ls
ls –la
echo selesai
^D
2. Menjalankan script
$chmod +x [Link]
$./[Link]
$./[Link] ; cat [Link]
Percobaan 4 : Job Control
1. Proses forground
$ps x
2. Proses background
$ps x >hasil
$cat hasil
3. Setiap job memiliki PID yag tunggal. Untuk melihat job yang aktif
$jobs
4. Membuat file [Link], file ini tdk pernah berhenti kecuali ditekan Ctrl-c
$ vi [Link]
#!/bin/bash
while true
do
sleep 10
echo “Hallo”
done
5. Menjalankan file [Link]. Program akan menampilkan kata Hallo setiap 10
detik. Untuk keluar program tekan Ctrl-C (^C)
$chmod +x [Link]
$./[Link]
6. Menjalankan program file [Link] sebagai background
$./[Link] &
15
7. Periksa job yang aktif
$jobs
8. Mengubah job menjadi foreground dengan fg dan nomor job, atau fg
dengan argumen berupa nama job yang sedang berjalan atau huruf depan
nama job yang sedang berjalan
$fg %[nomor job] contoh : fg %1 atau
$fg %[Link]
9. Mengembalikan job tersebut ke background, tekan Ctrl-Z (^Z), kemudian
jalankan instruksi bg
$bg
$jobs
Percobaan 5 : Menggunakan Alias
Untuk memberi nama alias pada satu atau sekolompok instruksi
1. Melihat alias yang sudah terdaftar pada sistem
$alias
2. Membuat beberapa alias
$alias del=‘rm –i’
$alias h=‘history’
3. Menggunakan instruksi hasil alias
$ls
$del hasil
$h | more
4. Menghapus alias dengan perintah unalias
$ unalias del
$ del file (terdapat pesan kesalahan)
Percobaan 6 : Operasional Editor vi
1. Memulai vi.
$vi latihan-1
2. Sisipkan teks sebagai awal dari editing (tekan tombol i = "inserting").
iKalimat pertama<CR>
Kalimat kedua<CR>
Kalimat ketiga<Esc>
3. Sisipkan judul pada awal kalimat, diatas kalimat pertama. Gunakan kursor
arrows-key ke baris pertama. Sisipkan dengan tombol O.
16
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 ^ (panah) kemudian i untuk insert dan tulis “Ini adalah”.
6. Arahkan kursor pada huruf p, lalu gunakan tombol R untuk mengganti
huruf dengan huruf yang diketik sampai <Esc> ditekan.
Rawal yang ditulis<ESC>
7. Arahkan kursor ke depan kata “Kalimat” (huruf K), kemudian gunakan
instruksi cw, setelah itu tulis “Baris”.
cwBaris
8. Hasil yang diperoleh harusnya :
Latihan dengan vi
_
Baris awal yang ditulis
Ini adalah Kalimat yang kedua
Kalimat ketiga
~
~
9. Mengedit file
$vi latihan-2
Sisipkan teks sebagai awal dari editing.
Ijaringan<CR>
jaringan<CR>
BIND merupakan software implementasi DNS<CR>
BIND adalah singkatan dari Barkeley Internet Name
Domain<CR)
BIND dapat didownload di [Link]/isc/bind <Esc>
10. Menghapus karakter
Menghapus N karakter pada posisi kursor, dengan huruf x (kecil) dan
menghapus N karakter sebelum posisi kursor, dengan huruf X (besar),
untuk setiap instruksi, bisa diberikan kelipatan (angka) di depannya.
jaringan --> jangan :2x pada posisi kursor di huruf r
jaringan --> ringan :2X pada posisi kursor di huruf r
17
11. Menghapus kata, baris
Menghapus N kata (delete word) dari posisi kursor dw dan menghapus N
baris pada posisi kursor dd
BIND merupakan software implementasi DNS
BIND adalah singkatan dari Barkeley Internet Name Domain
BIND dapat didownload di [Link]/isc/bind
dengan perintah dw pada kata 'adalah' menjadi
BIND merupakan software implementasi DNS
BIND singkatan dari Barkeley Internet Name Domain
BIND dapat didownload di [Link]/isc/bind
dengan perintah dd pada baris kedua menjadi
BIND merupakan software implementasi DNS
BIND dapat didownload di [Link]/isc/bind
12. Mencari string
Mencari string mulai dari kursor ke bawah menggunakan /
Mencari string mulai dari kursor ke atas dengan ?
Mencari string berikutnya (next) dengan huruf n (kecil)
Mencari string sebelumnya dengan huruf N (besar)
3?iwan = mencari string iwan yang ke 3, sebelum posisi kursor
/iyan = mencari string iyan, setelah posisi kursor
Untuk mencari string iyan berikutnya tekan n, untuk mencari string iyan
sebelumnya tekan N
13. Copy, Cut, Paste
Mengkopi N karakter dari kursor ke arah gerak panah y{panah}
Mengkopi N baris yy atau Y
Menghapus N karakter dari kursor ke arah gerak panah (delete) d{panah}
Menyalin dari buffer ke posisi setelah kursor (paste) p (kecill)
Menyalin dari buffer ke posisi sebelum kursor P (huruf besar)
Menyadap password dapat dilakukan dengan berbagai cara.
sniffing biasanya dilakukan untuk membaca paket yang dikirim dalam bentuk text.
cara yang umum dilakukan adalah dengan sniffing atau packet monitoring.
untuk menukar baris ke-2 dengan baris ke-3, hapus dulu baris 2 dengan
command dd di baris kedua kemudian command p untuk menyalin kembali.
Menyadap password dapat dilakukan dengan berbagai cara.
cara yang umum dilakukan adalah dengan sniffing atau packet monitoring.
sniffing biasanya dilakukan untuk membaca paket yang dikirim dalam bentuk text.
18
untuk mengkopi kata 'atau paket monitoring' adalah dengan meletakkan
posisi kursor di awal kata 'atau' kemudian copy dengan command
22y{panah kanan}, artinya mengkopi 22 karakter di sebelah kanan kursor
kemudian untuk menyalin di baris ke-3, letakkan posisi kursor di awal kata
'biasanya' kemudian jalankan command P untuk menyalin, jangan lupa
tambahkan 1 spasi lagi antara kata 'monitoring' dan 'biasanya'.
Menyadap password dapat dilakukan dengan berbagai cara.
cara yang umum dilakukan adalah dengan sniffing atau packet monitoring.
sniffing atau packet monitoring biasanya dilakukan untuk membaca paket yang
dikirim dalam bentuk text.
14. Menggerakkan cursor
menggerakkan kursor ke atas sebanyak N Æ k
menggerakkan kursor ke bawah sebanyak N Æ j
menggerakkan kursor ke kiri sebanyak N Æ h
menggerakkan kursor ke kanan sebanyak N Æ l
3k bergerak 3 baris ke atas
15h bergerak 15 karakter ke kiri
menggerakkan kursor ke kolom pertama (tombol (home)) Æ 0
menggerakkan kursor ke kolom terakhir (tombol (end)) Æ $
menggerakkan kursor ke kata (word) berikutnya Æ w
menggerakkan kursor ke kata (word) berikutnya termasuk "." Æ W
Saya Iwan.
Saya temannya Iyan.
Saya Iwan. Saya temannya
Iyan. (dengan perintah w akan ke titik)
Saya Iwan.
Saya temannya Iyan.
Saya Iwan. Saya
temannya Iyan. (dengan perintah W akan ke huruf S)
note: b dan B adalah kebalikan dari w dan W
15. Perintah Lainnya : Bergerak lebih cepat
bergerak satu layar ke bawah (forward) ^f (ctrl+f)
bergerak satu layar ke atas (back) ^b (ctrl+b)
bergerak 1/2 layar ke bawah (down) ^d (ctrl+d)
bergerak 1/2 layar ke atas (up) ^u (ctrl+u)
16. Mengganti text
mengganti N karakter pada posisi kursor (replace) Æ r
19
mengganti karakter mulai dari posisi kursor sampai ditekan Æ R
mengganti N kata dengan kata yang lain (change word) Æ cw
17. Undo, Redo
membatalkan editing sebelumnya (undo) Æ u
mengembalikan editing yang dibatalkan (redo) Æ ctrl + R
18. Merecover file
vi -r [nama_file]
cara ini untuk merecover file yang belum sempat keluar dari editor vi (misalnya
karena koneksi ke komputer remote terputus/disconnect). Dengan option -r vi
akan merecover file dengan membaca swap file. Jangan lupa setelah
merecover file kemudian menghapus swap file nya. Swap file ini hidden
dengan nama nama_file.swp.
E. Latihan
1. Buatlah program bash script untuk menampilkan tulisan berupa teks seperti
dibawah ini :
Selamat datang
Di Laboratorium Komputer
Jurusan Teknik Telekomunikasi PENS –ITS
a. gunakan Vi editor dan simpan dengan nama file [Link]
b. gunakan perintah cat dan simpan dengan nama file [Link]
c. jalankan kedua file tersebut secara bersamaan
2. Carilah kata / kalimat dalam kedua file diatas yang mengandung kata
Laboratorium
3. Lihatlah nilai kapasitas history dan gantilah nilainya menjadi 50.
4. Buatlah file baru yang isinya 5 nama kota di pulau jawa, kemudian urutkan
isi filenya dan hitung jumlah baris, kata dan karakter dari file tersebut
dengan menggunakan filter.
20