Pemrograman Shell 1
Pemrograman Shell 1
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
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
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:
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`
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.
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.
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
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
Bila variabel berupa string yang terdiri lebih dari satu kata, maka harus berada dalam tanda petik, contoh: [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
[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
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"
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
parameter
yang
proses
yang
sedang
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 $$"
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
/ %
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"
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
<=
-lt
<
-ne
!=
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
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
root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin