• Tidak ada hasil yang ditemukan

Laporan Sistem Operasi Praktikum 10

N/A
N/A
Protected

Academic year: 2021

Membagikan "Laporan Sistem Operasi Praktikum 10"

Copied!
69
0
0

Teks penuh

(1)

Laporan

Sistem Operasi

Praktikum 10

Oleh :

1. Caesar Jalu Ananta (2110191045)

2. Raffi Akhzrial Ikbar Hermawan

1 D4 Teknik Informatika B

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

2020 / 2021

(2)

PRAKTIKUM 5A

Tugas Pendahuluan

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

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

3.

Apa yang anda ketahui mengenai file .bashrc.

File .bashrc adalah file yang akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui intruksi su

4.

Apa yang dimaksud dengan history pada Bash Shell. Apa kegunaan perintah history, sebutkan cara-cara untuk mengetahui history perintah-perintah yang pernah digunakan oleh user!

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

• ^P (Ctrl -P) melihat instruksi

• ^N (Ctrl -N) melihat instruksi berikutnya • !! eksekusi kembali instruksi sebelumnya • !! -3 3 instruksi sebelumnya akan diulang • !!88 ulangi instruksi no 88

5.

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

(3)

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

Perintah ls digunakan untuk melihat home directory. File .bash_profile adalah hidden file. 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

Perintah ini digunakan untuk eksekusi sebelum logout dan menghapus temporary file dan job.

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.

2.

Digunakan untuk menampilkan perintah yang sebelumnya telah dilakukan

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

$ cd $ ls –l /etc $ ls –l $ whoami

(4)

$ who

Perintah ini digunakan untuk melihat semua perintah yang pernah dimasukkan.

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

(5)

Perintah history digunakan untuk melihat perintah-perintah yang sudah pernah kita jalankan dari pertama buka terminal sampai saat ini

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

Perintah ini digunakan untuk mengakses perintah yang telah dimasukkan sebelumnya dengan nomer yang telah ditunjukaan dari perintah history yang telah dilakukan di nomer sebelum ini.

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

(6)

Perintah ini digunakan untuk mencari perintah yang telah dilakukan sesuai keyword di dalamnya.

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

$ history

Perintah !?etc? tidak tertampil di history, akan tetapi yang tertampil adalah hasil yang dicari dan ditemukan oleh perintah tersebut yaitu ls –l /etc

(7)

8. Apabila string tidak ditemukan pada perintah history maka akan terdapat pesan error. $ !?wombat99?

Perintah ini akan menampillkan hasil yang dicarinya jika ditemukan, akan tetapi jika tidak maka akan menampilkan pesan error.

9. Jika diketikkan !who maka yang dijalankan adalah perintah who. Tetapi bila anda ketikkan !whoa maka yang dijalankan adalah perintah whoami.

$ !who $ !whoa

Perintah ini mencari hasil yang paling mendekati semisal !whoa, maka akan mendapatkan hasil perintah whoami.

10. 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 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^

(8)

Perintah ini untuk menggantikan nama shell dengan 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

Di file .bash_history menyimpanfile history yang terdapat pada home directory . untuk membukanya menggunakan perintah $cd.

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

(9)

Untuk melihat beberapa baris terakhir pada file .bash_history.

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 terakhir yang disimpan adalah tail .bash_history dan history. Perintah ini bersifat up to date karena disimpan pada memory sistem.

4. Ketik perintah berikut $ echo ‘Ini perintah saya’

Perintah ini digunakan untuk menampilakn tulisan ‘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

Perintah ini digunakan untuk melihat tadi perintah echo ‘Ini perintah saya’ masuk ek history dan juga di tail .bash_history.

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

(10)

Perintah ini digunakan untuk melihat history terakhir dalam 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

Perintah ini digunakan untuk mengetahui berapa banyak perintah history yang ada 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

Perintah ini untuk melihat jangkauan (limit) perintah history.

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

(11)

Perintah digunakan untuk memperbesar jangkauan file history.

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

Perintah ini digunakan untuk melihat jangkauan (limit) perintah history.

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

Perintah history diketikkan 2 kali di dalam bash_history walaupun perintah sama pada percobaan di atas.

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

Untuk melakukan konfigurasi Bash agar tidak menambah perintah ke history jika perintah yang di ketikkan sama dengan sebelumnya.

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

(12)

History tertampil sekali di bash_history.

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

Perintah ini untuk menampilkan waktu dalam format HH:MM:SS

2. Untuk menampilkan format 12 jam dengan indikator am dan pm ketik sebagai berikut $ PS1=’\t:’

Perintah ini untuk menampilkan format 12 jam dengan indikator am dan pm.

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

Perintah ini untuk menampilkan ~:

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

Perintah ini untuk mengganti directory. 5. Ketik PS1=’\W:’ untuk melihat prompt sbin:

(13)

Perintah ini untuk menampilkan 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 >’

Simbol lebih besar dari (>) muncul. Hal ini memberitahukan bahwa BASH menunggu Anda menyelesaikan perintah.

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

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

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 :

(14)

Perintah ini digunakan untuk mengubah warna prompt bash menjadi biru. 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.

Perintah ini digunakan untuk mengubah warna prompt bash menjadi merah 11. Bila menginginkan beberapa warna, ketikkan perintah berikut :

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

Perintah ini digunakan untuk mengubah warna prompt bash menjadi beberapa warna 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’

Perintah ini digunakan untuk mengubah warna prompt bash menjadi warna yang 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’

Perintah ini digunakan untuk mengubah warna prompt bash menjadi warna berkebalikan 14. Untuk menampilkan prompt berkedip, atribut control diganti 5, seperti perintah berikut :

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

(15)

Percobaan 5 : Menambahkan otomatisasi ke Prompt Shell 1. Pastikan Anda berada di home directory

$ cd ~

Untuk memastikan berada di home directory

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

Perintah tersebut di peruntukan untuk membuat file. Sederhana. 3. Buatlah file skrip diatas menjadi file executable

$ chmod +x sorter

Perintah tersebut di gunakan untuk membuat 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

Untuk menjalankan program sorter diatas setiap shell Bash menampilkan

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’ akah ditambahkan. $ echo ’John Smith:13001’>>list

Perintah ini untuk membuat file otomatis.

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

(16)

7. Masukkan beberapa 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

Perintah cat list digunakan untuk menampilkan isi dari file list yang telah dibuat dan juga diurutkan melalui abjadnya melalui script tadi

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=

(17)

PRAKTIKUM 5B

Percobaan 6 : Membuat Bash-Script dan menjalankannya 1. Membuat file p1.sh

Analisa :

- Pertama kita membuat file p1.sh

- Untuk memasukkan suatu kata kita terlebih dahulu tekan huruf i - Kemudian kita masukkan didalamnya echo “Program Bash Script”

- Kemudian untuk keluar kita tekan esc , kemudian tekan :, kemudian kita simpang dengan mengetik wq! Dan enter

2. Mengubah program menjasi executable

Analisa :

- $ ls –l p1.sh digunakan untuk menampilkan file p1.sh

- chmod +x p1.sh dimaksudkan agar file p1.sh dapat dijalankan di linux 3. Menjalankan Script

Analisa :

(18)

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

Analisis :

- Kita menambahkan !/bin/bash pada file p1.sh dengan cara sama yang saya jelaskan pada analisis sebelumnya

5. Buatlah file p2.sh

Analisis :

Kita membuat file p2.sh dan memasukkan perintah sesuai dengan perintah diatas dengan cara yang sama dengan saat kita buat file p1.sh

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

(19)

Analisis:

Kita dapat menjalankan 2 program secara sekaligus dengan cara diatas dengan memberi tanda ;

Percobaan 7 : Job Control 1. Proses foreground

Analisis :

Menampilkan proses pada foreground 2. Proses background

Analisa :

Menampilkan jumlah proses yang berjalan

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

Analisa :

Melihat jobs yang aktif 4. Buatlah file plop.sh

Analisa :

Kita membuat file plop.sh dengan perintah diatas. Kemudian kita menuliskan program diatas. Cara nya pertama tekan i, kemudian tulis programnya, kemudian keluar dengan

(20)

cara tekan esc kemudian tekan :, kemudian tekan wq! Dan enter untuk menyimpannya Kita membuat file ploop.sh dan mengisikan program didalamnya. Caranya sudah saya jelaskan pad Analisa sebelumnya Program tersebut bermaksud untuk, “setiap 10 detik maka diterminal akan mencetak/print hello”. Program tersebut dapat di hentikan dengan menekan ctlr+C

5. Buatlah file plop.sh menjadi excutable

Analisis :

Perintah chmod + x maksudnya adalah membuat program menjadi bisa dijalankan dengan linux di terminal Dapat dilihat pada gambar ./ploop.sh program yang kita buat dapat berjalan dengan mencetak hallo setiap 10 detik

6. Jalankan program sebagai background

Analisis :

Menjalankan program di background 7. Periksa job aktif

Analisis :

Melihat apa saja perintah yang berjalan 8. Ubah job menjadi foreground

$ fg %[nomor job] $fg %ploop.sh

Analisis :

apakah perintah itu sedang berjalan atau tidak

9. Untuk mengembalikan jobs tersebut ke background tekan Ctrl-Z kemudia jalankan instruksi bg

$ bg $ jobs Analisa :

(21)

Percobaan 8 : Manipulasi Stack

Analisa :

Perintah dirs digunakan untuk melihat stack directory dan menampilakn directory home ~

Analisis :

Perintah diatas maksudnya membuat directory marketing, sales, support, secara bersama-sama

Analisa :

Menapilkan direktori home lagi

Analisis :

(22)

Analisis :

Mem-push ke direktori pada file sales

Analisis :

Mem-push ke direktori support

Analisis :

Mem-push marketing ke direktori

Analisis :

(23)

Analisis :

untuk mencapai stack paling atas, maka command pushd +2

Analisis :

Untuk mengahpus direktori dari stack

Percobaan 9 : Alias

Analisis :

Perintah Alias digunakan untuk menampilkan perintah alias yang sudah ada pada system atau bisa dibilang perintah alias default

(24)

Analisa :

- Maksud perintah diatas adalah membuat alias yaitu mengganti perintah rm -i dengan alias del

- Mengganti perintah history dengan alias h

Analisis :

Perintah ls untuk melihat direcroy hasil yang akan kita hapus Kita menghapus directory hasil dengan del

(25)

Analisis :

Terdapat pesan error karena kita telah menghapus perintah

Latihan

(26)

Analisis

- Perintah diatas kita disuruh mengedit file di etc/profile. Maka langkah-langkahnya adalah

- Membuka file /etc/profile dengan perintah $ sudo nano /etc/profile

- Menambahkan echo “profile dari /etc/profile” pada file tersebut - Menyimpannya dengan cara ctrl + X, tekan Y, enter

- Kemudian kita cek dengan menggunakan su - <user>, dan terlihat profile dari /etc/profile sudah terlihat. Artinya kita sukses menambahkannya

B. $ sudo nano /home/ardy/.bash_login $ sudo nano /home/ardy/.bash.profile $ sudo nano /home/ardy/.profile $ sudo nano /home/ardy.bashrc Analisis :

- Semua perintah diatas kita mengubah semua profile yang ada. Yaitu .bash_profile , .bash_login, .profile, .bashrc

(27)

C.

(28)

Analisis :

Fungsi dari setiap file yang kita edit akan muncul pada waktu tertentu -

Analisa :

Perbedaan dari 2 utilitas tersebut adalah Jika - (atau -l) ditentukan, su mensimulasikan login nyata. Lingkungan dibersihkan kecuali untuk beberapa variabel pilih (terutama, DISPLAY dan XAUTHORITY pada beberapa sistem). Jika tidak, lingkungan dibiarkan seperti itu kecuali untuk PATH yang direset.

(29)

Analisis :

Kita menuliskan echo “terimakasih atas sesi yang diberikan” dan menulis program diatas dengan maksud akan memberikan waktu 5 detik kemudian logout

Setelah kita cek dengan login dan kemudian exit. Ternyata hasilnya seperti gambar yaitu terimakasih atas sesi yang diberikan dan kemudian exit setelah 5 detik

Analisis :

Untuk mengubah mati menjadi 4 detik kita hanya tinggal mengubah programnya yang awalnya sleep 5 menjadi sleep 4

4. HISTORY

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

(30)

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

$ !-5

Analisis :

Megerjakan perintah dari 5 baris yang terakhir dilakukan

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

$ !!

Analisis

Mengulangi instruksi yang terakhir

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

(31)

Aalisis

Mengulangi instruksi tertentu berdasarkan nomer tertentu e. Ulangi instruksi dengan prefix “ls”

$ !ls $ !?ls?

Jelaskan perbedaan instruksi diatas

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

(32)

Analisis

- Membuat tulisan berwarna biru dan berkedip. 033 adalah reset all, atribut 5 adalah agar nantinya berkedip, 34m adalah kode warna biru.

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

(33)

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

$ ./p1.sh &

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

(34)

Analisis

- Perintah diatas berfungsi untuk menjalankan program p1 kemudian dilanjutkan program p3 dan dilanjutkan program p2

Analisis

- Perintah diatas untuk menjalankan program p1 dan menjalankan di background

(35)

Analisis

Menjalankan p1 jika berhasil maka akan menjalankan p2 dan p3 di background

Analisis

- Perintah diatas akan menjalankan program p2 dalam background dan jika berhasil maka akan menjalankan program p3 didalam background $ ( ./p1.sh ; ./p3.sh ) &

(36)

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

Analisis

(37)

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

$ fg %1 $ bg

Analisis

- Perintah fg %1 maksudnya memindahkan program 1 yang ada di background menjadi berada di foreground. Dan untuk memindahkan kembali ke background, di hentikan dulu dengan Ctrl+Z

d. Stop program background dengan utilitas kill $ ps x

(38)

Analisis

- Perintah kill digunakan untuk menghentikan proses sesuai pid. Dan untuk memastikan proses telah dihentikan maka kita gunakan perintah jobs. Dan terlihat proses usdah ter terminated

- Kesimpulan

Dari praktikum ini dapat disimpulakn bahwa penggunaan bash dan pemrograman shell pada linux sangatlah mudah dan dapat mempermudah pekerjaan sehari hari, seperti dalam daily task. Kita juga dapat membuat script shell yang nantinya akan berjalan secara otomatis yang membuat kerja kita lebih efisien dan cepat. Pemrograman shell juga dapat memudahkan dalam penggunaan linux

(39)

PRAKTIKUM 6A

A. PERCOBAAN

Percobaan 1 : Membuat shell script

1. Buatlah file prog01.sh dengan editor vi

Pada percobaan ini hingga percobaan ke-7, saya tidak menggunakan vi, melainkan menggunakan nano. Saya lebih memilih nanao daripada menggunakan vi karena menurut saya nano lebih mudah digunakan dan lebih user friendly daripada vi.

File prog01.sh berisi variabel var1 yang bernilai x dan var2 yang bernilai 8. 2. Untuk menjalankan shell, gunakan notasi TITIK di depan nama program

Saat menjalankankan shell prog01.sh, dapat dilihat bahwa tidak muncul apa-apa. Hal ini karena pada prog01.sh hanya terjadi pendeklarasian dan pengisian variabel dan tidak ada yang dicetak / dioutputkan oleh program tersebut. Sehingga tidak ada keluaran apa-apa pada program ini.

3. Untuk menjalankan shell, dapat juga dengan membuat executable file dan dieksekusi relatif dari current directory

Dapat dilihat kembali bahwa saat dijalankan tidak muncul apa-apa. Hal ini sesuai dengan apa yang saya jelaskan pada nomor 2 diatas.

Percobaan 2 : Variabel

1. Contoh menggunakan variabel pada shell interaktif

Disini $VPT merupakan sebuah variabel. Variabel $VPT berisi string “poltek”, sehingga saat dilakukan echo pada variabel $VPT, maka string “poltek” akan dimunculkan sebagai hasil dari echo.

(40)

2. Pemisahan 2 kata dengan spasi menandakan eksekusi 2 buah instruksi. Karakter $ harus ada pada awal nama variabel untuk melihat isi variabel tersebut, jika tidak, maka echo akan mengambil parameter tersebut sebagai string.

Jika ingin mengassign string yang memiliki spasi ke sebuah variabel, maka string tersebut harus diapit dengan tanda petik.

3. Menggabungkan dua variabel atau lebih

$V1, $V2, dan $V3 merupakan variabel yang berisi string. Saat $V4 diisi dengan $V1, $V2, dan $V3, maka isi dari $V4 merupakan string dari variabel $V1, $V2, dan $V3 secara berurutan.

4. Menggabungkan isi variabel dengan string yang lain. Jika digabungkan dengan nama variabel yang belum didefinisikan (kosong) maka instruksi echo menghasilkan string kosong. Untuk menghindari kekeliruan, nama variabel perlu diproteksi dengan { } dan kemudian isi variabel tersebut digabung dengan string.

5. Variabel dapat berisi instruksi, yang kemudian bila dijadikan input untuk shell, instruksi tersebut akan dieksekusi

(41)

Hal ini dapat terjadi karena variabel $CMD berisi string “who”, sehingga jika kita mengetikan dan menjalankan $CMD pada shell, akan sama saja dengan mengetik dan menjalankan who pada shell, yang mengakibatkan instruksi who berjalan.

6. Modifikasi file prog01.sh berikut

7. Cara sederhana mengeksekusi shell adalah dengan menggunakan notasi titik di depan nama shell script tersebut. Bila direktori aktual tidak terdaftar dalam PATH, maka command tersebut tidak dapat ditemukan. Bila script belum executable, script tidak dapat dieksekusi.

(42)

Percobaan 3 : Membaca keyboard 1. Menggunakan instruksi read

Instruksi read akan membaca inputan dari user (pada contoh ini, user menginputkan string “amir”) dan menyimpan inputan tersebut ke sebuah variabel.

2. Membaca nama dan alamat dari keyboard

Program ini akan membaca inputan user berupa nama, alamat, dan kota kemudian menampilkannya.

3. Eksekusi program prog02.sh

4. Instruksi echo secara otomatis memberikan baris baru, maka untuk menghindari hal tersebut disediakan opsi –n, yang menyatakan kepada echo untuk menghilangkan baris baru. Modifikasi program prog02.sh

(43)

5. Eksekusi program prog02.sh

6. Variabel kosong adalah variabel yang tidak mempunyai nilai. Variabel ini didapat atas assignment atau membaca dari keyboard atau variable yang belum didefinisikan

7. Variabel dapat disubtitusikan dengan hasil eksekusi dari sebuah instruksi. Pada contoh dibawah , instruksi pwd dieksekusi lebih dahulu dengan sepasang Back Quate (tanda kutip terbalik). Hasil dari eksekusi tersebut akan masuk sebagai nilai variable DIR

(44)

$ pwd

$ DIR=`pwd` $ echo $DIR

8. Buatlah shell script prog03.sh

Perintah whoami akan menunjukkan user yang sedang aktif menggunakan komputer. Sedangkan perintah date akan menunjukkan tanggal dan waktu saat ini dan perintah cut -c1-10 akan memotong waktu pada perintah date sehingga yang disimpan ditampilkan hanyalah tanggal saja.

9. Eksekusi prog03.sh

Percobaan 4 : Parameter

(45)

Sebuah program shell dapat mempunyai parameter sebanyak 9 buah dan direpresentasikan melalui variabel khusus yaitu variabel $!, $2, $3, $4, $5, $6, $7, $8 dan $9. Nama program shell (nama script) direpresentasikan melalui variable $0.

2. Eksekusi prog04.sh tanpa parameter, dengan 2 parameter, dengan 4 parameter

Cara memanggil sebuah parameter adalah dengan menuliskan parameter di samping perintah eksekusi program. Tiap parameter dipisah dengan spasi.

(46)

Jumlah parameter dinyatakan sebagai $#. Bila tidak memberikan parameter, maka nilai $# adalah 0.

4. Eksekusi prog04.sh tanpa parameter dan dengan 4 parameter

5. Membuat shell script prog04.sh versi 3 dengan menambahkan total parameter dan nomor proses id (PID)

(47)

Shell variable $* menyatakan seluruh string yang menjadi parameter / argumen sebuah script ($@ mempunyai arti yang sama). $$ menyatakan nomor proses id (pid) dari script yang dijalankan. Pid ini akan terus berubah (umumnya) menaik, setiap kali proses berjalan. 6. Eksekusi prog04.sh dengan 4 parameter

Percobaan 5 : Status Exit

1. Setiap program setelah selesai dieksekusi akan memberikan informasi melalui variable spesial $?.Jika string tidak ditemukan, maka status exit adalah 1

2. Jika string ditemukan, maka status exit adalah 0

Percobaan 6 : Konstruksi if 1. Instruksi dengan exit status 0

2. If membandingkan exit status dengan 0, bila sama, maka blok program masuk ke dalam blok then-fi

(48)

3. Nomor (1) dan (2) diatas dapat disederhanakan dengan

Percobaan 7 : Konstruksi if then else 1. Membuat shell script prog05.sh

Program diatas menggunakan konstruksi ifthen else. Jika kondisi pada if memenuhi, maka blok program dari then hingga else akan dijalankan. Jika kondisi if tidak memenuhi, maka blok program dari else hingga fi akan dijalankan.

2. Jalankan prog05.sh, masukkan nama pemakai yang aktif yang tampil pada instruksi who dan coba juga untuk nama pemakai yang tidak aktif

(49)

Praktikum 6B

a. Instruksi Test

- Menggunakan instruksi test, perhatikan spasi antara

Analisa :

Dari tes yang dilakukan, spasi antara operator dan ekspresi sangatlah penting. Apabila tes bernilai benar, akan bernilai nol. Apabila tes bernilai salah hasil tidak sama dengan nol

- Apabila tes dengan konstruksi if

Analisa :

Memasukkan kondisional if untuk mengecek ekspresi dengan instruksi test - Jalankan program prog6.sh dengan memasukkan nama = amir dan nama = <cr>

Analisa :

Dalam instruksi test bisa juga mengecek kebenarannya dengan menggunakan kondisional if dan memunculkan hasilnya. Apabila ada ekspresi yang stringnya tidak ditemukan akan menampilkan pesan error

(50)

- Modifikasi prog6.sh dengan menggunakan notasi untuk test

Analisa :

Tanda kurung “[]” merupakan notasi untuk instruksi test - Jalankan program prog6.sh dengan memasukkan nama = amir

Analisa :

Untuk melakukan tes dengan efisien bisa menggunakan notasi kurung “[]” b. Notasi && dan ||

- Bila file prog1.sh ada, maka jalankan program berikutnya. File prog1.sh ada, karena itu exit status adalah TRUE,hasil operasi AND masih tergantung pada hasil eksekusi instruksi ke 2, dan dengan demikian isntruksi echo akan dijalankan

Analisa :

Perintah [ -f prog1.sh ] untuk mengetes apakah nilai dari ekspresi nya ada atau tidak. Karena file prog1.sh ada maka dilanjutkan ke operasi AND untuk melakukan instruksi echo untuk mencetak string

- File prog99.sh tidak ada, karena itu exit status adalah FALSE dan instruksi echo tidak dijalankan

Analisa :

Karena hasil tes ekspresi untuk mengecek file prog99.sh adalah tidak ada, maka perintah echo tidak dieksekusi.

(51)

Analisa :

Karena program prog1.sh hanyalah program untuk mendeklarasi variable saja, maka tidak muncul apa2

- Bila prog1.sh ada maka jalankan program berikutnya. File prog1.sh memang ada, karena itu eit status adalah true, dank arena sudah true maka instruksi echo tidak lagi dijalankan.

Analisa :

Notasi || sama seperti &&, yaitu melanjutkan instruksi kedua, namun bedanya apabila exit status instruksi pertama adalah true, maka instruksi keseluruhan adalah true. Oleh karena itu instruksi kedua tidak dijalankan

- Fileprog99.sh tidak ada, karena itu exit status adalah false, hasil n tergantung atas exit status instruksi kedua, karena itu instruksi echo dijalnkan

Analisa :

Notasi || sama seperti &&, yaitu melanjutkan instruksi kedua, namun bedanya apabila exit status instruksi pertama adalah true, maka instruksi keseluruhan adalah true. Karena instruksi pertama bernilai false, maka akan dilanjutkna eksekusi instruksi kedua - File prog99.sh tidak ada, maka tampilan error

Analisa :

Menampilkan pesan error karena pencarian file tidak ada

c. Operator bilangan bulat untuk test

- Menggunakan operator dengan ntasi test

(52)

-eq adalah operator sama dengan (equal to), karena hasil tes menunjukan angka 0 yaitu bernilai true. Maka hasilnya benar bahwa nilai variable I sama dengan 5

- Menggunakan operator dengan notasi []

Analisa :

Untuk mengetes suatu ekpresi, bisa juga dengan notasi []

d. Operator Logical dan Konstruksi Elif - Buatlah file program prog7.sh

- Jalankan file prog7.sh dan masukkan income untuk INCOME=500,20000,28000

Analisa :

Pada percobaan ini, kita memasukkan angka kedalam variable INCOME. Lalu, dicek deg=ngan kondisional if. –ge adalah operator lebih dari sama dengan, -a adalah operator AND, dan –le adalah operator kurang dari sama dengan. Jadi, kondisional pertama mengecek apakah nlai income berada pada range 0-10000. Jika iya, maka nilai dari variable biaya adalah 10. Jika tidak dicek lagi pada kondisioal kedua. –gt adalah operator lebih besar dari. Jadi, kondisional kedua adalah mengecek apakah nilai income berada pada range antara 10000-25000, jika iya nilai BIAYA menjadi 25. Apabila

(53)

semua kondisional tidak memenuhi nilai biaya akan dijadikan 35. Pada akhir program akan dieksekusi mencetak nilai biaya

e. Hitungan aritmetika

- Menggunakan utilitas expr

Analisa :

Expr adalah utilitas untuk melakukan aritmetika sederhana yaitu tambah,kurang,dan modulus dan langsung mencetak hasilnya secara langsung. Apabila selain itu, operatornya harus ditambah dengan backslash \.

- Substitusi isi variable dengan hasil utilitas expr

Analisa :

Isi dari variabel A dapat di substitusi dengah hasil utilitas expr

f. Instruksi exit

(54)

- Jalankan script prog8.sh dan periksa status exit

Analisa :

Program keluar dari terminal

g. Konstruksi case – esac - Buatlah file prog9.sh

(55)

- Jalankan program prog09.sh. coba beberapa kali dengan inputan berbeda

Analisa ;

Konstrruksii case – esaac memudahkan user dalam menjalankan perintah namun dengan kondisional yang embutuhkan pilihan yang spessifik

(56)

- Jalankan program prog10.sh dan coba beberapa inputan yang berbeda

:Analisa :

Selain case, adapun konstruksi esac. Yaitu lebih ke menggunakan notasi pipeline dalam kondisionalnya. Lalu diikuti dengan ekspresi (true/false) diakhiri dengan dua kali semicolon

(57)

- Jalankan program prog10.sh, coba ebberapa kali dengan inputan yang berbeda

Analisa :

Modifikasi ini lebih ke bentuk lain dalam menggunakan konstruksi esac. Namun di akhir diberi opsi *) apabila semua opsi tidak terpenuhi.

h. Konstruksi for-do-done - Buatlah file prog11.sh

- Jalankan program prog11.sh

Analisa :

Untuk membuat program perlu memasuki ke editor dengan perintah vi diikuti nama program. Perintah for digunakan untuk pengulangan proses , sehingga proses NAMA diulang sebanyak string nya ada 4 yaitu bambang,harry,kadir, dan amir. Lalu dicetak per string satu per satu.

(58)

- Buat file prog12.sh

- Jalankan program prog12.sh

Analisa :

Pada percobaan ini, variable F diisi dengan string nama semua file yang ada pada direktori home lalu dicetak satu persatu secara berulang dengan looping for

- Modifikasi file prog12.sh program ini akan menampilkan long list dari file yang mempubnyai ekstensi lst

(59)

Analisa :

Ditemukan pesan error karena tidak ditemukannya file berekstensi lst

i. Konstruksi while-do-done - Buat file prog13.sh

- Jalankan program prog13.sh

Analisa :

Program ini menggunakan looping while dengan pengkondisian apabila variable PILIH tidak sama dengan (-ne) 4, program akan terus diulang sampai user memilih angka 4 yang artinya looping berhenti. Perintah clear digunakan untuk membersihkan/mengosongkan baris.

(60)

j. Instruksi Dummy

- Modifikasi program prog13.sh

- Jalankan program prog13.sh

Analisa :

Konsep modifikasi ini sama seprti seblumnya, namun hanya dipersingkat dengan instruksi dummy yaitu proses akan diulang tanpa henti .Karena didalam looping while sudah ada kondisional apabila nilai PILIH sama dengan 4, loopig akan berhenti - Buat file prog14.sh

(61)

- Jalankan program prog14.sh dengan input berbeda

Analisa :

Dalam input nilai kurang dari 100 akan mencetak string , dan apabila input nilai lebih dari 100 akan mengeksekusi instruksi dummy. Sehingga tidak akan melakukan apa-apa dan exit status bernilai TRUE

k. Fungsi

- Buat file fungsi.sh

- Jalankan program fungsi.sh

Analisa :

Untuk menjalankan fungsi kita bisa memanggil dengan peritah nama fungsinya langsung.

(62)

- Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh

- Jalankan program fungsi.sh

Analisa :

(63)

A.

Latihan Praktikum 6B

1. Buatlah program salin.sh yang menyalin file sbb : salin.sh file-asal file-tujuan dengan ketentuan :

• Bila file asal tidak ada, berikan pesan, salin gagal.

• Bila file tujuan ada dan file tersebut adalah direktori, eri pesan bahwa file tidak bisa disalin ke direktori

• Bila file tujuan ada dan file biasa, beri pesan apakh file tersebut akan dihapus, bila dijawab dengan “Y”, maka copy file tersebut

• Bila file tujuan belum ada, lakukan copy

Untuk mengambil nama file, gunakan parameter $1 dan $2. Bila jumlah parameter tidak sama ($#) dengan 2, maka beri pesan exit -1.

a. Script

(64)

2. Buat program yang memeriksa nama direktori, jika parameter tersebut adalah direktori, maka jalankan instruksi ls –ld pada direktori tersebu. Namakan program tersebut checkdir.sh gunakan notasi [ -d nama direktori ] dan pilih logical && atau || pada level shell a. Script

b. Contoh Output

3. Dengan shell script pph.sh, hitung PPH per tahun dengan ketentuan sebagai berikut : • 10 juta pertama PPH 15%

• 25 juta berikutnya (sisa) PPH 25%

• Bila masih ada sisa, maka sisa tersebut PPH 35% a. Script

(65)

b. Output

4. Buatlah program myprog.sh yang memproses parameter $1, nilai parameter garys berupa string : start.stop.status,reload,restart. Bila buka dari string tersebut, maka berikan pesan error.

(66)

b. Contoh Output

5. Buat sebuah fungsi pada script confirm.sh yang memberikan konfirmasi jawaban Yes, No atau Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan Continue = 2. Modifikasi kerangka program berikut untuk memenuhi permintaan tersebut.

a. Script Confirm.sh

(67)

Test.sh

(68)

Bash Script

1. pcpu_usage.sh

Script ini berfungsi untuk menghitung pemakaian cpu oleh proses-proses yang

menggunakannya. Pada percobaan ini saya mengubahnya untuk menghitung selama 1 menit.

2. intruder_detect.sh

Script ini berfungsi untuk melaporkan dan mengelist penyusup dengan menggunakan input auth.log

3. disklog.sh

(69)

4. active_users.sh

Script ini berfungsi untuk melaporkan dan mengelist pengguna yang aktif.

Hasil Quiz

1. Caesar Jalu Ananta

Referensi

Dokumen terkait

Tujuan penelitian ini adalah untuk mengetahui keragaan usaha peternakan kambing peranakan etawa yang meliputi aspek kewirausahaan (rencana pengembangan usaha) dan aspek

Metode Northwest Corner, Metode Biaya Terkecil, dan Metode Vogel’s Approximation (VAM) digunakan untuk mencari penyelesaian awal dari masalah transshipment

Dengan ini penulis menyatakan bahwa Karya Ilmiah / Penulisan Hukum / Skripsi ini merupakan hasil karya asli penulis, tidak terdapat karya yang pernah diajukan untuk

Mengetahui hubungan antara kebiasaan berada di luar rumah pada malam hari dengan kejadian malaria diwilayah kerja Puskesmas Tarusan tahun 2011.. Mengetahui hubungan

Pertama : Nama-nama yang terlampir dinyatakan LULUS dalam Tes seleksi penerimaan santri baru SMP-SMA Al-Izzah International Islamic Boarding School Batu Tahun Ajaran 2017/2018.

Pada akhirnya, tubuh penderita Hemokromatosis keturunan dapat menimbun 5 (lima) sampai 20 kali lebih banyak zat besi daripada tubuh orang yang normal.

Namun beberapa tulisan yang dikutip penulis memperlihatkan hal yang bertolak belakang, seperti : Andiranto (1993) menyatakan paparan bising pada suatu lingkungan yang besar

Rasional : Mengetahui apakah pasien telah melaksanakan program diet yang ditetapkan. Kerja sama dengan tim kesehatan lain untuk pemberian insulin dan diet diabetik... Rasional