modul 5 so
Post on 27-Oct-2015
283 Views
Preview:
TRANSCRIPT
MODUL 5
BEKERJA DENGAN BASH SHELL
Dasar Toeri
1. Shell
Merupakan Command executive, artinya program yang menggunakan
intruksi dari pemakai, memeriksa sinatks dari intruksi yang diberikan ,
kemudian mengeksekusi perintah tersebut. Shell ditandai dengan prompt dan
untuk pemakai biasa menggunakan prompt $ dan utnuk menggunakan prompt
#. Beberapa jenis shell:
/bin/sh, Bourne shell, dirancang oleh Steve dari AT&T
/bin/csh, Dikembangkan oleh Berkeley yang dikenal dengan C-shell
/bin/bash, Kompatibel dengan Bourneo Shell dan juga mengadaptasi
kemamuan Korn_Shell. Perbedaan mendasar antara Shell diatasi hamper
tidak ada, kecuali pada fasilitas pemograman dan editing.
2. Profile
Pada saat login, maka 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. basher, File ini akan dieksekusi untuk perpindahan dari satu shell ke shell
yang lain melalui intruksi su.
4. .bash_logout, pada saat logout,maka bash akan mencari file
.bash_logout. Bila ada, file tersebut akan di eksekusi sebelum logout.
isi dari /etc/profi :
# System wide environment and programs
# Function and aliases go in /etc/bashrc
PATH=”[\u@\h \W]\\$ “
71
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 intruksi diberikan
dari prompt shell, maka intruksi tersebut akan dicari pada daftar
tersebut.
PS1 : adalah prompt dimana:
\u = Nama User
\h = Nama Host
\w= Nama Working directory
3. History
History memudahkan pemakai untuk mengedit kembali intruksi dan
panjang, terutama bila terjadi kesalahan pada penulisan intruksi maupun
parameter. Navigasi pada daftar navigasi pada daftar history menggunakan
karakter control sebagai berikut:
^p (Ctrl-p) melihat intruksi sebelumnya
^N(Ctrl-N melihat intruksi berikutnya
!! eksekusi kembali intruksi sebelumnya
!! -3 3 intruksi sebelumnya akan diulang
!!88 ulangi intruksi no 88
72
4. Bash-Script
Bash-script adalah file yang berisi koleksi program yang dapat
dieksekusi. Untuk eksekusi bash script digunakan. 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 selesei, bila eksekusi program tersebut berakhir.
Eksekusi semua job adalah sama dengan eksekusi program, baik proses
background maupun proses foreground.
6. E d itor vi/vim
Vi adalah full screen editor,artinya editor tersebut dapat memanfaatkan
fasilitas satu layar penuh. Vi mempunyai 2 buah modus, yaitu:
Command line, Editor mengintepretasikan input sebagai intruksi untuk
dieksekusi oleh editor, contoh seperti mencari teks, mengganti teks secara
otomatis dan lainnya.
Editing, Editor vi mengintepretasikaninput sebagai teks yang akan dimasukan
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 editor vi yaitu:
Kunci Keterangan Kunci KeteranganH Pindah kursor kekiri 1
karakterCltr-b Mundur 1 layar
J Pindah kursor kekanan 1 karakter
Cltr-f Maju 1 layar
K Pindah kursor ke atas Cltr-d Maju setengah layar
L Pindah kursor kebawah B Menggerakkan kursor ke 1 kata
O Menyisipkan teks (1 baris setelah posisi kursor)
W Menggerakkan kursor kekanan 1 kata
I Menyisipkan teks (disebelah kiri posisi kursor)
^ Pergi ke awal baris
A Menyisipkan teks (disebelah kanan posisi kursor)
$ Pergi ke akhir baris
I(shi Menyisipkan teks (diposisi U Membatalkan perintah yang
73
ft i) awal baris) terakhir kali
A(shift a)
Menyisipkan teks (diposisi akhir baris)
U Membatalkan seluruh perubahan teks pada baris tempat kursor berada
X Menghapus 1 huruf (disebelah kanan posisi kursor)
:t Keluar untuk sementara dari editor vi dan menjalankan perintah yang lain
Dw Mengahapus 1 kata (disebelah kanan posisi kursor)
:wq Write dan quite, simpan berkas dan keluar
Dd Menghapus 1 baris (disebelah kanan posisi kursor)
:q! Keluar vi tanpa menyimpan
Yy Mengcopy 1 baris :se all Menampilkan pilihan set status
2yy Mengcopy 2 baris :se nu Menampilkan nomor baris pada kiri layar
P (paste) menampilkan baris kalimat yang sudah dicopy dengan kunci y
/string Mencari string ke arah depan
Cw Mengganti 1 kata yang telah ditulis disebelah kanan posisi kursor dengan kata lain
?string Mencari string ke arah belakang
Cc Mengganti 1 baris kalimat yang telah ditulis disebelah kanan posisi kursor dengan kalimat lain
N Menentukan pencarian untuk arah yang sama
74
Hasil dan Pembahasan
Percobaan 1: Profile
1. Melihat file
ls –a
more .bash_profil
Analisa : Tampilan diatas merupakan hasil dari melihat file yang terdapat di
home directory pemakai yang sedang login. Jika diperhatikan banyak terdapat
file yang berbeda dan pada proses more .bash_profile yaitu menampilakan
sebuah informasi tentang peraturan yang berhubungan dengan .bash_profile
yang dimana terdapat pesan get the alieses and functions.
2. Melihat file bash_logout
cat .bash_logout
Analisa: Tampilan diatas merupakan pada saat file .bash_logout akan
dieksekusi sesaat sebelum logout, berfungsi untuk membersihkan job yang
terdapat di terminal tersebut
75
Percobaan 2: Menggunakan Feature History Bash
1. Bash shell menyimpan history perintah yang digunakan sebelumnya, anda
dapat mengakses histori dalam beberapa cara. Cara paling mudah adalah
dengan menggunakan Panah Atas, maka perintah sebeumnya akan
ditampilkan.
2. Berikut, berikan Bash Shell beberpa perintah untuk diingat. Masukkan
perintah berikut dan tekan ENTER pada setiap baris
cd
ls –l /etc
ls –l
whoami
who
Analisa : Tampilan diatas menampilkan jumlah file dan root yang sedang
aktif. Dan menampilkan beberapa tipe file yang sudah menjadi executable,
76
kemudian menampilkan pemakai yang sedang login dan terdapat waktu dan
tanggal pada saat login.
3. Menampilkan feature history dan menggunakan nomor historynya
Analisa: Tampilan diatas merupakan hasil dari proses melihat isi history
yang pernah diinputkan atau dimasukkan sebelumnya. Pada perintah history
ini sangat membantu untuk melihat apa-apa saja yang pernah pemakai
masukkan pada terminal. Dan menggunakan perintah untuk memilih dan
mengeksekusi dengan nomor history.
4. Anda dapat memilih perintah sebelumnya dengan menggunakan nomor pada
perintah untuk perintah yang semakin bertambah banyak. Cara yang mudah
menggunakan nomor pada perintah history atau mencarinya. Untuk memilih
dan mengeksekusi perintah dengan nomor, masukan kunci! Diikuti nomor
perintah.
77
$ !<nomor perintah> Contoh :!780
Analisa: program ini menampilkan tampilan memilih dan mengeksekusi
perintah dengan nomor, masukan kunci! Diikuti nomor perintah.
5. Anda dafat mencari perintah dengan menyertakan perintah yang
diinginkan.misalnya !?etc! akan menjalankan perintah ls –l /etc yang
sebelumnya digunakan
Analisa: program ini menampilkan tampilan perintah dengan menyertakan
perintah yang diinginkan
78
6. Kemudian gunakan perintah history, maka akan terlihat perintah ls – l etc
yang kedua dan bukan
!?etc?
history
7. Apakah string tidak ditemukan pada perintah history maka akan terdapat
pesan error.
$ !?wombat99?
8. Jika diketik !who maka yang dijalankan adalah perintah who , tetapi bila anda
ketikan !whoa maka yang dijalankan adalah perintah whoami
9. Anda dapat menggantikan perintah string pada perintah history, terutama pada
perintah yang panjang. Misalnya ketikan cat/bin/bash |string| grep shell |
less dan tekan ENTER. Maka akan menampilkan semua string pada file
/bin/bash yang terdiri dari shell. Untuk keluar tekan q. jika ingin
menampilkkan kata aliase maka anda tinggal mengetikan 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^
Percobaan 3: Mengubah Feature History Bash
1. Bash shell akan menyimpan perintah history meskipun telah logout dan login
kembali. File .bash_history menyimpan file history yang terdapat pada home
direktori.
$ cd
2. Lihat beberapa baris pada file .bash_history dengan ktik tail .bash_history
dan tekan ENTER. File ini bukan file yang up to date.
$ tail .bash_history
79
Analisa : program di atas menampilkan tampilan beberapa baris pada
file .bash_history
3. Keti history dan tekan enter. Maka akan terlihat baris terakhir adalah history
dan perintah sebelumnya adalah tail .bash_history. Perintah history bersipat
up to date. Kerena disimpan pada memory system.
$ history
Analisa : program diatas menampilkan tampilan terlihat baris terakhir adalah
history dan perintah sebelumnya
4. Ketikan perintah berikut
$ echo ‘ini perintah saya’
5. Log out dan log in kembali sebagai user yang sama. Ketikan History dan
tekan Enter. Maka perintah echo ‘ini perintah saya’ akan berada baris
terkhir. Lihat file .bash_history, maka perintah tersebut akan dapat pada
file .bash_history
$ history
Analisa : program di atas merupakan tampilan history
$ tail .bash_history
6. Ketik history|less untuk melihat perintah history terakhir pada screen. Tekan
spacebar untuk melihat lebih banyak file. Untuk keluar tekan q.
$ history|less
80
7. Untuk melihat berapa banyak perintah history yang ada pada file ketik berikut
dan output yang keluar seupa di bawah ini
$wc -1 .bash_history
1000 .bash_history
Analisa : program di atas merupakan tampilan yang menampilkan Untuk
melihat berapa banyak perintah history yang ada pada file ketik berikut dan
output yang keluar seupa.
8. Output mnunjukan bahwa 1000 perintah history di simpan pada file strory.
Untuk melihat jangkauan (limit) perintah history di gunakan variable
HISTSIZEE. Untuk melihat jangkauan history ketik sebagai berikut
$ set|grep HISTSIZE
9. Bila ingin memprbesar jangkauan file history, maka ubah variable HISTSIZE
pada skrip startup yang disebut.bashrc pada home directory.
$ echo ‘HISTSIZE=5000’ >> .bashrc
Analisa: program di atas merupakan tampilan Untuk melihat jangkauan
history
81
Analisa: program di atas merupakan tampilan Untuk memprbesar jangkauan
file history
10. Logout dan lougin kembali sebagai user yang sama. Lihat perubahan variable
HISTSIZE
$ set|grep HISTSIZE
11. Krikan printah history beberapa kali, maka perintah ini akan di simpan pada
bash history mskipun yang di ketikan perintah nya sama.
12. Anda dapat melakukan konfigursi bash agar tidak menambah perintah ke
history jika perintah yang di ketikan sama dengan yang sebelumnya. Hal ini
dilakukan dengan menambhkan variable HISTCONTROL dan diberikan
nilai ignoredups pad file.bashrc
$ echo ‘HISTCONTROL=ignoredups’ >> .bashrc
Analisa: program di atas merupakan tampilan konfigursi bash agar tidak
menambah perintah ke history jika perintah yang di ketikan sama dengan yang
sebelumnya
13. Log out dan log in kembali sebagai user yang sama ketikan history beberapa
kali dan perintahkan beberapa kali history muncul.
Percobaan 4: Mengubah prompt shell
1. Prompt bash sell dikonfigurasi dengan men-setting nilai variable PS1. Selain
menampilkan string static sebagai prompt, anda dapat menampilakan menjadi
dinamis. Contohnya, apabila ingin menunjukan current distory atau current
time. Ketik PS1=’1\t:’ dan tekan enter. Untuk manampilkan waktu system
dalam format 24 jam sebagai prompt bash. Format dalam HH:MM:SS
82
$ PS1=’\t:’
2. Untuk dalam menampilkan format 12 jam dengan indicator AM dan FM ketik
sebagai berikut
$ PS1=’\t:’
3. Kebanyak orang menginginkn prompt bash menampilkan current working
directory karakter \w mnampilkan hany nama directory.
~:
$ PS1=’\w:’
4. Ketik cd/usr/bin untuk melihat prompt /usr/sbin:
5. Ketik PS1 =’\W:’
6. Ada beberapa prompt bash line yang dapat diubah yaitu PS2,PS3,dan PS4
$ echo ‘Hello
7. Anda dapat mengubah prompt PS2 seperti mngubah PS1
$ PS2=’selesai memasukan perintah anda:’
8. Kemudin ketik echo ‘Hello dan tekan enter, baris berikut muncul selesai
memasukan perintah anda:.
$ echo ‘Hello
9. Prompt bash dapat menampilkan warna dengan setting colorsetting string.
$ PS1=’\033[0;34m\w\$ \033[0;37m’
10. Warna merah
$ PS1=’\033[0;31m\w\$ \033[0;37m’
Beberapa warna
$ PS1=’\033[0;31m\w\033[0;32m\$ \033[0;37m’
11. Ganti beberapa warna dengan tambah angka 1
$ PS1=’\033[1;34m\w\033[1;32m\$ \033[0;37m’
12. Ganti beberapa warna dengan tambah angka 7
$ PS1=’\033[7;34m\w\033[7;32m\$ \033[0;37m’
13. Ganti beberapa warna dengan tambah angka 5
$ PS1=’\033[5;34m\w\033[5;32m\$ \033[0;37m’
83
Percobaan 5: Menambah otomatis ke prompt shell
1. Pastikan anda berada directory home
$ cd~
2. Buatlah skrip sederhana untuk mengurut daftar file. Anda dapat menggunakan
text editor, ttapi karena hanya satu baris, gunakan echo untuk membuat file
$ echo ‘sort ~/list > ~/r13; mv ~/r13 ~/list’ > ~/sorter
3. Buat file skrip diatas menjadi executable
$ chmod +x sorter
4. Jalankan program sorter setiap shell bash menampilkan PS1
$ PROMPT_COMMAND=~/sorter
5. Ketikan echo ‘john smith:130001’>>list dan tekan enter jika di file tigak ada
maka akan otomatis.
$ echo ‘john smith:130001’>>list
Analisa: program di atas merupakan tampilan directory home.
Analisa: program di atas merupakan tampilan untuk mengurut daftar file.
Analisa: program di atas merupakan tampilan skrip diatas menjadi executable
Analisa: program di atas merupakan tampilan program sorter setiap shell bash
menampilkanPS1
6. Ketikan cat list dan enter maka anda dapat melihan isi file list
$ cat list
7. Masukan babarapa perintah dengan poin 5 tetapi dengan nama dan nomor
kemudian ketik cat list dan tekan enter
$ echo ‘anita:13001’>>list
$ echo ‘Rini:130032>>list
$ echo Faris:13003’>>list
$ echo ‘Khaerul:14008’>>list
8. Apabila anda tidak mau mengurutkan Shell Bash menampilkan file terutur
sepanjang waktu anda tidak perlu menambahkan variable
PROMPT_COMMAND=~/sorter pada file konfigurasi seperti . bashrc
$ PROMPT_COMMAND=
84
Analisa: program di atas merupakan tampilan directory home.
Analisa: program di atas merupakan tampilan untuk mengurut daftar file.
Analisa: program di atas merupakan tampilan skrip diatas menjadi executable
Analisa: program di atas merupakan tampilan program sorter setiap shell bash
menampilkanPS1
Analisa: program di atas merupakan tampilan melihan isi file list
Analisa: program di atas merupakan tampilan Masukan babarapa perintah
dengan poin 5 tetapi dengan nama dan nomor
Analisa: program di atas merupakan tampilan mengurutkan Shell Bash
menampilkan file terutur sepanjang waktu anda tidak perlu menambahkan
variable
85
Percobaan 6: Membuat Bash-script dan
menjalankannya(DITANGGUHKAN)
Percobaan 7: Job Control
1. Proses foreground
$ ps x
Analisa : Tampilan diatas merupakan hasil dari proses foreground yang
diaman jika diperhatikan hasil tampilannya terdapat proses STAT yaitu proses
yang aktif contoh sl yaitu sleep dan R+ yaitu proses running dari intruksi ps x.
2. Proses background
$ ps x > hasil &
3. Melihat job yang aktif
$ jobs
86
Analisa: Tampilan diatas merupakan digunakan untuk mengeksekusi prosses
dan tidak perlu menggunakan perintah kill untuk menghentikan proses tersebut.
Analisa: Tampilan diatas merupakan untuk melihat job yang sedang aktif dan
setiap job mempunyai nomor PID yang tunggal (unique) dan dalam melihat job
tersebut ada informasi [1]+ Done ps x > hasil yaitu bahwa proses job tersebut
dalam keadaan aktif.
4. Buat file ploop.sh
$ vi ploop.sh
Analisa: Tampilan diatas merupakan proses dari pembuatan file plop.sh yang
dimana terdapat perintah while do dan waktu dari proses berjalan selama 2
detik.program ini tidak akan berhenti sebelum kita menekan tombol “Cltr-C”
agar proses program tersebut berhenti.
87
Percobaan 8: manipulasi Stack untuk Direktory
1. Intruksi dirs digunakan untuk melihat stack direktori, pada output hanya
dtampilkan home ~
$ dirs
2. Membuat 3 buah direktori
$ mkdir marketing sales support
Analisa: program di atas merupakan Intruksi dirs digunakan untuk melihat
stack direktori, pada output hanya dtampilkan home ~
Analisa: program di atas merupakan Membuat 3 buah direktori
$ dirs
Analisa: program di atas merupakan untuk meliht stack directory
Percobaan 9: Alias
1. Melihat alias yang telah terdaftar
$ alias
2. Membuat beberapa alias dan menggunakan intruksi dari alias itu sendiri
$ alias del=’rm –I’
$ alias h=’history’
88
Analisa: Tampilan diatas merupakan hasil dari melihat alias yang telah
terdaftar pada terminal, dan jika diperhatikan cukup banyak intruksi alias.
Analisa: Tampilan diatas merupakan hasil dari pembuatan beberapa alias. Pada
perintah rm yaitu untuk menanyakan apakah akan keluar program atau tidak.
Pada perintah history yaitu akan menampilkan hasil dari apa yang pernah
dikerjakan, sedangkan perintah h hasil yaitu melihat history yang dihasilkan
dan pada perintah h | more yaitu untuk melihat history yang sebelumnya.
3. Guakan intruksi hasil alias
$ ls
$ del hasil
$ h | more
Analisa: program di atas merupakan intruksi hasil alias
4. Untuk menghapus alias
$ unalias del
$ del files
89
Analisa: Tampilan diatas digunakan untuk menetralisasikan nama del dan
pada perintah del file terdapat pesan command not found, karena nama del
sudah dinetralisasikan sebelumnya maka terdapat pesan error.
Latihan
1. Eksekusi seluruh file yang ada
a. Edit profile /etc/profile dan tampilkan pesan sebagai brikut:
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/.bash_profile
/home/student/.bashrc
c. Ganti nama /home/student dengan nama anda sendiri.pada setiap file
tersebut, cantumkan intruksi echo, misalya pada
/home/student/.bash_profile:
Echo “profile dari .bash_profile”
Analisis:Perintah-perintah tersebut digunakan untuk mengedit file
profile dan mengasumsikan home dengan nama kita sendiri serta
90
menyisipkan suatu perintah dengan echo pada perintah vi di setiap file
profilenya dan menampilkan hasil dari sisipan yang dilakukan.
2. Menjalankan intruksi substitute user
$ su purwanticantik
$ exit
Kemudian lakukan opsi sebagai berikut
$ su – purwanticantik
$ exit
Analisis: su merupakan perintah yang berfungsi untuk memasukkan
perintah dalam user. Perbedaan nya hanyalah terletak pada bagian proses
keluar. Jika user memasukan perintah “su user name. Maka user akan
diminta untuk mealakukan login, dan ketika perintah exit dimasukan, user
akan langsung dikeluarkan tanpa proses logout. Artinya ketika keluar
program masih berjalan.Untuk perintah yang kedua, su – username. Ketika
dilakukan exit, sistem akan melakukan logout terlebih dahulu, dalam
artikata lain semua program yang berjalan akan di hentikan.
3. Logout
a. Edit file .bash_logout, tampilkan pesan dan tahan 5 detik, sebelum
eksekusi logout
Echo “terimaksaih atas sesi yang diberikan”
Sleep 5
91
clear
b. Edit file .bash_logout, tampilkan pesan dan tahan 5 detik, sebelum
eksekusi logout
Echo “terimaksaih atas sesi pemotretan purwanti”
Sleep 4
clear
Analisis :Perintah-perintah tersebutmerupakan perintah yang berfungsi
untuk melakukan edit pada file bash_logut, digunakan perintah “vi”.
Setealah itu maka akan muncul tampilan shell yang digunakan untun
edit file tersebut. User hanya memasukan string yang ber
tuliskan.”Terimakasih atas sesi yang telah diberikan, wahyu”.Setelah itu
dilakukan edit pada bagian penampilan scipt tersebut setelah use
melakukan logut. Sesi pertama adalah dilakukan sleep 5 detik, sesi
keduaedilakukan sleep 4 detik kemudian clear. Hasil akhir ketika user
memasukan perintah exit, progam akan menampilkan string yang telah
dipasangkan tadi.
92
4. History
a. Ganti nilai HISTSIZE dari 1000 menjadi 20
$ HISTSIZE=20
$ h
Analisis: Perintah-perintah tersebut digunakan untuk mengganti nilai
HISTSIZE, mengedit instruksi baris pada fasilitas history, kemudian
mengulangi instruksi pada history buffer nomor tertentu, dan mengulangi
instruksi dengan prefix “ls”. Perbedaannya hanya pada (1) mengedit dahulu
instruksi baris tertentu kemudian mengulangi dengan perintah (!!). (2)
mengulangi perintah dengan menggunakan !<nomor>. (3) mengulalngi
perintah dengan menggunakan perintah !<nama_perintah>.
b. Gunakan fasilitas history dengan intruksi baris ke 5 dari nintruksi yang
terakhir dilakukan
$ !-5
c. Ulangi intruksi terakhir yang berakhir, gunakn juga ^P dan ^N untuk
bernavigasi pada history buffer
$ ! !
d. Ulangi instruksi pada history
$ !150
93
top related