SlideShare a Scribd company logo
45
Praktikum 5-B
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:
ü Memahamishell pada sistem operasi Linux.
ü Menggunakan feature history pada Bash Shell.
ü Mengubah feature history pada Bash Shell.
ü Mengubah prompt shell.
ü Melakukan konfigurasi Bash Shell untuk menjalankan skrip secara otomatis.
ü Membuat dan mengeksekusi shell script sederhana melalui editor vi.
ü Memahami job control.
ü Memahami stack.
ü Menggunakan alias.
DASAR TEORI:
1 SHELL
Shell adalah Command executive, artinya program yang menunggu instruksi
dari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi
perintah tersebut. Shell ditandai dengan prompt. Untuk pemakai menggunakan prompt
$ dan untuk superuser menggunakan promp #.
Beberapa macam shell :
• /bin/sh
Bourne shell, dirancang oleh Steve Bourne dari AT&T
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 46
• /bin/csh
Dikembangkan oleh UNIX Berkeley yang dikenal dengan C-Shell
• /bin/bash
Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell.
Perbedaan mendasar antara Shell diatasi hampir tidak ada, kecuali pada fasilitas
pemrograman dan editing.
2 PROFILE
Pada saat login, program akan menjalankan beberapa program yaitu :
1. /etc/profile
Berisi shell script yang berlaku untuk seluruh pengguna Linux.
2. Profil untuk setiap pemakai
Pada home directory, login pertama kali akan memeriksa file .bash_profile . Bila
tidak ada, maka file .bash_login akan dicari. Bila .bash_login tidak ada, maka
dicari file bernama .profile.
3. .bashrc
File ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui
instruksi su.
4. .bash_logout
Pada saat logout, maka bash akan mencari file .bash_logout. Bila ada, file tersebut
akan dieksekusi sebelum logout
Isi dari /etc/profile:
# System wide environment and startup programs
# Functions and aliases go in /etc/bashrc
PATH=”$PATH:/usr/X11R6/bin”
PS1=”[u@h W]$ “
umask 022
USER=’id –un’
LOGNAME=$USER
MAIL=”/var/spool/mail/$USER”
HOSTNAME=’/bin/hostname’
HISTSIZE=1000
HISTFILESIZE=1000
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 47
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.
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 48
6 EDITOR vi
Vi adalah full screen editor, artinya editor tersebut dapat memanfaatkan fasilitas
satu layar penuh. Vi mempunyai 2 buah modus, yaitu :
• Command line
Editor vi mengintepretasikan input sebagai instruksi untuk dieksekusi oleh editor, contoh seperti mencari teks, mengganti teks
secara otomatis dan lainnya.
• Editing
Editor vi mengintepretasikan input sebagai teks yang akan dimasukkan ke dalam buffer editor. Pada bagian bawah layar akan
tampil teks “INSERTING”.
Pada awal vi dijalankan, maka program memasuki command mode. Dengan
menekan tombol “i” maka akan memasuki editing. Untuk kembali ke command mode,
tekan tombol Esc.
Kunci-kunci teks editor vi dapat dilihat pada tabel sebagai berikut :
Kunci Keterangan
H Pindah kursor ke kiri satu karakter
J Pindah kursor ke kanan satu karakter
K Pindah kursor ke atas
L Pindah kursor ke bawah
O Menyisipkan teks (satu baris
setelah posisi kursor)
I Menyisipkan 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)
Untuk keluar dari 5 model
kunci insert di samping ini
dan mengaktifkan kunci-
kunci lain, maka kita harus
menekan tombol Esc
terlebih dahulu.
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 49
X Menghapus 1 huruf (di sebelah kanan posisi kursor)
Dw Manghapus 1 kata (di sebelah kanan posisi kursor)
Dd Menghapus 1 baris (di sebelah kanan posisi kursor)
Yy Mengkopi 1 baris
2yy Mengkopi 2 baris
P (Paste) Menampilkan baris kalimat yang sudah dikopi dengan
kunci yy
Cw Mengganti 1 kata yang telah ditulis di sebelah kanan posisi kursor
dengan kata lain
Cc Mengganti 1 baris kalimat yang telah ditulis di sebelah kanan
posisi kursor dengan kalimat lain
ctrl-b Mundur satu layar
ctrl-f Maju satu layar
ctrl-d Maju setengah layar
B Menggerakkan kursor ke kiri satu kata
W Manggerakkan kursor ke kanan satu kata
^ Pergi ke awal baris
$ Pergi ke akhir baris
U Membatalkan perintah yang terakhir kali
U Membatalkan seluruh perubahan teks pada baris tempat kursor
berada
:! Keluar untuk sementara dari editor vi dan menjalankan perintah
yang lain
:wq Write dan quite, simpan berkas dan keluar
:q! Keluar vi tanpa menyimpan
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 50
: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 6 :Membuat Bash-script dan menjalankannya
1. Membuat file p1.sh
$ vi p1.sh
echo “Program bash Script”
2. Mengubah program menjadi executable
$ ls –l p1.sh
$ chmod +x p1.sh
$ ls –l p1.sh
3. Menjalankan script
$ bash p1.sh
$ sh p1.sh
$ . p1.sh
$ ./p1.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”
5. Buatlah file p2.sh
$ vi p2.sh
#!/bin/bash
echo “Program 2 bash script”
6. Menjalankan beberapa program shell dalam satu baris instruksi yang
dipisahkan dengan tanda ;
$ cat p1.sh ; cat p2.sh
$ ./p1.sh ; ./p2.sh
5. Menjalankan script sebagai prosees background, sehingga prompt tidak
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 51
Percobaan 7 : Job Control
1. Proses foreground
$ ps x
2. Proses background
$ ps x > hasil &
3. Setiap job mempunyai PID yang tunggal (unique). Untuk melihat jobs yang
aktif
$ jobs
4. Buatlah file ploop.sh. File ini tidak akan pernah berhenti kecuali ditekan
Ctrl-C
$ vi ploop.sh
#!/bin/bash
while [ true ]
do
sleep 10
echo “Hallo”
done
5. Buatlah file ploop.sh menjadi executable. Jalankan program, akan
ditampilkan kata Hallo setiap 10 detik. Untuk keluar program, tekan Ctrl-C
(^C)
$ chmod +x ploop.sh
$ ./ploop.sh
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 52
Percobaan 8 : Manipulasi stack untuk Direktori
1. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya
ditampilkan direktori home ~
$ dirs
2. Membuat 3 buah direktori
$ mkdir marketing sales support
3. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya
ditampilkan direktori home ~
$ dirs
4. Membuat 3 buah direktori
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 53
Percobaan 9 : Alias
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 54
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.
2. Jalankan instruksi subtitute user, kemudian keluar dengan perintah exit sebagai
berikut :
$ su student
1. Alias adalah mekanisme untuk memberi nama alias pada satu atau sekelompok
instruksi. Untuk melihat alias yang sudah terdaftar pada system :
$ alias
2. Membuat beberapa alias
$ alias del=’rm –i’
$ alias h=’history’
3. Gunakan instruksi hasil alias
$ ls
$ del hasil
$ h | more
4. Untuk menghapus alias gunakan instruksi unalias
$ unalias del
$ del files (Terdapat Pesan Kesalahan, mengapa ?)
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 55
$ exit
kemudian gunakan opsi – sebagai berikut :
$ su – student
$ exit
Jelaskan perbedaan kedua utilitas tersebut.
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
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
5. Prompt String (PS)
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 56
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 >”
b. Ubahlah warna shell prompt dengan warna biru dan berkedip.
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 ) &
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 ]
PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 57
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]
LAPORAN RESMI:
1. Analisa hasil percobaan yang Anda lakukan.
2. Kerjakanlatihan diatas dan analisa hasil tampilannya.
3. Berikan kesimpulan dari praktikum ini.

More Related Content

PDF
Pertemuan7
PDF
Praktikum 5B
PDF
Modul praktikum-so-2013
PDF
Os2013 lap4-rizqitohopi
PDF
Os2013 lap5-rizqitohopi
PDF
Os2013 lap6-rizqitohopi
PDF
Lapres so d_modul3_yuka
PDF
Mod -3_-_so_-_2013-2014
Pertemuan7
Praktikum 5B
Modul praktikum-so-2013
Os2013 lap4-rizqitohopi
Os2013 lap5-rizqitohopi
Os2013 lap6-rizqitohopi
Lapres so d_modul3_yuka
Mod -3_-_so_-_2013-2014

What's hot (19)

PDF
Os2013 lap2-rizqitohopi
PDF
Praktikum 6A
PDF
Os2013 lap1-rizqitohopi
PDF
Lapres so d_modul1_yuka
PDF
Os2013 lap3-rizqitohopi
PDF
Os2013 lap6-ridwan
PDF
Os2013 lap5-ridwan
PDF
Lapres so d_modul4_yuka
DOCX
Variabelphp
PDF
Lapres so d_modul2_yuka
PDF
Praktikum Sistem Operasi Linux
PDF
Laporan Praktikum OS
PDF
Praktikum 6B
PDF
Praktikum 4A
PDF
Prak sh6
PPTX
Pertemuan ke 5
PDF
Os2013 lap4-ridwan
PDF
Praktikum os bab2 perintah dasar di linux
PDF
Alwin pascal-01
Os2013 lap2-rizqitohopi
Praktikum 6A
Os2013 lap1-rizqitohopi
Lapres so d_modul1_yuka
Os2013 lap3-rizqitohopi
Os2013 lap6-ridwan
Os2013 lap5-ridwan
Lapres so d_modul4_yuka
Variabelphp
Lapres so d_modul2_yuka
Praktikum Sistem Operasi Linux
Laporan Praktikum OS
Praktikum 6B
Praktikum 4A
Prak sh6
Pertemuan ke 5
Os2013 lap4-ridwan
Praktikum os bab2 perintah dasar di linux
Alwin pascal-01
Ad

Similar to Meeting 8-practice5 a-working with bash shell-b-modul (16)

PDF
Meeting7 working with bash shell - a-modul
PPT
Materi kuliah Sistem Operasi Pembelajaran Mengenai Shell
PDF
01 tk2123 - pemrograman shell-2
TXT
orial mini-shell
DOCX
Modul1
PDF
Meeting 9 pemrograman shell - a
PDF
Pemrograman shell2
DOC
Modul so praktikum
PDF
Bab8 administrasi text
PDF
Modul praktikum sistem operasi
PDF
Mod -1_-_so_-_2013-2014
PDF
Laporan Praktikum Sistem Operasi Modul 2
PDF
Pertemuan10 pemrograman shell - b
PDF
1.exploring linux command
PDF
Sistem_Operasi_FILKOMUB_2016_Bab 2_materi
PDF
Praktikum os babk3
Meeting7 working with bash shell - a-modul
Materi kuliah Sistem Operasi Pembelajaran Mengenai Shell
01 tk2123 - pemrograman shell-2
orial mini-shell
Modul1
Meeting 9 pemrograman shell - a
Pemrograman shell2
Modul so praktikum
Bab8 administrasi text
Modul praktikum sistem operasi
Mod -1_-_so_-_2013-2014
Laporan Praktikum Sistem Operasi Modul 2
Pertemuan10 pemrograman shell - b
1.exploring linux command
Sistem_Operasi_FILKOMUB_2016_Bab 2_materi
Praktikum os babk3
Ad

More from Syaiful Ahdan (20)

PDF
Sertifikat EC00202128391
PDF
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...
PDF
Sertifikat ec00202059774
PDF
Sertifikat ec00202059775
PDF
Sertifikat EC00202045078
PDF
Sertifikat EC00202044723
PDF
Sertifikat EC00202023523
PDF
Sertifikat EC00201826309
PDF
Sertifikat EC00202023149
PDF
Sertifikat EC00202022868
PDF
Sertifikat EC00202021343
PDF
Sertifikat EC00202022755
PDF
Sertifikat EC00201987196
PDF
Sertifikat EC00201856484
PDF
Sertifikat EC00201856352
PDF
Sertifikat EC00201856994
PDF
Sertifikat EC00201856895
PDF
Meeting 2 introdcution network administrator
PDF
Pertemuan 5
PDF
Pertemuan 4
Sertifikat EC00202128391
SP2JPB - Aplikasi Sistem Pelayanan Pemesanan Jasa Perbaikan Pada Bengkel Alam...
Sertifikat ec00202059774
Sertifikat ec00202059775
Sertifikat EC00202045078
Sertifikat EC00202044723
Sertifikat EC00202023523
Sertifikat EC00201826309
Sertifikat EC00202023149
Sertifikat EC00202022868
Sertifikat EC00202021343
Sertifikat EC00202022755
Sertifikat EC00201987196
Sertifikat EC00201856484
Sertifikat EC00201856352
Sertifikat EC00201856994
Sertifikat EC00201856895
Meeting 2 introdcution network administrator
Pertemuan 5
Pertemuan 4

Recently uploaded (20)

PPTX
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
DOCX
Modul Ajar Deep Learning Bahasa Inggris Lanjutan Kelas 11 SMA Terbaru 2025
PPTX
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
PPTX
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
PDF
BAHASA INDONESIA KELAS 6 SD TEKS INFORMATIF
DOCX
Lembar Kerja Mahasiswa Information System
PPTX
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
PDF
Lembar Kerja Mahasiswa Konsep Sistem Operasi
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 11 SMA Terbaru 2025
PPTX
Pancasila: fondasi peradaban dan kebudayaan berkelanjutan
PPTX
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 12 SMA Terbaru 2025
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PPTX
Bahan Presentasi Persamaan Elips .pptx
PPTX
PPT SURAT AL FIL LOMBA MAPSI SEKOLAH DASAR
DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025
PDF
KELOMPOK 4 LK Modul 4 KP4 Asesmen PM (3).pdf
PDF
Materi Seminar AITalks: AI dan Konseling GPT
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
Modul Ajar Deep Learning Bahasa Inggris Lanjutan Kelas 11 SMA Terbaru 2025
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
BAHASA INDONESIA KELAS 6 SD TEKS INFORMATIF
Lembar Kerja Mahasiswa Information System
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
Lembar Kerja Mahasiswa Konsep Sistem Operasi
Modul Ajar Deep Learning PAI & BP Kelas 11 SMA Terbaru 2025
Pancasila: fondasi peradaban dan kebudayaan berkelanjutan
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
Modul Ajar Deep Learning PAI & BP Kelas 12 SMA Terbaru 2025
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
Bahan Presentasi Persamaan Elips .pptx
PPT SURAT AL FIL LOMBA MAPSI SEKOLAH DASAR
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025
KELOMPOK 4 LK Modul 4 KP4 Asesmen PM (3).pdf
Materi Seminar AITalks: AI dan Konseling GPT
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025

Meeting 8-practice5 a-working with bash shell-b-modul

  • 1. 45 Praktikum 5-B 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: ü Memahamishell pada sistem operasi Linux. ü Menggunakan feature history pada Bash Shell. ü Mengubah feature history pada Bash Shell. ü Mengubah prompt shell. ü Melakukan konfigurasi Bash Shell untuk menjalankan skrip secara otomatis. ü Membuat dan mengeksekusi shell script sederhana melalui editor vi. ü Memahami job control. ü Memahami stack. ü Menggunakan alias. DASAR TEORI: 1 SHELL Shell adalah Command executive, artinya program yang menunggu instruksi dari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut. Shell ditandai dengan prompt. Untuk pemakai menggunakan prompt $ dan untuk superuser menggunakan promp #. Beberapa macam shell : • /bin/sh Bourne shell, dirancang oleh Steve Bourne dari AT&T
  • 2. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 46 • /bin/csh Dikembangkan oleh UNIX Berkeley yang dikenal dengan C-Shell • /bin/bash Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell. Perbedaan mendasar antara Shell diatasi hampir tidak ada, kecuali pada fasilitas pemrograman dan editing. 2 PROFILE Pada saat login, program akan menjalankan beberapa program yaitu : 1. /etc/profile Berisi shell script yang berlaku untuk seluruh pengguna Linux. 2. Profil untuk setiap pemakai Pada home directory, login pertama kali akan memeriksa file .bash_profile . Bila tidak ada, maka file .bash_login akan dicari. Bila .bash_login tidak ada, maka dicari file bernama .profile. 3. .bashrc File ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui instruksi su. 4. .bash_logout Pada saat logout, maka bash akan mencari file .bash_logout. Bila ada, file tersebut akan dieksekusi sebelum logout Isi dari /etc/profile: # System wide environment and startup programs # Functions and aliases go in /etc/bashrc PATH=”$PATH:/usr/X11R6/bin” PS1=”[u@h W]$ “ umask 022 USER=’id –un’ LOGNAME=$USER MAIL=”/var/spool/mail/$USER” HOSTNAME=’/bin/hostname’ HISTSIZE=1000 HISTFILESIZE=1000
  • 3. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 47 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.
  • 4. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 48 6 EDITOR vi Vi adalah full screen editor, artinya editor tersebut dapat memanfaatkan fasilitas satu layar penuh. Vi mempunyai 2 buah modus, yaitu : • Command line Editor vi mengintepretasikan input sebagai instruksi untuk dieksekusi oleh editor, contoh seperti mencari teks, mengganti teks secara otomatis dan lainnya. • Editing Editor vi mengintepretasikan input sebagai teks yang akan dimasukkan ke dalam buffer editor. Pada bagian bawah layar akan tampil teks “INSERTING”. Pada awal vi dijalankan, maka program memasuki command mode. Dengan menekan tombol “i” maka akan memasuki editing. Untuk kembali ke command mode, tekan tombol Esc. Kunci-kunci teks editor vi dapat dilihat pada tabel sebagai berikut : Kunci Keterangan H Pindah kursor ke kiri satu karakter J Pindah kursor ke kanan satu karakter K Pindah kursor ke atas L Pindah kursor ke bawah O Menyisipkan teks (satu baris setelah posisi kursor) I Menyisipkan 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) Untuk keluar dari 5 model kunci insert di samping ini dan mengaktifkan kunci- kunci lain, maka kita harus menekan tombol Esc terlebih dahulu.
  • 5. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 49 X Menghapus 1 huruf (di sebelah kanan posisi kursor) Dw Manghapus 1 kata (di sebelah kanan posisi kursor) Dd Menghapus 1 baris (di sebelah kanan posisi kursor) Yy Mengkopi 1 baris 2yy Mengkopi 2 baris P (Paste) Menampilkan baris kalimat yang sudah dikopi dengan kunci yy Cw Mengganti 1 kata yang telah ditulis di sebelah kanan posisi kursor dengan kata lain Cc Mengganti 1 baris kalimat yang telah ditulis di sebelah kanan posisi kursor dengan kalimat lain ctrl-b Mundur satu layar ctrl-f Maju satu layar ctrl-d Maju setengah layar B Menggerakkan kursor ke kiri satu kata W Manggerakkan kursor ke kanan satu kata ^ Pergi ke awal baris $ Pergi ke akhir baris U Membatalkan perintah yang terakhir kali U Membatalkan seluruh perubahan teks pada baris tempat kursor berada :! Keluar untuk sementara dari editor vi dan menjalankan perintah yang lain :wq Write dan quite, simpan berkas dan keluar :q! Keluar vi tanpa menyimpan
  • 6. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 50 :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 6 :Membuat Bash-script dan menjalankannya 1. Membuat file p1.sh $ vi p1.sh echo “Program bash Script” 2. Mengubah program menjadi executable $ ls –l p1.sh $ chmod +x p1.sh $ ls –l p1.sh 3. Menjalankan script $ bash p1.sh $ sh p1.sh $ . p1.sh $ ./p1.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” 5. Buatlah file p2.sh $ vi p2.sh #!/bin/bash echo “Program 2 bash script” 6. Menjalankan beberapa program shell dalam satu baris instruksi yang dipisahkan dengan tanda ; $ cat p1.sh ; cat p2.sh $ ./p1.sh ; ./p2.sh 5. Menjalankan script sebagai prosees background, sehingga prompt tidak
  • 7. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 51 Percobaan 7 : Job Control 1. Proses foreground $ ps x 2. Proses background $ ps x > hasil & 3. Setiap job mempunyai PID yang tunggal (unique). Untuk melihat jobs yang aktif $ jobs 4. Buatlah file ploop.sh. File ini tidak akan pernah berhenti kecuali ditekan Ctrl-C $ vi ploop.sh #!/bin/bash while [ true ] do sleep 10 echo “Hallo” done 5. Buatlah file ploop.sh menjadi executable. Jalankan program, akan ditampilkan kata Hallo setiap 10 detik. Untuk keluar program, tekan Ctrl-C (^C) $ chmod +x ploop.sh $ ./ploop.sh
  • 8. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 52 Percobaan 8 : Manipulasi stack untuk Direktori 1. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~ $ dirs 2. Membuat 3 buah direktori $ mkdir marketing sales support 3. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~ $ dirs 4. Membuat 3 buah direktori
  • 9. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 53 Percobaan 9 : Alias
  • 10. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 54 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. 2. Jalankan instruksi subtitute user, kemudian keluar dengan perintah exit sebagai berikut : $ su student 1. Alias adalah mekanisme untuk memberi nama alias pada satu atau sekelompok instruksi. Untuk melihat alias yang sudah terdaftar pada system : $ alias 2. Membuat beberapa alias $ alias del=’rm –i’ $ alias h=’history’ 3. Gunakan instruksi hasil alias $ ls $ del hasil $ h | more 4. Untuk menghapus alias gunakan instruksi unalias $ unalias del $ del files (Terdapat Pesan Kesalahan, mengapa ?)
  • 11. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 55 $ exit kemudian gunakan opsi – sebagai berikut : $ su – student $ exit Jelaskan perbedaan kedua utilitas tersebut. 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 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 5. Prompt String (PS)
  • 12. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 56 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 >” b. Ubahlah warna shell prompt dengan warna biru dan berkedip. 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 ) & 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 ]
  • 13. PRAKTIKUM 5 BEKERJA DENGAN BASH SHELL 57 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] LAPORAN RESMI: 1. Analisa hasil percobaan yang Anda lakukan. 2. Kerjakanlatihan diatas dan analisa hasil tampilannya. 3. Berikan kesimpulan dari praktikum ini.