Praktikum 5-B
Bekerja Dengan Bash Shell
POKOK BAHASAN:
- History pada Bash Shell- Membuat Bash Shell Script
TUJUAN BELAJAR:
Setelah mempelajari materi dalam
bab ini, mahasiswa diharapkan mampu:
- Memahami shell
pada sistem operasi Linux.
- Menggunakan
feature history pada Bash Shell.
- Mengubah feature
history pada Bash Shell.
- Mengubah prompt
shell.
- Melakukan
konfigurasi Bash Shell untuk menjalankan skrip secara otomatis.
- Membuat dan
mengeksekusi shell script sederhana melalui editor vi.
- Memahami job
control.
- Memahami stack.
- Menggunakan
alias.
DASAR TEORI:
1 SHELL
Shell adalah Command executive, artinya program yang menunggu instruksidari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusiperintah tersebut. Shell ditandai dengan prompt. Untuk pemakai menggunakan prompt$ dan untuk superuser menggunakan promp #.Beberapa macam shell :· /bin/shBourne shell, dirancang oleh Steve Bourne dari AT&T· /bin/cshDikembangkan oleh UNIX Berkeley yang dikenal dengan C -Shell· /bin/bashKompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell.Perbedaan mendasar antara Shell diatasi hampir tidak ada, kecuali pada fasilitaspemrograman dan editing.
2 PROFILE
Pada saat login, program akan menjalankan beberapa program yaitu :
1. /etc/profile
Berisi shell script yang berlaku untuk seluruh pengguna Linux.
2. Profil untuk
setiap pemakai
Pada home directory, login pertama kali akan memeriksa file .bash_profile . Bilatidak ada, maka file .bash_login akan dicari. Bila .bash_login tidak ada, makadicari file bernama .profile .
3. .bashrc
File ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melaluiinstruksi su.
4. .bash_logout
Pada saat logout, maka bash akan mencari file .bash_logout. Bila ada, file tersebutakan dieksekusi sebe lum logout
Isi dari /etc/profile:# System wide environment and startup programs# Functions and aliases go in /etc/bashrcPATH=”$PATH:/usr/X11R6/bin”PS1=”[\u@\h \W]\\$ “umask 022USER=’id –un’LOGNAME=$USERMAIL=”/var/spool/mail/$USER”HOSTNAME=’/bin/hostname’HISTSIZE=1000HISTFILESIZE=1000Export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAILPATH merupakan daftar nama direktori. Bila sebuah instruksi diberikan dariprompt shell, maka instruksi tersebut akan dicari pada daftar tersebut.PS1 adalah prompt dimana\u = Nama User\h = Nama Host\W = Nama working direktory3 HISTORYHistory diadaptasi dari C-Shell, yaitu catatan dari semua instruksi yang sejauhini telah dilakukan. Catatan ini dapat dilihat sebagai history, kemudian dapat dipilihkembali, diedit dan dieksekusi. History memudahkan pemakai untuk mengedit kembaliinstruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksimaupun 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 884 BASH-SCRIPTBash-script adalah file yang berisi koleksi program yang dapat dieksekusi.Untuk eksekusi bash script gunakan . sebelum file bash-script yang berarti eksekusishell dan tanda ./ berarti file bash-script berada pada direktori actual.5 JOB CONTROLJob adalah sebuah eksekusi program yang diberikan kepada kernel. Sebuah Jobdianggap selesai, bila eksekusi program tersebut berakhir. Eksekusi Job adalah samadengan eksekusi program, baik proses Background maupun proses Foreground.6 EDITOR viVi adalah full screen editor, artinya editor tersebut dapat memanfaatkan fasilitassatu layar penuh. Vi mempunyai 2 buah modus, yaitu :· Command lineEditor vi mengintepretasikan input sebagai instruksi untuk dieksekusi oleh editor, contoh seperti mencari teks, mengganti tekssecara otomatis dan lainnya.· EditingEditor vi mengintepretasikan input sebagai teks yang akan dimasukkan ke dalam buffer editor. Pada bagian bawah layar akantampil teks “INSERTING”.Pada awal vi dijalankan, maka program memasuki command mode. Denganmenekan 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 karakterK Pindah kursor ke atasL Pindah kursor ke bawahO Menyisipkan teks (satu barissetelah posisi kursor)I Menyisipkan teks (di sebelah kiriposisi kursor)A Menyisipkan teks (di sebelah kananposisi kursor)I(shift i)Menyisipkan teks (di posisi awalbaris)A(shift a)Menyisipkan teks (di posisi akhirbaris)Untuk keluar dari 5 modelkunci insert di samping inidan mengaktifkan kuncikuncilain, maka kita harusmenekan tombol Escterlebih dahulu.X Menghapus 1 huruf (di sebelah kanan posisi k ursor)Dw Manghapus 1 kata (di sebelah kanan posisi kursor)Dd Menghapus 1 baris (di sebelah kanan posisi kursor)Yy Mengkopi 1 baris2yy Mengkopi 2 barisP (Paste) Menampilkan baris kalimat yang sudah dikopi dengankunci yyCw Mengganti 1 kata yang telah ditulis di sebelah kanan posisi kursordengan kata lainCc Mengganti 1 baris kalimat yang telah ditulis di sebelah kananposisi kursor dengan kalimat lainctrl-b Mundur satu layarctrl- f Maju satu layarctrl-d Maju setengah layarB Menggerakkan kursor ke kiri satu kataW Manggerakkan kursor ke kanan satu kata^ Pergi ke awal baris$ Pergi ke akhir barisU Membatalkan perintah yang terakhir kaliU Membatalkan seluruh perubahan teks pada baris tempat kursorberada:! Keluar untuk sementara dari editor vi dan menjalankan perintahyang lain:wq Write dan quite, simpan berkas dan keluar:q! Keluar vi tanpa menyimpan
:se all Menampilkan semua pilihan set status:se nu Menampilkan nomor baris pada kiri layar/string Mencari string ke arah depan?string Mencari string ke arah belakangN Meneruskan pencarian untuk arah yang samaN Meneruskan pencarian untuk arah yang berbedaPercobaan 6 : Membuat Bash-script dan menjalankannya1. Membuat file p1.sh$ vi p1.shecho “Program bash Script”2. Mengubah program menjadi executable$ ls –l p1.sh$ chmod +x p1.sh$ ls –l p1.sh3. Menjalankan script$ bash p1.sh$ sh p1.sh$ . p1.sh$ ./p1.sh4. Konvensi dalam pembuatan script shell dinyatakan sebagai #!/bin/bash.Tambahkan pada file p1.sh konvensi tersebut$ vi p1.sh#!/bin/bashecho “Program bash script”5. Buatlah file p2.sh$ vi p2.sh#!/bin/bashecho “Program 2 bash script”6. Menjalankan beberapa program shell dalam satu baris instruksi yangdipisahkan dengan tanda ;$ cat p1.sh ; cat p2.sh$ ./p1.sh ; ./p2.sh5. Menjalankan script sebagai prosees background, sehingga prompt tidakPercobaan 7 : Job Control1. Proses foreground$ ps x2. Proses background$ ps x > hasil &3. Setiap job mempunyai PID yang tunggal (unique). Untuk melihat jobs yangaktif$ jobs4. Buatlah file ploop.sh. File ini tidak akan pernah berhenti kecuali ditekanCtrl-C$ vi ploop.sh#!/bin/bashwhile [ true ]dosleep 10echo “Hallo”done5. Buatlah file ploop.sh menjadi executable. Jalankan program, akanditampilkan kata Hallo setiap 10 detik. Untuk keluar program, tekan Ctrl-C(^C)$ chmod +x ploop.sh$ ./ploop.shPerc obaan 8 : Manipulasi stack untuk Direktori1. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanyaditampilkan direktori home ~$ dirs2. Membuat 3 buah direktori$ mkdir marketing sales support3. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanyaditampilkan direktori home ~$ dirs4. Membuat 3 buah direktoriPRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 53Percobaan 9 : AliasPRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 54LATIHAN:1. Eksekusi seluruh profile yang ada :a. Edit file profile /etc/profile dan tampilkan pesan seba gai berikut :echo ’Profile dari /etc/profile’b. Asumsi nama anda student, maka edit semua profile yang ada yaitu :/home/student/.bash_profile/home/. student/.bash_login/home/student/.profile/home/student/.bashrcc. Ganti nama /home/student dengan nama anda sendiri. Pada setiap filetersebut, cantumkan instruksi echo, misalnya pada /home/student/.bash_profile:echo “Profile dari .bash_profile”d. Lakukan hal yang sama untuk file lainnya, sesuaikan tampilan dengan namafile yang bersangkutan.2. Jalankan instruksi subtitute user, kemudian keluar dengan perintah exit sebagaiberikut :$ su student1. Alias adalah mekanisme untuk memberi nama alias pada satu atau sekelompokinstruksi. Untuk melihat alias yang sudah terdaftar pada system :$ alias2. Membuat beberapa alias$ alias del=’rm –i’$ alias h=’history’3. Gunakan instruksi hasil alias$ ls$ del hasil$ h | more4. Untuk menghapus alias gunakan instruksi unalias$ unalias del$ del files (Terdapat Pesan Kesalahan, mengapa ?)$ exitkemudian gunakan opsi – sebagai berikut :$ su – student$ exitJelaskan perbedaan kedua utilitas tersebut.3. Logouta. Edit file .bash_logout, tampilkan pesan dan tahan selama 5 detik, sebelumeksekusi logoutEcho “Terima kasih atas sesi yang diberikan”Sleep 5Clearb. Edit file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelumeksekusi logout4. Historya. Ganti nilai HISTSIZE dari 1000 menjadi 20$ HISTSIZE=20$ hb. Gunakan fasilitas history dengan mengedit instruksi baris ke 5 dari instruksiyang terakhir dilakukan.$ !-5c. Ulangi instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasipada history buffer$ !!d. Ulaingi instruksi pada history buffer nomor tertentu, misalnya nomor 150$ !150e. Ulangi instruksi dengan prefix “ls”$ !ls$ !?ls?Jelaskan perbedaan instruksi diatas5. Prompt String (PS)a. Edit file .bash_profile, ganti prompt PS1 dengan ‘>’. Instruksi exportdiperlukan dengan parameter nama variab le tersebut, agar perubahan variablePS1 dikenal oleh semua shellPS1=’> ‘export PS1Eksperimen hasil PS1 :$ PS1=“\! > “69 > PS1=”\d > “Mon Sep 23 > PS1=”\t > “10:10:20 > PS1=”Saya=\u > “Saya=stD02001 > PS1=”\w >”~ > PS1=\h >”b. Ubahlah warna shell prompt dengan warna biru dan berkedip.6. Bash scripta. Buat 3 buah script p1.sh, p2.sh, p3.sh dengan isi masing-masing :p1.sh#! /bin/bashecho “Program p1”ls –lp2.sh#! /bin/bashecho “Program p2”whop3.sh#! /bin/bashecho “Program p3”ps xb. Jalankan script tersebut sebagai berikut dan perhatikan hasilnya :$ ./p1.sh ; ./p3.sh ; ./p2.sh$ ./p1.sh &$ ./p1.sh $ ./p2.sh & ./p3.sh &$ ( ./p1.sh ; ./p3.sh ) &7. Jobsa. Buat shell- script yang melakukan loop dengan nama pwaktu.sh, setiap 10detik, kemudian menyimpan tanggal dan jam pada file hasil.#!/bin/bashwhile [ true ]dodate >> hasilsleep 10doneb. Jalankan sebagai background; kemudian jalankan satu program (utilitas find)di background sebagai berikut :$ jobs$ find / -print > files 2>/dev/null &$ jobsc. Jadikan program ke 1 sebagai foreground, tekan ^Z dan kembalikan programtersebut ke background$ fg %1$ bgd. Stop program background dengan utilitas kill$ ps x$ kill [Nomor PID]
LAPORAN RESMI:
1. Analisa hasil percobaan yang Anda lakukan.2. Kerjakan latihan diatas dan analisa hasil tampilannya.3. Berikan kesimpulan dari praktikum ini.
0 komentar:
Posting Komentar