SISTEM OPERASI LINUX
Pengertian Shell
Shell adalah program (penterjemah perintah) yang menjembatani user dengan
sistem operasi dalam hal ini kernel (inti sistem operasi), umumnya shell
menyediakan prompt sebagai user interface, tempat dimana user mengetikkan
perintah-perintah yang diinginkan baik berupa perintah internal shell (internal
command), ataupun perintah eksekusi suatu file progam (eksternal command),
selain itu shell memungkinkan user menyusun sekumpulan perintah pada sebuah
atau beberapa file untuk dieksekusi sebagai program. Dari
keterangan di atas dapat kita simpulkan shell adalah suatu program penterjemah
perintah yang kita ketikkan di dalam prompt linux kita. Dan dapat kita
simpulkan juga bahwa fungsi dari shell adalah sebagai penghubung antara
user/pengguna dengan mesin linux kita (dalam hal ini adalah kernel sebagai
pondasi system operasi).
Macam-macam shell
yang sering digunakan dalam sistem operasi Linux diantaranya adalah :
- Bourne
shell(sh)
- C
shell(csh)
- Bourne
again shell(bash)
- dsb.
Setiap jenis shell tersebut memiliki
kelebihan dan kekurangan sesuai dengan kebutuhan user masing-masing. Berikut
ini adalah sedikit penjelasan mengenai beberapa macam-macam shell di Linux
Bourne Shell
Diciptakan oleh Steven Bourne. Shell
pertama di Unix. Bourne shell merupakan bahasa pemrograman shell yag cukup baik
namun kurang nyaman dalam interaktivitas karena tidak dilengkai fasilitas
command line completion atau auto complete. Sehingga penulisan script harus
dilakukan secara manual.
C Shell
Bill Joy mengembangkan bahasa
pemrograman shell yang lebih mirip dengan bahasa pemrograman C bagi sebagaian
orang dianggap lebih sulit. Kelebihan bahasa pemrograman shell ini daripada
Bourne shell adalah sudah tersedia fitur command line completion atau auto
complete. Untuk melengkapi perintah kita hanya perlu menekan tombol Tab.
Bourne Again Shell (Bash)
Merupakan bahasa pemrograman shell
yang saat ini banyak dipakai pada sistem operasi linux. memliki interaktivitas
yang lebih sempurna daripada sebelumnya serta gaya bahasa pemrograman yang
lebih mudah untuk digunakan.
Berikut adalah Tabel perbandingan Kelebihan dan Kekurangan dari macam-macam
shell :
No
|
Nama Shell
|
Kelebihan
|
Kekurangan
|
1.
|
Bourne
Shell (sh)
|
banyak
digunakan pemakai linux karena kemudahan serta banyaknya fasilitas perintah
yang disediakan,karena mengambil fitur dari shell lainnya.
|
-
kurang nyaman dalam interaktivitas karena tidak dilengkai
fasilitas command line completion atau auto complete.
-
Penulisan script harus dilakukan secara
manual.
|
2.
|
C Shell
(csh)
|
Sudah tersedia fitur command line completion atau auto complete untuk dapat
melengkapi perintah yang belum lengkap dapat dilakukan dengan menekan tombol
Tab.
|
sulit untuk digunakan oleh
pemula karena memiliki sintaks mirip bahasa C.
|
3.
|
Bourne
Again Shell (bash)
|
memliki interaktivitas
yang lebih sempurna daripada sebelumnya serta gaya bahasa pemrograman yang
lebih mudah untuk digunakan.
1.
Command
line editing.
2.
Command
line completion.
3.
Unlimited
size command history.
4.
Prompt
control.
5.
Indexed
arrays of unlimited size (Arrays).
6.
Integer
arithmetic in any base from two to sixty-four.
7.
Bash
startup files - You can run bash as an interactive login shell, or
interactive non-login shell. See Bash startup files for more information.
8.
Bash
conditional expressions: Used in composing various expressions for the test
builtin or [[ or [ commands.
9.
The
Directory Stack - History of visited directories.
10. The Restricted Shell: A more
controlled mode of shell execution.
11. Bash POSIX Mode: Making Bash behave
more closely to what the POSIX standard specifies
|
Untuk Bourne Again shell (bash) kami tidak menemukan
kekurangan karena bash untuk saat ini paling banyak digunakan pada sistem
operasi linux, karena kemudahan serta banyaknya fasilitas perintah yang
disediakan.
|
Berikut contoh program yang menggunakan salah satu
dari macam-macam shell :
1.
Program hotel
#!/bin/bash/
clear
echo “==========Hotel============”;
echo “--------------Fasilitas--------------------“;
echo “=======Kamar============”;
echo “1. Kamar Kelas A”;
echo “2. Kamar kelas b”;
echo “3. Kamar kelas c”;
echo “---------------------------------------------“;
echo “---------------------------------------------“;
read –p”Pilihan fasilitas kamar anda [1-3]=”pil;
if [ $pil –eq 1];
then
echo “Pilihan fasilitas kamar anda adalah kelas A”;
echo “Dengan harga = Rp. 1000.000”;
echo “Lama hari anda ingin menginap =”;
read hari;
let bayar=hari*1000000;
echo “Jadi, total yang harus anda bayar adalah=”$bayar;
clear
echo “==========Hotel============”;
echo “--------------Fasilitas--------------------“;
echo “=======Kamar============”;
echo “1. Kamar Kelas A”;
echo “2. Kamar kelas b”;
echo “3. Kamar kelas c”;
echo “---------------------------------------------“;
echo “---------------------------------------------“;
read –p”Pilihan fasilitas kamar anda [1-3]=”pil;
if [ $pil –eq 1];
then
echo “Pilihan fasilitas kamar anda adalah kelas A”;
echo “Dengan harga = Rp. 1000.000”;
echo “Lama hari anda ingin menginap =”;
read hari;
let bayar=hari*1000000;
echo “Jadi, total yang harus anda bayar adalah=”$bayar;
if [ $pil –eq 2];
then
echo “Pilihan fasilitas kamar anda adalah kelas B”;
echo “Dengan harga = Rp. 750.000”;
echo “Lama hari anda ingin menginap =”;
read hari;
let bayar=hari*75000;
echo “Jadi, total yang harus anda bayar adalah=”$bayar;
if [ $pil –eq 3];
then
echo “Pilihan fasilitas kamar anda adalah kelas C”;
echo “Dengan harga = Rp. 500.000”;
echo “Lama hari anda ingin menginap =”;
read hari;
let bayar=hari*500000;
echo “Jadi, total yang harus anda bayar adalah=”$bayar;
fi
echo “-----------Fasilitas Catering----------------“;
echo “1. 3 Kali sehari”;
echo “2. 2 Kali sehari”;
echo “3. 1 Kali sehari”;
echo “---------------------------------------------“;
echo “---------------------------------------------“;
read –p”Pilihan fasilitas catering anda[1-3]=”pil;
if [ $pil –eq 1];
then
echo “Pilihan fasilitas kamar anda adalah 3 Kali sehari”;
echo “Dengan harga = Rp. 100.000”;
echo “Lama hari anda ingin menginap =”;
read jum;
let abc=jum*100000;
echo “Jadi, total yang harus anda bayar adalah=”$abc;
if [ $pil –eq 2];
then
echo “Pilihan fasilitas kamar anda adalah 2 Kali sehari”;
echo “Dengan harga = Rp. 75.000”;
echo “Lama hari anda ingin menginap =”;
read jum;
let abc=jum*75000;
echo “Jadi, total yang harus anda bayar adalah=”$abc;
if [ $pil –eq 3];
then
echo “Pilihan fasilitas kamar anda adalah 1 kali sehari”;
echo “Dengan harga = Rp. 50.000”;
echo “Lama hari anda ingin menginap =”;
read jum;
let abc=jum*50000;
echo “Jadi, total yang harus anda bayar adalah=”$abc;
then
echo “Pilihan fasilitas kamar anda adalah 2 Kali sehari”;
echo “Dengan harga = Rp. 75.000”;
echo “Lama hari anda ingin menginap =”;
read jum;
let abc=jum*75000;
echo “Jadi, total yang harus anda bayar adalah=”$abc;
if [ $pil –eq 3];
then
echo “Pilihan fasilitas kamar anda adalah 1 kali sehari”;
echo “Dengan harga = Rp. 50.000”;
echo “Lama hari anda ingin menginap =”;
read jum;
let abc=jum*50000;
echo “Jadi, total yang harus anda bayar adalah=”$abc;
fi
echo “=======Total=============”;
echo “Jadi, total yang harus anda bayar adalah=”$[abc+bayar];
echo “===========Terima kasih atas kunjungan anda===========”;
2.
Listing program menu makan
#!/bin/bash
#kedai
lagi='y'
while [ $lagi == 'y' ] || [ $lagi == 'Y' ];
do
clear
echo "MENU HARI INI";
echo "-------------";
echo "1. Bakso ";
echo "2. Gado-Gado ";
echo "3. Exit ";
read -p "Pilihan anda [1-3] :"
pil;
if [ $pil -eq 1 ];
then
echo -n "Banyak mangkuk =";
read jum
let bayar=jum*1500;
elif [ $pil -eq 2 ];
then
echo -n "Banyak porsi =";
read jum
let bayar=jum*2000;
elif [ $pil -eq 3 ];
then
exit 0
else
echo "Sorry, tidak tersedia"
exit 1
fi
echo "Harga bayar
= Rp. $bayar"
echo "THX"
echo
echo -n "Hitung
lagi (y/t) :";
read lagi;
#untuk validasi input
while
[ $lagi != 'y' ] && [ $lagi != 'Y' ]
&& [ $lagi != 't' ] && [ $lagi != 'T' ];
do
echo "Ops, isi lagi dengan
(y/Y/t/Y)";
echo -n "Hitung lagi (y/t) :";
read lagi;
done
done
3.
Program
aritmatika penjumlahan dan perkalian
#!/bin/sh
# deklarasikan variabel dengan nilai NULL
bil1=
bil2=
bil3=
echo -n 'Masukkan bilangan-1: '
read bil1
echo -n 'Masukkan bilangan-2: '
read bil2
echo -n 'Masukkan bilangan-3: '
read bil3
echo ''
echo -n "Hasil dari $bil1 * $bil2 + $bil3 = "
echo `expr $[ $bil1 * $bil2 ] + $bil3`
lug@stikom.edu:~$ chmod +x hitung2.sh
lug@stikom.edu:~$ ./hitung2
Masukkan bilangan-1: 10
Masukkan bilangan-2: 10
Masukkan bilangan-3: 10
Hasil dari 10 * 10 + 10 = 110
# deklarasikan variabel dengan nilai NULL
bil1=
bil2=
bil3=
echo -n 'Masukkan bilangan-1: '
read bil1
echo -n 'Masukkan bilangan-2: '
read bil2
echo -n 'Masukkan bilangan-3: '
read bil3
echo ''
echo -n "Hasil dari $bil1 * $bil2 + $bil3 = "
echo `expr $[ $bil1 * $bil2 ] + $bil3`
lug@stikom.edu:~$ chmod +x hitung2.sh
lug@stikom.edu:~$ ./hitung2
Masukkan bilangan-1: 10
Masukkan bilangan-2: 10
Masukkan bilangan-3: 10
Hasil dari 10 * 10 + 10 = 110