Praktikum 5 - Bekerja dengan Bash Shell
PRAKTIKUM 5
BEKERJA DENGAN BASH SHELL
SISTEM OPERASI
DOSEN PENGAMPU: MOHAMMAD FATHURAHMAN, S.T., M.T.
DISUSUN OLEH:
ALVIANA SIRAJUDIN – 2103421024
BM 5A
PROGRAM STUDI BROADBAND MULTIMEDIA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI JAKARTA
2023
POKOK BAHASAN:
- History pada Bash Shell
- Membuat Bash Shell Script
TUJUAN BELAJAR:
- Memahami shell pada sistem operasi Linux.
- Menggunakan 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.Mengubah feature history pada Bash Shell.
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-Shel
- /bin/bash: Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell.
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
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
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.
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.
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 |
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) |
Untuk keluar dari 5 model kunci insert di
samping ini dan mengaktifkan kuncikunci lain, maka kita harus menekan tombol
Esc terlebih dahulu. |
|
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) |
|
|
|
|
|
|
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 |
|
|
: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 |
|
Jawab:
Shell adalah antarmuka baris perintah yang digunakan untuk berinteraksi dengan sistem operasi. Di
sistem operasi Linux, ada beberapa shell yang tersedia, di antaranya:
1. Bash (Bourne-Again Shell): Shell default pada banyak distribusi Linux. Dikenal karena kemampuannya yang kuat dan banyak fitur.
2. Zsh (Z Shell): Shell yang menghadirkan fitur-fitur tambahan seperti tab completion yang lebih canggih dan konfigurasi yang lebih fleksibel.
3. Fish: Shell yang dirancang untuk menjadi lebih ramah pengguna dengan autocompletion yang kuat dan tampilan yang atraktif.
4. Ksh (Korn Shell): Shell yang cukup tua, tetapi masih digunakan oleh beberapa sistem Unix. Memiliki fitur seperti scripting yang kuat.
5. Dash: Shell yang dirancang untuk menjalankan script dengan cepat dan ringan.
2. Apa yang dimaksud dengan profile pada Bash Shell.
Jawab:
Dalam Bash Shell, "profile" mengacu pada file konfigurasi yang digunakan untuk mengatur
lingkungan shell pengguna.
Terdapat dua jenis profile utama:
1. `/etc/profile`: Ini adalah file konfigurasi yang berlaku secara global untuk semua pengguna di sistem. Biasanya digunakan untuk mengatur variabel lingkungan global.
2. `~/.bash_profile`, `~/.bash_login`, `~/.profile`: Ini adalah file konfigurasi yang berlaku untuk pengguna individu. Bash akan mencari dan menjalankan salah satu dari file-file ini sesuai dengan urutan tertentu. File ini digunakan untuk mengatur variabel lingkungan khusus untuk pengguna tertentu.
3. Apa yang Anda ketahui mengenai file .bashrc.
Jawab:
File `.bashrc` adalah file konfigurasi shell pada Bash (Bourne-Again Shell) yang digunakan untuk mengatur variabel lingkungan, alias, dan perintah yang akan dieksekusi setiap kali pengguna membuka sesi shell atau subshell. File ini terutama digunakan untuk mengatur preferensi dan konfigurasi spesifik pengguna, seperti penyesuaian prompt shell, alias perintah, atau variabel lingkungan pribadi. File `.bashrc` biasanya terletak di direktori home pengguna (biasanya `/home/nama_pengguna/.bashrc`) dan membantu dalam menyesuaikan pengalaman shell sesuai dengan kebutuhan individu.
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 pada Bash Shell adalah catatan dari perintah-perintah yang telah dieksekusi oleh pengguna selama sesi shell. Ini berguna untuk melacak perintah sebelumnya, mengulangi perintah, atau menganalisis riwayat penggunaan shell.
Kegunaan perintah `history` adalah:
1. Melihat Riwayat: Dengan perintah `history`, Anda dapat melihat daftar perintah sebelumnya yang dieksekusi dalam sesi shell saat ini.
2. Mengulang Perintah: Anda dapat mengeksekusi kembali perintah tertentu dari riwayat dengan menggunakan `!` diikuti oleh nomor perintah. Contoh: `!42` akan menjalankan perintah dengan nomor 42 dari riwayat.
3. Menggunakan Tanda Panah: Saat mengetikkan perintah, Anda dapat menggunakan panah atas dan bawah untuk menggulung melalui riwayat perintah sebelumnya.
Cara-cara untuk mengetahui riwayat perintah yang pernah digunakan oleh pengguna:
1. Dengan menggunakan perintah `history`, Anda dapat melihat daftar perintah sebelumnya.
2. Untuk mencari perintah tertentu dalam riwayat, Anda dapat menggunakan perintah `history | grep kata_kunci` untuk mencari kata kunci dalam riwayat.
3. Anda juga dapat menavigasi riwayat perintah dengan menggunakan panah atas dan bawah saat Anda berada di shell.
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 editori vi.
Jawab:
PERCOBAAN
Percobaan 1 : Profile
- $ ls –a
- $ more .bash_profile
- Analisa: bash_profile merupakan file yang tersembunyi pada home direktori pemakai yang sedang login. Pada percobaan ini dilakukan dengan menjalankan perintah $ls a terlebih dahulu kemudian saya menggunakan opsi pilihan menjalankan perintah $ more .profile untuk menampilkan bash profile tersebut karena pada saat menjalakan perintah $ more .bash_profile output yang dihasilkan adalah no such file or firektori.
2. File .bash_logout akan diekseksi sesaat sebelum logout, berfungsi sebagai house clearing jobs, artinya membersihkan semuanya, misalnya menghapus temporary file atau job lainnya. Melihat file .bash_logout dengan instruksi. .
- $ cat .bash_logout
- Analisa: Menjalankan file .bash_logout dapat digunakan perintah $ cat .bash_logout, yang di mana file tersebut akan dieksekusi sebelum logout dan berfundgi sebagai house clearing job artinya membersihkan semuanya contohnya seperti menghapus temporary file atau job lainnya
- $ cd: Perintah $ cd berfungsi untuk memastikan sedang berada pada direktori home. Perintah $ ls-l /etc berfungsi untuk menampilkan output file atau direktori secara lengkap yaitu terdiri dari nama file, ukuran, tanggal dimodifikasi, pemilik, group dan mode atau atributnya.
- $ ls –l /etc
- $ ls –l
- $ whoami
- $ who
3. Untuk memeriksa apakah perintah ini ditambahkan pada history, dapat menggunakan perintah history untuk melihat semua perintah yang pernah dimasukkan.
- Analisa: Perintah $ history dapat menampilkan semua perintah yang pernah dijalankan dan termasuk juga perintah $ history tersebut ditambahkan pada list dari history yang ada.
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 atau mencarinya. Untuk memilih dan mengeksekusi perintah dengan nomor, masukkan kunci ! diikuti nomor perintah.
- $ ! <Nomor Perintah>
Contoh : !7160
- Analisa: Dengan menggunakan Perintah $ !<nomor perintah> berfungsi untuk memudahkan mencari perintah history, pada percobaan tersebut saya mencoba !160 yang berarti akan mengeksekusi perintah find > directories.txt 2> errors.txt
- $ !?etc?
- Analisa: Menggunakan perintah $ !?etc? maka akan menjalankan perintah ls -l / etc yang sebelumnya pernah digunakan.
- $ history
- Analisa: Perintah history tersebut akan menampilkan perintah $ ls - l / etc dan tidak menampilkan perintah $ !?etc? yang sudah dijalankan sebelumnya.
- $ !?wombat99?
- Analisa: Pada percobaan ini ketika menjalankan perintah !who maka akan dihasilkan output dari perintah ! who tersebut namun ketika menjalankan perintah !who maka akan dihasilkan output dari perintah whoami.
- $ !who $ !whoa
- Analisa: Ketika menjalankan perintah $ cat /bin/bash | strings grep shell | less maka akan menampilkan output semua string yang berada pada file /bin/bash yang berisikan kata "shell"
- $ cat /bin/bash | strings | grep shell | less
- $ ^shell^alias^
- Analisa: Ketika menjalankan perintah $ cat /bin/bash | strings grep shell | less maka akan menampilkan output semua string yang berada pada file /bin/bash yang berisikan kata "shell". Kemudian dengan menjalankan perintah $ ^shell^alias^ berfungsi untuk menampilkan kata "alias" untuk menggatikan kata "shell" yang dimana tidak perlu mengetikan perintah yang panjang seperti sebelumnya.
- $ tail .bash_history
- Analisa: Tampilan diatas merupakan tampilan dari beberapa baris pada file .bash_history dan file .bash_history merupakan tipe file yang bukan up to date.
- $ history
- Analisa: Perbedaan dengan tail .bash_history dan perintah $ history adalah history merupakan perintah yang bersifat up to date sehingga akan ada terus pembaruan dari perintah yang dijalankan dan disimpan pada memory sistem.
- $ echo ‘Ini perintah saya’
- Analisa: Dengan bantuan perintah $ echo maka akan megashilkan output kalimat tersebut.
- $ history
- $ tail .bash_history
- Analisa: Pada tampilan pertama output yang dihasilkan yaitu echo "ini perintah saya" pada baris pertama pada perintah $ history dan tampilan kedua untuk menampilkan output yang berhubungan dengan bash.
- $ history|less
- Analisa: Dengan menggunakan perintah history|less tersebut output yang ditampilkan yaitu history terakhir yang ada pada screen untuk melihat history yang lebih banyak dapat menekan spacebar dan tekan q untuk keluar dari history tersebut.
- $ wc –l .bash_history 1000 .bash_history
- Analisa: Ketika menjalankan perintah $ wc -l -bash_history terlihat bahwa terdapat 743 history yang ada pada file -bash_history tersebut.
- $ set|grep HISTSIZE
- Analisa: HINTSIZE menunjukkan untuk jangkauan limit perintah history yang dapat disimpan pada file history dan gambar diatas menunjukkan bahwa limit perintah history yang dapat disimpan pada file history tersebut sebanyak 1000.
- $ echo ‘HISTSIZE=5000’ >> .bashrc
- Analisa: Mengubah variable HINTSIZE pada skrip startup yang disebut .bashrc pada direktori home kemudian perintah $ set|grep HINTSIZE digunakan untuk melihat jangkauan atau limit perintah history yang terbaru yaitu sebesar 5000 .
- $ PS1=’\t:’
- Analisa: Tampilan diatas merupakan hasil dari prompt bash dengan sistem format waktu 24 jam yaitu dalam format HH : MM : SS menunjukkan waktu jam 16 sore dengan 06 menit 53 detik.
- $ PS1=’\w:’
- Analisa: Perintah $ PS1='\w:' untuk menampilkan current working direktori. Fungsi dari \w hanya untuk menampilkan nama direktori. Setelah memasukkan perintah tersebut ketika dienter maka akan ditampilkan prompt ~: yang menandakan bahwa sudah berada di home direktori.
- $ cd /usr/sbin
- Analisa: Tampilan diatas merupakan perintah untuk mengubah prompt shell. Perintah cd /usr/sbin berfungsi untuk membuka direktori sbin.
- $ PS1=’\W:’
- Analisa: kemudian ketikan di enter dilanjutkan dengan mengetik PS1='\W:' untuk melihat prompt sbin:.
- $ echo ’Hello >’
- Analisa: Pada perintah sbin: kita masukkan perintah echo 'Hello >' yang dimana simbol lebih besar dari (>) hal ini memberitahukan bahwa BASH akan menunggu menyelesaikan perintah. Ketik penutup quote (') untuk menyelesaikan perintah di prompt maka kata "Hello: akan diikuti dengan prompt PS1 pada baris baru.
- $ PS2=’Selesai memasukkan perintah Anda:’
- Analisa: Pada direktori sbin untuk mengubah prompt PS2 dengan cara sbin:PS2='Selesai memasukkan perintah anda:'.
- $ PS1=’\033[0;34m\w\$ \033[0;37m’
- Analisa: Dengan menggunakan perintah tersebut maka akan mengubah prompt menjadi warna biru. Kode 34 merupakan untuk mengubah warna prompt menjadi biru.
- $ PS1=’\033[0;31m\w\$ \033[0;37m’
- 30=hitam, 31=merah, 32=hijau, 34=biru, 35=ungu, 36=cyan, 37=putih.
- Analisa: Dengan mengubah kode menjadi 31 maka tampilan prompt tersebut akan menjadi berwarna merah.
- $ PS1=’\033[1;34m\w\033[1;32m\$ \033[0;37m’
- Analisa: Terlihat bahwa tampilan prompt menjadi lebih terang dan terdapat juga perpaduan warna
- $ PS1=’\033[7;34m\w\033[7;32m\$ \033[0;37m’
- Analisa: Dengan menjalankan tersebut terlihat tampilan prompt terdii dari berbagai warna dan warna tersebut juga terdapat dibagian background dari prompt tersebut yang dimana atribut control diganti menjadi angka 7.
- $ PS1=’\033[5;34m\w\033[5;32m\$ \033[0;37m’
- Analisa: Tampilan pada prompt akan berkedip-kedip dengan menggantikan atribut control menjadi angka 5.
- $ cd ~
- Analisa: Pastikan berada pada direktori home dan membuat skrip sederhana untuk mengurut daftar file
- $ echo ’sort ~/list > ~/r13; mv ~/r13 ~/list’ > ~/sorter
- Analisa: Perintah echo digunakan untuk membuat file yang dikarenakan hanya satu baris dan perintah $ echo 'sort ~/list > ~/r13; mv ~/r13 ~/liat' > -/sorter berfungsi untuk membuat deretan file yang terurut.
- $ chmod +x sorter
- Analisa: $ chmod +x sorter merupakan perintah untuk membuat file skript diatas menjadi excutable
- $ PROMPT_COMMAND=~/sorter
- Analisa: Perintah $ PROMPT_COMMAND=~/sorter merupakan perintah untuk menjalankan program sorter pada setiap shell Bash prompt PS1.
- $ echo ’John Smith:13001’>>list
- Analisa: Perintah echo "John Smith:13001' >> List digunakan untuk membuat file list secara otomatis
- $ cat list
- Analisa: Kemudian untuk melihat isi dari file list tersebut dapat menggunakan perintah $ cat list yang disini output dari file list yang dihtampilkan adalah John Smith:13001
- $ 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: Membuat beberapa file list menggunakan perintah echo dan list. Kemudian ketika memasukkan perintah $ cat list maka ouput yang ditampilkan berupa isi file dari list yang sudah sesuai urutan abjad.
- $ bash p1.sh
- $ sh p1.sh
- $ . p1.sh
- $ ./p1.sh
- Analisa:
- $ vi p1.sh
- #!/bin/bash
- echo “Program bash script”
- Analisa:
- $ vi p2.sh
- #!/bin/bash
- echo “Program 2 bash script”
- Analisa:
- Analisa:
































Komentar
Posting Komentar