Disain web, edit foto, dokumen office, disain gambar CAD, translate dokumen Inggris-Indonesia, dll.

Belajar shell script

Berawal ketika grub yang saya pasang di netbook tiba-tiba hilang dan kebingungan gak bisa masuk OS, kemudian saya mencari-cari cara untuk mengembalikannya dan akhirnya grub yang jadi pintu masuk untuk bisa booting ke OS, akhirnya bisa di kembalikan dengan bantuan live USB flash disk untuk masuk ke sistem ubuntu secara live. Dengan beberapa baris perintah yang kita ketikkan di terminal shell linux, GRUB akhirnya bisa kembali lagi, tapi bukan itu yang akan saya sharing disini, tapi saya akan mengutip sebuah tulisan yang membahas tentang shell script, karena seperti kasus saya tentang GRUB yang hilang itu, ternyata proses pengembalian GRUB, (yang hanya sekitar 5 baris script) ataupun proses yang lebih kompleks bisa di otomasikan dengan hanya mengeksekusi sebuah file .sh
Berikut saya kutipkan tulisan tentang shell script yang semoga saja membantu bagi siapa saja yang ingin belajar tentang linux dan khususnya shell script...

1.0 APA ITU SHELL SCRIPT
------------------------
   Dalam lingkungan unix, kata 'shell' mengacu pada semua program yang dapat 
   dijalankan pada command line. Jadi secara sederhana shell script merupakan
   kumpulan perintah yang disimpan pada suatu file. Extensi umum yang digunakan
   untuk shell script adalah '.sh', sebenarnya hal ini tidak mutlak karena
   pada dasarnya unix mengabaikan extensi file.
   
   Shell juga dapat mengacu pada program yang menangani command line itu 
   sendiri dalam sistem operasi UNIX program tersebut adalah Bourne Shell
   (1978 - Steve Bourne) disingkat sh. Dalam sistem operasi GNU/Linux shell yang 
   menjadi standar adalah Bourne Again Shell(bash). Bash merupakan shell yang
   kompatibel dengan sh dan memiliki lebih banyak fitur.
   
   Jika anda ingin menguasai shell script tentu anda harus tahu dan hafal
   sedikit banyak perintah dasar command line, seperti mengkopi file(cp),
   merename file(mv), mencetak string (echo), melihat file(cat), dan beberapa
   perintah dasar lainnya.
   
   Shell script juga menyediakan beberapa fitur yang tersedia pada bahasa
   pemrograman tingkat tinggi seperti variabel, percabangan dan perulangan. 
   Berikut ini adalah contoh sederhana penggunakan shell script:
   
   lug@stikom.edu:~$ nano hello.sh
   #!/bin/sh
   echo 'HELLO WORLD'
   
   Untuk menjalankan ada dua cara, pertama melalui program shell itu sendiri
   
   lug@stikom.edu:~$ sh hello.sh
   
   Kedua adalah mengeksekusinya secara independen, untuk melakukan hal tersebut
   anda harus memberi permission 'execute' pada file.
   
   lug@stikom.edu:~$ chmod +x hello.sh
   lug@stikom.edu:~$ ./hello.sh
   HELLO WORLD
   
   Baris pertama #!/bin/sh adalah MUTLAK diperlukan dan HARUS diletakkan pada
   BARIS PERTAMA agar file yang anda buat dikenali sistem sebagai shell script. 
   Tanda '#!' sering disebut 'shebang' operator. Tanda tersebut menandakan 
   bahwa file tersebut adalah shell script. Sisanya misal '/bin/sh' adalah
   lokasi file binari atau program. Dalam contoh kita menggunakan program
   bash '/bin/sh' atau '/bin/bash'.
   
   Tanda # jika tidak terletak pada baris dan kolom paling awal akan dianggap
   sebagai komentar oleh shell.
   
------------
1.1 Variabel
------------
   Pemberian variabel pada shell script bersifat 'dynamic typing' karena
   shell script tidak mengenal adanya tipe data. Pada shell script dikenal
   dua istilah variabel yaitu SYSTEM VARIABLE(SV) dan USER DEFINED VARIABLE 
   (UDV). SV adalah kumpulan variabel yang telah dideklarasikan secara otomatis
   oleh shell, sedangkan UDV adalah variabel yang kita buat sendiri. Contoh dari
   variabel SV adalah HOME, SHELL, RANDOM, OSTYPE, dan masih banyak yang lain.
   
   Dalam membuat variabel ada beberapa aturan yang harus dipenuhi agar variabel
   tersebut dianggap valid oleh shell, syntax untuk penamaan variabel adalah:
   
   nama_variabel=NILAI
   
   Perhatikan bahwa tidak ada spasi antara nama_variabel dengan tanda '=' juga
   dengan NILAI. Ini adalah suatu KEHARUSAN. Berikut adalah beberapa aturan
   tentang penamaan variabel:
   
   1. Variabel HARUS diawali ABJAD atau _ (tidak dapat diawali angka)
   2. Variabel dapat terdiri dari karakter alphanumeric dan _
   3. Variabel bersifat CaSe SeNsItIvE
   4. Jika isi variabel mengandung spasi sebaiknya apit dengan tanda petik (')
      atau (").
   5. Gunakan escape character (\) untuk karakter non-literal 
      seperti (\', \$, \?, dll)
   
   Untuk mencetak nilai dari suatu variabel digunakan tanda dollar ($) didepan
   nama variabel, contoh:
   
   lug@stikom.edu:~$ a='Hello '
   lug@stikom.edu:~$ b='World!'
   lug@stikom.edu:~$ echo $a$b
   Hello World!
   lug@stikom.edu:~$ echo ${a}${b}
   Hello World!
   
   Cara yang terakhir adalah cara yang disarankan untuk menghindari kesalahan
   dalam melakukan concat string.
   
   Jika anda ingin menyimpan output dari suatu perintah kedalam suatu variabel 
   gunakan tanda backtick (`). Contoh, kita akan melihat isi direktori home
   lalu menyimpannya dalam variabel isi_home.
   
   lug@stikom.edu:~$ isi_home=`ls /home`
   lug@stikom.ecu:~$ echo $isi_home
   
   Dalam shel juga terdapat SPECIAL VARIABEL untuk mendapatkan exit status dari
   suatu program. Pada UNIX setiap program dinyatakan selesai TANPA error 
   apabila exit statusnya SAMA DENGAN 0. Selain itu maka program tersebut
   selesai tapi dengan error. Variabel tersebut adalah "$?".
   
   lug@stikom.edu:~$ ls /home
   lug@stikom.edu:~$ echo $?
   0
   lug@stikom.edu:~$ ls /file/ngawur
   lug@stikom.edu:~$ echo $?
   2
   
   Angka 2(TIDAK SAMA DENGAN 0) menunjukkan bahwa program ls keluar dengan
   status terjadi error. Penggunaan exit sangat penting saat kita membuat
   shell script yang kompleks, dimana didalamnya kita banyak menggunakan
   program lain.
   
------------------------------
1.2 Command Line dan Argument
------------------------------
   Ketika berbicara shell script kita pasti berhubungan dengan command line. 
   Apabila berbicara tentang command line pasti berhubungan dengan argument.
   Apaliba berbicara tentang argument.....cukup....cukup.... nanti malah sampai
   sejarah kerajaan majapahit nantinya :)
   
   Perintah-perintah command line umumnya memerlukan minimal satu buah argumen
   agar dapat mengerjakan tugasnya secara optimal. Apa itu argument? secara
   sederhana argumen adalah text/character yang ditempatkan setelah nama program
   dengan pemisah minimal satu spasi. 
   
   Contoh berikut mengilustrasikan pemberian dua argument pada perinta copy file
   `cp`. Perintah cp memerlukan dua argument yaitu 1)lokasi file awal
   2)lokasi file tujuan
   
   lug@stikom.edu:~$ cp /foo/bar /tmp/bar
                            ^       ^
                      argument-1  argument-2
   
   Pada sistem Linux dikenal dua istilah argument short style(UNIX style) dan
   long style(GNU Style). Hampir setiap program command line pada linux
   menyediakan dua opsi tersebut saat memberikan argument. Penulisan argument 
   UNIX style biasanya hanya terdiri dari satu huruf contoh '-l' pada perintah
   `ls`. 
   
   lug@stikom.edu:~$ ls -l
   
   Sedangkan GNU style umumnya terdiri dari minimal sebuah kata contoh
   '--all' pada perintah `ls`.
   
   lug@stikom.edu:~$ ls --all
   
   Untuk membaca argument dalam shell script digunakan special variabel yaitu
   $0, $1, $2,...$9. Variabel $0 adalah nama program itu sendiri.
   
   CATATAN:
   Untuk mengetahui jumlah argument yang diinputkan user gunakan variabel $#,
   sedangkan untuk mendapatkan seluruh argument gunakan variabel $*.
   
   LATIHAN:
   Buat sebuah shell script untuk menampilkan nama user, nama tersebut 
   diinput melalui argument ke-1
   
   JAWAB:
   lug@stikom.edu:~$ nano nama.sh
   #!/bin/sh
   nama=$1
   echo 'Halo '$nama', selamat datang!'
   
   lug@stikom.edu:~$ chmod +x nama.sh
   lug@stikom.edu:~$ ./nama.sh STIKOM
   Halo STIKOM, selamat datang!
   lug@stikom.edu:~$ ./nama.sh STIKOM SURABAYA
   Halo STIKOM, selamat datang!
   lug@stikom.edu:~$ ./nama.sh 'STIKOM SURABAYA'
   Halo STIKOM SURABAYA, selamat datang!
   
   CATATAN: 
   Untuk menyimpan file pada nano Tekan CTRL-O lalu jika ingin keluar tekan 
   CTRL-X.

--------------------------
1.3 Perhitungan Aritmatik
--------------------------
   Untuk melakukan perhitungan aritmatik, shell tidak memiliki kemampuan
   built-in, tetapi meminta bantuan program lain yaitu `expr`. Program expr
   berfungsi untuk mengevaluasi suatu expresi baik itu perbandingan string
   atau operasi aritmatik sederhana.
   
   Operator aritmatik yang disediakan expr antaran lain:
   +-----------+-----------------------------------------------------------+
   | Operator  | KETERANGAN                                                |
   +-----------+-----------------------------------------------------------+
   |     +     | Operator Penjumlahan contoh: expr 1 + 1                   |
   +-----------+-----------------------------------------------------------+
   |     -     | Operator Pengurangan contoh: expr 10 - 9                  | 
   +-----------+-----------------------------------------------------------+
   |     *     | Operator Perkalian contoh: expr 10 \* 10                  |
   +-----------+-----------------------------------------------------------+
   |     /     | Operator Pembagian contoh: expr 10 / 2                    |
   +-----------+-----------------------------------------------------------+
   |     %     | Operator Modulus contoh: expr 15 % 3                      |
   +-----------+-----------------------------------------------------------+
   
   Selain digunakan untuk perhitungan aritmatik, perintah `expr` juga cukup
   handal untuk melakukan manipulasi string, untuk lebih jelas silahkan lihat
   halaman manual dari expr dengan mengetikkan `man expr`.