Monday 11 January 2016

Pembuatan Bash Script

History
History diadaptasi dari C-Shell, yaitu catatan dari semua instruksi yang sejauh ini telah dilakukan. Catatan ini dapat dilihat sebagai history, kemudian dapat dipilih kembali, diedit dan dieksekusi. History memudahkan pemakai untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter. Navigasi pada daftar history menggunakan karakter kontrol sebagai berikut :

^P (Ctrl-P) melihat instruksi sebelumnya
^N (Ctrl-N) melihat instruksi berikutnya
!! eksekusi kembali instruksi sebelumnya
!! -3 instruksi sebelumnya akan diulang
!!88 ulangi instruksi no 88

Filter
Filter adalah utilitas Linux yang dapat mem proses standard input (dari keyboard) dan menampilkan hasilnya pada standard output (layar). Contoh filter adalah cat, sort, grep, pr, head, tail, paste dan lainnya. Pada sebuah rankaian pipa :

P1 | P2 | P3 ........ | Pn-1 | Pn

P2 sampai dengan Pn-1 mutlak harus utilitas Linux yang berfungsi sebagai filter. P1 (awal) dan Pn (terakhir) boleh tidak filter. Utilitas yang bukan filter misalnya who, ls, ps, lp, lpr, mail dan lainnya. Beberapa perintah shell Linux yang digunakan untuk proses penyaringan antara lain :

• Perintah grep
Digunakan untuk menyaring masukannya dan menampilkan baris-baris yang hanya mengandung pola yang ditentukan. Pola ini disebut regular expression.

• Perintah wc
Digunakan untuk menghitung jumlah baris, kata dan karakter dari barisbaris masukan yang diberikan kepadanya. Untuk mengetahui berapa baris gunakan option –l, untuk mengetahui berapa kata, gunakan option –w dan untuk mengetahui berapa karakter, gunakan option –c. Jika salah satu option tidak digunakan, maka tampilannya adalah jumlah baris, jumlah kata dan jumlah karakter.

• Perintah sort
Digunakan untuk mengurutkan masukannya berdasarkan urutan nomor ASCII dari karakter.

• Perintah cut
Digunakan untuk mengambil kolom tertentu dari baris-baris masukannya, yang ditentukan pada option –c.

• Perintah uniq
Digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, biasanya digabungkan dalam pipeline dengan sort.

Job Control
Job adalah sebuah eksekusi program yang diberikan kepada kernel. Sebuah job dianggap selesai, bila eksekusi program tersebut berakhir. Eksekusi job adalah sama dengan eksekusi program, baik proses Background maupun proses Foreground.

Bash Script
Bash script adalah file yang berisi koleksi program yang dapat dieksekusi. Untuk eksekusi bash script menggunakan tanda . (dot) sebelum file bash script yang berarti eksekusi shell dan tanda ./ berarti file bash script barada pada direktori aktual. Secara default dalam Linux menggunakan bash shell.


Langkah awal untuk mengetahui shell yang aktif pada sistem yaitu dengan menggunakan perintah ps (report process status)

$ps
PID TTY TIME CMD
219 tty1 00:00:00 bash
301 tty1 00:00:00 ps

atau dengan mengetikkan syntak sebagai berikut :

$grep nama_user /etc/passwd

Hasil dari perintah diatas menunjukkan bahwa bash adalah shell aktif di system, jika disystem ternyata berbeda misalnya csh atau ksh. Maka jenis shell dapat diubah dengan perintah change shell.

$chsh
Password:
New shell [/bin/csh]:/bin/bash
Shell changed

atau dengan mengetikkan bash

$bash
kemudian mengetik perintah pada prompt shell sebagai berikut :

$echo "Script shell pertamaku di linux"
Script shell pertamaku di linux

string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada layar, echo adalah statement (perintah) built-in bash yang berfungsi menampilkan informasi ke standard output yang defaultnya adalah layar. jika diinginkan mengulangi proses tersebut, dapat mengetikkan kembali perintah tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga
mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu mungkin perintah-perintah tadi sudah tertimpa oleh perintah lain karena history mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil kapanpun diinginkan.

Vi Editor
Vi merupakan editor yang paling terkenal di dunia UNIX. Vi ialah kepanjangan
dari "Visual" editor. Untuk menjalan perintah vi, menggunakan sintaks sbb :
vi <nama_file>

Status Vi
Editor Vi mempunyai 2 buah modus, yaitu :

1. Command line
Editor vi mengintepretasikan input sebagai instruksi untuk dieksekusi oleh editor, contoh seperti mencari teks, mengganti teks secara otomatis dan lainnya.

2. Editing
Editor vi mengintepretasikan input sebagai teks yang akan dimasukkan ke dalam buffer editor. Pada bagian bawah layar akan tampil teks “INSERTING”. Pada awal vi dijalankan, maka program memasuki command mode. Dengan menekan tombol “i” maka akan memasuki editing. Untuk kembali ke command
mode, tekan tombol Esc. Notasi yang digunakan CTRL-c, CTRL adalah tombol control pada keyboard, sehingga CTRL-c berarti "control c". CR (Carriage Return) ialah tombol enter.

Manipulasi file

Perintah Dasar Shell

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. Perintah-peritah yang diketikkan oleh user dari input standart yaitu keyboard akan ditafsirkan oleh shell, jika yang diketikkan oleh user merupakan program yang dapat di eksekusi maka shell akan menjalankan program tersebut.

Contoh :
$ ls
test
$ hello
bash: hello: command not found
$

Berdasarkan contoh diatas dapat dilihat bahwa ketika user mengetikan ls maka program ls dijalankan, sedangkan apabila user mengetikkan hello dan program hello memang tidak ada maka shell tidak dapat mengeksekusinya.

Pengeditan Perintah
Dengan bash shell, user dapat mengedit suatu baris perintah cukup dengan tombol panah kiri dan panah kanan pada keyboard. Setelah selesai mengedit, hanya dengan menekan tombol [ENTER] untuk menjalankan perintah.

Pipeline
Pipeline dengan tanda vertical bar ( | ) adalah fasilitas di shell UNIX yang berfungsi untuk memberikan input dari suatu proses yang brasal dari output proses yang lain. Misalkan sebagai contoh :
• Sebelum kita gunakan pipeline
$ find *
dead.letter
mbox
test
• Setelah kita gunakan pipeline
$ find * | grep test
test
$
Pada contoh diatas output perintah find menjadi input dari perintah grep yang kemudian hanya mengambil kata “test” dari output find.

Regular Expression
Regular Expression adalah cara untuk menentukan sebuah pola karakter untuk pencarian dan pemfilteran. Pola karakter yang eksak atau karakter-karakter khusus yang memiliki arti tersendiri. Penggunaan karakter khusus dalam pola regular exspression dapat dilihat pada tabel 1.
Redirection
Pada UNIX terdapat istilah standard input, standard output, dan standard error. Standart input adalah masukkan atau input standard dari suatu perintah atau program. Input standard ini adalah keyboard. Standard output adalah keluaran atau output standard dari suatu perintah atau program. Output standard ini adalah monitor atau terminal. Standard error adalah keluaran atau output standard jika pada program atau perintah terjadi error. Keluaran ini berupa pesan-pesan kesalahan yang berguna bagi pembuat program atau orang lain yang membutuhkan. Standard error biasanya adalah layar console.
Proses pembelokkan ini disebut redirection, menggunakan symbol > (membelokkan standard output ke file), symbol < (membelokkan standard input dari file). Dengan fasilitas redirection memungkinkan user untuk dapat menyimpan output dari sebuah proses untuk disimpan ke file lain (Ouput Redirection) atau sebaliknya menggunakan isi dari file sebagai input dalam suatu proses (Input Redirection). Komponen-kmponen dari redirection adalah symbol-simbol berikut: <, >, <<. >>.
Standard input, output dan error, yaitu untuk mengalihkan file descriptor dari 0, 1 dan 2. Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan melalui angka yang dimulai dari 0, 1, 2 dan seterusnya.
Tiga buah file descriptor standar yang lalu diciptakan oleh proses adalah :
0 = keyboard (standar input)
1 = layar (standar output)
2 = layar (standar error)
Simbol untuk pembelokan adalah :
0< atau < pengganti standard input
1> atau > pengganti standard output
2> atau > pengganti standard error

Dasar Rangkaian Sekuensial

Berdasarkan kemampuannya menyimpan data, rangkaian digital dibedakan menjadi dua macam, rangkaian kombinasional dan rangkaian sekuensial. Seperti yang telah dipelajari pada percobaan kombinasonal, data dinasukkan pada waktu ti, akan dikeluarkan pada waktu ti juga. Pada rangkaian kombinasional, hanya ada dua keadaan, yaitu Present Input, yaitu data input yang diberikan pada saat itu dan Present Output, yaitu data yang dikeluarkan pada saat itu juga.

Pada rangkaian sekuensial, ada siklus umpan balik, dimana output yang dihasilkan pada waktu ti diumpan balikkan sehingga menjadi input internal saat itu juga, bersama-sama dengan input dari luar. Hasil dari proses logika akan dikeluarkan sebagai output yang akan datang. Karena adanya siklus umpan balik, maka terjadi penundaan waktu keluar dari data. Adanya penundaan waktu keluar tersebut dimanfaatkan oleh disainer untuk menjadikan rangkaian sekuensial sebagai rangkaian pengingat atau penyimpan data. Pada rangkaian sekuensial ada tiga keadaan Present Input, Present Output dan Next Output.

 
Salah satu contoh sederhana sebuah rangkaian sekuensial adalah rangkaian NAND berumpan balik seperti ditunjukkan pada gambar 1.2. Rangkaian tersebut terdiri dari gerbang NAND yang mempunyai Present Input A, Present dan Next Output B.

 
Tabel Present/Next State
Seperti halnya rangkaian kombinasional, rangkaian sekuensial juga menggunakan Tabel Kebenaran untuk merepresentasikan hasil yang telah diperoleh. Istilah Tabel Kebenaran pada rangkaian sekuensial lebih dikenal sebagai Tabel PS/NS, karena rangkaian sekuensial mempunyai kondisi Present dan Next State untuk output-outputnya.

 
State Diagram
Sebuah state diagram menggambarkan perubahan kondisi dari sebuah variable (dalam hal ini adalah variable output) dari kondisi awal ke kondisi berikutnya. Kondisi dari variable tersebut berubah karena adanya pengaruh input dari luar. State diagram terdiri dari variable Output, dilambangkan dalam bentuk lingkaran dan variable input yang mempengaruhinya, dilambangkan dalam bentuk panah yang keluar dari masing-masing lingkaran.
 
Untuk membuat state diagram dari rangkaian gambar 1.2 di atas, telah ditentukan bahwa A adalah variable Input dan B adalah variable Output. Nilai B akan berubah dari kondisi awal ke kondisi berikutnya setelah mendapat pengaruh dari input A. State diagram dari perubahan kondisi tersebut ditunjukkan pada gambar 1.4.