PRAKTIKUM 5 : BEKERJA DENGAN BASH SHELL
POKOK BAHASAN :
- History pada Bash Shell
- Membuat Bash Shell Script
TUJUAN BELAJAR :
- 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 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 45
- /bin/csh : Dikembangkan oleh UNIX Berkeley yang dikenal dengan C -Shell
- /bin/bash : Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell.
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. Bila tidak ada, maka file.bash_login akan dicari. Bila.bash_login tidak ada, maka dicari file bernama.profile.
3. .bashrc
File ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui instruksi su.
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:
# Functions and aliases go in /etc/bashrc
PATH= $PATH:/usr/X11R6/bin
PS1= \W]\\$
umask 022
USER= id un
LOGNAME=$USER
MAIL= /var/spool/mail/$user
HOSTNAME= /bin/hostname
HISTSIZE=1000
HISTFILESIZE=1000
PATH
merupakan daftar nama direktori. Bila sebuah instruksi diberikan dari prompt shell, maka instruksi tersebut akan dicari pada daftar tersebut.
PS1
\u = Nama User
\h = Nama Host
\W = Nama working direktory
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
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.
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.
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.
TUGAS PENDAHULUAN :
1. Apa yang dimaksud dengan shell dan sebuatkan shell yang ada di system operasi Linux.
Shell adalah Command executive, artinya program yang menunggu intruksi dari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut
- /bin/bash : Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Kom-Shell.
- /bin/sh : Bourno shell, dirancang oleh Steve Bourne dari AT&T
- /bin/csh : Dikembangkan oleh UNIX Beerkeley yang dikenal dengan C –Shell
2. Apa yang dimaksud dengan profile pada Bash Shell.
- Profile pada bash shell merupakan profil untuk setiap pemakai pada home directory.
3. Apa yang Anda ketahui mengenai file.bashrc.
File .bashrc adalah file yang akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui intruksi su.
4. Apa yang dimaksud dengan history pada Bash Shell. Apa kegunaan perintah history, sebutkan cara-cara untuk mengetahui history perintah-perintah yang pernah digunakan oleh user!
History yaitu catatan dari semua intruksi yang sejauh ini telah dilakukan. History memudahkan pemakai untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter.
- ^P (Ctrl -P) melihat instruksi
- ^N (Ctrl -N) melihat instruksi berikutnya
- !! eksekusi kembali instruksi sebelumnya
- !! -3 3 instruksi sebelumnya akan diulang
- !!88 ulangi instruksi no 88
PERCOBAAN 1 : PROFILE
Analisa Percobaan 1 :
1. Gambar di atas merupakan cara untuk menampilkan direktori secara keseluruhan. Perintah ls –a menampilkan beberapa direktori. Disini saya tidak dapat menampilkan .bash_login karena tidak terdapat direktori tersebut dan saya menampilkan .bash_logout dan berikut adalah isinya.
2. Gambar di atas merupakan perintah untuk menampilkan .bash_logout. Perintah ini akan dieksekusi sesaat sebelum logout, berfungsi sebagai house clearing jobs, artinya membersihkan semuanya, misalnya menghapus temporary file atau job lainnya. Melihat file .bash_logout dengan instruksi $ cat .bash_logout.
PERCOBAAN 2 : MENGGUNAKAN FEATURE HISTORY BASH
2. Perintah $ cd berfungsi untuk memastikan sedang berada pada direktori home. Perintah $ ls –l /etc berfungsi untuk menampilkan output file atau direktori secara lengkap yaitu terdiri dari nama file, ukuran, tanggal dimodifikasi, pemilik, group dan mode atau atrinbutnya. $whoami dan $ who berfungsi untuk mengetahui siapa saja yang sedang aktif.
3. $history untuk melihat perintah apa saja yang pernah dieksekusi selama program terminal dijalankan
4. !<nomor job> dapat mengeksekusi perintah dari nomor job yang digunakan. Disini saya menggunakan nomor job 701 yang pada nomor tersebut dijalankan fungsi whoami
5. Dapat mencari perintah dengan meyertakan perintah yang diinginkan. Misalnya !?etc? akan menjalankan perintah ls –l /etc yang sebelumnya digunakan
6. Dengan di check di $history dapat dilihat bahwa !?etc? tidak masuk ke dalam history melainkan ls –l /etc
7. Ditemukan error karena tidak ditemukan perintah wombat99 pada history
8. Jika diketikkan !who maka yang
dijalankan adalah perintah who. Tetapi bila Anda ketikkan !whoa maka yang
dijalankan adalah perintah whoami
9. Bisa menggantikan string pada
perintah history, terutama pada perintah yang panjang. Misalnya ketik cat
/bin/bash | strings | greph shell | less dan tekan Enter. Maka akan menampilkan
semua string pada file /bin/bash yang berisi kata “shell”. Untuk keluar tekan
q. Dan menggantikan dengan alias menggunaka ^shell^alias^
PERCOBAAN 3 : MENGUBAH FEATURE HISTORY BASH
Analisa Percobaan 3 :
1. $cd berfungsi untuk memastikan sedang berada pada direktori home.
2. Menampilkan beberapa baris dari isi file .bash_history3. Menampilkan history yang pernah dilakukan
6. $history | less menampilkan histroy tidak sekaligus melainkan sedikit sedikit karena menggunkan |less. Disini yang ditampilkan hanya 1-27
9. Mengubah jangkauan ukuran history dengan nilai 5000
10. Dengan mengetikkan perintah yang sama secara terus menerus dalam waktu yang sama maka akan dihitung sebagai 1 nomor pada history
11.Dengan menambahkan variabel HISTCONTROL dan diberikan nilai ignoredups pada file .bashrc dengan mengetikkan perintah echo ‘HISTCONTROL=ignoredups’ >> .bashrc.
12. Dengan mengettik history pada layar terminal berkali kali setelah keluar dari layar terminal dan masuk lagi, perintah history tetap ada pada 1 nomor saja
PERCOBAAN 4 : MENGUBAH PROMPT SHELL
1. Untuk menunjukkan current directory atau current time. Ketik PS1=’\t:’ dan tekan Enter untuk menampilkan waktu sistem dalam format 24 jam sebagai prompt bash. Format dalam HH:MM:SS waktu pada OS Linux
2. Untuk menampilkan format 12 jam dengan indikator am dan pm ketik PS1=’\t:’
3. Karakter \w menampilkan hanya nama direktori. Jika current direktory adalah home directory, maka tampil prompt ~: dengan mengetikkan perintah $ PS1=’\w:’. Ini terbukti dengan ditambahkan perintah pwd yang menunjukka current directory ada di home.
4. Memindahkan dari dir. Home ke usr/sbin
5. Menunjukkan atau mengganti direktori ke sbin
UNTUK NO.9 - 14
Prompt BASH dapat ditampilkan berwarna dengan melakukan setting color setting string. Sebagai contoh, prompt BASH di seti dengan \w\$, akan menampikan current working directory yang diikuti $ (atau # jika anda login sebagai root). Disini kita dapat mengubah warna, teknis bashnya kedap-kedip membuat bash menjadi warna warni sesuai dengan angka yang kita tuliskan oada [x;warna m nya.
PERCOBAAN 5 : MENAMBAHKAN OTOMASI KE PROMPT SHELL
NO. 2-3
Membuat skrip menggunakan echo dan menjadikan skrip tersebut bersifat executable
4. Program tidak dapat menampilkan
program sort karena tidak ada direktori tersebut
NO. 5-6
Menambahkan kalimat tersebut di
dir list, dan untuk menampilkannya menggunakan cat list
8. Program sorter diatas setiap shell Bash menampilkan prompt PS1. Untuk melakukannya, buatlah variabel PROMPT_COMMAND dimana nilainya adalah nama dari program sorter
PERCOBAAN 7 : JOB CONTROL
Analisa Percobaan 7 :
PERCOBAAN 8 : MANIPULASI STACK UNTU DIREKTORI
Analisa Percobaan 8 :
UNTUK NOMOR 1 - 3
$dirs untuk memanipulasi stack untuk Direktori. Instruksi dirs
digunakan untuk melihat stack direktori, pada output hanya ditampilkan
direktori home ~, maka akan muncul output direktori yang diingat. $mkdir marketing sales support adalah
cara untuk membuat tiga direktori dengan satu perintah.
PERCOBAAN 9 : ALIAS
Analisa Percobaan 9 :
1. Mekanisme untuk memberi nama alias pada satu atau sekelompok instruksi. Untuk melihat alias yang sudah terdaftar pada sistem, maka akan muncul output yang memberi informasi perintah alias
LATIHAN :
1. Eksekusi seluruh profile yang ada:
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/.bashrc
Perintah vi digunakan untuk masuk ke teks editor untuk mengedit file konfigurasi sistem, membuat script shell, membuat program, dan sebagainya.
c. Ganti nama /home/student dengan nama anda sendiri. Pada setiap file tersebut, 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 nama file yang bersangkutan.
UNTUK POINT C dan D
Gambar tersebut mrupakan untuk point c dan d. untuk insert echo menggunakan i dan untuk kembali ke layar terminal menggunakan esc lalu shift+Q dan mengetikkan wq untuk save dan quit.
2. Jalankan instruksi subtitute user, kemudian keluar dengan perintah exit sebagai berikut:
- $ su student
- $ exit
- $ su – student
- $ exit
3. Logout
a. Edit file .bash_logout, tampilkan pesan dan tahan selama 5 detik, sebelum eksekusi logout
- echo “Terima kasih atas sesi yang diberikan”
- sleep 5
- clear
b. Edit file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelum eksekusi logout
Membuat program logout menggunakan vi editor. Perintah $ vi .bash_logout digunakan untuk membuat text editor membuat program. Kemudian insert echo “Terima kasih atas sesi yang diberikan” sleep 5 clear dengan menggunakan i, setelah selesai akhiri dan simpan dengan perintah :wq. Perintah $ chmod +x .bashk_logout berfungsi untuk merubah file menjadi excutable. Perintah $ ./.bash_logout untuk mengeksekusi file .bash_logout. Dan selanjutnya mengganti sleep selama 4 detik.
4. History
a. Ganti nilai HISTSIZE dari 1000 menjadi 20
- $ HISTSIZE=20
- $ h
UNTUK POINT B dan C
Perintah set | grep HISTSIZE untuk mengecek jumlah history sebelumnya kemudian ubah history tersebut menjadi 20 menggunakan perintah echo, >> dan file .bashrc. Perintah !-5 digunakan untuk menampilkan atau mengeksekusi kembali history pada 5 terakhir perintah di history.
c. Ulangi instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasi pada history buffer $ !!
d. Ulangi instruksi pada history buffer nomor tertentu, misalnya nomor !150 $ !150
UNTUK POINT C dan D
Perintah !! digunakan mengulangi instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasi pada history buffer. Perintah !150 digunakan untuk memanggil perintah dari history dengan nomor PID 150.
e. Ulangi instruksi dengan prefix “ls” $ !ls $ !?ls? Jelaskan perbedaan instruksi di atas
Perintah prefiks ls ini akan menghasilkan perintah yang sama yaitu perintah ls –l.
5. Prompt String (PS)
a. Edit file .bash_profile, ganti prompt PS1 dengan ‘>’. Instruksi export diperlukan dengan parameter nama variabel tersebut, agar perubahan variabel PS1 dikenal oleh semua shell
PS1=’>’Export PS1
Eksperimen hasil PS1:
- $ PS1=”\! >”
- 69 > PS1=”\d >”
- Mon Sep 23 > PS1=”\t >”
- 10:10:20 > PS1=”Saya=\u >”
- Saya=stD02001 > PS1=”\w >”
- ~ > PS1=\h >”
UNTUK POINT A dan B
Mengubah warna shell prompt dengan warna biru dan berkedip menggunakan PS1= '\033[5;34m\w\$ \033[5;34m$ \033[0;37m'
6. Bash script
a. Buat 3 buah script p1.sh, p2.sh, p3.sh dengan isi masing-masing:
- P1.sh
- #!/bin/bash
- echo “Program p1”
- ls –l
b. 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) &
Perintah ./p1.sh ; ./p3.sh ; ./p2.sh untuk menampilkan isi dari script tersebut, maka akan muncul output dari hasil eksekusi pada vi editor. Pada perintah ./p3.sh ; ./p2.sh izin di tolak(program tidak jalan), karena file tersebut belum di rubah menjadi excutable. Dengan menggunakan perintah chmod +x ./p3.sh ; ./p2.sh maka program tersebut bisa di jalankan. Perintah ./p1.sh &, berfungsi untuk menampilkan file script p1.sh dengan proses background. Perintah $ ./p1.sh $ ./p2.sh & ./p3.sh & berfungsi untuk menampilkan ketiga script secara bersamaan dengan proses background. Dan Perintah $ ( ./p1.sh ; ./p3.sh ) & berfungsi untuk menampilkan file script p1.sh dan p3.sh dengan proses background.
7. Jobs
- #!/bin/bash
- while [true]
- do
- date >> hasil
- sleep 10
- done
b. Jalankan sebagai background; kemudian jalankan satu program (utilitas find) di background sebagai berikut:
- $ jobs
- $ find / -print > files 2>/dev/null &
- $ jobs
Perintah jobs pertama akan menampilkan jobs yaitu dari program ./pwaktu.sh dengan status terhenti. Kemudian ditambahkan lagi satu program utilitas
- $ fg %1
- $ bg
KESIMPULAN :
- Mengakses file bash menggunakan sudo vi, bukan hanya vi.
- Untuk mengakses program sebelumnya dapat menggunakan $history.
- Program dapat dibpindahkan ke belakang layar dengan menggunakan & dan bg

















Comments
Post a Comment