Linux : Bekerja Dengan Bash Shell

 

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 :

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

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

Pindah 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 kuncikunci lain, maka kita harus menekan tombol Esc terlebih dahulu.

I

Menyisipkan teks (di sebelah kiri posisi kursor)

A

Menyisipkan teks (di sebelah kanan posisi kursor)

(shift i)

Menyisipkan teks (di posisi awal baris)

A

(shift a)

Menyisipkan teks (di posisi akhir baris)

 

 

 

X

Menghapus 1 huruf (di sebelah kanan posisi kursor)

Dw

Manghapus 1 kata (di sebelah kanan posisi kursor)

Dd

 

Menghapus 1 baris (di sebelah kanan posisi kursor)

 

Yy

Mengkopi 1 baris

2yy

Mengkopi 2 baris

P

(Paste) Menampilkan baris kalimat yang sudah dikopi dengan kunci yy

 

 

Cw

Mengganti 1 kata yang telah ditulis di sebelah kanan posisi kursor dengan kata lain

Cc

Mengganti 1 baris kalimat yang telah ditulis di sebelah kanan posisi kursor dengan kalimat lain

ctrl-b

Mundur satu layar

ctrl-f

Maju satu layar

ctrl-d

Maju setengah layar

B

Menggerakkan kursor ke kiri satu kata

W

Manggerakkan kursor ke kanan satu kata

^

Pergi ke awal baris

$

Pergi ke akhir baris

 

U

 

Membatalkan perintah yang terakhir kali

U

Membatalkan seluruh perubahan teks pada baris tempat kursor berada

 

 

:!

Keluar untuk sementara dari editor vi dan menjalankan perintah yang 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 belakang

N

Meneruskan pencarian untuk arah yang sama

N

Meneruskan pencarian untuk arah yang berbeda 


  

TUGAS PENDAHULUAN:

      TUGAS PENDAHULUAN:

Jawablah pertanyaan-pertanyaan di bawah ini :

  1.    Apa yang dimaksud dengan shell dan sebutkan 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 terssebut.

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

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

 

  1. 3Apa 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.   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

 

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

 


Fungsi ls –a adalah menampilkan isi direktori secara keseluruhan.

 

$ more .bash_profile

 

Pada isi direktori home tidak ada file bernama .bash_profile, oleh karena itu akan muncul pesan error. Perintah .bash_profile bisa diganti dengan .profile. Perintah $ more adalah untuk menampilkan perintah dalam satu halaman penuh.

 

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

 


Pada saat logout, maka bash akan mencari file .bash_logout. Bila ada, file tersebut akan dieksekusi sebe lum logout. Isi file ini adalah perintah untuk membersihkan (clear) layar.

 

 

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.

 


Pada percobaan ini perintah yang dijalankan adlah perintah sebelumnya, yaitu perintah pada percobaan 1 atau $ cat .bash_logout.

 

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

$ cd



Perintah $ cd adalah untuk masuk ke direktori yang dituju, jika tidak ada argumennya maka otomatis direktori yang dituju adalah direktori home.

 

$ ls –l /etc

 


Gambar di atas adalah isi direktori /etc yang ditampilkan dalam daftar panjang (long list).

 

 

$ ls –l

 


Gambar di atas adalah isi direktori yang sedang aktif dalam daftar panjang. Saat ini direktori yang sedang aktif adalah direktori /home/diah.

 

$ whoami

$ who

 


Gambar di atas adalah hasil dari perintah $ whoami dan $ who. Keduanya sama-sama menampilkan daftar user yang ada, namun $ who terdapat keterangan waktu. Pada program ini hanya terdapat satu user, yaitu user diah.

 

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

$ history

 


Dapat dilihat pada gambar, perintah yang digunakan pada percobaan nomor 1 dan 2 terdapat di 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

 


Pada percobaan ini, perintah yang ingin dieksekusi adalah perintah nomor 867 yaitu $ whoami.

 

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

$ !?etc?

 


Jika pada percobaan nomor 4 menggunakan nomor perintah, maka percobaan ini menggunakan nama perintah yang ingin dijalankan, yaitu ls –l /etc. Tanda yang digunakan pun berbeda dengan nomor 4 sebelumnya.

 

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

$ history

 


Nama perintah yang ada di daftar history tetap nama perintah secara lengkap.

 

7.      Apabila string tidka ditemukan pada perintha history maka akan terdapat pesan error.

$ !?wombat99?

 


Terdapat pesan error, karena tidak ada perintah bernama wombat99 di history.

 

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

$ !who

$ !whoa

 


Yang terjadi adalah semua dijalankan dengan 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^

 




 

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

 


Perintah $ cd adalah untuk masuk ke direktori yang dituju, jika tidak ada argumennya maka otomatis direktori yang dituju adalah direktori home.

 

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

 


Daftar di atas adalah beberapa perintah pada history, namun bukan yang terbaru.

 

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

 


Perintah yang dijalankan pada nomor 2 terdpat pada nomor 877 dan yang paling terakhir adalah history atau nomor 878.

 

4.      Ketik perintah berikut.

$ echo ‘Ini perintah saya’

 


Echo adalah perintah untuk menampilkan secara langsung string atau kalimat yang diinginkan. Pada percobaan ini kalimat yang ditampilkan ada pada baris ke dua.

 

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

 



Karena perintah $ history adalah perintah yang terbaru maka perintah pada percobaan sebelumnya masuk dalam daftar ini.

 

$ tail .bash_history

 


Perintah ini adalah untuk menampilkan 10 baris perintah default.

 

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

$ history|less

 


Perintah ini untuk melihat history namun menggunakan pipeline ke perintah less.

 

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

 


Dapat dilihat pada gambar, perintah yang ada di history sebanyak 880.

 

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

 


Dapat dilihat pada gambar bahwa ukuran limit history hanya 1000. Artinya jika melewati 1000, maka perintah yang paling awal akan dihapus.

 

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

$ echo ‘HISTSIZE=5000’ >> .bashrc

 

Perintah ini tidak menghasilkan output apa-apa namun jika dicek HISTSIZEnya akan berubah.

 

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

$ set|grep HISTSIZE

 


Sekarang HISTSIZEnya telah berubah, dari 1000 menjadi 5000.

 

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



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


 

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

 


Hanya ada satu history yang muncul, yaitu nomor 895.

 

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:’

 


Waktu pada current time percobaan ini adalah jam 6 sore atau 18.00.

 

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

$ PS1=’\t:’



 

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:’


Ini menandakan direktori yang sedang aktif adalah direktori home.

 

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

$ cd /usr/sbin


Warna biru pada gambar di atas menandakan direktori aktif yang sedang digunakan, yaitu direktori /usr/sbin/.

 

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

$ PS1=’\W:’


Pada percobaan ini yaitu bekerja pada 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

>’



Echo untuk mencetak input sama persis. Pada percobaan ini terdapat garis baru setelah kata hello.

 

7.      Anda dapat mengubah prompt PS2 seperti mengubah prompt PS1. Ketik perintah berikut :

$ PS2=’Selesai memasukkan perintah Anda:’

 

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:’


Gambar di atas adalah untuk nomor 7 dan 8.

 

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’


Warna symbol $ berwarna biru. Biru diwakili oleh angka 34.

 

 

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.

Warna symbol $ berwarna merah. Merah diwakili oleh angka 31.

 

11.  Bila menginginkan beberapa warna, ketikkan perintah berikut :

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

 


Warnanya adalah merah dan hijau. Merah diwakili angka 31 dan hijau angka 32.

 

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’

 


Dapat dilihat pada gambar warnanya menjadi lebih terang setelah atribut controlnya lebih besar.

 

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’


 

14.  Untuk menampilkan prompt berkedip, atribut control diganti 5, seperti perintah berikut : Pada gambar symbol $ menghilang, ini berarti tandanya sedang berkedip.

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



Percobaan 5 : Menambahkan otomatisasi ke Prompt Shell

1.      Pastikan Anda berada di home directory

$ cd ~

 


Perintah $ cd adalah untuk masuk ke direktori yang dituju, jika tidak ada argumennya maka otomatis direktori yang dituju adalah direktori home. Simbol ~ menandakan ke 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

 


Script di perintah echo akan disimpan di file bernama sorter pada direktoi home (~).

 

3.      Buatlah file skrip diatas menjadi file executable

$ chmod +x sorter

 


Mengubah file menjadi executable menggunakan perintah $ chmod +x kemudian diikuti nama filenya. Nama file yang akan diubah adalah ‘sorter’.

 

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

 


Perintah ini tidak menghasilkan output apa-apa di layar.

 

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

 


Ini artinya memasukkan kalimat di dalam petik ke file bernama list. File ini disimpan di direktori yang sedang aktif, atau home.

 

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

 


Cat adalah perintah untuk melihat isi file. Di dalam file list hanya ada isi dari perintah  yang ada di nomer sebelumnya atau nomer 5.

 

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 ’Sponse Bob:13005’>>list

$ echo ’Lisa:13006’>>list

$ echo ’Squid:13007’>>list

 


Berdasarkan percobaan di atas, jika perintah ini dilakukan terus menerus, maka isi file akan terus bertambah. Ketika ditampilkan dengan perintah $ cat, maka isinya akan diurutkan sesuai nomor ASCII.

 

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=


Percobaan 6 : Membuat Bash-script dan menjalankannya

 

1.       Membuat file p1.sh

$ vi p1.sh

echo “Program bash Script”

 

Gambar di atas adalah tampilan di editor vi.

 

2.       Mengubah program menjadi executable

$ ls –l p1.sh

$ chmod +x p1.sh

$ ls –l p1.sh

 


Setelah program diubah menjadi executable, nama file nya menjadi berwarna hijau.

 

3.       Menjalankan script

$ bash p1.sh

$ sh p1.sh

$ . p1.sh

$ ./p1.sh

 


Menjalankan script terdapat beberapa cara seperti di atas.

 

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”

 



Tambahan script tersebut digunakan untuk mengkonvensi kode script.

 

5.       Buatlah file p2.sh

$ vi p2.sh

#!/bin/bash

echo “Program 2 bash script”

 



Dengan menggunakan tambahan script seperti pada nomor 4, tidak perlu mengubah file menjadi executable terlebih dahulu.

 

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

$ cat p1.sh ; cat p2.sh

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

 


Pada perintah yang pertama menggunakan $ cat yang berfungsi untuk menampilkan isi file sedangkan perintah yang kedua mengeksekusi file. Terdapat perbedaan pada keduanya. Pada perintah yang kedua, file p2 tidak bisa dieksekusi dan hanya file p1 yang dieksekusi.

 

 

Percobaan 7 : Job Control

 

1.       Proses foreground

$ ps x

 


Perintah ps untuk menunjukkan semua proses yang sedang berjalan di sistem beserta keterangan PID, TTY, STAT, TIME dan COMMAND.

 

2.        Proses background

$ ps x > hasil &

 


Untuk membuat proses berjalan di background menggunakan symbol &, dan outputnya dibelokkan ke ‘hasil’.

 

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

$ jobs

 


Pada gambar di atas, perintah yang dijalankan sebelumnya telah selesai dilakukan (Done). Perintah ini memiliki nomor job 1.

 

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

 

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

 


Dapat dilihat pada gambar bahwa perintah ini akan terus berjalan sampai dihentikan secara manual menggunakan CTRL+C.

 

 

Percobaan 8 : Manipulasi stack untuk Direktori

 

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

$ dirs.

 


2.       Membuat 3 buah direktori

$ mkdir marketing sales support

 


Dapat dilihat pada gambar, terdapat tiga buah direktori baru dengan nama sesuai perintah. Direktori ditandai dengan warna tulisan biru.

 

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

$ dirs.


 

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

 


Terdapat beberapa nama alias yang sudah ada di sistem. Alias ini untuk menyingkat penulisan perintah agar lebih mudah.

 

2.       Membuat beberapa alias

$ alias del=’rm –i’

$ alias h=’history’

 


Alias juga bisa dibuat sendiri secara manual. Pada percobaan ini adalah membuat beberapa nama alias. Nama yang sebelumnya tidak ada, menjadi ada di daftar alias.

 

3.       Gunakan instruksi hasil alias

$ ls

$ del hasil

$ h | more

 


Pada perintah yang ketika yaitu menampilkan history dengan nama alias yang telah dibuat sebelumnya, yaitu ‘h’ dengan menampilkannya menjadi satu halaman penuh menggunakan $ more.

 

4.      Untuk menghapus alias gunakan instruksi unalias

$ unalias del

$ del files (Terdapat Pesan Kesalahan, mengapa ?)

 


Karena nama alias ‘del’ telah dihapus menggunakan perintah $ unalias, maka ketika perintah dipanggil, akan muncul pesan error seperti di atas.

 

 

LATIHAN:

1.      Eksekusi seluruh profile yang ada :

a.      Edit file profile /etc/profile dan tampilkan pesan sebagai berikut : echo ’Profile dari /etc/profile’

 


Untuk mengedit file ini harus masuk sebagai root dengan menambahkan perintah ‘sudo’ di depannya. Ketika di eksekusi (bash), maka kalimat yang telah dibuat menggunakan $ echo akan ditampilkan ke layar.

 

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.


Gambar di atas adalah untuk nomer b, c dan d. Untuk mengedit file ini harus masuk sebagai root dengan menambahkan perintah ‘sudo’ di depannya. Ketika di eksekusi (bash), maka kalimat yang telah dibuat menggunakan $ echo akan ditampilkan ke layar.

 

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

$ su student

$ exit

kemudian gunakan opsi – sebagai berikut :

$ su – student

$ exit

Jelaskan perbedaan kedua utilitas tersebut.

 


Pada perintah yang pertama, file yang dijalankan yaitu fie .bashrc. File ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui instruksi su. Dan ketika perintah exit dijalankan, akan dimunculkan perintah tersebut. Sedangkan perintah yang kedua menjalankan perintah .bash_profile untuk mengakses profil user dan file .bashrc. Maka sistem akan masuk ke shell user, hal ini ditandai dengan nama sistem yang tidak berwarna seperti sebelumnya. Ketika exit, maka akan logout dan kembali sistem user, warna sistem kembali berwarna seperti semula.

 

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

 


Gambar di atas adalah untuk nomor a dan b. Ketika file .bash_logout dijalankan, kalimat pada ‘echo’ akan ditampilkan sebelum sleep selama 5 detik, kemudian perintah $ clear akan dijalankan. Perintah ini adalah untuk membersihkan layar seperti sedia kala, namun masih bisa di gulir ke atas (scroll up).

 

4.      History

a.      Ganti nilai HISTSIZE dari 1000 menjadi 20

$ HISTSIZE=20

$ h


Setelah ukuran history diubah menjadi 20, ketika menjalankan perintah h tidak muncul. H adalah nama alias yang dibuat manual pada percobaan sebelumnya, namun ama alias ini telah dihapus. Oleh karena itu akan muncul error ketika mengaksesnya.

 

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

$ !-5

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

$ !!

Gambar di atas adalah untuk poin b dan c. Perintah ke-5 sebelum terakhir adalah $ h yang memunculkan pesan error karena tidak ada nama alias ‘h’. Dan perintah $ !! adalah untuk menjalankan perintah sebelumnya, yaitu $ h.

 

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

$ !150

 


Ketika pertama kali menjalankan percobaan ini, terdapat pesan error. Hal ini dikarenakan, pada percobaan sebelumnya, ukuran history telah diubah menjadi 20, sehingga tidak ada perintah dengan nomor buffer 150. Setelah buffer diubah, barulah perintah ini bisa dijalankan. Pada percobaan ini, intruksi dengan nomor buffer 150 adalah $ ls mydir.

 

e.      Ulangi instruksi dengan prefix “ls” Ketika menjalankan perintah ini, terdapat pesan error karena ukuran history

$ !ls

$ !?ls?

Jelaskan perbedaan instruksi diatas

 


Perbedaan diantara 2 command tersebut adalah !ls akan menjalankan perintah ls yang terakhir kali dilakukan, sedangkan !?ls? akan mencari perintah terakhir yang mengandung kata kunci ls. Dalam case diatas hasilnya sama karena perintahnya bertepatan sama.

 

 

 

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

 


Perintah ini untuk masuk ke shell prompt 1 dan mengganti namanya sesuai sistem dan tanda yang digunakan menjadi ‘>’.

 

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

 


Warna biru diwakili dengan nomor 34 dan berkedip diwakili dengan nomor 5.

 

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

 


Yang bisa dieksekusi hanya file yang pertama, yaitu p1.sh.

 

./p1.sh &

 


Perintah akan dijalankan di background dan harus diselesaikan menggunakan CTRL+C.

 

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

 



Perintah p1.sh dan p2.sh akan dieksekusi bersamaan namun hanya p1 yang ditampilkan, sedangkan akses ke p3.sh ditolak.

 

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

 


Hanya file p1.sh yang dijalankan, akses ke file p3.sh ditolak. File yang dieksekusi akan berjalan di background dan akan berhenti jika diselesaikan menggunakan CTRL+C.

 

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


Gambar di atas adalah tampilan di editor vi.


b.     Jalankan sebagai background; kemudian jalankan satu program (utilitas find) di background sebagai berikut :

$ jobs

$ find / -print > files 2>/dev/null &

$ jobs

 


File yang menggunakan symbol ‘&’ akan dijalankan sebagai di background. Hal ini diketahui dari statusnya yang ‘Running’.

 

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

$ fg %1

$ bg

 


Pada percobaan ini, nomor job yang akan diubah ke foreground adalah job nomor 2.

 

d.     Stop program background dengan utilitas kill

$ ps x

$ kill [Nomor PID]

 


Status ‘Terminated’ artinya perintah diberhentikan  (kill).

 

 

KESIMPULAN

 

 

1.       Mengakses file bash tidak bisa sebagai user biasa. Bisa sebagai root dengan menambahkan ‘sudo’ di awal perintah.

2.       History untuk melihat semua perintah yang pernah dijalankan sistem. Untuk mengaksesnya bisa menggunakan nama perintah atau nomor perintah.

3.       Ketika menjalankan beberapa script sekaligus, dalam memisahkan nama scriptnya bisa menggunakan symbol ‘;’, ‘&’ dan ‘$’. Simbol ‘;’ hanya akan mengeksekusi file paling pertama, symbol ‘$’ akan mengeksekusi file bersamaan dengan file sebelumnya namun file yang kedua akan dijalankan di background. Sedangkan symbol ‘&’ untuk mengeksekusi file di background.

Komentar

Postingan populer dari blog ini

Linux : Proses dan Manajemen Proses

Linux : Operasi File dan Struktur Direktori

Anugerah Pewarta Astra 2022 : PEMANFAATAN KEMAJUAN TEKNOLOGI DALAM MEMBUAT LOBTECH, ALAT BANTU BUDIDAYA LOBSTER