Sabtu, 17 Januari 2009



Shell Scripting Pada GNU/Linux





Apa itu shell?? shell adalah program penerjemah perintah yang menjembatani user dengan sistem operasi atau suatu environment yang disediakan untuk user berinteraksi dengan sistem komputer. Shell juga merupakan bahasa pemrograman interpreter yang mengeksekusi perintah-perintah yang dibaca dari perangkat standart input (keyboard) atau file. Kemudian pengertian shell scripting itu sendiri apa seach??? shell scripting itu sendiri adalah sekumpulan perintah(command) yang ditulis dalam sebuah plain text file.
Kegunaan shell scripting bagi seorang network administrator yaitu untuk mengotomatisasi pengaturan backup data, monitoring network LAN, bandwith management dll.
Pada sistem operasi Linux terdapat berbagai macam shell yang digunakan, diantaranya
a) Bourne Shell (/bin/sh)
b) Bourne Again Shell (bin/bash)
c) C shell (/bin/csh)
d) Tenex C Shell (/bin/tcsh)
e) Tcl Shell (/bin/tclsh)
f) Korn Shell (shell /bin/ksh)
g) Public Domain Korn Shell (/bin/pdksh)
h) A Shell (/bin/ash)
i) Z Shell (/bin/zsh)

Bagaimana menjalankan shell script di linux???
Ada dua cara untuk menjalankan shell script yaitu :
a. Diawali oleh interpreter
contoh : #bash latih1.sh
dengan contoh perintah diatas, pengguna dapat langsung menjalankan programnya tanpa harus menjadikannya sebagai file executable. Hal itu karena file program akan dianggap sebagai input dari perintah bash.
b. Dijalankan langsung
contoh : #./latih2.sh
tanda titik slah (./) diawal perintah menandakan bahwa file tersebut terletak pada direktori aktif.

Berikut ini contoh-contoh soal script sederhana yg pernah penulis kerjakan saat mengikuti pendidikan singkat di lembaga pendidikan komputer di LP3T-NF Bekasi dengan menthor uda z3r0byt3.

contoh 1:
Membuat program sederhana dengan hasil output seperti dibawah ini :
Masukkan Pilihan Anda
1) Input Data
2) Baca Data
3) Keluar

Jika memilih nomor 1
Masukkan nama :
Masukkan email :
Masukkan website :

Jika memilih nomor 2 tampilkan hasil input nomor 1
Jika memilih nomor 3 keluar dari script
jika memilih selain ketiganya, tampilkan pesan kesalahan dan kembali ke menu (tidak exit)

usahakan sebelum menjawab soal diatas jangan terlalu memikirkan bagaimana membuat sintaks programnya, tapi yang perlu diperhatikan adalah bagaimana membuat algoritma program tersebut, sehingga program tersebut bisa di eksekusi oleh perintah-perintah yang dibaca dari perangkat standart input (keyboard) atau file. Kemudian Ingat “lebih baik salah sintaks dari pada salah algoritma di program”.
Dibawah ini adalah hasil algoritma program yang penulis kerjakan untuk contoh soal pertama:
ketik di consol atau terminal
#vi study.sh tekan enter,lalu isi script sederhana dibawah ini
=============================================================
#!/bin/bash
pil()
{
echo “masukkan pilihan anda”
echo “1) Input Data”
echo “2) Baca Data”
echo “3) Keluar”
echo -n “anda memilih nomor : “
read pilihan
case $pilihan in
1) masukkan;;
2) baca;;
3) exit;;
*) echo “Pilihan salah, Silahkan Pilih Lagi” ; pil
esac
}
masukkan () {
echo -n “masukkan nama : “ ; read nama
echo -n “masukkan email : “ ; read email
echo -n “masukkan website : “ ; read website
pil
}
baca ()
{
echo “****************************”
echo “nama : $nama”
echo “email : $email”
echo “website : $website”
echo “****************************”
pil
}
pil
exit 0
#setelah selesai jangan lupa disimpan dengan menekan :x pd keyboard
=============================================================
Kemudian eksekusi(jalankan) script yang telah anda buat diatas dengan perintah sh nama_script.sh pada consol atau terminal
#sh study.sh

contoh 2 :
Buat script sedrhana untuk mengkonfigurasikan alamat IP address, Netmask, alamat gateway dan alamat name server pada kartu jaringan eth0. Dengan tampilan sebagai berikut :

Masukkan alamat IP :
Masukkan netmask :
Masukkan alamat gateway :
Masukkan alamat DNS server :

adapun jawaban pada contoh2, algoritma programnya seperti di bawah ini :
ketik vi setting.sh pada consol atau terminal :

#vi setting.sh ====> tekan ENTER
=============================================================
#!/bin/bash
clear
echo -n "masukkan IPaddress : "
read IPaddress
ifconfig eth0 $IPaddress
echo -n "Masukkan netmask : "
read netmask
ifconfig eth0 $IPaddress netmask $netmask
echo -n "masukkan gateway : "
read gateway
route add default gw $gateway
echo -n "Masukkan alamat DNS Server : "
read DNS
echo "nameserver $DNS" >> /etc/resolv.conf

#setelah selesai jangan lupa disimpan dengan menekan :x pd keyboard
=============================================================
Setelah itu eksekusi(jalankan) script yang telah anda buat diatas dengan perintah sh nama_script.sh pada consol atau terminal
#sh setting.sh

contoh 3 :
Buat Script sederhana untuk mengecek sebuah paket rpm, script tersebut hanya dapat dijalankan oleh root. Adapun output yang dihasilkan oleh script tersebut adalah sebagai berikut :

Masukkan nama paket : httpd
httpd-2.2.3-11.el5_2.centos.4

jawaban untuk kasus contoh3, algoritma programnya seperti di bawah ini :
ketik vi search.sh pada consol atau terminal :

#vi seacrh.sh
=============================================================
#!/bin/bash
if [[ `whoami` = "root" ]]; then
echo -n "masukkan paket : "
read paket
rpm -qa | grep $paket
else
echo "anda bukan root"
fi

#setelah selesai jangan lupa disimpan dengan menekan :x pd keyboard
=============================================================
Setelah itu eksekusi(jalankan) script yang telah anda buat diatas dengan perintah sh nama_script.sh pada consol atau terminal
#sh search.sh

contoh 4 :
Buatlah script sederhana untuk melakukan pengechekan kapasitas sebuah direktori, dengan tampilan sebagai berikut :

Masukkan path direktori lengkap : /home/enuxer
Kapasitas direktori tersebut adalah : 4 GB

Jika path tersebut tidak ada, maka hasilnya sebagai berikut :
Masukkan path direktori lengkap : /home/LOVIE
Direktori tersebut tidak ada..

oke inilah jawaban dari kasus contoh 4 dengan algoritmanya sebagai berikut :

ketik vi direktori.sh pada consol atau terminal :

#vi direktori.sh ===> ENTER
=============================================================
#!/bin/bash
while true
do
echo -n "Masukkan Path direktori lengkap :"
read direktori
if [[ -d $direktori ]]; then
direktori=`du -sh $direktori`
echo "Kapitas direktori tersebut adalah : $direktori"
else
echo "Direktori tersebut tidak ada.."
fi
continue
if [[ $direktori = "LOVIE" ]]

then

break

fi

done


#setelah selesai jangan lupa disimpan dengan menekan :x pd keyboard
=============================================================
Kemudian eksekusi(jalankan) script yang telah anda buat diatas dengan perintah sh nama_script.sh pada consol atau terminal
#sh direktori.sh