Bekerja dengan Bash Shell 5A dan 5B

Muhammad Iqbal Tejasumirat                 File : Praktikum 5 Bekerja dengan Bash Shell
BM-5A
OS Linux

Pokok Bahasan :
1. History pada Bash Shell
2. Membuat Bash Shell Script

Tujuan Belajar :
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
1. Memahami shell pada sistem operasi Linux.
2. Menggunakan feature history pada Bash Shell.
3. Mengubah feature history pada Bash Shell.
4. Mengubah prompt shell.
5. Melakukan konfigurasi Bash Shell untuk menjalankan skrip secara otomatis.
6. Membuat dan mengeksekusi shell script sederhana melalui editor vi.
7. Memahami job control.
8. Memahami stack.
9. 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 .
-.bash.rc
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.   Kunci-kunci teks editor vi dapat dilihat pada tabel sebagai berikut :

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

Tugas Pendahuluan : 
Jawablah pertanyaan-pertanyaan di bawah ini :

1. Apa yang dimaksud dengan shell dan sebuatkan shell yang ada di system operasi Linux.
Jawaban :
Shell adalah Command executive, artinya program yang menunggu intruksi dari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut.
-/bin/sh
Bourno shell, dirancang oleh Steve Bourne dari AT&T
-/bin/csh
Dikembangkan oleh UNIX Beerkeley yang dikenal dengan C –Shell
-/bin/bash
Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Kom-Shell.

2. Apa yang dimaksud dengan profile pada Bash Shell.
Jawaban :
Profile pada bash shell merupakan profil untuk setiap pemakai pada home directory.

3. Apa yang Anda ketahui mengenai file .bashrc.
Jawaban :
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!
Jawaban :
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 :

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.

Pada percobaan tersebut ls –a berfungsi untuk menampilkan file dan direktori beserta hidden filenya. Lalu untuk more .profile menampilkan isi .bash_profile. Pada debian10 .bash_profile nama filenya berubah menjadi .profile.

2. File .bash_logout akan dieksekusi sesaat sebelum logout, berfungsi sebagai hose clearing jobs, artinya membersihkan semuanya , misalnya menghapus temporary file atau job lainnya . melihat file .bash logout dengan intruksi
$cat .bash logout.

.bash_logout berfungsi untuk house clearing jobs, misalnya menghapus temporary file dan job.

Percobaan 2 : Menggunakan Feature History Bash

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

Pada percobaan tersebut menggunakan panah atas untuk menampilkan history yang disimpan berupa perintah yang sebelumnya dijalankan.

2. Berikutnya, berikan Bash shell beberapa perintah untuk diingat. Masukan perintah berikut dan tekan Enter pada setiap baris.
$ cd
$ ls –l /etc
$ ls –l
$whoami
$who


Perintah yang dimasukan kedalam terimnal tersebut akan disimpan oleh bash shell yang nanti akan masuk kedalam history.

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

Perintah tersebut menampilkan perintah yang pernah di jalankan pada terminal.

4. Memilih dan mengeksekusi perintah pada history dengan. $ !<Nomor Perintah>   Contoh : !780

Perintah tersebut kita mengeksekusi perintah yang pernah dijalankan didalam history, dengan menampilkan perintahnya serta hasil tampilan perintah tersebut.

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

Perintah tersebut berfungsi untuk memanggil fungsi yang berhubungan dengan kata etc pada history. Karena perintah terakhir yang berkaitan dengan kata tersebut ls –l /etc maka perintah tersebut yang dijalankan kembali.

6. Kemudian gunakan perintah history, maka akan terlihat perintah ls –l /etc yang keduadan bukan !?etc?
Ketika pada percobaan sebelumnya kita menggunakan perintah !?etc? namun pada history yang tercatat adalah perintah ls –l /etc karena !?etc? hanya menjalankan perintah yg berkaitan dengan kata etc terakhir bukan sebagai perintah baru.

7. Apabila string tidak ditemukan pada perintha history maka akan terdapat pesan error.
$ !?wombat99?
Pada percobaan tersebut perintah wombat 99 tidak ditemukan karena belum pernah dijalankan pada terminal.

8. Jika diketikkan !who maka yang dijalankan adalah perintah who. Tetapi bila Andaketikkan !whoa maka yang dijalankan adalah perintah whoami.
$!who
$!whoa
Perintah ! pada sintaks berfungsi untuk atau kurang dari perintah seharusnya maka outputnya akan tetap menghasilkan perintah yang benarnya.

9. Anda bisa menggantikan 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 ber isi 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

Perintah kedua sama saja dengan perintah cat /bin/bash | string | alias | less .tapi untuk menyingkat hal tersebut cukup digunakan perintah ^shell^alias^ maksudnya mengganti kata shell dengan kata alias

Percobaan 3 : Mengubah Feature History Bash

1. Bash shell akan menyimpan perintah history meskipun telah log out dan log inkembali. File .bash_history menyimpan file history yang terdapat pada homedirectory.
$ cd

Perintah untuk masuk ke direktori home

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

Perintah Tersebut digunakan untuk melihat history sebelum laptop atau lebih tepatnya Sistem Operasi Linux dimatikan.

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

Jika pada perintah sebelumnya menggunakan tail .bash_history untuk mengetahui history sebelum Sistem Operasi dimatikan, history berfungsi untuk melihat history pada shell yang up to date.

4. Ketik perintah berikut
$ echo“Ini perintah saya”

Perintah tersebut digunakan untuk menampilkan “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

Pada perintah History kita akan ditampilkan history keseluruhan pada shell sedangkan pada tail .bash_history kita hanya ditampilkan history sebelum Sistem Operasi Linux di Log off jadi perintah yang ditampilkan pada terminal adalah perintah echo”ini perintah saya” dan beberapa perintah lain.

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

Melihat history dengan format less.

7. Untuk melihat berapa banyak perintah history yang ada pada file ketik berikut danoutput yang keluar serupa di bawah ini
$ wc – l .bash_history 1000 .bash_history

Perintah ini digunakan untuk melihat berapa banyak perintah history yang ada pada file

8. Output menunjukkan bahwa 1000 perintah history disimpan pada file history. Untukmelihat jangkauan (limit) perintah history digunakan variable HISTSIZE. Untukmelihat jangkauan history ketik sebagai berikut
$ set|grep HISTSIZE

Perintah tersebut digunakan untuk meilihat jangkauan perintah history yang dapat disimpan bash. 

9. Bila ingin memperbesar jangkauan file history, maka ubahlah variable HISTSIZE pada skrip startup yang disebut .bashrc pada home directory.
$ echo “HISTSIZE=5000” >> .bashrc

Perintah tersebut digunakan untuk memperbesar jangkauan pada file history.

10. Log out dan log in kembali sebagai user yang sama. Lihat perubahan variabelHISTSIZE.
$ set|grep HISTSIZE

Dari perintah sebelumnya dapat dilihat jika jangakuan fiile history telah diperbesar dari 1000 menjadi 5000.

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

Perintah history diketikan berulang kali namun tetap disimpan pada bash history yang sama.

12. Anda dapatmelakukan konfigurasi BASH agar tidak menambah perintah ke history jika perintahyang diketikkan sama dengan sebelumnya. Hal ini dilakukan dengan menambahkanvariabel HISTCONTROL dan diberikan nilai ignoredups pada file .bashrc
$ echo “HISTCONTROL”=ignoredups >> .bashrc

Menambahkan variabel HISTCONTROL dengan nilai ignoredups kedalam file .bashrc.

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

history akan tetap disimpan dalam satu file history

Percobaan 4 : Mengubah Prompt Shell

1. Prompt Bash shell dikonfigurasi dengan men-setting nilai variabel PS1. Selainmenampilkan string statik sebagai prompt, Anda dapat menampilkan menjadidinamis. 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:’

Perintah tersebut mengubah prompt iqbalteja@debian menjadi format waktu.

2. Kebanyakan orang menginginkan prompt Bash menampilkan current workingdirectory. Direktory dapat ditampilkan dalam bentuk keseluruhan path atau hanyanama direktory. Karakter \w menampilkan hanya nama direktory. Jika currentdirectory adalah home directory, maka tampil prompt ~:
$ PS1=‟\w:‟

Mengubah format prompt menjadi ~

3. Ketik cd /usr/sbin untuk melihat prompt /usr/sbin:
$ cd /usr/sbin

Melihat atau mengubah prompt menjadi /usr/sbin

4. Ketik PS1=’\W:’ untuk melihat prompt sbin:
$ PS1=‟\W:‟

Perintah tersebut digunakan untuk melihan prompt sbin:

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

Pada tampilan tersebut dapat dilihat > yang merupakan PS2.

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

Mengubah prompt PS2 menjadi kalimat diatas.

7. 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 Helloakan muncul diikuti prompt PS1 pada baris baru.
$ echo ‟Hello
Selesai memasukkan perintah Anda:‟

Setelah perintah sebelumnya dieksekusi PS2 akan berubah dari > menjadi Masukkan perintah anda

8. Prompt BASH dapat ditampilkan berwar na dengan melakukan setting colorsettingstring . 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‟

mengubah warna prompt menjadi berwarna biru pada current working directory.

9. Untuk mendapatkan prompt warna merah ketikkan berikut :
$ PS1=‟ \033[0;31m\w\$ \ 033[0;37m‟

Mengubah warna prompt menjadi berwarna merah.

10. Bila menginginkan beberapa warna, ketikkan perintah berikut :
$ PS1=‟\033[0;31m\w\033[0;32m\$ \033[0;37m‟

Perintah tersebut digunakan untuk membuat prompt menjadi beberapa warna.

11. Anda bisa menampilkan atribut visual seperti lebih terang, berkedip dan warnakebalikannya. Untuk menampilkan prompt yang lebih terang, atribut control diganti1, seperti perintah berikut :
$ PS1=‟\033[1;34m\w\033[1;32m\$ \033[0;37m‟

Perintah tersebut digunakan untuk mengubah warna prompt bash menjadi lebih terang.

12. Untuk menampilkan prompt dengan warna berkebalikan, atribut control diganti 7,seperti perintah berikut :
$ PS1=‟\033[7;34m\w\033[7;32m\$ \033[0;37m‟

Perintah tersebut membuat warna prompt menjadi berkebalikan.

13. Untuk menampilkan prompt berkedip, atribut control diganti 5, seperti perintah berikut :
$ PS1=‟\033[5;34m\w\033[5;32m\$ \033[0;37m‟

Perintah tersebut membuat prompt menjadi berkedip.


Percobaan 5 : Menambahkan Otomatisasi ke Prompt Shell

1. Pastikan Anda berada di home directory
$ cd ~

Perintah tersebut berfungsi untuk memastikan kita berada di home direktori

2. Buatlah skrip sederhana untuk mengurut daftar file. Anda dapat menggunakan tekseditor, tetapi karena hanya satu baris, gunakan perintah echo untuk membuat file.
$ echo ‟sort ~/list > ~/r13; mv ~/r13 ~/list‟ > ~/sorter

Perintah tersebut digunakan untuk membuat skrip mengurutkan daftar file.

3. Buatlah file skrip diatas menjadi file executable $ chmod +x sorter

Mengubah file skrip tadi menjadi file executable.

4. Jalankan program sorter diatas setiap shell Bash menampilkan prompt PS1. Untukmelakukannya, buatlah variable PROMPT_COMMAND dimana nilainya adalahnama dari program sorter.
$ PROMPT_COMMAND=~/sorter

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

Membuat string John Smitch: 13001 yang dimasukkan kedalam file list.

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

Melihat isi dari file bernama list.

7. Masukkan beberapa perintah serupa dengan point 5 tetapi dengan nama dan nomoryang berbeda. Kemudian ketik cat list dan tekan Enter.
$ echo ‟Arinda:13002‟>>list
$ echo‟Samawa:13003‟>>list
$ echo ‟Petruk:13004‟>>list
$ echo ‟Spidad:13005‟>>list
$ echo ‟Lisa:13006‟>>list
$ echo ‟Supri:13007‟>>list

Membuat beberapa string yang dimasukan kedalam file list.

8. Apabila Anda tidak menginginkan Shell Bash menampilkan file terurut sepanjangwaktu, 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 Enteratau log out dan login kembali.
$ PROMPT_COMMAND=

Perintah untuk menghentikan program sorter.


Percobaan 6 : Membuat Bash-script dan menjalankannya

1. Membuat file p1.sh
$ vi p1.sh
echo “Program bash Script”

Membuat file bernama p1.sh yang berisikan echo “Program bash Script”

2. Mengubah program menjadi executable
$ ls –l p1.sh
$ chmod +x p1.sh
$ ls –l p1.sh

Mengubah file p1.sh menjadi executable file

3. menjalankan script

Menjalankan script tersebut bisa dengan beberapa cara, yaitu dengan 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”

Menambahkan konvensi #!/bin/bash kedalam file p1.sh

5. Buatlah file p2.sh
$ vi p2.sh #!/bin/bash
echo “Program 2 bash script”

Membuat file baru dengan nama p2.sh

6. Menjalankan beberapa program shell dalam satu baris instruksi yang dipisahkandengan tanda ;
$ cat p1.sh ; cat p2.sh
$ ./p1.sh ; ./p2.sh

Menjalankan beberapa program shell sekaligus dalam satu baris yang dipisahkan dengan tanda “;”.


Percobaan 7 : Job Control

1. Proses foreground
$ ps x

Menampilkan proses pada foreground

2. Proses background
$ ps x > hasil &

Menampilkan proses yang berjalan kedalam background

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

Perintah tersebut 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

Membuat file bernama ploop.sh yang dengan editor vi, lalu didalam file tersebut berisikan perintah sleep 10 dan echo “hallo” dimana maksud dari perintah tersebut mencetak “hallo” setiap 10 detik.

5. Buatlah file ploop.sh menjadi executable. Jalankan program, akan ditampilkan kataHallo setiap 10 detik. Untuk keluar program, tekan Ctrl-C (^C)
$ chmod +x ploop.sh
$ ./ploop.sh

Perintah pertama kita mengubah file tersebut menjadi executable file, lalu kita jalankan dengan perintah ./ . Hasil dari program tersebut hallo akan di tampilkan setap 10 detik.


Percobaan 8 : Memanipulasi Stack untuk Direktori

1. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanyaditampilkan direktori home ~
$ dirs

Menampilkan Stack Direktori.

2. Membuat 3 buah direktori
$ mkdir marketing sales support

Direktori Marketing Sales dan Support dibuat dengan perintah mkdir.

3. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanyaditampilkan direktori home ~
$ dirs


Percobaan 9 : Alias

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

Perintah tersebut digunakan untuk melihat alias yang sudah terdaftar pada sistem.

2. Membuat beberapa alias
$ alias del=‟rm –i‟
$ alias h=‟history‟

Membuat beberapa alias, antara lain del untuk menghapus file dengan persetujuan user. Dan h untuk melihat history shell.

3. Gunakan instruksi hasil alias
$ ls
$ del hasil
$ h | more

Menjalankan perintah dengan alias, menghapus file bernama hasil dengan alias del, dan melihat history bash shell dengan h | more.

4. Untuk menghapus alias gunakan instruksi unalias
$ unalias del
$ del files (Terdapat Pesan Kesalahan, mengapa ?)

Menghapus alias del dengan perintah unalias. Ketika kita mencoba menjalankan perintah del tersebut menjadi error karena aliasnya telah dihapus.


Latihan : 

1. Eksekusi seluruh profile yang ada :
a. Edit file profile /etc/profile dan tampilkan pesan sebagai berikut :
echo ‟Profile dari /etc/profile‟

Mengedit isi dari file /etc/profile dengan perintah sudo nano,lalu ketika kita memasukkan perintah su - <user> perintah yang kita tambahkan kedalam file tadi ditampilkan.


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

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

-.bash_login
-.profile
-.bashrc

Fungsi dari file yang kita edit akan muncul saat bash menggunakan file tersebut.


2. Jalankan instruksi subtitute user, kemudian keluar dengan perintah exit sebagai berikut:
$su student
$exit

kemudian gunakan opsi – sebagai berikut:
$ su – student
$ exit

Pada keduanya perbedaan terlihat ketika pada perintah pertama, perintah exit menampiilkan exit. Sedangkan pada gambar kedua tampilan ditampilkan logout.


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

Menambahkan beberapa perintah kedalam file .bash_logout

b. Edit file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelum eksekusi logout

Pada program tersebut setelah .bash_logout aktif. Tampilan dari shell akan seperti pada gambar, lalu akan meng-clear shell.


4. History
a. Ganti nilai HISTSIZE dari 1000 menjadi 20
$ HISTSIZE=20

$ h

Memanipulasi history dari shell dengan mengatur HISTSIZE=20 dimana history yang ditampilkan adalah 20 perintah terakhir dari shell, dan memanggil perintah history dengan alias h.

b. Gunakan fasilitas history dengan mengedit instruksi baris ke 5 dari instruksi yang terakhir dilakukan.
$ !-5

Menjalankan perintah urutan kelima dari akhir pada history.

c. Ulangi instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasi pada history buffer.
$ !!

Menjalankan perintah terakhir pada history shell.

d. Ulaingi instruksi pada history buffer nomor tertentu, misalnya nomor 150
$ !150

Menjalankan perintah yang tersimpan pada history sesuai dengan nomor yang tercantum di history.

e. Ulangi instruksi dengan prefix “ls”
$ !ls

$ !?ls?

Perbedaan antara !ls dengan !?ls? adalah pada aturan regex, bisa apa saja, misal pada kasus diatas, !?ls? Bisa saja sama dengan also atau olsa asal mengandung kata ls,sedangkan !ls hanya akan mengeksekusi event dengan perintah ls


5. Prompt String (PS)
a. Edit file .bash_profile, ganti prompt PS1 dengan ‘>’. Instruksi export diperlukan dengan parameter nama variable tersebut, agar perubahan variable 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 >”

Mencoba mengubah prompt PS1 dengan beberapa format.

b. Ubahlah warna shell prompt dengan warna biru dan berkedip.

Mengubah shell prompt menjadi berwarna biru dan berkedip dengan perintah tersebut.


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

p2.sh
#! /bin/bash
echo “Program p2”
who

p3.sh
#! /bin/bash
echo “Program p3”
ps x

b. Jalankan script tersebut sebagai berikut dan perhatikan hasilnya:
$ ./p1.sh ; ./p3.sh ; ./p2.sh

Menjalankan bash script p1,p2,dan p3 dalam satu kali perintah yang dipisahkan tanda “;”.

$ ./p1.sh &

Menjalankan program bash script p1 dalam background.

$ ./p1.sh & ./p2.sh & ./p3.sh &

Menjalankan program bash script p1,p2, dan p3 dalam background.

$ ( ./p1.sh ; ./p3.sh ) &

Menjalankan program p1 dan p3 kedalam 1 background.


7. Jobs
a. Buat shell-script yang melakukan loop dengan nama pwaktu.sh, setiap 10 detik, kemudian menyimpan tanggal dan jam pada file hasil.
#!/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
setelah program pwaktu.sh di eksekusi ./pwaktu.sh &

Setelah menjalankan program bash script dengan background. Kita menjalankan perintah find, setelah itu bisa dilihat pada perintah jobs ada dua perintah pada background yang sedang berjalan.

c. Jadikan program ke 1 sebagai foreground, tekan ^Z dan kembalikan program tersebut ke background
$ fg %1
$ bg

Mengubah program pertama menjadi foreground, lalu dihentikan sementara dengan ctrl+z dan diubah kembali menjadi background.

d. Stop program background dengan utilitas kill
$ ps x
$ kill [Nomor PID] 

Melihat Proses yang sedang berjalan beserta PID nya dengan ps x, lalu menghentikan proses dengan perintah kill diikutin PID proses yang kita hentikan.


Kesimpulan :
Dari hasil praktikum tersebut dapat disimpulkan kita mampu untuk menggunakan Bash Shell pada Sistem Operasi Linux, antara lain: Mengubah Feature pada History Bash, Mengubah format prompt pada shell, Membuat bash-script dan menjalankannya, hinggal membuat alias yang bisa memudahkan kita untuk memanggil perintah.

Referensi :
https://iisrohmatin.wordpress.com/2012/05/06/bekerja-dengan-bash-shell/
http://dymand-informatika.blogspot.com/2012/03/linux-praktikum5-bekerja-dengan-bash.html
http://dymand-informatika.blogspot.com/2012/03/linux-praktikum-5-b-bekerja-dengan-bash.html


Comments

Popular posts from this blog

Praktikum 11 Manajemen User dan Grup

Praktikum 7 Unix System Call dan Manajemen Memory

Praktikum 12 Manajemen Aplikasi