Shell merupakan suatu program yang menghubungkan user dengan sistem operasi, dalam hal ini Kernel Unix. Shell menterjemahkan perintah-perintah dan parameter-parameter yang digunakan oleh user dalam environment Linux.
Jenis shell yang terdapat pada Unix :
Bourne Shell (sh) diciptakan oleh Steven Bourne, merupakan shell UNIX yang pertama dan tercepat pada semua system UNIX Bourne Shell memiliki bahasa pemrograman shell yang baik tetapi kurang nyaman dalam hal interaktivitas
C Shell (csh) diciptakan oleh Bill Joy, Bahasa pemrograman shell ini lebih sulit untuk digunakan oleh pemula karena memiliki sintaks mirip bahasa C dan oleh karena itulah shell ini dinamakan C shell. Kelebihannya Shell ini memiliki kemampuan interaktivitas yang lebih baik dibandingkan Bourne shell, serta memiliki fasilitas command completation untuk dapat melengkapi perintah yang belum lengkap dapat dilakukan dengan menekan tombol Tab.
Korn Shell (ksh) diciptakan oleh Dave Korn. Shell ini diciptakan dengan menggabungkan kelebihan Bourne shell dan C shell sehingga shell ini memiliki interaktivitas yang baik dan juga gaya pemrograman shell yang mudah.
Bourne Again Shell (bash), shell ini dikembangkan oleh Steven Bourne (pencipta sh) dimana shell ini adalah pengembangan Bourne shell (sh) yang sudah dilengkapi dengan berbagai kelebihan yang tidak terdapat pada versi sebelumnya. Pada shell ini juga dilengkapi dengan kelebihan-kelebihan yang terdapat pada C shell dan juga Korn shell. Bash juga memiliki bahasa pemrograman yang baik serta interaktivitas yang mudah di pahami. Bash adalah jenis shell yang paling banyak digunakan pada saat ini.
Almquist shell (ash), shell ini dikembangkan Kenneth Almquist. Shell ini kecil, cepat dan kompatibel dengan standard Posix. Ash banyak digunakan dalam embedded linux, embedded adalah sistem tertanam misalnya BIOS komputer
BusyBox, shell ini memiliki ukuran yang kecil dan banyak ditemukan dalam sistem linux embedded, installer, distribusi floppy atau kondisi yang membutuhkan kesederhanaan dan ukuran yang sangat kecil. shell ini juga menyediakan fungsionalitas banyak utiliti sistem dalam satu binary yang di link ke binari busybox.
Debian Almquist shell (dash), merupakan turunan ash, yang diturunkan ke linux dari ash versi Net-BSD, oleh Herbert Xu pada tahun 1997, shell ini merupakan pengganti versi modern dari shell ash pada distro Debian.
Exensible shell (es). shell yang diturunkan dari shell rc pada Plan 9 (distributed sistem operasi yang dikembangkan oleh Bell Labs). Di Linux, es tergolong shell yang sangat langka, dan jarang digunakan
Friendly interactive shell (fish), merupakan shell yang cukup popular di Linux dan tergolong aktif dikembangkan. Fokus utama fish adalah kemudahan penggunaan. Fish tergolong sangat lengkap, kaya fitur dan cukup menarik.
Stand Alone Shell (sash), adalah shell unix yang menyediakan berbagai fungsionaitas utility sistem, dilink secara statik. Dengan fitur tersebut, sash umum ditemukan pada sistem minim resource, installer, atau pada rescue system.
Z shell (zsh), adalah salah satu shell populer di Linux, banyak pengguna linux memanfaatkan kemampuan scripting-nya untuk membangun script yang kompleks.
Hart to Use shell (hush), ide dari shell ini adalah tugas yang sangat sederhana dibuat sangat rumit dan diselesaikan dengan perintah yang panjang.
Karel’s Interactive Simple shell/Karel’s Incredibly Stupid shell (kiss), shell dengan fungsionalitas berbagai utiliti penting sistem yaitu: rkiss dukungan readline, gkiss dukungan getline, bkiss tanpa fitur editing.
Pdmenu, Pdmenu menyediakan user interface berbasi menu full screen yang mendukung warna dan penggunaan mouse di text terminal, shell yang cocok digunakan oleh user yang baru menggunakan Linux
Pemprograman Shell yaitu penyusunan atau pengelompokkan beberapa perintah shell (internal atupun eksternal command) menjadi kumpulan perintah yang melakukan penugasan tertentu sesuai tujuan penyusunnya. Kelebihan shell di linux dibanding sistem operasi lain adalah bahwa shell di linux dimungkinkan untuk menyusun serangkaian perintah seperti halnya bahasa pemrograman (interpreter language), melakukan proses I/O, menyeleksi kondisi, looping, membuat fungsi, dsb. Jadi dengan shell di linux kita dapat membuat program seperti halnya bahasa pemrograman, biasanya pengguna unix atau linux menyebut pemrograman shell sebagai script shell (dalam DOS dikenal dengan istilah batch file).
Pemrograman Shell ditujukan untuk dapat mempermudah user dalam melakukan pekerjaannya, antara lain User script, Network script, dsb
Shell programming adalah file teks biasa yang dibuat dengan menggunkan text editor yang ada di linux (via, emacs, pico, kate, gedit, dsb) dalam penulisan ini menggunakan teks editor vi, agar hasil program bias berjalan maka sintaks penulisan program harus benar dan user mendapat hak akses untuk mengeksekusi file
Contoh Program sederhana :
[root@localhost] ~ # vi echo.sh
#program sederhana
echo “hello World”
clear
setelah itu keluar dari vi dan save dengan menekan tombol Esc kemudian ZZ atau :wq
lalu rubah hak akses file echo.sh
[root@localhost] ~ # chmod a+x echo.sh
jalankan program dengan
[root@localhost] ~ # ./echo.sh
penjelasan :
# digunakan untuk kementar (tidak ikut di eksekusi)
echo digunakan untuk mencetak karakter ke layar
clear membersihkan layar
VARIABLE
Variable adalah suatu nama yang dapat digunakan untuk menempung suatu nilai dan nilai yang ada padanya dapat diubah
Contoh hello world menggunakan variable :
STR=”Hello World!”
echo $STR
penjelasan :
memasukkan tulisan hello world ke variable STR, kemudian $STR menampilkan isi dari variable STR bukan mencetak karakter STR
Contoh penggunaan variabel dan konstanta :
clear
echo –n “Masukkan nama anda : “
read nama
echo –n “Masukkan alamat anda : “
read alamat
kota=”Palembang”
clear
echo “Data yang anda masukkan”
echo “Nama : $nama”
echo “Alamat : $alamat”
echo “Kota : $kota”
penjelasan :
read berfungsi untuk menerima inputan dari keyboard
Program penambahan dua bilangan :
echo -n “masukkan suku pertama : “
read s1
echo -n “masukkan suku kedua : “
read s2
hasil=`expr $s1 + $s2`
echo “$hasil”
Penjelasan :
Jika melakukan operasi matematika seperti +, -, x harus menggunakan expr dan berada di dalam tanda petik
KONDISI
Kondisi digunakan untuk menghasilkan nilai balik. Untuk melakukan pemeriksaan kondisi dapat menggunakan tanda test, berikut macam macam perbandingan nilai :
-eq : sama dengan (=)
-ge : lebih besar sama dengan (>=)
-gt : lebih besar (>)
-le : lebih kecil sama dengan (<=) -lt : lebih kecil (<) contoh : test 10 -lt 1 echo $? test 10 -gt 1 echo $? if then else
biasanya digunakan untuk menentukan percabangan
bentuk penulisan :
if kondisi
then
statement
else
statement
fi
contoh penggunaan if :
echo –n “masukkan sebuah angka : “
read angka
if test `expr $angka % 2` -eq 0
then
echo “bilangan $angka adalah genap”
else
echo “bilangan $angka adalah ganjil”
fi
PERULANGAN/LOOPING
until do done
biasanya digunakan untuk perulangan, di dalam until perulangan akan terus dilakukan sampai kondisi bernilai benar
bentuk penulisan :
until kondisi
do
statement
done
contoh penggunaan until :
echo “masukkan angka : “
read angka
counter=1
until test $counter -gt $angka
do
echo -n ” -”
echo -n “$counter”
echo -n “- “
counter=`expr $counter + 1`
done
echo
while do done
digunakan untuk perulangan, namun berbeda dengan until dimana pada while pengulangan akan terus dilakukan selama kondisi bernilai benar
bentuk penulisan :
while kondisi
do
statement
done
contoh penggunaan while :
echo “masukkan angka : “
read angka
counter=1
while test $counter -le $angka
do
echo -n ” -”
echo -n “$counter”
echo -n “- “
counter=`expr $counter + 1`
done
echo
contoh program membuat user :
a=1
while test $a -le 5
do
useradd user$a
smbpasswd -a user$a
let a=$a+1
done
for do done
di gunakan untuk perulangan
echo “masukkan angka : “
read angka
counter=1
for cetak in `seq 1 $angka`
do
echo -n “-”
echo -n “$cetak”
done
contoh nested loop mengunakan for dan while
echo -n “masukkan angka : “
read angka
counter=1
for cetak in `seq 1 $angka`
do
while test $cetak -le $angka
do
echo -n “ $cetak”
cetak=`expr $cetak + 1`
done
echo “”
done
case in esac
digunakan untuk pemilihan
bentuk penulisan :
case $variable in
option-1)
statement
;;
option-2)
statement
;;
option-n)
statement
;;
esac
contoh program dengan case :
tampilan() {
for posisi in `seq 1 80`
do
tput cup 1 $posisi
echo -n “*”
tput cup 25 $posisi
echo -n “*”
done
for posisi in `seq 1 25`
do
tput cup $posisi 1
echo -n “*”
tput cup $posisi 80
echo -n “*”
done
for posisi in `seq 20 60`
do
tput cup 10 $posisi
echo -n “-”
tput cup 8 $posisi
echo -n “*”
tput cup 17 $posisi
echo -n “*”
done
for posisi in `seq 8 17`
do
tput cup $posisi 20
echo -n “*”
tput cup $posisi 60
echo -n “*”
done
tput cup 9 22
echo -n “MENU”
tput cup 11 22
echo -n “1.Program Penjumlahan”
tput cup 12 22
echo -n “2.Program Ganjil Genap”
tput cup 13 22
echo -n “3.Program Bintang”
tput cup 14 22
echo -n “4.Buat User”
tput cup 15 22
echo -n “5.Exit”
tput cup 16 22
echo -n “Enter Your Choices:”
}
program_penjumlahan(){
clear
tput cup 10 22
echo -n “Masukkan Angka1:”
read angka1
tput cup 11 22
echo -n “Masukkan Angka2:”
read angka2
hasil=`expr $angka1 + $angka2`
tput cup 13 22
echo -n “Hasil penjumlahan angka1 dan 2 adalah $hasil”
read
main
}
program_ganjil_genap(){
clear
tput cup 10 22
echo -n “Masukkan angka:”
read angka3
if test `expr $angka3 % 2` -eq 0
then
tput cup 12 22
echo -n “bilangan genap”
read
main
else
tput cup 12 22
echo “bilangan ganjil”
read
main
fi
}
program_bintang(){
clear
tput cup 10 22
echo -n “Masukkan angka:”
read angka4
for posisi in `seq 1 $angka4`
do
posisi2=`expr $posisi + 21`
tput cup 12 $posisi2
echo -n “*”
done
read
main
}
buat_user(){
clear
tput cup 10 22
echo -n “Masukkan jumlah user”
read user
clear
for ulang in `seq 1 $user`
do
clear
posisi3=`expr $ulang + 1`
tput cup $posisi3 2
echo -n “masukkan user ke $ulang:”
read daftaruser
hasil=`more /etc/shadow | grep $daftaruser`
while [ ! -p $hasil ]
do
echo “user sudah ada, coba yang lain”
read
clear
tput cup $posisi3 2
echo -n “masukkan user ke$ulang:”
read daftaruser
hasil=`more /etc/shadow | grep $daftaruser`
done
adduser $daftaruser
passwd $daftaruser
done
}
main(){
clear
if ((kondisi==1))
then
tput cup 22 22
echo -n “Pilih angka 1-5″
fi
tampilan
read pilihan
if ((pilihan==1))
then
kondisi=0
program_penjumlahan
elif ((pilihan==2))
then
kondisi=0
program_ganjil_genap
elif ((pilihan==3))
then
kondisi=0
program_bintang
elif ((pilihan==4))
then
kondisi=0
buat_user
elif ((pilihan==5))
then
kondisi=0
clear
exit
else
kondisi=1
main
fi
}
main
Sumber :
http://sarangpenyamun.wordpress.com/2008/05/28/shell-programing-script-shell/