Praktikum 5 Bekerja dengan Bash Shell
Fara Aurin
Salsabila
BM 5A
Praktikum 5 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 system 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 mengekseksi 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 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 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 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 :
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 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
Jawab : Profile pada bash shell merupakan profil untuk
setiap pemakai pada home directory
3. Apa yang anda ketahui mengenai file .bashtrc.
Jawab : File .bashrc adalah file yang akan dieksekusi
untuk perpindahan dari satu shell ke shell yang lain melalui instruksi
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 88
5. Cobalah menggunakan editor vi untuk mengetik dan
pahami perintah-perintah yang ada seperti yang terdapat pada dasar 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.
Jawab :
Percobaan 1 : Profile
1. File .bash profil dijalankan pada home direktori
pemakai yang login.File .bash profile adalah hidden file , sehingga untuk
melihatnya digunakan opsi a pada intruksi ls
Analisa : Perintah $ ls -a digunakan untuk menampilkan
seluruh isi directory home termasuk file yang hidden/tersembunyi. Perintah $ more .bash_profile tidak ada filenya,pada
umumnya fiile ini berisi konfigurasi bash shell
2. File .bash_logout akan dieksekusi sesaat
sebelum logout, berfungsi sebagai hose clearing jobs, artinya membersihkan
semuanya , misalnya menghapus temporary file atau job lainnya . melihat file
.bash logout dengan intruksi
$cat .bash logout.
Analisa : Perintah ini digunakan untuk melihat isi .bash_logout
yaitu perintah yang akan tereksekusi setelah kita logout.
Percobaan 2 : Menggunakan Feature History
Bash
1. Bash shell menyimpan “history” perintah yang
digunakan sebelumnya. Anda dapat mengakses history dalam beberapa cara. Cara
paling mudah adalah menggunakan Panah Atas. Maka perintah sebelumnya
akan ditampilkan.
Analisa : Panah atas merupakan perintah untuk
mengetahui history perintah yang digunakan sebelumnya
2. Berikutnya, berikan Bash shell beberapa perintah
untuk diingat. Masukan perintah berikut dan tekan Enter pada setiap
baris.
$ cd
$ ls –l /etc
$ ls –l
$whoami
$who
Analisa :
-
cd digunakan untuk masuk ke directory
-
ls -l /etc digunakan untuk melihat isi
directory etc
-
ls -l digunakan untuk me list isi
directory home
-
who dan whoami digunakan untuk menampilkan
user dan user yang sedang aktif
3. Untuk memeriksa apakah perintah ini
ditambahkan pada history, dapat menggunakan perintah history untuk melihat
semua perintah yang pernah dimasukkan.
$history
Analisa : Perintah history digunakan untuk menampilkan
history input yang pernah kita masukkan ke terminal berupa input keyboard.
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 ataumencarinya. Untuk memilih dan mengeksekusi perintah dengan
nomor,masukkan kunci ! diikuti nomor perintah.
$ !<Nomor Perintah> Contoh :
!780
Analisa : Perintah ini untuk memasukkan input yang sama sesuai nomor yang ditunjuk
5. Anda dapat
mencari perintah dengan menyertakan perintah yang diinginkan. Misalnya
!?etc?! akan menjalankan perintah ls –l /etc yang sebelumnya digunakan.
$ !?etc?
Analisa : perintah
ini untuk mencari perintah yang ada hubungannya dengan etc dan yang pernah kita
gunakan, sedangkan kita pernah menggunakan ls -l /etc maka perintah itupun
berjalan karena kita memanggilnya dengan kata kunci etc
6. Kemudian gunakan perintah history, maka akan terlihat perintahls –l
$ history
Analisa : dari
perintah ini dapat dilihat bahwa kita menginputkan ! ?etc? tetapi yang berada
dalam history adalah ls -l /etc karena yang berjalan adalah program tersebut. !
?etc? bukanlah perintah lain tetapi merpakan pancingan untuk memanggil ls -l
/etc
7. Apabila string tidka ditemukan pada perintha history maka akan terdapat
pesan error.
$ !?wombat99?
Analisa : Terdapat pesan error karena memasukkan kata yang belum pernah
di masukkan ke terminal
8. Jika diketikkan !who maka yang dijalankan adalah perintah who.
Tetapi bila Anda ketikkan !whoa maka yang dijalankan adalah perintah whoami.
$ !who
$ !whoa
Analisa : Perintah diatas sama saja dengan perintah who
, tanda ! hanya untuk jika salah ketik perintah
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^
Analisa : Perintah diatas untuk mencari kata shell
dengan cara membaca /bin/bash
Analisa : Perintah ini untuk mengganti kata shell pada
perintah sebelumnya diganti dengan kata 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
Analisa : Perintah
ini untuk masuk directory
2. Lihat beberapa baris pada file .bash_history dengan
ketik tail .bash_historydan tekan Enter. File ini bukan file yang up to
date.
$ tail .bash_history
Analisa : pada perintah
ini yang ditampilkan adalah perintah terakhir yang kita inputkan sebelum
computer di restart/matikan
3. Ketik history dan tekan Enter. Maka akan terlihat baris terakhir
adalahperintah history dan baris sebelumnya adalahtail .bash_history.
Perintah history bersifat up to date, karena disimpan pada memory sistem.
$ history
Analisa : Perintah history
digunakan untuk menampilkan history input yang pernah di masukkan ke terminal
berupa input keyboard
4. Ketik perintah berikut
$ echo ‘Ini perintah saya’
Analisa : Perintah
ini untuk menulis “ini perintah saya”
5. Log out dan log in kembali sebagai user yang
sama. Ketik history dan tekan Enter. Maka perintahecho ’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
Analisa : Perintah history
digunakan untuk menampilkan history input yang pernah di masukkan ke terminal
berupa input keyboard
Analisa : Perintah
echo “ini perintah saya” jug masuk tails .bash_history
6. Ketik history|less untuk melihat perintah history
terakhir pada screen. Tekan spacebar untuk melihat file lebih banyak.
Untuk keluar tekan q
$ history|less
Analisa : Perintah ini
sama saja dengan perintah melihat history
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
Analisa : Perintah
ini digunakan untuk menampilkan jumlah perintah history pada file
8. Output menunjukkan bahwa 1000 perintah history
disimpan pada file history. Untuk melihat jangkauan (limit) perintah
history digunakan variabelHISTSIZE. Untuk melihat jangkauan history ketik
sebagai berikut
$ set|grep HISTSIZE
Analisa : Perintah ini digunakan untuk
melihat jangkauan(limit) atau kuota perintah history yang dapat disimpan bash
9.
Bila ingin memperbesar
jangkauan file history, maka ubahlah variabelHISTSIZE pada skrip startup yang
disebut .bashrc pada home directory.
$ echo ‘HISTSIZE=5000’ >> .bashrc
Analisa : Perintah ini untuk memperbesar
limit penyimpanan perintah pada history dari 1000 menjadi 5000
10.
Log out dan log in kembali
sebagai user yang sama. Lihat perubahanvariabel HISTSIZE.
$ set|grep HISTSIZE
Analisa
: Terlihat telah berhasil mengubah HISTSIZE dari 1000 menjadi 5000
11. Ketikkan
perintah history beberapa kali, maka perintah ini akan disimpan pada BASH
history meskipun yang diketikkan perintahnya sama.
Analisa
: Perintah ini bertujuan agar perintah history yang di masukkan hanya disimpan
dalam bash
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
Analisa : Perintah ini digunakan
untuk melakukan konfigurasi bash agar tidak menambha perintah ke history jika
perintah yang diketikkan sama dengan sebelumnya.
13. Log out
dan log in kembali sebagai user yang sama. Ketikkan history beberapa kali
dan perhatikan berapa kali history muncul.
Analisa : Dari perintah history yang di masukkan hanya tersimpan satu
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:’
Analisa : Perintah
ini digunakan untuk mengganti promp dari test@test virtualBox: menjadi waktu
2. Untuk menampilkan format 12 jam dengan indikator am
dan pm ketiksebagai berikut :
$ PS1=’\t:’
Analisa : Pada perintah ini yang di input
dengan outputnya sama
3.
Kebanyakan orang
menginginkan prompt Bash menampilkancurrent 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:’
Analisa : Perintah ini berfungsi untuk
menampilkan promp bash
4. Ketik cd /usr/sbin untuk melihat prompt /usr/sbin:
$ cd /usr/sbin
Analisa : Perintah
ini berfungsi untuk melihat prompt /usr/sbin
5.
Ketik PS1=’\W:’ untuk
melihat prompt sbin:
$ PS1=’\W:’
Analisa : Perintah
ini berfungsi untuk melihat 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>’
Analisa : Pada perintah ini, tanda > menandakan
bahwa itu adalah PS2
7. Anda dapat mengubah prompt PS2 seperti mengubah
prompt PS1. Ketik perintah berikut:
$ PS2=’Selesai memasukkan perintah Anda:’
Analisa : Perintah
ini berfungsi untuk mengubah PS2 menjadi ‘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 ’HelloSelesai memasukkan perintah Anda:’
Analisa : dapat
dilihat bahwa PS2 yang awalnya tanda ‘>’ menjadi ‘selesai memasukkan
perintah anda’
9. Prompt BASH dapat ditampilkan berwarna dengan melakukan setting
color-setting 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’
Analisa : Perintah diatas dimaksudkan untuk mengganti warna
prompt bash.
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.
Analisa : Perintah diatas dimaksudkan untuk mengganti warna
prompt bash.
11. Bila menginginkan beberapa warna, ketikkan perintah
berikut :
$ PS1=’\033[0;31m\w\033[0;32m\$ \033[0;37m’
Analisa : Perintah diatas dimaksudkan untuk mengganti warna
prompt bash.
12. Anda bisa menampilkan atribut visual seperti lebih
terang, berkedip danwarna 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’
Analisa : Perintah
ini untuk mengganti atribut dengan huruf l dengan maksud membuat warna menjadi
lebih terang.
13. Untuk menampilkan prompt dengan warna berkebalikan,
atribut controldiganti 7, seperti perintah berikut :
$ PS1=’\033[7;34m\w\033[7;32m\$ \033[0;37m’
Analisa : Perintah
ini untuk mengganti atribut dengan angka 7, dengan maksud membuat warna
kebalikkan
14. Untuk menampilkan prompt berkedip, atribut control
diganti 5, sepertiperintah berikut :
Analisa : Perintah ini
untuk mengganti atribut dengan angka 5 agar prompt berkedip
Percobaan 5 : Menambahkan Otomatisasi ke
Prompt Shell
1. Pastikan Anda berada di home directory
$ cd ~
Analisa : Perintah $ cd berfungsi untuk masuk ke
direktori 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
Analisa : Perintah diatas untuk membuat file lalu
mengurutkan yang saya tuliskan dengan echo
3.
Buatlah file skrip diatas
menjadi file executable
$ chmod +x sorter
Analisa : Perintah diatas dimaksudkan agar file sorter dapat
di jalankan di linux
4. Jalankan program sorter diatas setiap shell Bash
menampilkan prompt PS1. Untuk melakukannya, buatlah
variablePROMPT_COMMAND dimananilainya adalah nama dari program sorter.
$ PROMPT_COMMAND=~/sorter
Analisa : Untuk menjalankan program sorter diatas setiap
shell Bash menampilkan prompt PS1
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
Analisa : Percobaan ini dimaksudkan untuk memasukkan john smith:13001 kedalam file list.
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
Analisa : Perintah diatas digunakan untuk melihat isi file
list yang telah di buat.
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
Analisa : Perintah diatas dimaksudkan kita
memasukkan nama-nama tersebut kedalam file
list. Sedangkan
perintah cat list untuk menampilkan isi file list secara urut sesuai urutan
abjad.
8. Apabila Anda tidak menginginkan Shell Bash
menampilkan file terurutsepanjang 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=
Analisa : Untuk
menghentikan program sorter.
Percobaan 6 : Membuat Bash-Script dan
Menjelaskannya
1. Membuat file p1.sh
$ vi p1.sh
echo “Program bash Script”
Analisa :
· Pertama
kita membuat file p1.sh
· Untuk
mengetik tekan huruf i
· Masukkan echo
“Program Bash Script”
· Untuk
keluar tekan esc, lalu tekan ; dan mengetik wq! lalu enter
2. Mengubah program menjadi executable
$ ls – l p1.sh
$ chmod +x p1.sh
$ ls –l p1.sh
Analisa :
· Perintah $
ls – l p1.sh berfungsi untuk menampilkan file p1.sh
· Perintah $
chmod +x p1.sh dimaksudkan agar file p1.sh dapat dijalankan di linux.
3. Menjalankan script
$ bash p1.sh
$sh p1.sh
$ . p1.sh
$ ./p1.sh
Analisa : Perintah bash, sh, ., dan ./ berfungsi
untuk menjalankan file .sh
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 : Menambahkan !/bin/bash pada
file p1.sh berfungsi diakhir kali kita mengeksekusinya dengan cat dia akan
menampilkan,
{#!/bin/bash
echo “Program bash script”}
5. Buatlah file p2.sh
$ vi p2.sh
#!/bin/bash
echo “Program 2 bash script”
Analisa
: Membuat file p2.sh dan memasukkan perintah sesuai dengan perintah diatas
dengan cara yang sama dengan ketika kita membuat file p1.sh
6. Menjalankan beberapa program shell dalam satu baris
instruksi yang dipisahkan dengan tanda ;
$ cat p1.sh ; cat p2.sh
$ ./p1.sh ; ./p2.sh
Analisa
: Menjalankan 2 program sekaligus dengan memberi tanda ;
Percobaan 7 : Job Control
1. Proses foreground
$ ps x
Analisa : Perintah diatas berfungsi untuk menampilkan proses
pada foreground.
2. Proses background
$ ps x > hasil &
Analisa : Perintah diatas berfungsi untuk menampilkan jumlah
proses yang sedang berjalan.
3. Setiap job mempunyai PID yang tunggal (unique).
Untuk melihat jobs yang aktif
$ jobs
Analisa : Perintah diatas berfungsi untuk melihat jobs yang
aktif.
4. Buatlah file ploop.sh. File ini tidak akan pernah
berhenti kecuali ditekan Ctrl-C
$ vi ploop.sh
#!/bin/bash
while [ true ]
do
sleep 10
echo “Hallo”
done
Analisa :
· Pertama kita membuat
file p1oop.sh. Untuk mengetik tekan huruf i, Kemudian
masukkan echo “Program Bash Script”. Untuk keluar tekan esc,
lalu tekan ; dan mengetik wq! lalu enter
untuk menyimpannya.
· Mengisikan
program di dalam file plop.sh
· Arti dari program
tersebut ialah, setiap 10 detik maka di terminal akan mencetak “Hallo”. Program
dapat dihentikan dengan menekan CTRL + C.
5. Buatlah file ploop.sh menjadi executable. Jalankan
program, akan ditampilkan kataHallo setiap 10 detik. Untuk keluar program,
tekan Ctrl-C (^C)
$ chmod +x ploop.sh
$ ./ploop.sh
Analisa :
· Perintah $ chmod +x ploop.sh
artinya membuat program plop.sh dapat dijalankan dengan linux di
terminal.
· Perintah ./ploop.sh berfungsi
untuk menjalankan program.
Percobaan 8 : Manipulasi Stack untuk
Direktori
1. Instruksi dirs digunakan untuk melihat stack direktori, pada output
hanyaditampilkan direktori home ~
$ dirs.
Analisa : Perintah diatas berfungsi untuk melihat stack
directory dan menampilkan directory home ~.
2. Membuat 3 buah direktori
$ mkdir marketing sales support
Analisa : Perintah diatas berfungsi untuk membuat directory
marketing, sales, support, secara bersama-sama.
3. Instruksi dirs digunakan untuk melihat stack direktori, pada output
hanyaditampilkan direktori home ~
$ dirs.
Analisa : Perintah diatas
berfungsi untuk melihat stack directory dan menampilkan directory home ~.
Percobaan 9 : Alias
1. Alias adalah mekanisme untuk memberi nama alias
pada satu atau sekelompokinstruksi. Untuk melihat alias yang sudah terdaftar
pada system :
$ alias
Analisa : Perintah diatas berfungsi untuk menampilkan
perintah alias yang sudah ada pada system (default).
2. Membuat beberapa alias
$ alias del=‟rm –i‟
$ alias h=‟history‟
Analisa :
· Perintah $
alias del=‟rm –i‟ artinya menyamakan del sama dengan rm –i.
· Perintah $
alias h=‟history‟ artinya menyamakan h sama dengan history.
3. Gunakan instruksi hasil alias
$ ls
$ del hasil
$ h | more
Analisa :
· Perintah
ls berfungsi untuk melihat direktori.
· Perintah
del berfungsi untuk menghapus direktori hasil.
· Perintah
h | more berfungsi untuk melihat history dengan perintah h (dapat dilakukan
sebab tadi menggunakan alias).
4. Untuk menghapus alias gunakan instruksi unalias
$ unalias del
$ del files (Terdapat Pesan Kesalahan, mengapa ?)
Analisa :
· Perintah
unalias del berfungsi untuk menghapus perintah del.
· Terdapat
pesan error sebab tadi kita sudah menghapus perintah del.
LATIHAN
1. Eksekusi seluruh profile yang ada :
a. Edit
file profile /etc/profile dan tampilkan pesan sebagai berikut :
echo ‟Profile dari /etc/profile‟
Analisa :
· Pertama
buka file /etc/profile dengan perintah $ sudo nano
/etc/profile
· Lalu
tambahkan echo “profile dari /etc/profile”
· Simpan
dengan gunakan CTRL+X, tekan Y, kemudian enter.
· Gunakan
perintah su - <user> untuk melihat file berhasil 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
Analisa : Untuk edit profile nya, langkah-langkah
nya sama seperti 1a.
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”
/home/student/.bash_profile
Analisa : Untuk edit profile nya, langkah-langkah
nya sama seperti 1a.
d. Lakukan hal yang sama untuk file
lainnya, sesuaikan tampilan dengan nama file yang bersangkutan.
/home/. student/.bash_login
/home/student/.profile
/home/student/.bashrc
Analisa :
· Fungsi
dari setiap file yang kita edit akan muncul pada waktu tertentu
· Saat
mulai session bash akan muncul
· Saat
login akan muncul
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.
Analisa : Pada perintah pertama proses keluar melalui root,
sedangkanpada perintah kedua keluar dari proses tanpa melalui root.
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
Analisa : Setelah menulis sesuai perintah diatas, lalu di cek
dengan login kemudian exit. Hasilnya sesuai dengan gambar yang diperintahkan.
b. Edit
file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelum
eksekusi logout
Analisa :
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
$ h
Analisa : Pada perintah ini history akan terlihat 20 yang
kita jalankan karena perintah HISTSIZE=20.
b. Gunakan
fasilitas history dengan mengedit instruksi baris ke 5 dari instruksi yang
terakhir dilakukan.
$ !-5
Analisa : Arti dari perintah diatas ialah menjalankan
perintah kelima dari akhir pada history.
c. Ulangi
instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasi pada history
buffer
$ !!
Analisa : Perintah diatas berfungsi untuk menjalankan
perintah yang terakhir dijalankan.
d. Ulangi
instruksi pada history buffer nomor tertentu, misalnya nomor 150
$ !150
Analisa : Perintah diatas berfungsi untuk menjalankan
perintah sesuai nomor history.
e. Ulangi
instruksi dengan prefix “ls”
$ “ls”
$ !?ls?
Jelaskan perbedaan instruksi diatas
Analisa :
· Pada
perintah !ls menjalankan perintah yang mengandung ls saja.
· Perintah $!?ls? menjalakan
perintah yang mengandung ls dengan pilihan option.
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 >”
Analisa : Intruksi export diperlukan dengan parameter nama
variable tersebut agar perubahan variable PS1 dikenal semua shell.
b. Ubahlah warna shell
prompt dengan warna biru dan berkedip.
Analisa :
· Untuk
membuat tulisan berwarna biru gunakan kode 34m
· Agar
tulisan dapat berkedip tambahkan atribut 5
· 033
berfungsi untuk reset all
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
Tampilan untuk p1.sh
Tampilan untuk p2.sh
Tampilan untuk p3.sh
Analisa : Perintah vi di gunakan
untuk membuat file, tekan i untuk
mengetik. Jika sudah selesai tekan esc untuk
mengakhiri dan :wq untuk keluar dan di save.
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 ) &
$ ./p1.sh ; ./p3.sh ; ./p2.sh
Analisa :
· Perintah $
./p1.sh ; ./p3.sh ; ./p2.sh artinya perintah diatas berfungsi untuk
menjalankan program p1 kemudian dilanjutkan program p3 dan dilanjutkan program
p2.
· Perintah $
./p1.sh & artinya perintah diatas untuk menjalankan program p1 dan
jika berhasil maka akan menjalankan p1 lagi
· Perintah $
./p1.sh $ ./p2.sh & ./p3.sh & artinya perintah diatas akan
menjalankan program p2 dalam background dan jika berhasil maka akan menjalankan
program p3 didalam background.
· Perintah $
( ./p1.sh ; ./p3.sh ) & artinya perintah ini menjalankan program p1
dan menjalankan p3 dan kemudian dibungkus didalam background
7. Jobs
a. Buat
shell- script yang melakukan loop dengan nama pwaktu.sh, setiap 10 detik,
kemudian menyimpan tanggal dan jam pada file hasil.
#!/bin/bash
while [ true ]
do
date >> hasil
sleep 10
done
Analisa : Perintah vi di gunakan
untuk membuat file, tekan i untuk
mengetik. Jika sudah selesai tekan esc untuk
mengakhiri dan :wq untuk keluar dan di save. Aktifkan file dengan chmod +x
namafile.sh
b. Jalankan sebagai background;
kemudian jalankan satu program (utilitas find) di background sebagai berikut :
$ jobs
$ find / -print > files 2>/dev/null &
$ jobs
Analisa : Setelah kita menjalankan find terlihat di jobs yang
berjalan ada 2 proses.
c. Jadikan program ke 1 sebagai
foreground, tekan ^Z dan kembalikan program tersebut ke background.
$ fg %1
$ bg
Analisa : Perintah fg %1 artinya memindahkan
program 1 yang ada di background menjadi berada di foreground. Untuk
memindahkan kembali ke background, hentikan dengan Ctrl+Z. Perintah bg
digunakan untuk mengembalikan proses 1 ke background.
d. Stop
program background dengan utilitas kill
$ ps x
$ kill [Nomor PID]
Analisa : Perintah ps x berfungsi untuk melihat daftar proses dengan PID
· Perintah kill digunakan
untuk menghentikan proses sesuai PID. Untuk memastikan proses telah dihentikan,
gunakan perintah jobs. Terlihat proses sudah ter-terminated.
KESIMPULAN
1. History untuk melihat semua perintah yang pernah
dijalankan sebelumnya.
2. Mengakses file bash tidak bisa sebagai user biasa. Bisa
sebagai root dengan menambahkan ‘sudo’ di awal perintah
3. Penggunaan
bash dan pemrograman shell pada linux dapat membuat script shell yang
nantinya akan berjalan secara otomatis yang membuat kerja kita lebih efisien
dan cepat
Referensi :
https://elib.unikom.ac.id/files/disk1/390/jbptunikompp-gdl-andisugand-19457-7-pertemua-7.pdf
Komentar
Posting Komentar