Selasa, 18 Oktober 2022

Bekerja dengan Bash Shell

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

 

2.      PROFILE

Pada saat login, program akan menjalankan beberapa program yaitu:

·         /etc/profile

Berisi shell script yang berlaku untuk seluruh pengguna Linux.

·         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.

·         .bashrc

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

·         .bash_logout

Pada saat logout, maka bash akan mencari file .bash_logout. Bila ada, file tersebut akan dieksekusi sebelum 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

 

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 kontrol 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”.

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.



TUGAS PENDAHULUAN:

Jawablah pertanyaan-pertanyaan di bawah ini:

1.      Apa yang dimaksud dengan shell dan sebutkan shell yang ada di sistem operasi Linux.

Jawab:

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. Shell yang ada di sistem operasi Linux sebagai berikut:

·         /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.


2.      Apa yang dimaksud dengan profile pada Bash Shell.
Jawab: 

Profile pada bash shell merupakan profil untuk setiap pemakai pada home directory.


3.      Apa yang Anda ketahui mengenai file .bashrc.

Jawab:

File .bashrc adalah file yang akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui instruksi 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!

Jawab:

History adalah catatan dari semua instruksi yang sejauh ini telah dilakukan. History memudahkan pemakai untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter.

Cara-cara untuk mengetahui history perintah-perintah yang pernah digunakan 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

 

5.      Cobalah menggunakan editor vi untuk mengetik dan pahami perintah-perintah yang ada seperti yang terdapat pada dasar teori (untuk dilakukan, tidak perlu dijawab sebagai tugas pendahuluan). Perintah-perintah yang penting: inser huruf (kalimat), delete (per huruf, per kata dan per baris), simpan file dan keluar dari editor vi.

 

PERCOBAAN:
1. Login sebagai user.
2. Bukalah Console Terminal dan lakukan percobaan-percobaan di bawah ini kemudian analisa hasil percobaan.
3. Selesaikan soal-soal latihan.

Percobaan 1: Profile

1.      File .bash_profile dijalankan pada home direktori pemakai yang login. File .bash_profile adalah hidden file, sehingga untuk melihatnya gunakan opsi a pada instruksi ls.

$ ls –a

$ more .bash_profile

Hasil:


Analisa:

Perintah ls -a digunakan untuk menampilkan seluruh isi directory home termasuk file yang hidden/tersembunyi. Pada perintah $ more .bash_profile, tidak terdapat file dan direktorinya. Hal ini terjadi untuk beberapa versi ubuntu. Namun pada umumnya file ini berisi konfigurasi bash shell.

 

2.      File .bash_logout akan diekseksi 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

Hasil:


Analisa:

Perintah di atas digunakan untuk melihat isi .bash_logout, yaitu perintah yang akan tereksekusi saat kita logout.

Percobaan 2: Menggunakan Feature History Bash

1.      Bash shell menyimpan “history” perintah yang digunakan sebelumnya. Anda dapat mengaksis history dalam beberapa cara. Cara paling mudah adalah menggunakan Panah Atas. Maka perintah sebelumnya akan ditampilkan.

Hasil:



Analisa:

Ketika menekan panah atas, secara otomatis menampilkan perintah yang sebelumnya pernah ditulis.


2.      Berikutnya, berikan Bash shell beberapa perintah untuk diingat. Masukkan perintah berikut dan tekan Enter pada setiap baris.

$ cd

$ ls –l /etc

$ ls –l

$ whoami

$ who

Hasil:





Analisa:

Perintah di atas digunakan untuk diingat dan akan dipanggil pada nomor 3 untuk mengecek history. Perintah cd digunakan untuk masuk suatu directory. Perintah ls -l /etc digunakan untuk me-list isi direktori etc. Perintah ls -l digunakan untuk me -list atau melihat daftar direktori home. Perintah who dan whoami digunakan untuk menampikan user dan user yang sedang aktif.


3.   Untuk memeriksa apakah perintah ini ditambahkan pada history, dapat menggunakan perintah history untuk melihat semua perintah yang pernah dimasukkan.

$ history

Hasil:



Analisa:

Perintah history digunakan untuk menampilkan history input yang pernah dimasukkan ke terminal berupa input keyboard. Perintah pada nomor 2 yang telah diinputkan juga masuk ke dalam history.

 

4.      Anda dapat memilih perintah sebelumnya dengan menggunakan Panah Atas, tetapi hal ini tidak efisien untuk perintah yang semakin bertambah banyak. Cara yang mudah menggunkaan nomor pada perintah history atau mencarinya. Untuk memilih dan mengeksekusi perintah dengan nomor, masukkan kunci! diikuti nomor perintah.

$ ! <Nomor Perintah>                   Contoh: !780

Hasil:


Analisa:

Perintah di atas digunakan untuk memasukkan input yang sama sesuai dengan nomor yang ditunjuk. Nomor tersebut dapat dilihat ketika perintah history dijalankan. Ketika memasukkan perintah nomor 647, yang dimana merupakan perintah who. Maka selanjutnya perintah itupun berjalan.


5.      Anda dapat mencari perintah dengan menyertakan perintah yang diinginkan. Misalnya !?etc?! akan menjalankan perintah ls –l /etc yang sebelumnya digunakan.

$ !?etc?

Hasil:


Analisa:

Perintah !?etc? adalah perintah yang digunakan untuk mencari perintah yang ada hubungannya dengan etc dan yang pernah digunakan. Sedangkan kita pernah menggunakan perintah ls -l /etc maka perintah itupun berjalan karena kita memanggilnya dengan kata kunci etc.


6.      Kemudian gunakan perintah history, maka akan terlihat perintah ls –l /etc yang kedua dan bukan !?etc?

$ history

Hasil:



Analisa:

Pada gambar di atas, dapat dilihat bahwa walaupun kita menginputkan perintah !?etc? tetapi yang berada dalam history adalah ls -l /etc karena yang berjalan adalah program tersebut. Dengan kata lain !?etc? bukanlah perintah lain tetapi merupakan pancingan untuk memanggil ls -l /etc.

 

7.      Apabila string tidak ditemukan pada perintah history maka akan terdapat pesan error.

$ !?wombat99?

Hasil:


Analisa:

Ketika perintah !?wombat99? dijalankan, terdapat pesan error. Hal ini terjadi karena kita memasukkan kata yang belum pernah dimasukkan ke terminal sebelumnya.

 

8.      Jika diketikkan !who maka yang dijalankan adalah perintah who. Tetapi bila Anda ketikkan !whoa maka yang dijalankan adalah perintah whoami.

$ !who

$ !whoa

Hasil:


Analisa:

Perintah !who sama saja dengan perintah who, tanda ! hanya untuk jika terjadi salah mengetikan perintah.  Misal, kita ingin memasukan perintah whoami, tetapi ternyata kita salah ketik menjadi whoa. Tapi karena kita sudah menggunakan tanda ! maka yang keluar tetaplah output dari perintah whoami.

 

9.      Anda bisa menggantikant string pada perintah history, terutama pada perintah yang panjang. Misalnya ketik cat /bin/bash | strings | grep shell | less dan tekan Enter. Maka akan menampilkan semua string pada file /bin/bash yang berisi kata “shell”. Untuk keluar tekan q. Jika ingin menampilkan kata “alias”, maka Anda tidak perlu mengetik perintah yang panjang lagi, tetapi cukup ketik ^shell^alias^ dan tekan Enter maka akan menggantikan kata “shell” dengan “alias”.

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

$ ^shell^alias^

Hasil:





Analisa:

Perintah cat /bin/bash | strings | grep shell | less dimaksudkan untuk mencari kata shell dengan cara membaca /bin/bash. Sedangkan perintah ^shell^alias^ digunakan untuk mengganti kata shell pada perintah sebelumnya dan diganti dengan kata alias. Perintah tersebut sama saja dengan perintah cat /bin/bash | strings | grep shell | less, tetapi untuk menyingkat hal tersebut cukup menggunakan perintah ^shell^alias^.

 

Percobaan 3: Mengubah Feature History Bash

1.      Bash shell akan menyimpan perintah history meskipun telah log out dan log in kembali. File .bash_history menyimpan file history yang terdapat pada home directory.

$ cd

Hasil:


Analisa:

Perintah cd digunakan untuk masuk ke dalam direktori.

 

2.      Lihat beberapa baris pada file .bash_history dengan ketik tail .bash_history dan tekan Enter. File ini bukan file yang up to date.

$ tail .bash_history

Hasil:


Analisa:

Pada perintah di atas, yang ditampilkan adalah perintah terakhir yang diinputkan sebelum komputer kita restart atau matikan. Perintah history sampai cat /bin/bash | strings | grep shell | less adalah perintah yang diinputkan sebelum saya mematikan komputer.

3.      Ketik history dan tekan Enter. Maka akan terlihat baris terakhir adalah perintah history dan baris sebelumnya adalah tail .bash_history. Perintah history bersifat up to date, karena disimpan pada memory sistem.

$ history

Hasil:


Analisa:

Perbedaaan perintah history dengan tail .bash_history adalah jika perintah history menampilkan perintah yang kita inputkan terakhir/paling baru. Sedangkan perintah tail .bash_history menampilkan perintah yang terakhir kita masukkan sebelum komputer kita matikan/restart (bukan yang terbaru/up to date).


4.      Ketik perintah berikut

$ echo ‘Ini perintah saya’

Hasil:


Analisa:

Perintah echo digunakan untuk mencetak teks “Ini perintah saya”.

 

5.      Log out dan log in kembali sebagai user yang sama. Ketik history dan tekan Enter. Maka perintah echo ’Ini perintah saya’ akan berada pada baris terakhir. Lihat file .bash_history, maka perintah tsb akan terdapat pada file .bash_history.

$ history

$ tail .bash_history

Hasil:





Analisa:

Perintah echo “Ini perintah saya” masuk ke dalam history yang terakhir. Namun perintah echo “Ini perintah saya” tidak masuk ketika perintah tail .bash_history dijalankan. Hal ini terjadi karena saya belum sempat untuk mematikan komputer saya sehingga perintah echo pada tail .bash_history tidak masuk.


6.      Ketik history|less untuk melihat perintah history terakhir pada screen. Tekan spacebar untuk melihat file lebih banyak. Untuk keluar tekan q

$ history|less

Hasil:


Analisa:

Perintah di atas sama saja dengan melihat perintah history terakhir pada screen.

 

7.      Untuk melihat berapa banyak perintah history yang ada pada file ketik berikut dan output yang keluar serupa di bawah ini

$ wc –l .bash_history

1000 .bash_history

Hasil:




Analisa:

Perintah wc -l digunakan untuk menampilkan jumlah history pada file.

 

8.      Output menunjukkan bahwa 1000 perintah history disimpan pada file history. Untuk melihat jangkauan (limit) perintah history digunakan variabel HISTSIZE. Untuk melihat jangkauan history ketik sebagai berikut

$ set|grep HISTSIZE

Hasil:


Analisa:

Perintah di atas digunakan untuk melihat jangkauan (limit) atau kuota perintah history yang dapat disimpan bash.

 

9.      Bila ingin memperbesar jangkauan file history, maka ubahlah variabel HISTSIZE pada skrip startup yang disebut .bashrc pada home directory.

$ echo ‘HISTSIZE=5000’ >> .bashrc

Hasil:



Analisa:

Maksud dari perintah di atas adalah untuk memperbesar limit penyimpanan perintah pada history dari 1000 menjadi 5000.


10.  Log out dan log in kembali sebagai user yang sama. Lihat perubahan variabel HISTSIZE. 

      $ set|grep HISTSIZE

Hasil:


Analisa:

Pada gambar di atas dapat dilihat bahwa kita telah berhasil mengubah histsize dari 1000 menjadi 5000.


11.  Ketikkan perintah history beberapa kali, maka perintah ini akan disimpan pada BASH history meskipun yang diketikkan perintahnya sama.

Hasil:


Analisa:

Perintah di atas, jika perintah history di ketik beberapa kali, maka perintah ini hanya disimpan pada bash sehingga hasilnya tetap sama walaupun perintah diketik beberapa kali.

 

12.  Anda dapat melakukan konfigurasi BASH agar tidak menambah perintah ke history jika perintah yang diketikkan sama dengan sebelumnya. Hal ini dilakukan dengan menambahkan variabel HISTCONTROL dan diberikan nilai ignoredups pada file .bashrc

$ echo ‘HISTCONTROL=ignoredups’ >> .bashrc

Hasil:



Analisa:

Saya telah mengetikkan history banyak sekali, dan setelah itu kita menginputkan perintah tersebut dengan maksud agar perintah history yang saya masukkanhanya disimpan dalam bash.

 

13.  Log out dan log in kembali sebagai user yang sama. Ketikkan history beberapa kali dan perhatikan berapa kali history muncul.

Hasil:

Analisa:

Dapat dilihat bahwa perintah history yang saya masukkan hanya tersimpan satu yaitu pada nomor 676 padahal saya menginputkan perintah history berkali kali.


 

Percobaan 4: Mengubah Prompt Shell

1.      Prompt Bash shell dikonfigurasi dengan men-setting nilai variabel PS1. Selain menampilkan string statik sebagai prompt, Anda dapat menampilkan menjadi dinamis. Contohnya, apabila ingin 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

$ PS1=’\t:’


Hasil:

Analisa:

Perintah di atas digunakan untuk mengganti prompt dari jasri@jasri-virtualBox: menjadi waktu.


2.      Untuk menampilkan format 12 jam dengan indikator am dan pm ketik sebagai berikut:

$ PS1=’\t:’

Hasil:

Analisa:

Ternyata outputnya sama seperti sebelumnya, yaitu tetap dalam format 24 jam.

 

3.      Kebanyakan orang menginginkan prompt Bash menampilkan current working directory. Direktory dapat ditampilkan dalam bentuk keseluruhan path atau hanya nama direktory. Karakter \w menampilkan hanya nama direktory. Jika current directory adalah home directory, maka tampil prompt

~:

$ PS1=’\w:’

Hasil:


Analisa:

Perintah tersebut digunakan untuk menampilkan prompt bash seperti pada gambar.

 

4.      Ketik cd /usr/sbin untuk melihat prompt /usr/sbin:

$ cd /usr/sbin

Hasil:


Analisa:

Perintah cd /usr/sbin digunakan untuk melihat prompt /usr/bin:

 

5.      Ketik PS1=’\W:’ untuk melihat prompt sbin:

$ PS1=’\W:’

Hasil:




Analisa:

Perintah di atas digunakan untuk melihat prompt sbin.

 

6.      Ada beberapa prompt BASH lain yang dapat diubah, yaitu PS2, PS3 dan PS4. Prompt PS2 digunakan sebagai prompt sekunder. Untuk melihat bagaimana penggunaannya, ketik echo ’Hello (tanpa diakhiri penutup quote) dan tekan Enter. Simbol lebih besar dari (>) akan muncul. Hal ini memberitahukan bahwa BASH menunggu Anda menyelesaikan perintah. Ketik penutup quote (‘) dan tekan Enter. Perintah ini akan menyelesaikan prompt PS2, kata ”Hello, ” muncul diikuti dengan prompt PS1 pada baris baru.

$ echo ’Hello

>’

Hasil:

Analisa:

Simbol lebih besar dari (>) muncul. Hal ini memberitahukan bahwa BASH menunggu Anda menyelesaikan perintah. Lambang > menunjukan adanya instruksi yang belum selesai dari instruksi yg saya masukan yaitu echo.

 

7.      Anda dapat mengubah prompt PS2 seperti mengubah prompt PS1. Ketik perintah berikut: $ PS2=’Selesai memasukkan perintah Anda:’

Hasil:


Analisa:

Ketik penutup quote (‘) dan tekan Enter. Perintah ini akan menyelesaikan prompt PS2, kata ”Hello”, muncul diikuti dengan prompt PS1 pada baris baru.

 

8.      Kemudian ketik echo ’Hello (tanpa diakhiri penutup quote) dan tekan Enter. Pada baris berikutnya akan muncul Selesai memasukkan perintah Anda:. Kemudian ketikkan penutup quote (’) dan tekan Enter. Jika perintah selesai, maka kata Hello akan muncul diikuti prompt PS1 pada baris baru.

$ echo ’Hello

Selesai memasukkan perintah Anda:’

Hasil:


Analisa:

Perintah ini digunakan untuk menampilkan prompt PS1.

 

9.      Prompt BASH dapat ditampilkan berwarna dengan melakukan setting colorsetting string. Sebagai contoh, prompt BASH di-set dengan \w\$, akan menampilkan current working directory yang diikuti $ (atau # jika anda login sebagai root). Untuk setting warna menjadi biru ketikkan berikut:

$ PS1=’\033[0;34m\w\$ \033[0;37m’

Hasil:

Analisa:

Perintah di atas digunakan untuk mengganti warna prompt bash menjadi warna biru. Keterangan untuk mengubah warna sebagai berikut:

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

 

10.  Untuk mendapatkan prompt warna merah ketikkan berikut:

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

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

Hasil:


Analisa:

Perintah diatas dimaksudkan untuk mengganti warna prompt bash menjadi warna merah. Keterangan untuk mengubah warna sebagai berikut:

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

 

11.  Bila menginginkan beberapa warna, ketikkan perintah berikut:

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

Hasil:


Analisa:

Perintah di atas digunakan untuk mengganti warna prompt bash menjadi beberapa warna. Keterangan untuk mengubah warna sebagai berikut:

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


12.  Anda bisa menampilkan atribut visual seperti lebih terang, berkedip dan warna kebalikannya. Untuk menampilkan prompt yang lebih terang, atribut control diganti 1, seperti perintah berikut:

$ PS1=’\033[1;34m\w\033[1;32m\$ \033[0;37m’

Hasil:


Analisa:

Perintah di atas digunakan untuk mengubah warna pada prompt bash. Atribut kontrol 1 dimaksudkan untuk membuat warna menjadi lebih terang.


13.  Untuk menampilkan prompt dengan warna berkebalikan, atribut control diganti 7, seperti perintah berikut:

$ PS1=’\033[7;34m\w\033[7;32m\$ \033[0;37m’

Hasil:


Analisa:

Atribut control angka 7 digunakan untuk membuat warna kebalikannya.

 

14.  Untuk menampilkan prompt berkedip, atribut control diganti 5, seperti perintah berikut:

$ PS1=’\033[5;34m\w\033[5;32m\$ \033[0;37m’

Hasil:


Analisa:

Atribut control angka 5 digunakan agar prompt bashnya berkedip.

 


Percobaan 5: Menambahkan otomatisasi ke Prompt Shell

1.      Pastikan Anda berada di home directory

$ cd ~

Hasil:


Analisa:

Perintah cd digunakan untuk masuk ke dalam direktori home.

 


2.      Buatlah skrip sederhana untuk mengurut daftar file. Anda dapat menggunakan teks editor, tetapi karena hanya satu baris, gunakan perintah echo untuk membuat file.

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

Hasil:


Analisa:

Perintah diatas merupakan perintah menambahkan otomatosasi ke Prompt Shell. Pastikan sedang berada di home direktori, kemudian membuat skrip sederhana untuk mengurut daftar file. Karena hanya satu baris, gunakan perintah echo untuk membuat file. Perintah echo ‘sort ~/list > ~/r13; mv ~/r13 ~/list’ > ~/sorter untuk membuat deteran file terurut.

 


3.      Buatlah file skrip diatas menjadi file executable

$ chmod +x sorter

Hasil:


Analisa:

Perintah tersebut digunakan untuk membua file skrip menjadi file executable.


4.      Jalankan program sorter diatas setiap shell Bash menampilkan prompt PS1. Untuk melakukannya, buatlah variable PROMPT_COMMAND dimana nilainya adalah nama dari program sorter.

$ PROMPT_COMMAND=~/sorter

Hasil:


Analisa:

Untuk menjalankan program sorter diatas setiap shell Bash menampilkan prompt PS1.

 

5.      Ketikkan echo ’John Smith:13001’>>list dan tekan Enter. Jika file list tidak ada, akan dibuat secara otomatis, tetapi jika sudah ada, string ’John Smith:13001’ akan ditambahkan. $ echo ’John Smith:13001’>>list

Hasil:


Analisa:

Percobaan ini dimaksudkan untuk memasukkan John Smith:13001 kedalam file list.

 

6.      Ketik cat list dan tekan Enter. Maka Anda akan melihat isi file list. Pada saat ini, file mungkin mempunyai hanya satu baris sehingga tidak dapat dilihat apakah file sudah terurut.

$ cat list

Hasil:


Analisa:

Perintah cat list digunakan untuk membaca file list atau melihat isi file list yang telah dibuat.


7.      Masukkan bebe rapa perintah serupa dengan point 5 tetapi dengan nama dan nomor yang berbeda. Kemudian ketik cat list dan tekan Enter.

$ echo ’Anita:13002’>>list

$ echo ’Samantha:13003’>>list

$ echo ’Patrik:13004’>>list

$ echo ’Sponge Bob:13005’>>list

$ echo ’Lisa:13006’>>list

$ echo ’Squid:13007’>>list 

Hasil:


Analisa:

Perintah diatas dimaksudkan kita memasukkan nama-nama tersebut kedalam file list. Perintah cat digunakan untuk menampilkan isi file list secara urut sesuai nama abjad.

 


8.      Apabila Anda tidak menginginkan Shell Bash menampilkan file terurut sepanjang 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.

$ PROMPT_COMMAND=

Hasil:



Analisa:

Perintah di atas digunakan untuk menghentikan program sorter. 


Percobaan 6: Membuat Bash-script dan menjalankannya

1.      Membuat file p1.sh

$ vi p1.sh

echo “Program bash Script”

Hasil:



Analisa:

Pertama-tama membuat file p1.sh menggunakan editor. Untuk memasukkan suatu kata, terlebih dahulu tekan huruf i. Kemudian kita masukkan di dalamnya echo “Program bash Script”. Untuk keluar, bisa menekan esc, lalu tekan :, dan dilanjutkan dengan mengetik wq! dan Enter.




2.      Mengubah program menjadi executable

$ ls –l p1.sh

$ chmod +x p1.sh

$ ls –l p1.sh

Hasil:




Analisa:

Perintah $ ls –l p1.sh digunakan untuk menampilkan file p1.sh. Sedangkan perintah $ chmod +x p1.sh dimaksudkan agar file p1.sh dapat dijalankan di linux.


3.      Menjalankan script

$ bash p1.sh

$ sh p1.sh

$ . p1.sh

$ ./p1.sh

Hasil:


Analisa:

Untuk menjalankan file .sh dapat menggunakan perintah bash, sh, .. dan ./

 

4.      Konvensi dalam pembuatan script shell dinyatakan sebagai #!/bin/bash. Tambahkan pada file p1.sh konvensi tersebut

$ vi p1.sh

#!/bin/bash

echo “Program bash script”

Hasil:



Analisa:

Menambahkan #!/bin/bash pada file p1.sh dengan cara untuk memasukkan suatu kata, terlebih dahulu tekan huruf i. Kemudian kita masukkan di dalamnya “!/bin/bash”. Untuk keluar, bisa menekan esc, lalu tekan :, dan dilanjutkan dengan mengetik wq! dan Enter. Tanda #!/bin/bash  merupakan petunjuk bahwa script file tersebut adalah script bash. Tanda “#” digunakan untuk menambahkan komentar pada script.

 

5.      Buatlah file p2.sh

$ vi p2.sh

#!/bin/bash

echo “Program 2 bash script”

Hasil:


Analisa:

Untuk membuat file p2.sh sama seperti pada p1.sh. Menambahkan #!/bin/bash yang menandakan bahwa script file tersebut adalah file bash. Tanda “#” digunakan untuk menambahkan komentar pada script.

 

6.      Menjalankan beberapa program shell dalam satu baris instruksi yang dipisahkan dengan tanda;

$ cat p1.sh ; cat p2.sh

$ ./p1.sh ; ./p2.sh

Hasil:



7.      Menjalankan script sebagai proses background, sehingga prompt tidak



Percobaan 7: Job Control

1.      Proses foreground

$ ps x

Hasil:


Analisa:

Perintah ps x berfungsi untuk menampilkan proses pada foreground.

 

2.      Proses background

$ ps x > hasil &

Hasil:



Analisa:

Untuk menampilkan jumlah proses yang berjalan menggunakan perintah di atas.

 

3.      Setiap job mempunyai PID yang tunggal (unique). Untuk melihat jobs yang aktif

$ jobs

Hasil:



Analisa:

Perintah jobs digunakan untuk melihat jobs yang aktif.

 

4.      Buatlah file ploop.sh. File ini tidak akan pernah berhenti kecuali ditekan Ctrl-C

$ vi ploop.sh

#!/bin/bash

while [ true ]

do

sleep 10

echo “Hallo”

Done


Hasil:


Analisa:

Pertama-tama, membuat file ploop.sh. Kemudian menuliskan program di atas caranya dengan menekan i, lalu tulis programnya. Untuk keluar, menekan esc, lalu tekan :, dan disertai dengan menulis wq! dan enter untuk menyimpannya. Program tersebut bermaksud untuk setiap 10 detik maka terminal akan mencetak teks “Hallo”. Program dapat dihentikan dengan menekan Ctrl+C.



5.      Buatlah file ploop.sh menjadi executable. Jalankan program, akan ditampilkan kata Hallo setiap 10 detik. Untuk keluar program, tekan Ctrl-C (^C)

$ chmod +x ploop.sh

$ ./ploop.sh

Hasil:


Analisa:

Perintah chmod +x ploop.sh membuat program menjadi bisa dijalankan dengan linux di terminal. Ketika dijalankan, maka programnya akan menampilkan teks Hallo dan akan terus berjalan sampai dihentikan dengan cara menekan Ctrl+C. Namun, pada program saya, terdapat error karena perintah true tidak ditemukan.

 

Percobaan 8: Manipulasi stack untuk Direktori

1.      Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~

$ dirs

Hasil:


Analisa:

Perintah dirs digunakan untuk melihat stack directory dan menampilkan directory home.

 

2.      Membuat 3 buah direktori

$ mkdir marketing sales support

Hasil:


Analisa:

Perintah di atas digunakan untuk membuat direktori marketing, sales, dan support.

 

3.      Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home

~ $ dirs

Hasil:


Analisa:

Perintah dirs digunakan untuk melihat stack direktori dan ketika dieksekusi hasilnya menampilkan direktori home.

 

4.      Membuat 3 buah direktori


Percobaan 9: Alias


1.      Alias adalah mekanisme untuk memberi nama alias pada satu atau sekelompok instruksi. Untuk melihat alias yang sudah terdaftar pada system:

$ alias

Hasil:


analisa:

Perintah alias digunakan untuk menampilkan perintah alias yang sudah ada pada sistem atau bisa dibilang perintah alias default.

 

2.      Membuat beberapa alias

$ alias del=’rm –i’

$ alias h=’history’

Hasil:

 

Analisa:

Maksud perintah di atas adalah membuat alias yaitu mengganti perintah rm -i dengan alias del, serta mengganti perintah history dengan alias h.

 

3.      Gunakan instruksi hasil alias

$ ls

$ del hasil

$ h | more

Hasil:



Analisa:

Perintah ls digunakan untuk melihat daftar file/direktori, sehingga kita bisa melihat file yang kita hapus sudah terhapus atau belum. Perintah $ del hasil digunakan untuk menghapus direktori hasil. Lalu untuk melihat history dengan tampilan lebih banyak menggunakan h | more. Perintah tersebut bisa dieksekusi karena sebelumnya kita telah mengganti perintah history dengan alias.

 

4.      Untuk menghapus alias gunakan instruksi unalias

$ unalias del

$ del files (Terdapat Pesan Kesalahan, mengapa ?)

Hasil:



Analisa:

Perintah unalias del digunakan untuk menghapus alias dari kata del yang sebelumnya adalah rm -i. Sehingga selanjutnya perintah del menjadi kosong dan tidak dialiaskan. Oleh karena itu ketika perintah del files dijalankan, terdapat pesan error karena alias del sebelumnya sudah dihapus.


KESIMPULAN

Berdasarkan percobaan yang telah dilakukan, dapat diambil kesimpulan bahwa shell merupakan suatu program yang dibuat oleh user yang biasanya digunakan untuk memasukkan beberapa perintah secara bersamaan yang menunggu di compile dan akan dijalankan sesuai syntax yang ada dalam bash shell. Dalam penggunaannya, bash shell mempermudah user untuk melakukan pekerjaan, contohnya dengan
adanya perintah history. History memudahkan user untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter. Selain itu, ada pula bash script yang merupakan file yang berisi koleksi program yang dapat dieksekusi. Bash script juga dapat diedit menggunakan editor vi, nano, maupun vim. Dengan adanya editor, user bisa memanfaatkan proses pengeditan program pada satu layar penuh.




DAFTAR PUSTAKA
  •  Unknown. 2018. Bahasa Pemrograman Bash Script Linux. Retrieved from PusatHosting Wiki: https://www.pusathosting.com/kb/linux/bash. Diakses 12 Oktober 2022
  • Unknown. 2018. Cara Membuat dan Edit File Teks di Linux . Retrieved from Tutorial Linux: https://linux.tutorials.id/cara-membuat-dan-edit-file-teks-di- linux/. Diakses 12 Oktober 2022
  • Putra, F. A. 2018. Laporan Praktikum Sistem Operasi. Retrieved from Academia: https://www.academia.edu/38944538/LAPORAN_PRAKTIKUM_SISTEM_OP ERASI. Diakses 12 Oktober 2022
  • Unknown. 2020. Praktikum 5: Bekerja dengan Bash Shell. http://shergyptoo.blogspot.com/2020/10/praktikum-5-bekerja-dengan-bash-shell.html. Diakses 12 Oktober 2022

Share:

0 komentar:

Posting Komentar