LAPORAN PRAKTIKUM 5 - SISTEM OPERASI (LINUX) "BEKERJA DENGAN BASH SHELL"

LAPORAN PRAKTIKUM 5 - SISTEM OPERASI (LINUX)

"BEKERJA DENGAN BASH SHELL"







Disusun oleh

Rizki Azka Fihi Aghnia                 2103423004











PROGRAM STUDI RPL BROADBAND MULTIMEDIA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI JAKARTA
2022
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 #. 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 
  • .bashre 
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:/user/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 PSI 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 directory

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 control 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 dikesekusi. 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. Ekesekusi 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 : 


Tugas Pendahuluan
1. Apa yang dimaksud dengan shell dan sebutkan shell yang ada di system operasi Linux
Jawab:
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 Berkeley 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

Jawab:

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

3. Apa yang Anda ketahui mengenai file bashrc

Jawab:

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

Jawab:

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 8

Percobaan 1 - Profile

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

$ cat .bash_logout  digunakan untuk melihat isi .bash_logout, yaitu perintah yang akan tereksekusi saat kita logout.

Percobaan 2 - Menggunakan Feature History Bash

Dengan menekan panah atas, terminal akan menampilkan perintah yang terakhir kali digunakan.

$ cd digunakan untuk masuk suatu directory. $ ls -l /etc digunakan untuk me-list isi direktori etc. $ ls -l digunakan untuk me-list atau melihat daftar direktori home. $ who dan whoami digunakan untuk menampikan user dan user yang sedang aktif.

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

$ !<Nomor Perintah> digunakan untuk memasukkan input yang sama sesuai dengan nomor yang ditunjuk. Nomor tersebut dapat dilihat ketika perintah history dijalankan. Ketika memasukkan perintah nomor 794, yang dimana merupakan perintah $ ls -l. Maka selanjutnya perintah itupun berjalan.

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

Walaupun kita menginputkan perintah $ !?etc? tetapi yang berada dalam history adalah $ ls -l /etc karena yang berjalan adalah program tersebut. Dengan kata lain $ !?etc? bukanlah perintah lain tetapi merupakan pancingan untuk memanggil $ ls -l /etc.

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

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

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

Percobaan 3 - Mengubah Feature History Bash
$ cd digunakan untuk masuk ke dalam direktori.

$ tail .bash_history menampilkan adalah perintah terakhir yang diinputkan sebelum komputer kita restart atau matikan. Perintah history sampai cat /bin/bash | strings | grep shell | less adalah perintah yang diinputkan sebelum saya mematikan komputer.

Perbedaaan $ history dengan $ tail .bash_history adalah jika $ history menampilkan perintah yang kita inputkan terakhir/paling baru. Sedangkan $ tail .bash_history menampilkan perintah yang terakhir kita masukkan sebelum komputer kita matikan/restart.

$ echo digunakan untuk mencetak teks "ini perintah saya".

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

$ history | less menampilkan perintah-perintah yang pernah dipakai sebelumnya per bagian, tidak langsung semuanya seperti $ history.

$ wc -l bash_history digunakan untuk melihat jumlah perintah yang tercatat pada $ history.

$ set|grep HISTSIZE digunakan untuk melihat jangkauan (limit) atau kuota perintah history yang dapat disimpan bash.

$ echo ‘HISTSIZE=5000’ >> .bashrc mengubah batas perintah history yang dapat disimpan bash menjadi 5000.

Gambar di atas menunjukan bahwa batas perintah history yang dapat disimpan bash telah berhasil diubah menjadi 5000.

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

$ history telah diinput berkali-kali, dan setelah itu kita menginputkan perintah tersebut dengan maksud agar $ history yang saya masukkan hanya disimpan dalam bash.

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

Percobaan 4 - Mengubah Prompt Shell
$ PS1 ='\t:' digunakan untuk mengganti prompt dari randomuser@randomuser: menjadi waktu.

Outputnya tetap sama seperti sebelumnya, yaitu format 24 jam.

PS1='\w:' digunakan untuk menampilkan prompt bash seperti pada gambar.

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

PS1='\W:' digunakan untuk melihat prompt sbin:

Simbol lebih besar dari (>) muncul. Hal ini memberitahukan bahwa BASH menunggu Anda menyelesaikan perintah. Lambang > menunjukan adanya instruksi yang belum selesai dari instruksi yg saya masukan yaitu echo, karena saya memulai dengan ‘ tapi blm saya tutup ,maka ketika diketik enter hasilnya adalah seperti digambar.

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

Perintah ini digunakan untuk menampilkan prompt PS1.

Perintah di atas digunakan untuk mengganti warna prompt bash menjadi warna biru. Keterangan untuk mengubah warna sebagai berikut:
  • 30=hitam
  • 31=merah 
  • 32=hijau
  • 34=biru 
  • 35=ungu
  • 36=cyan 
  • 37=putih
Perintah di atas digunakan untuk mengganti warna prompt bash menjadi warna merah. Keterangan untuk mengubah warna sebagai berikut:
  • 30=hitam
  • 31=merah 
  • 32=hijau
  • 34=biru 
  • 35=ungu
  • 36=cyan 
  • 37=putih
Perintah di atas digunakan untuk mengubah warna pada prompt bash. Atribut kontrol 1 dimaksudkan untuk membuat warna menjadi lebih terang.

Atribut control angka 7 digunakan untuk membuat warna kebalikannya.

Atribut control angka 5 digunakan agar prompt bashnya berkedip.

Percobaan 5 - Menambahkan Otomatisasi ke Prompt Shell
$ cd digunakan untuk masuk ke dalam direktori home.

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

Perintah tersebut digunakan untuk membua file skrip menjadi file executable.

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

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

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

Perintah diatas dimaksudkan kita memasukkan nama-nama tersebut kedalam file list.

Perintah di atas digunakan untuk menghentikan program sorter.

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

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

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

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

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

2 program dapat dijalankan secara bersamaan dengan cara memberi tanda ;.

Percobaan 7 - Job Control
$ ps x berfungsi untuk menampilkan proses pada foreground.

$ ps x > hasil & digunakan untuk menampilkan jumlah proses yang berjalan menggunakan perintah di atas.

$ jobs digunakan untuk melihat jobs yang aktif.

Program yang ditulis di dalam ploop.sh akan mencetak teks “Hallo” setiap 10 detik. Program dapat dihentikan dengan menekan Ctrl+C.

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

Terdapat error karena perintah true tidak ditemukan.

Percobaan 8 - Manipulasi Stack untuk Direktori
$ dirs digunakan untuk melihat stack directory dan menampilkan directory home.

$ mkdir marketing sales support digunakan untuk membuat direktori marketing, sales, dan support.

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

Direktori marketing, sales dan support tidak bisa dibuat lagi karena sudah ada.

$ pushd sales digunakan untuk memasukan direktori sales ke dalam stack sehingga saat dilihat dengan $ pwd terdapt direktori dalam stack yaitu /home/randomuser/sales.

$ pushd /home/randomuser/support digunakan untuk memasukan direktori support ke dalam stack sehingga saat dilihat dengan $ pwd terdapt direktori dalam stack yaitu /home/randomuser/support.

$ pushd /home/randomuser/marketing digunakan untuk memasukan direktori marketing ke dalam stack sehingga saat dilihat dengan $ pwd terdapt direktori dalam stack yaitu /home/randomuser/marketing.

Jika $ pushd diinput tanpa argumen, stack akan mengambil direktori berikutnya.

$ pushd +2 digunakan untuk berpindah ke stack paling atas

$ popd digunakn untuk menghapus direktori terkini dari stack. $ popd +2 digunakan untuk menghapus direktori kedua dari bawah stack.

Percobaan 9 - Alias
$ alias digunakan untuk menampilkan perintah alias yang sudah ada pada sistem atau bisa dibilang perintah alias default.

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

$ unalias del digunakan untuk menghilangkn alias del dari perintah $ rm -i dan terjadi error setelah menginput perintah $ del files karena alias del sudah tidak dikenal lagi karena sudah dihilangkan.
Latihan
1. Eksekusi seluruh profile yang ada:
a. Edit file profile /etc/profile dan tampilkan pesan sebagai berikut: echo ’Profile dari /etc/profile’
Jawab:
Perintah di atas digunakan untuk mengedit file di etc/profile. Untuk membuat dan mengedit file menggunakan editor, terdapat beberapa perintah yang dapat ditulis seperti nano, vi, dan vim. Namun, disini saya menggunakan perintah nano untuk membuat dan mengedit teks di editor. Setelah editor ditulis, untuk menyimpan filenya menggunakan Ctrl+O dan keluar menggunakan Ctrl+X. Bisa juga menyimpannya dengan cara Ctrl+X, tekan Y, lalu Enter. Kemudian dicek menggunakan su - <user> dan terlihat bahwa profile dari /etc/profile sudah bisa dieksekusi. Yang artinya telah sukses ditambahkan.

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

home/student/.bash_profile

home/student/.bash_login



home/student/.profile

home/student/.bashrc

$ vi digunakan untuk masuk ke teks editor untuk mengedit file konfigurasi sistem, membuat script shell, membuat program, dan sebagainya.

c. Ganti nama /home/student dengan nama anda sendiri. Pada setiap file tersebut, cantumkan instruksi echo, misalnya pada /home/ student/.bash_profile: echo “Profile dari .bash_profile”
Jawab:
home/randomuser/.bash_profile
home/randomuser/.bash_login
home/randomuser/.profile
home/randomuser/.bashrc

Semua perintah di atas digunakan untuk mengubah semua profile yang sudah ada. Yaitu .bash_profile, .bash_login, .profile, dan .bashrc. Untuk mengubah dan mengedit teks dalam editor, caranya sama seperti pada nomor satu menggunakan perintah $ nano.

d. Lakukan hal yang sama untuk file lainnya, sesuaikan tampilan dengan nama file yang bersangkutan.
Jawab:
Perintah editor seperti pada nomo sebelumnya. Fungsi dari setiap file yang diedit akan muncul pada waktu tertentu. Saat mulai session bash akan muncul teks “profile dari .bashrc”. Saat login, akan muncul seperti pada gambar di atas.

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.
Jawab:
Perintah di atas adalah perintah yang digunakan untuk pindah ke super user, sistem meminta password admin. Pada perintah tersebut, pada file .bashrc sudah dimodifikasi sebelumnya sehingga instruksi echo terpanggil bila menggunakan perintah $ su - <user>. Untuk mengakhirinya menggunakan perintah $ exit.

Perbedaan dari 2 utilitas tersebut adalah pada $ su <user> setelah kita memasukkan password maka akan keluar pesan atau perintah dari file .bashrc dan ketika exit maka akan muncul kata exit, sedangkan pada $ su - <user> akan memunculkan pesan atau perintah dari file .bash_profile yang berhubungan dengan profile dan ketika exit akan muncul kata 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
Jawab:
Menambahkan perintah $ echo untuk menampilkan pesan dan menahannya selama 5 detik dengan perintah sleep. Perintah ini akan dikerjakan saat kita logout sebagai user. Ketika kita masuk menggunakan $ su - <user> maka ketika exit akan dikerjakan echo dan sleep tersebut.

b. Edit file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelum eksekusi logout
Jawab:
Menambahkan perintah $ echo untuk menampilkan pesan dan menahannya selama 4 detik dengan perintah sleep. Perintah ini akan dikerjakan saat kita logout sebagai user. Ketika kita masuk menggunakan $ su - <user> maka ketika exit akan dikerjakan echo dan sleep tersebut.

4. History

a. Ganti nilai HISTSIZE dari 1000 menjadi 20

  • $ HISTSIZE=20
  • $ h

Jawab:
$ HISTSIZE akan mengubah limit dari history terminal dari 1000 menjadi hanya 20 baris. Dengan perintah history, terlihat bahwa history terminal tidak melebihi 20 baris. Sebelum perintah $ h dieksekusi, perintah $ alias h=”history” dijalankan terlebih dahulu agar program perintah $ h tidak error.

b. Gunakan fasilitas history dengan mengedit instruksi baris ke 5 dari instruksi yang terakhir dilakukan.
  • $ !-5
Jawab:
Perintah ini dimaksudkan untuk menjalankan perintah kelima dari akhir history. Karena perintah kelima dari akhir adalah $ set|grep HISTSIZE maka perintah itu yang ditampilkan pada terminal. Perintah dengan history yang ada bisa dijalankan dengan !-[nomor history].

$ !! berguna untuk menjalankan perintah terakhir yang dilakukan.

$ ! <Nomor History> digunakan untuk menjalankan perintah sesuai dengan nomor urutnya di $ history.

$ ! ls digunakan untuk mengulangi instruksi dengan prefik. 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 variab le 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 >”
Jawab:
Untuk membuat dan mengedit file menggunakan editor, terdapat beberapa perintah yang dapat ditulis seperti nano, vi, dan vim. Namun, disini saya menggunakan perintah nano untuk membuat dan mengedit teks di editor. Setelah editor ditulis, untuk menyimpan filenya menggunakan Ctrl+O dan keluar menggunakan Ctrl+X. Bisa juga menyimpannya dengan cara Ctrl+X, tekan Y, lalu Enter. Setelah mengedit teks di editor, panggil perintah dengan menggunakan perintah $ PS1=”\!>”.

b. Ubahlah warna shell prompt dengan warna biru dan berkedip.
Jawab:
Membuat tulisan berwarna biru dan berkedip menggunakan 003 sebagai reset all, atribut 5 adalah agar nantinya berkedip, dan 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

Jawab:
p1.sh
p2.sh

p3.sh
Untuk membuat dan mengedit file menggunakan editor, terdapat beberapa perintah yang dapat ditulis seperti nano, vi, dan vim. Namun, disini saya menggunakan perintah vi untuk membuat dan mengedit teks di editor. Untuk memulai ketikan, dengan cara menekan tombol i pada keyboard. Setelah editor ditulis, untuk menyimpan filenya kemudian keluar dengan menekan tombol esc, lalu ketik :wq. Keterangan menggunakan editor vi sebagai berikut:
  • a = masuk ke menu insert / editing. ditandai dengan munculnya tulisan –INSERT– dibagian bawah layar.
  • Esc (Escape) = keluar dari menu edit.
  • :w = Save atau menyimpan hasil editing.
  • :q = Keluar / exit.
  • :wq = Save kemudian keluar.
  • :q! = keluar tanpa save (abaikan perubahan file).
  • /katayangdicari = mencari / search “katayangdicari”.
  • :%s/katalama/katabaru = mengganti semua katalama dengan katabaru.
b. Jalankan script tersebut sebagai berikut dan perhatikan hasilnya:
  • $ ./p1.sh ; ./p3.sh ; ./p2.sh
  • $ ./p1.sh &
  • $ ./p1.sh $ ./p2.sh & ./p3.sh &
  • $ ( ./p1.sh ; ./p3.sh ) &
Jawab:
$ ./p1.sh ; ./p3.sh ; ./p2.sh
Perintah di atas berfungsi untuk menjalankan program p1 kemudian dilanjutkan program p3 dan dilanjutkan program p2.
$ ./p1.sh &
Perintah di atas berguna untuk menjalankan isi file p1.sh yaitu ls –a, serta menjalankannya pada background.

$ ./p1.sh $ ./p2.sh & ./p3.sh &
Ketiga file tersebut akan dijalankan pada background sehingga memiliki pid masing” serta satu perintah yang telah seleasai dieksekusi yaitu file p1.sh yang sebelumnya dijalankan.

$ ( ./p1.sh ; ./p3.sh ) &
Dalam case ini p1 dan p3 akan dijalankan pada satu kesatuan perintah tetapi tetap menghasilkan output dari p1 dan p3. Atau dengan kata lain, perintah ini digunakan untuk menjalankan program p1 dan menjalankan p3 dan kemudian dibungkus di dalam background.

7. Jobs
a. Buat shell-script yang melakukan loop setiap 10 detik, kemudian menyimpan tanggal dan jam pada file hasil.
#!/bin/bash
while [ true ]
do
date >> hasil
sleep 10
done
Jawab:
Untuk membuat dan mengedit file menggunakan editor, terdapat beberapa perintah yang dapat ditulis seperti nano, vi, dan vim. Namun, disini saya menggunakan perintah $ vi untuk membuat dan mengedit teks di editor. Ketika file editor telah berhasil dibuat, maka perintah $ chmod +x loopp.sh digunakan untuk membua file skrip menjadi file executable. Perintah cat digunakan untuk melihat hasil pada loopp.sh, utput hasil dari perintah date akan di belokkan ke dalam file hasil, dan dapat dilihat bahwa setiap 10 detik, program berjalan dengan menyipan tanggal dan jam pada file hasil.

b. Jalankan sebagai background; kemudian jalankan satu program (utilitas find) di background sebagai berikut:
  • $ jobs
  • $ find / -print > files 2>/dev/null &
  • $ jobs
Jawab:
File loopp.sh akan dijalankan pada background, lalu ditambahkan perintah $ find / -print > files 2>/dev/null & yang berguna untuk mencari seluruh file pada direktori / dan hasilnya dibelokkan ke dalam files dan errornya ke /dev/null. Sehingga akan ada 2 jobs yang dijalankan.

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

  • $ fg %1
  • $ bg

Jawab:
Perintah $ fg %1 maksudnya memindahkan program 1 yang ada di backgroundmenjadi berada di foreground. Dan untuk memindahkan kembali ke background, dihentikan dulu dengan Ctrl+Z. Perintah $ bg digunakan untuk mengembalikan proses 1 ke background.

d. Stop program background dengan utilitas kill
  • $ ps x
  • $ kill [Nomor PID]
Jawab:
$ ps x digunakan untuk melihat daftar proses dengan PID. Selanjutnya, $ kill digunakan untuk menghentikan proses sesuai PID. Dan untuk memastikan proses telah dihentikan maka kita perintah jobs. Dan terlihat proses loopp.sh sudah terminated.
Kesimpulan
Berdasarkan percobaan yang telah dilakukan, dapat diambil kesimpulan bahwa shell merupakan suatu program yang dibuat oleh user yang biasanya digunakan untuk memasukkan beberapa perintah secara bersamaan yang menunggu di compile dan akan dijalankan sesuai syntax yang ada dalam bash shell. Dalam penggunaannya, bash shell mempermudah user untuk melakukan pekerjaan, contohnya dengan adanya perintah $ history. $ history memudahkan user untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter. Selain itu, ada pula bash script yang merupakan file yang berisi koleksi program yang dapat dieksekusi. Bash script juga dapat diedit menggunakan editor vi, nano, maupun vim. Dengan adanya editor, user bisa memanfaatkan proses pengeditan program pada satu layar penuh.












Komentar

Postingan populer dari blog ini