PRAKTIKUM 5-B BEKERJA DENGAN BASH SHELL

NAMA : FATIA YASMIN HENDRY

KELAS : BM-5A

NIM : 2023000032

M.K : SISTEM OPERASI



BEKERJA DENGAN BASH SHELL

  • Pokok Bahasan

  1. History pada Bash Shell
  2. Membuat Bash Shell Script

  • Tujuan Belajar

  1. Memahami shell pada sistem operasi Linux
  2. Menggunakan feature history pada Bash Shell
  3. Mengubah feature history pada Bash Shell
  4. Mengubah prompt shell
  5. Melakukan konfigurasi Bash Shell untuk menjalankan skrip secara otomatis
  6. Membuat dan mengeksekusi shell script sederhana melalui editor vi
  7. Memahami job control
  8. Memahami stack
  9. Menggunakan alias.

  • Abstrak

        Bash Shell adalah salah satu lingkungan baris perintah yang paling umum digunakan dalam sistem operasi berbasis Unix dan Linux. Bash Shell memungkinkan pengguna untuk berinteraksi dengan sistem operasi dan melakukan berbagai tugas, seperti menjalankan perintah, mengelola file, mengotomatisasi tugas, dan banyak lagi. Abstrak ini akan membahas beberapa aspek utama dari bekerja dengan Bash Shell.

1. Pengenalan Bash Shell : Bash adalah singkatan dari "Bourne Again Shell" dan merupakan penerus dari shell asli Unix yang dikenal sebagai Bourne Shell. Ini adalah lingkungan baris perintah yang kuat dan fleksibel.

2. Perintah Dasar Bash : Penggunaan Bash dimulai dengan memahami perintah dasar seperti `ls` (untuk daftar direktori), `cd` (untuk berpindah direktori), `mkdir` (untuk membuat direktori), `rm` (untuk menghapus file), dan lainnya.

3. Variabel dan Lingkungan : Bash memungkinkan pengguna untuk mendefinisikan dan menggunakan variabel serta mengatur lingkungan mereka. Ini penting untuk mengotomatisasi tugas dengan skrip Bash.

4. Skrip Bash : Dengan menggunakan Bash, pengguna dapat membuat skrip (file dengan ekstensi `.sh`) untuk mengotomatisasi tugas-tugas yang kompleks. Skrip ini dapat mengandung rangkaian perintah yang dieksekusi secara berurutan.

5. Pipes dan Redirection : Bash mendukung penggunaan pipe (`|`) untuk mengalirkan keluaran satu perintah ke masukan perintah lainnya. Redireksi juga memungkinkan pengguna untuk mengarahkan keluaran atau masukan perintah ke atau dari file.

6. Manajemen Proses : Bash memungkinkan pengguna untuk mengelola proses, seperti menjalankan perintah dalam latar belakang, menghentikan proses yang sedang berjalan, dan melihat daftar proses yang sedang berjalan.

7. Eksekusi Perintah dengan Izin Root Beberapa perintah Bash memerlukan izin superuser (root). Pengguna perlu berhati-hati saat menggunakan perintah ini, karena kesalahan dapat menyebabkan kerusakan sistem.

8. Pengayaan Bash : Ada banyak alat pihak ketiga dan pengaya Bash yang dapat digunakan untuk meningkatkan fungsionalitas Bash Shell, seperti `oh-my-zsh` untuk mengatur tampilan shell Anda atau `bash-completion` untuk penyelesaian otomatis perintah.

  • Teori Singkat

       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 sebe lum 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

Pinda h 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 kunci- kunci lain, maka kita harus menekan tombol Esc terlebih dahulu.

I

Menyisip kan teks (di sebelah kiri posisi kursor)

A

Menyisipkan teks (di sebelah kanan posisi kursor)

I

(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 k ursor)

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


  • Percobaan

          Percobaan 6 : Membuat Bash-script dan menjalankannya

1. Membuat file p1.sh

$ vi p1.sh
echo “Program bash Script”

Analisa : Instruksi  tersebut  digunakan  untuk  membuat  file  p1.sh  dengan  isi  ‘program bash script’, sebelumnya untuk menginput sebuah kalimat gunakan perintah i (insert),  jika  sudah  selesai  tekan  esc  pada  keyboard,  ketik  :wq  (write  dan quit).

2. Mengubah program menjadi executable

$ ls –l p1.sh
$ chmod +x p1.sh
$ ls –l p1.sh

Analisa : Instruksi  diatas  digunakan  untuk  mengubah  program  semula  menjadi executable.

3. Menjalankan script

$ bash p1.sh
$ sh p1.sh
$ . p1.sh
$ ./p1.sh

Analisa : Perintah-perintah diatas adalah perintah untuk menjalankan script yang telah dibuat sebelumnya.

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”

Analisa : #!/bin/bash merupakan  konversi  dalam  pembuatan  script  shell. Konversi tersebut selalu ada saat melakukan penginputan.

5. Buatlah file p2.sh

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

Analisa : Diatas  merupakan  instruksi  untuk  membuat  file  dengan  nama  p2.sh, tahapannya  sama  seperti  instruksi  sebelumnya  yaitu  terlebih  dahulu menggunakan instruksi ‘vi’.

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

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

Analisa : Instruksi  diatas  digunakan  untuk  menjalankan  beberapa  script  yang  telah diinput sebelumnya dengan pemisahan tanda menggunakan ( ; ).

          Percobaan 7 : Job Control

1. Proses foreground

$ ps x

Analisa : Instruksi  diatas  yaitu  untuk  menampilkan  isi  file  yang  berada  pada foreground.

2. Proses background

$ ps x > hasil &

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

$ jobs

Analisa 2 & 3 : Instruksi  diatas  digunakan  untuk  melihat  jumlah  job  yang  sedang  berjalan (prosesnya pada background).

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

Analisa : Instruksi  diatas  digunakan  untuk  menampilkan  kata  ‘Hallo’  yang  akan muncul  setiap  10  detik  (  sleep  =  10  ).  Gunakan  perintah  Ctrl+C  untuk berhenti.

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

Analisa : Untuk  hasilnya  sama  seperti  perintah  sebelumnya  yaitu  menampilkan  kata ‘Hallo’ setiap 10 detik

          Percobaan 8 : Manipulasi stack untuk Direktori

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

$ dirs


Analisa : Instruksi diatas digunakan untuk melihat stack direktori.

2. Membuat 3 buah direktori

$ mkdir marketing sales support

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

$ dirs

4. Membuat 3 buah direktori

Analisa 2, 3 & 4 : Instruksi diatas digunakan untuk melihat stack direktori, kemudian kita akan membuat 3 buah direktori yaitu marketing, sales dan support. Ketika perintah ls untuk melihat file yang digunakan.

          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

Analisa : Intruksi  diatas  digunakan  untuk  memberi  nama  pengganti  yang  sama  agar pada proses pemanggilannya menggunakan kata yang mudah dan cepat.

2. Membuat beberapa alias

$ alias del=’rm –i’
$ alias h=’history’

3. Gunakan instruksi hasil alias

$ ls
$ del hasil
$ h | more

Analisa 2 & 3 : Instruksi  diatas  digunakan  untuk  membuat  alias  dari  rm  –i  dan  history. Kemudian gunakan instruksi yang telah menggunakan alias tadi, coba hapus file  hasil,  maka  muncul  pertanyaan  untuk  menghapus  yaitu  ya  atau  tidak. Kemudian lihat history dari instruksi yang digunakan terakhir.

4. Untuk menghapus alias gunakan instruksi unalias

$ unalias del
$ del files (Terdapat Pesan Kesalahan, mengapa ?)

Analisa : Instruksi diatas  digunakan  untuk  menghapus alias  yang telah dibuat  dengan unalias. Karena file yang dimaksud tidak ada, maka muncul pesan error.

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

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.

-/home/student/.bash_profile

-/home/. student/.bash_login

-/home/student/.profile

-/home/student/.bashrc

Analisa : Instruksi diatas digunakan untuk menampilkan sebuah kalimat yang telah diinput sebelumnya
Gunakan  perintah  diatas  dengan  menggunakan  eksekusi  yang  telah ditentukan. Pengeditan dilakukan pada user  (rita)

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.
Jawaban :
Analisa : Instruksi  tersebut  digunakan  untuk  menjalankan  instruksi  subtitle  dari  user rita,  maka  akan  muncul  untuk  memasukkan  password,  ketik  exit,  maka muncul perintah exit untuk keluar.
Perintah  kedua  menggunakan  tanda  ‘-‘,  saat  mengetikkan  exit  maka  yang muncul adalah logout. Perbedaan  antara  perintah ke  1  dan  kedua yaitu saat  proses keluar  ada kata exit dan 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
b. Edit file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelum eksekusi logout
Jawaban :
Analisa : Instruksi  tersebut  yaitu  untuk  menampilkan  kalimat  logout  (keluar) dengan  menggunakan  kalimat  ‘Terimakasih  atas  sesi  yang  diberikan”. Yang akan muncul setiap 5 detik.
Sama  untuk  menampilkan  dengan  kalimat  yang  sama,  hanya  saja  akan muncul setiap 4 detik.

4. History
a. Ganti nilai HISTSIZE dari 1000 menjadi 20
$ HISTSIZE=20
$ h
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
$ !!
d. Ulaingi instruksi pada history buffer nomor tertentu, misalnya nomor 150
$ !150
e. Ulangi instruksi dengan prefix “ls”
$ !ls
$ !?ls?
Jelaskan perbedaan instruksi diatas
Jawaban :
Analisa : Instruksi  tersebut  digunakan  untuk  merubah  HISTSIZE  dari  1000 menjadi 20. Coba lihat dengan history (alias = h).
Instruksi tersebur digunakan untuk menampilkan histori dengan mengedit intruksi baris ke 5 dari intruksi yang terakhir dilakukan.
Karena  instruksi  terakhir  saya  menggunakan  instruksi  history,  maka gunakan instruksi ‘!!’ untuk mengulangi perintah terakhir. 
Berguna untuk mengulangi instruksi pada history buffer nomor tertentu.
Digunakan untuk mengulangi instruksi terakhir, antara !ls dan !?ls? tidak ada perbedaan.

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 >”
b. Ubahlah warna shell prompt dengan warna biru dan berkedip.
Jawaban :
Analisa : Digunakan untuk menampilkan instruksi-instruksi yang terkait mulai waktu, user dengan menggunakan prompt bash disertai tanda >.
Digunakan untuk membuat warna shell berkedip dengan warna biru (34).

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
$ ./p1.sh &
$ ./p1.sh $ ./p2.sh & ./p3.sh &
$ ( ./p1.sh ; ./p3.sh ) &
Jawaban :
Analisa : Buat  3  buah  script  seperti  diatas,  kemudian  input  beberapa  file  yang nantinya akan  menampilkan isi file secara keseluruhan,  siapa user yang aktif. 
Instruksi-intruksi  diatas  merupakan  instruksi  yang  digunakan  untuk menjalankan  script  yang  telah  diinput  sebelumnya.  Tetapi  hasil  disini menujukan syntax error.

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
c. Jadikan program ke 1 sebagai foreground, tekan ^Z dan kembalikan program
tersebut ke background
$ fg %1
$ bg
d. Stop program background dengan utilitas kill
$ ps x
$ kill [Nomor PID]
Jawaban :
Analisa : Buat  terlebih  dahulu  program  pwaktu.sh,  kemudian  lakukan  pengeditan dengan pengulangan while do, akan terus berulang jika bernilai benar.
Instruksi  diatas  digunakan  untuk  melihat  dan  mencari  string  pada background.
Digunakan untuk  menjadikan program 1 menjadi foreground dengan fg %1, kemudian kembali ke background lagi.

  • Kesimpulan
           Setelah Mempraktekkan Bash Shell, dapat disimpulkan bahwa :

  1. Shell atau Command executive merupakan program yang menunggu instruksi dari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut.
  2. Warna prompt dapat dirubah-rubah sesuai keinginan kita

          Mengetahui penjelasan dari history yaitu catatan dari semua instruksi yang sejauh ini telah dilakukan.

          Dengan kata lain kita dapat menggunakan perintah – perintah diatas dan dilakukan melalui konfigurasi Bash Shell untuk menjalankan skrip secara otomatis, mengubah warna prompt dan dengan perintah history kita dapat melihat perintah-perintah yang telah disimpan dan dibuat sebelumnya.

  • Daftar Pustaka/Referensi

Comments

Popular posts from this blog

PRAKTIKUM 7 UNIX SYSTEM CALL & MANAJEMEN MEMORI

PRAKTIKUM 8 SISTEM FILE

PRAKTIKUM MANAJEMEN APLIKASI