Anda di halaman 1dari 18

BAB VIII PEMROGRAMAN SHELL 1 Dasar Teori

1. Dasar Teori

Pengertian Shell Shell adalah nama sebuah program yang berfungsi agar anda dapat berinteraksi dengan sistem operasi melalui suatu baris perintah. Shell menerima perintah dari user dan menjalankannya. Pada keluarga Linux terdapat lebih dari 400 perintah standar UNIX yang disebut dengan tools. Dengan shell inilah kita bisa menjalankan atau mengkombinasikan perintah-perintah tersebut. Shell juga dapat menjalankan kumpulan perintah yang terdapat pada suatu file yang disebut shell script. Shell script ini ditulis menggunakan bahasa pemrograman shell. Dari shell ini kita dapat membuat sebuah script yang mengkombinasikan beberapa perintah dasar menjadi sebuah program yang berguna atau bahkan merusak. Macam-macam shell Terdapat beberapa macam shell yang tersedia di pasaran diantaranya:

1. Bourne

Shell (sh) Shell sederhana, tetapi kurang interaktif karena belum adanya history, aliasing, dan

job control. Dibuat pada tahun 1979 oleh Stephen Bourne.

2. C

Shell (csh) - Biasa disertakan bersama keluarga BSD. Sudah mulai dilengkapi fasilitas job control (membuat proses berhenti sementara, foreground, background, dsb), alias (membuat nama lain perintah) dan history mechanism (menyimpan sejarah perintah yang telah dijalankan). Shell (ksh) - Merupakan pengembangan dari kedua shell sebelumnya. Again Shell (bash) - Diciptakan oleh Brian Fox dan Chet Ramey, adalah salah satu shell yang popular di dunia Linux. Terdiri dari 48 built-in command dan selusin opsi command line. Fasilitasnya antara lain: menyediakan help command dan autocompletion. Hampir semua distribusi Linux saat ini menggunakan shell jenis ini. Menggabungkan kelebihan C Shell dan Korn Shell

3. Korn

4. Bourne

5. Z shell (Zsh) - Kompatibel dengan csh, ksh, dan sh.


Ketika kita bekerja dengan shell, maka sebenarnya kita sedang bekerja dalam sebuah environment (lingkungan kerja) yang terdiri dari environment variables. Environment variables adalah nilai atau nama path yang sudah ditentukan sebelumnya dan disimpan dalam sebuah file. Dalam praktikum kita kali ini , shell yang kita gunakan adalah shell default bawaan Linux yaitu: bash. Untuk mengetahui nama shell yang sedang kita gunakan sekarang, maka gunakan perintah berikut:

[root@sisjarkom]# /etc/passwd Example:

fgrep username_kamu

[root@sisjarkom]# fgrep budi /etc/passwd budi:x:500:500:budi:/home/budi:/bin/bash Shell yang sedang kita pakai ditunjukkan pada akhir baris keluaran, pada contoh diatas kita sedang menggunakan /bin/bash. Melihat jenis jenis shell yang tersedia di linux: [root@sisjarkom]# cat /etc/shells /bin/sh /bin/bash /bin/nologin /bin/tcsh /bin/csh /bin/ksh Mengganti shell aktif: [root@sisjarkom]# chsh Changing shell for root New shell [/bin/bash]: /bin/csh Shell changed

Atau bisa juga dengan perintah: [root@sisjarkom]# chsh s /bin/csh Changing shell for root Shell changed

**NOTE** Shell yang akan digunakan harus diketikkan dalam bentuk absolute path (penulisan lokasi file secara lengkap) sesuai dengan yang ada di dalam file /etc/shells ! Jika tidak, maka akan muncul pesan error berikut: chsh: /bin/[shell_masukan] does not exist.

Sekarang kita cek, apakah shell untuk root sudah terganti, ketikkan: [root@sisjarkom]# fgrep root /etc/passwd root:x:0:0:root:/root:/bin/csh operator:x:11:0:operator:/root:/sbin/nologin

Scripting dan Shell Script Scripting adalah proses pembuatan program menggunakan script atau teks, yang di dalamnya berisi kumpulan perintah-perintah. Kumpulan perintah dalam script tersebut terkenal dengan istilah shell script. Shell Script sebenarnya tidak dikompilasi menjadi program

yang executable, namun hanya akan diinterpretasi dan dijalankan menggunakan interpreter. Shell adalah interpreter untuk menginterpretasikan dan manjalankan shell script. Dengan kata lain shell dapat dikatakan sebagai bahasa pemrograman. Untuk membuat shell script kita dapat melakukannya dengan 2 cara. Cara yang pertama adalah cara tradisional, yaitu membuat file kosong, kemudian menambahkan baris perintah satu persatu (dengan menggunakan I/O redirection). Cara yang kedua adalah menggunakan text editor. Mengenai teks editor yang terdapat pada linux, telah dibahas pada bab sebelumnya. Output, Variable, Input Dalam pembuatan shell script alangkah baiknya jika dibiasakan mengetikkan: #! /bin/bash

Pengetikan /bin/bash di awal setiap script yang kita buat digunakan untuk memberitahu kernel jenis script yang dijalankan. Tanda # juga dapat digunakan untuk memberikan komentar, contoh:

# Ini komentar, tidak akan dijalankan oleh shell

Sebelum kita belajar output, variable dan input maka ada baiknya jika kita membahas dulu tentang tanda petik.

Quote / Tanda Petik Penggunaan tanda petik sangat menentukan apakah script kita menghasilkan keluaran yang diinginkan atau tidak. Kesalahan penggunaan akan menyebabkan arti yang berbeda pula pada script shell kita. Kita akan banyak bekerja dengan quote ini, jadi perhatikan baik baik ! Ada 3 macam quote yang sering digunakan pada shell programming, yaitu:

Single quote

'

Tanda petik tunggal, digunakan untuk string, tapi tidak bisa digunakan untuk pengambilan nilai variable Tanda petik ganda, digunakan untuk string, bisa digunakan untuk pemanggilan nilai variabel Tanda petik balik, digunakan pada operasi matematika, digunakan untuk pemanggilan nilai variabel

Double quote

"

Back quote

Lakukan percobaan berikut dan amati keluarannya! [root@sisjarkom]# angka=5 [root@sisjarkom]# echo expr $angka+3 [root@sisjarkom]# echo expr $angka+3 [root@sisjarkom]# echo `expr $angka+3`

[root@sisjarkom]# echo `expr $angka + 3`

Output Echo adalah salah satu perintah yang digunakan untuk menampilkan output atau keluaran. [root@sisjarkom]# echo 'Laboratorium Sisjarkom'

Adanya tanda kutip dikarenakan terdapat spasi diantara kata Laboratorium dan Sisjarkom, jika string yang akan ditampilkan hanya satu kata maka tidak perlu dikurung oleh tanda kutip.

Seperti pada contoh berikut: [root@sisjarkom]# echo Sisjarkom

Dan jika kita ingin menampilkannya dalam satu baris, maka dilakukan perubahan sebagai berikut: [root@sisjarkom]# echo -n Sisjarkom

Untuk lebih jelasnya anda dapat mengetikkan man echo pada prompt shell untuk melihat perintah-perintah dari echo.

Membuat script output

1. Buatlah file script1.sh dengan editor nano


#! /bin/bash echo "Belajar pemrograman Shell"

2. Keluar dan simpan. 3. Jalankan


dengan menggunakan . (dot atau titik) di depan nama file yang akan dijalankan, dengan satu spasi. [root@sisjarkom]# . script1.sh

4. Cara

kedua menjalankan script adalah dengan mengetikkan sh atau bash didepan nama script. [root@sisjarkom]# sh script1.sh

5. Cara

ketiga adalah dengan menggunakan dot slash, namun dengan cara ini maka hak akses suatu file yang ingin dieksekusi harus diubah dulu, caranya: [root@sisjarkom]# [root@sisjarkom]# chmod 777 script1.sh ./script1.sh

Variabel Seperti halnya bahasa pemrograman yang lain, maka pada shell programming dikenal juga variable. Pada shell script, tipe variabel hanya string, sehingga kita tidak perlu mendeklarasikannya tipenya. Sintaks penulisan variabel adalah sebagai berikut: nama_variabel = isi_variabel

contoh: [root@sisjarkom]# nama=Setyoso [root@sisjarkom]# umur=42

Penulisan variabel haruslah diawali dengan huruf, tidak boleh diawali dengan angka atau simbol, tidak dipisahkan oleh spasi, dan bersifat case sensitive (huruf kecil dan besar dibedakan). Contoh: [root@sisjarkom]# Lokasi=Magelang

berbeda dengan: [root@sisjarkom]# lokasi=Magelang

Bila variabel berupa string yang terdiri lebih dari satu kata, maka harus berada dalam tanda petik, contoh: [root@sisjarkom]#konsentrasi="Jaringan Komputer"

Atau: [root@sisjarkom]#konsentrasi=Jaringan Komputer

Untuk menampilkan isi variabel kita gunakan perintah echo. Perbedaannya kali ini kita tambahkan tanda $ di depan nama variabel, untuk menunjukkan bahwa string tersebut adalah variabel, contoh: [root@sisjarkom]# nama="Setyoso Nugroho" [root@sisjarkom]# echo $nama

Menggabungkan beberapa variable [root@sisjarkom]# [root@sisjarkom]# [root@sisjarkom]# lab="Sisjarkom" gab="$nama, asisten $lab" echo $gab

Membuat variabel yang berisi perintah [root@sisjarkom]# lihat="ls -l"

[root@sisjarkom]#

$lihat

Input [root@sisjarkom]# read nama Perintah read diatas akan meminta input atau masukkan dari user. Setelah user menekan enter, maka masukkan tersebut akan disimpan dalam variable nama. Membuat script input

1. Ketikkan pada shell


[root@sisjarkom]# informatika [root@sisjarkom]# echo $jurusan read jurusan

2. Membaca

masukkan username dengan menggunakan script buatlah file script2.sh #! /bin/bash echo -n "Masukkan username : " read user echo -n "Masukkan password : " read pass

dan

password

echo echo "Username anda adalah $user dan password anda adalah $pass"

3. Jalankan script tersebut


[root@sisjarkom]# sh script2.sh

Parameter Input Sebuah program shell dapat menerima sederet masukan yang biasanya berfungsi sebagai opsi atau argumen. Sederet masukan ini dimasukkan dalam variabel parameter yang sudah terdapat pada shell.

Variabel parameter adalah $1 sampai $9 $0 adalah nama dari program itu sendiri $# adalah dimasukkan jumlah dari parameter yang

$* adalah parameter dimasukkan $$ adalah dijalankan nomor

parameter

yang

proses

yang

sedang

Contoh perintah: [root@sisjarkom]# sh script.sh Setyoso Kempewet

Maka: $0=script.sh $1=Setyoso $2=Kempewet

Membuat Parameter Input

1. Buatlah

file dengan nama script3.sh, kemudian isikan sebagai berikut: #! /bin/bash echo "Anda menjalankan program $0" echo "Parameter pertama adalah $1" echo "Parameter kedua adalah $2" echo "Parameter ketiga adalah $3" echo "Anda memasukkan parameter sebanyak $#" echo parameter yang Anda masukkan adalah $* echo "Proses berjalan dengan PID $$"

2. Jalankan disertai opsi berikut:


[root@sisjarkom]# [root@sisjarkom]# sh script3.sh sh script3.sh satu

[root@sisjarkom]# [root@sisjarkom]# tiga

sh script3.sh satu dua sh script3.sh satu dua

Operator Operator Aritmatika Pada pemrograman shell, untuk melakukan operasi aritmatika, kita harus menggunakan perintah expr, contoh: [root@sisjarkom]# [root@sisjarkom]# bil=7 echo `expr $bil - 5`

**INGAT** Tanda petik yang digunakan adalah petik tunggal terbalik (back quote), pada keyboard letaknya persis dibawah tombol Esc. Perhatikan juga spasi !! Beberapa operator aritmatika yang sering digunakan, diantaranya : Operator + \* Deskripsi Penambahan Pengurangan Perkalian

/ %

Pembagian Sisa hasil bagi (mod)

Contoh pemakaiannya: [root@sisjarkom]# [root@sisjarkom]# lima=`expr 3 + 2` delapan=`expr 4 \* 2`

Percobaan Operator Aritmatika 1. Ketikkan pada shell [root@sisjarkom]# [root@sisjarkom]# [root@sisjarkom]# [root@sisjarkom]# `expr 13 8` `expr 25 \* 5` bil=125 `expr $bil / 25`

2. Buatlah file dengan nama script4.sh, kemudian isikan sebagai berikut: #! /bin/bash echo -n "Masukkan panjang : " read panjang echo -n "Masukkan lebar : "

read lebar luas=`expr $panjang \* $lebar` echo echo "Luas persegi panjang adalah $luas"

3. Jalankan script tersebut [root@sisjarkom]# sh script4.sh

Operator Perbandingan Seringkali kita harus membandingan dua bilangan, terutama jika kita menggunakan perintah if atau case (akan dijelaskan kemudian). Berikut beberapa operator perbandingan: Operator -eq -ge Deskripsi Simbol = >=

Equal, sama dengan Greater equal, lebih besar sama dengan Greater
besar

-gt

than,

lebih

>

-le

Less equal, lebih kecil


sama dengan

<=

-lt

Less than, lebih kecil

<

-ne

Not equal, tidak sama


dengan

!=

Contoh pemakaiannya: if [ $bil1 gt $bil2 ]; then

Operator Logika Operator logika yang terdapat pada pemrograman shell ada tiga, NOT, AND dan OR. Berikut tandanya: Operator ! -a -o Deskripsi NOT AND OR

Studi Kasus Soal: 1. Buatlah sebuah script dengan nama cari.sh untuk pencarian string/kata apa saja dari sebuah file teks. Petunjuk : Pakailah perintah fgrep, atau kombinasi cat dan grep

Contoh ketika file dijalankan : [root@sisjarkom ~]# sh cari.sh kata yg dicari : root dari file : /etc/passwd

hasil pencarian adalah sbb : root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin

2. Buatlah sebuah script lagi dengan nama cari2.sh masih untuk pencarian string/kata sebuah file teks, hanya saja program tersebut dijalankan dengan format : Sh cari2.sh<spasi>kata_yg_dicari<spasi>dari_file

Contoh : [root@sisjarkom /etc/passwd ~]# sh cari2.sh root

root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin