Bekerja Dengan Bash Shell


 Bekerja Dengan Bash Shell 

DASAR TEORI:

  1. 1.      SHELL

Shell adalah Command executive, artinya program yang menunggu instruksi dari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut.  Shell ditandai dengan prompt.  Untuk pemakai menggunakan prompt $ dan untuk superuser menggunakan promp #.

Beberapa macam shell :

  • /bin/sh

Bourne shell, dirancang oleh Steve Bourne dari AT&T

  • /bin/csh

Dikembangkan oleh UNIX Berkeley yang dikenal dengan C -Shell

  • /bin/bash

Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell. Perbedaan mendasar antara Shell diatasi hampir tidak ada, kecuali pada fasilitas  pemrograman dan editing.

  1. 2.      PROFILE

Pada saat login, program akan menjalankan beberapa program yaitu :

  1. 1.       /etc/profile 

àBerisi shell script yang berlaku untuk seluruh pengguna Linux.

  1. 2.       Profil untuk setiap pemakai

àPada home directory, login pertama kali akan memeriksa file .bash_profile .  Bila tidak ada, maka file .bash_login akan dicari.  Bila .bash_login tidak ada, maka dicari file bernama .profile .

  1. 3.      .bashrc

àFile ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui instruksi su.

  1. 4.       .bash_logout

àPada saat logout, maka bash akan mencari file .bash_logout.  Bila ada, file tersebut

akan dieksekusi sebe lum logout

Isi dari /etc/profile:

# System wide environment and startup programs

# Functions and aliases go in /etc/bashrc

PATH=”$PATH:/usr/X11R6/bin”

PS1=”[\u@\h \W]\\$ “

umask 022

USER=’id –un’

LOGNAME=$USER

MAIL=”/var/spool/mail/$USER”

HOSTNAME=’/bin/hostname’

HISTSIZE=1000

HISTFILESIZE=1000

Export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL

PATH  merupakan daftar nama direktori.  Bila sebuah instruksi diberikan dari

prompt shell, maka instruksi tersebut akan dicari pada daftar tersebut.

PS1  adalah prompt dimana

\u = Nama User

\h = Nama Host

\W = Nama working direktory

  1. 3.      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 kontrool sebagai berikut :

^P (Ctrl-P)       melihat instruksi sebelumnya

^N (Ctrl-N      melihat instruksi berikutnya

!!                      eksekusi kembali instruksi sebelumnya

!! –3                 3 instruksi sebelumnya akan diulang

!!88                  ulangi instruksi no  88

  1. 4.      BASH-SCRIPT

Bash-script adalah file yang berisi koleksi program yang dapat dieksekusi.  Untuk eksekusi bash script gunakan . sebelum file bash-script yang berarti eksekusi  shell dan tanda ./ berarti file bash-script berada pada direktori actual.

  1. 5.      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.

  1. 6.      EDITOR vi

Vi adalah full screen editor, artinya editor tersebut dapat memanfaatkan fasilitas satu layar penuh.  Vi mempunyai 2 buah modus, yaitu :

  • Command line

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

  • 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.   Kunci-kunci teks editor vi dapat dilihat pada tabel sebagai berikut :

Kunci

Keterangan

H Pindah kursor ke kiri satu karakter
J Pindah kursor ke kanan satu karakter
K Pinda h kursor ke atas
 L Pindah kursor ke bawah
O Menyisipkan teks (satu baris setelah posisi kursor) Untuk keluar dari 5 model

kunci insert  di samping ini dan mengaktifkan kunci-kunci lain, maka kita harus menekan tombol Esc

terlebih dahulu.

I Menyisip kan teks (di sebelah kiri posisi kursor)
A Menyisipkan teks (di sebelah kanan posisi kursor)
I  (shift+i) Menyisipkan teks (di posisi awal baris)


Masih ada kunci-kunci lainnya yang bisa di lihat di man vi.

 

Percobaan 1 : Profile

  1. $ ls –a

$ more .bash_profile.

Analisa:

Perintah ls adalah perintah untuk melihat isi  dari file atau directory. Karena file bash adalah file yang hidden maka untuk melihat gunakan ls –a. Pada perintah $ more .bash_profile terdapat comment error karena pada home directory tidak terdapat file atau directory yang namanya bash_profile.

  1. $ cat .bash_logout

Analisa:

Perintah bash_logout berfungsi untuk house clearing jobs, artinya membersihkan semuanya misalnya menghapus temporary file atau job lainnya.

Percobaan 2 : Menggunakan Feature History Bash 

  1. Panah atas  ▲ .

Analisa:

Panah atas adalah perintah untuk mengetahui history perintah yang digunakan sebelumnya.

  1. 1.      $ cd

$ ls –l /etc

$ ls –l

$ whoami

$ who

  1. $ history

Analisa:

Ketikkan perintah yang ada pada no 2 untuk di ingat ole bash shell dan klik Enter disetiap perintahnya. Kemudian ketik history Enter maka akan terlihat semua perintah yang pernah dimasukkan sebelumnya.

  1. $ !<Nomor Perintah>   Contoh : !780

Analisa:

Perintah $ !780 adalah perintah untuk mengetahui history perintah berdasarkan berdasarkan nomor history perintah. Tetapi pada saat diketikkan $ !780 terdapat comment error karena history perintah belum sampai nomor 780. Kita ganti dengan urutan 125 maka akan keluar perintah pada historynya.

  1. 1.      $ !?etc?


Analisa:

Perintah di atas adalah  perintah yang menunjukkan history dari perintah yang berkaitan dengan etc dan telah dilakukan sebelumnya. Jadi perintah $ !?etc? akan menjalankan perintah ls –l /etc yang telah dilakukan sebelumnya. Jika string yang dicari tidak ditemukan maka akan ada  pesan error.

  1. $ history

Analisa:

Untuk membuktikan bahwa perintah sebelumnya yang berkaitan dengan etc adlah ls –l /etc.

  1. 1.      $ !who

$ !whoa

Analisa:

Jika diketikkan who maka akan dikerjakan perintah who tetapi, bila diketikkan whoa dan Enter maka perintah yang dijalankan adalah perintah whoami. Karena berdasarkan history sebelumnya maka sistem dapat menebak string yang akan diketikkan.

  1. 1.      $ cat /bin/bash | strings | grep shell | less

$ ^shell^alias^

Analisa:

Ketika ingin megetikkan suatu perintah yang panjang sangat malas sekali dan ingin melihat perintah history tidak tahu letaknya maka anda diberi kemudahan dengan hanya mengetikkan alias.

 

Percobaan 3 : Mengubah Feature History Bash

  1. $ cd

$ tail .bash_history

$ history

Analisa:

History akan tetap menyimpan semua perintah meskipun kita telah log out atau keluar dari terminal. Dengan percobaan di atas kita ketikkan perintah tail .bash_history( yaitu perintah yang bukan up to date dalam history) kemudian keluar atau log out dari terminal dan masuk lagi kedalam terminal lagi dan user yang sama. Ketika kita ketik history maka perintah terbawah adlah perintah tail .bash history.

  1. $ echo ‘Ini perintah saya’

$ history

$ tail .bash_history

Analisa:

Ketikkan perintah echo ‘ini perintah saya’, kemudian logout.setelah itu login kembali dengan user yang sama dan ketikkan tail .bash history maka command yang terkahir adlah perintah echo ‘ini perintah saya’. Sama halnya keterangan pada nomor sebelumnya dengan tambahan bahwa setiap perintah history akan disimpan pada sistem.

  1. $ set|grep HISTSIZE

 Analisa:

Hitsize adlah perintah yang berfungsi untuk mengetahui jangkauan yang dapat disimpan oleh command history. Jangkauan pada history dapat dirubah dengan cara ketikkan

$ echo ‘HISTSIZE=5000’ >> .bashrc

Log out dan login kembali dengan user yang sama dan cek perubahannya dengan ketikkan:

$ set|grep HISTSIZE

History akan menyimpan semua perintah yang pernah diketikkan meskipun perintah tersebut sama. Hal ini akan membebani history dan supaya perintah yang sama tidak tersimpan pada history maka ketikkan perintah di bawah ini:

$ echo ‘HISTCONTROL=ignoredups’ >> .bashrc

Log out dan login kembali dengan user yang sama cek dengan perintah history.

1.       $ PS1=’\t:’

Analisa:

Untuk menampilkan format 12 jam dengan indicator am dan pm menggunakan perintah diatas.

  1. $ PS1=’33[0;34m\w\$ 33[0;37m’

$ PS1=’33[0;31m\w\$ 33[0;37m’

$ PS1=’33[0;31m\w33[0;32m\$ 33[0;37m’

$ PS1=’33[1;34m\w33[1;32m\$ 33[0;37m’

$ PS1=’33[7;34m\w33[7;32m\$ 33[0;37m’

Analisa:

Perintah di atas adalah perintah untuk memberi warna pada command prompt. Karena linux terminal saya tidak bisa memperlihatkan perubahan warna, jadi silahkan di coba saja. Berikut keterangan kode warnanya:

30=hitam, 31=merah, 32=hijau, 34=biru, 35=ungu, 36=cyan, 37=putih.

Jika ingin menampilkan dalam beberapa warna ketikkan dibawa ini:

$ PS1=’33[0;31m\w33[0;32m\$ 33[0;37m’

Untuk menampilkan supaya berkedip-kedip ketikkan command dibawah ini:

$ PS1=’33[5;34m\w33[5;32m\$ 33[0;37m’

  1. $ echo ’Anita:13002’>>list

$ echo ’Samantha:13003’>>list

$ echo ’Patrik:13004’>>list

$ echo ’Sponse Bob:13005’>>list

$ echo ’Lisa:13006’>>list

$ echo ’Squid:13007’>>list

Ketikkan perintah di atas untuk mencoba membuat script sederhana yang data stringnya akan diurutkan. Kemudian ketik:

$ echo ’sort ~/list > ~/r13; mv ~/r13 ~/list’ > ~/sorter

$ chmod +x sorter

$ PROMPT_COMMAND=~/sorter

  1. $ echo ’Anita:13002’>>list

$ echo ’Samantha:13003’>>list

$ echo ’Patrik:13004’>>list

$ echo ’Sponse Bob:13005’>>list

$ echo ’Lisa:13006’>>list

$ echo ’Squid:13007’>>list

Kemudian lihat isinya:

$ cat list

Analisa:

Memasukkan nama dan nomor berbeda secara bergantian yang dimasukkan kedalam file list dapat dilakukan dengan penambahan double quote pada string dan tanda >> (tujuan file). Apabila Anda tidak menginginkan Shell Bash menampilkan file terurutsepanjang waktu, Anda tidak perlu menambahkan variable PROMPT_COMMAND=~/sorter pada file konfigurasi seperti .bashrc.  Bila Anda ingin BASH berhenti menjalankan program sorter, maka ketikkan variable PROMPT_COMMAND= dan tekan Enter atau log out dan login kembali.

Kesimpulan:

  • Shell adalah suatu program yang di buat oleh user yang biasanya digunakan untuk memasukkan beberapa perintah secra bersamaan yang menunggu di compile dan akan dijalankan sesuai syntag yang ada dalam shell bash.
  • .bash_logout dan bash_profile merupakan contoh dari suatu file bash.
  • History adalah suatu catata perintah yang pernah dimasukkan ke dalam command terminal. History memudahkan pemakai untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter.

Ø  Bash-script adalah file yang berisi koleksi program yang dapat dieksekusi.  Untuk eksekusi bash script gunakan . sebelum file bash-script yang berarti eksekusi shell dan tanda ./ berarti file bash-script berada pada direktori actual. 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s