1. TK2123 Pemrograman Shell
Semester Genap 2014/2015
TASS, Bandung 2015
www.tass.telkomuniversity.ac.id
Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Applied Science School –Telkom University
Kajian 1 – Dasar Pemrograman Shell
4. mahasiswa dapat membuat program yang
mampu memanipulasi, memonitoring sistem
operasi dan sumber daya komputer
berbasis Linux dengan memanfaatkan Shell
Programming
Standar Kompetensi
5. Burtch, K. O. (2004). Linuk Shell ScriptingWith Bash.
(E. Finney, Ed.) Indianapolis, United States of
America: Developer's Library.
Albing, C.,Vossen, J., & Newham, C. (2007). Bash
Cookbook (1st ed.). (L. R. Ruma, Ed.) United States
of America: O'Reilly Media inc.
Quigley, E. (2005). Unix Shell by Example (4th ed.).
(N. Regina, Ed.) United States of America: Prentice
Hall.
Sobell, M. G. (2011). A practical guide to linux
Command, editors, and Shell programming (2nd ed.).
Boston, United States of America: Prentice Hall.
Referensi
10. $ date
$ date +”Hari ini %A,%B %d, %Y.%nJam %r,%Z.”
$ cal 9 2006
$ cal -y
Waktu & Tanggal
11. $ whatis cal
$ whatis date
$ date --help
$ cal –help
$ man date
$ man man
$ man –f cal
$ man –k date
$ man –K date
$ man 1 passwd
$ man 5 passwd
$ info date
$ info cal
Manual
12. $ ls /usr/share/doc
$ pwd
$ echo $HOME
$ mkdir work
$ cd /home/student/work
$ cd ..
$ cd -
Direktori
13. $ pwd
$ cd .
$ pwd
$ cd ..
$ pwd
$ cd
$ ls
$ ls –a
$ ls /
$ ls –l /usr
$ ls –ld /usr
Direktori
14. $ touch testfile
$ ls /home/student
$ cp ~student/tesfile /tmp/student_test_file
$ ls /tmp
$ cd /tmp
$ ls –l file3.txt
$ cp file3.txt ~/backups
$ ls –l ~/backups
$ cp file3.txt /home/student/backup/
$ ls –l /home/student/backup/
$ cp file3.txt /home/student/copies/
Manipulasi File & Direktori
15. $ ls ~student
$ mv ~student/testfile /tmp/student_test_file
$ ls ~student
$ ls /tmp/
$ mv procedure.txt.bak2 /home/student/procedures/
$ ls –l foo
$ mv foo bar
$ ls –l bar
Manipulasi File & Direktori
16. $ cd
$ rm work
$ rm –ri work
$ mkdir work
$ rmdir work
Manipulasi File & Direktori
21. # Melihat jenis shell yang ada
$ cat /etc/shells <enter>
# Menampilkan jenis shell aktif
$ echo $SHELL <enter>
# Menampilkan path aktif
$ echo $PATH <enter>
Perintah Terkait Shell
22. #!/bin/bash
#myinfo
#membersihkan tampilan layar
clear
#menampilkan informasi
echo -n "Waktu sistem :"; date
echo -n "Nama :"; whoami
echo -n "Banyak pemakai :"; who | wc –l
echo -e "ading"
#end
nano latihan2a.sh
shebang, sha-bang,
hashbang, pound-bang,hash-
exclam,hash-pling
23. #!/bin/bash
echo "halo $LOGNAME ,senang bertemu denganmu"
echo "direktori anda saat ini `pwd`“
echo "anda bekerja di mesin `uname –a`"
#end
LOGNAME merupakan variabel environtment
nano latihan2b.sh
24. Nama lokasi di memori yang dipakai
untuk menyimpan data, bersifat temporer
/ sementara.
Variabel
26. variabel yang dipakai khusus untuk proses kerja
sistem.
Contoh PS1, PS2, HOME, PATH, USER, SHELL, dll
PS1 untuk men-set prompt shell pertama
(default "s-v$")
PS2 untuk prompt pelengkap perintah, ditampilkan
jika perintah dianggap belum lengkap oleh shell
(default ">").
EnvironmentVariable
27. #Simpan dulu prompt lama
$ PS1LAMA=$PS1 <enter>
#set prompt ke nilai baru
$ PS1="Promptku!“<enter>
Latihan Set Prompt
29. Berikan perintah berikut
$ env <enter>
ListVariabel Environment
Buatlah shell script untuk menampilkan
berbagai varibel yang ada. Jangan lupa
berikan labelnya
30. Merupakan parameter yang digunakan shell
untuk menampung argumen pemanggilan
baik berupa argumen saat sebuah file
dijalankan atau argumen yang dikirim ke
subrutin.
Positional Parameter
33. variabel yang didefinisikan sendiri oleh
pembuat script.
Ketentuan :
dimulai dengan huruf atau underscore
hindari pemakaian karakter spesial seperti
*,$,#,dll ...
bersifat case sensitive
User DefinedVariable
37. Adalah sebuah metode yang dilakukan
untuk mencari, mengurangi, menghilangkan
bug (error atau kesalahan) dalam program.
Memakai command built in :
set -x : display commands dengan
argument yang dieksekusi.
set -v : menampilkan baris shell input
seperti yang tertulis.
Debugging
39. #!/bin/bash -x
echo "hello ${LOGNAME}"
echo "hari ini ${date}"
echo "Mencoba melakukan debug pada
script"
w
nano latihan2ged.sh
40. Melihat identitas diri (nomor id dan group id)
$ id
Melihat tanggal dan kalender dari system
Melihat tanggal saat ini
$ date
Melihat kalender
$ cal 18 2008
$ cal -y
Melihat identitas mesin
$ hostname
$ uname
$ uname -a
Perintah-perintah
41. Melihat siapa yang sedang aktif
Mengetahui siapa saja yang sedang aktif
$ w
$ who
$ whoami
Mengubah informasi finger
$ chfn <user>
Changing finger information for student.
Password:
Name[user wks]: <Nama Pengguna di wks>
Office[]: Lab Pemrograman 2
Office Phone []: 2301
Home Phone []: 5947280
Finger information changed.
Melihat informasi finger
$ finger
$ finger <user>
42. Menggunakan manual
$ man ls
$ man man
$ man –k file
$ man 5 passwd
Menghapus layer
$ clear
Mencari perintah yang deskripsinya mengandung kata kunci yang
dicari
$ apropos date
$ apropos mail
$ apropos telnet
Mencari perintah yang tepat sama dengan kunci yang dicari
$ whatis date
43. Melihat tipe file
$ file
$ file *
$ file /bin/ls
Menyalin file
Mengkopi suatu file. Berikan opsi –i untuk pertanyaan interaktif bila file sudah
ada.
$ cp /etc/group f1
$ ls –l
$ cp –i f1 f2
$ cp –i f1 f2
Mengkopi ke direktori
$ mkdir backup
$ cp f1 f3
$ cp f1 f2 f3 backup
$ ls backup
$ cd backup
$ ls
44. Melihat isi file
Menggunakan instruksi cat
$ cat f1
Menampilkan file per satu layar penuh
$ more f1
$ pg f1
Mengubah nama file
Menggunakan instruksi mv
45. $ mv f1 prog.txt
$ ls
Memindahkan file ke direktori lain. Bila argumen
terakhir adalah nama direktori, maka berkas-berkas
akan dipindahkan ke direktori tersebut.
$ mkdir mydir
$ mv f1 f2 f3 mdir
Menghapus file
$ rm f1
$ cp mydir/f1 f1
$ cp mydir/f2 f2
$ rm f1
$ rm –i f2
46. Mencari kata atau kalimat dalam file
$ grep root /etc/passwd
$ grep “:0:” /etc/passwd
$ grep student /etc/passwd
48. $echo "$var"
atau
$echo $var
atau
$echo "${var} "
atau
$printf $var atau printf "%sn" ${Var} //
gunakan man printf untuk kontrol lainnya
atau
$echo ${var=nilai variabel} atau $echo ${var-
nilai variable}
atau
${var:=defaultvalue}
Variabel
54. read -p "Prompt" variable1 variable2 variableN
Jika tidak ada opsi, masukan dibaca tanpa dipilah
terlebih dahulu. Batas pembacaan adalah karakter
<enter>
READ (Input dari keyboard)
65. #!/bin/bash
declare –i data1 data2 hasil
read –p "Masukkan sebuah angka : "
data1=$REPLY
read –p "Masukkan angka lagi : "
data2=$REPLY
hasil=data1/data2
echo "hasil dari $data1 / data2
adalah $hasil"
unset data1 data2 hasil
nano latihan2o1.sh
66. #!/bin/bash
let data1 data2 hasil
read –p "masukkan sebuah angka : "
data1=$REPLY
read –p "masukkan sebuah angka lagi : "
data2=$REPLY
((hasil=data1-data2))
echo "hasil dari $data1 - $data2 adalah
$hasil "
unset data1 data2 hasil
nano latihan2o2.sh
67. Variabel yang menyimpan nilai lebih dari
satu. Biasanya bertipe sama.
Cara mendefinisikan :
- declare –a
- read –a
- varX[index]
Array
68. #!/bin/bash
declare –a nilai=(mhs1 mhs2 mhs3 mhs4)
echo "isi dari array indek 0 adalah
${nilai[0]} "
echo "isi array ke 1 adalah ${nilai[1]}
"
echo "jumlah indek adalah ${#nilai[*]}"
echo "isi array adalah ${nilai[*]} "
unset nilai
nano latihan2p.sh
69. #!/bin/bash
declare –a x=(2 [3]=hai [8]=ali)
echo "indek ke 0 berisi ${x[0]}"
echo "indek ke 1 berisi ${x[1]}"
echo "indek ke 3 berisi ${x[3]}"
echo "indek ke 8 berisi ${x[8]}"
echo "total indek adalah ${#x[*]}"
unset x
nano latihan2q.sh
70. #!/bin/bash
echo "Ketikkan min. 3 nama buah "
read –a buah
echo "nama buah : ${buah[*]}"
echo "jumlah buah ${#buah[*]}"
nano latihan2r.sh