Pengertian Shell Linux

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;


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;

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

 
diooda