SlideShare a Scribd company logo
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
Aturan Perkuliahan
Kehadiran
 16 pekan ( 13x kuliah + 3x assessmen )
 1 pekan 2x pertemuan (teori + exercise)  32
pertemuan
 Hadir > 24 pertemuan
Presensi:
1. RFID card, dan
2. Tanda tangan
Keterlambatan
 Max 15 menit
 Tugas / praktek / kuis : 30%
 Assessmen 1 : 20%-30%
 Assessmen 2 : 20%-30% 70%
 Assessmen 3 : 20%-30%
Penilaian
mahasiswa dapat membuat program yang
mampu memanipulasi, memonitoring sistem
operasi dan sumber daya komputer
berbasis Linux dengan memanfaatkan Shell
Programming
Standar Kompetensi
 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
Review OS (Linux) - History
Minix, 1987,
Prof. Andrew S.Tanenbaum
Linux, 1991,
LinusTorvalds
UNICS, 1969,
AT&T
UNIX 6 ,1976
Linux Directory
Linux
Command
http://linoxide.com/linux
-command/linux-
commands-cheat-sheet
$ date
$ date +”Hari ini %A,%B %d, %Y.%nJam %r,%Z.”
$ cal 9 2006
$ cal -y
Waktu & Tanggal
$ 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
$ ls /usr/share/doc
$ pwd
$ echo $HOME
$ mkdir work
$ cd /home/student/work
$ cd ..
$ cd -
Direktori
$ pwd
$ cd .
$ pwd
$ cd ..
$ pwd
$ cd
$ ls
$ ls –a
$ ls /
$ ls –l /usr
$ ls –ld /usr
Direktori
$ 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
$ 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
$ cd
$ rm work
$ rm –ri work
$ mkdir work
$ rmdir work
Manipulasi File & Direktori
$ file /usr/share/doc/HTML/bookmarks.html
$ file testfile
$ cat /etc/profile
$ cat /etc/passwd
$ less /etc/profile
$ more /etc/profile
Manipulasi File & Direktori
$ echo $HOME
$ echo $PATH
$ env
$ printenv
$ echo “Hello world”
$ echo ‘Hello world’
Interaksi
Antarmuka interaksi user dan kernel sistem
operasi berbasis command line.
Shell
Macam Shell Linux
# 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
#!/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
#!/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
 Nama lokasi di memori yang dipakai
untuk menyimpan data, bersifat temporer
/ sementara.
Variabel
1. EnvironmentVariable
2. Positional Parameter
3. User DefinedVariable
MacamVariabel
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
#Simpan dulu prompt lama
$ PS1LAMA=$PS1 <enter>
#set prompt ke nilai baru
$ PS1="Promptku!“<enter>
Latihan Set Prompt
#contoh pemakaian
$ PS1="[t][u@h:w]$"<enter>
Karakter backslash untuk prompt
Berikan perintah berikut
$ env <enter>
ListVariabel Environment
Buatlah shell script untuk menampilkan
berbagai varibel yang ada. Jangan lupa
berikan labelnya
Merupakan parameter yang digunakan shell
untuk menampung argumen pemanggilan
baik berupa argumen saat sebuah file
dijalankan atau argumen yang dikirim ke
subrutin.
Positional Parameter
#!/bin/bash
#argumen1
echo $1 adalah salah satu $2
populer di $3
#end
./argumen1 joko siti asep
nano latihan2c.sh
#!/bin/bash
#argumen2
clear
echo "Nama script : $0";
echo "Banyak argumen : $#";
echo "Argumennya adalah: $*";
#end
./argumen 1 2 3 empat
nano latihan2d.sh
variabel yang didefinisikan sendiri oleh
pembuat script.
Ketentuan :
 dimulai dengan huruf atau underscore
 hindari pemakaian karakter spesial seperti
*,$,#,dll ...
 bersifat case sensitive
User DefinedVariable
myos="linux" #double-quoted
nama='pinguin' #single-quoted
hasil=`ls -l`; #back-quoted
angka=12
Contoh
#!/bin/bash
nama="pinguin"
kata='Hi $nama, apa kabar'
#menyisipkan variabel nama
echo $kata;
nano latihan2e.sh
#!/bin/bash
hapus=`clear`;
#hasil dari perintah ls -l disimpan di variabel isi
isi=`ls -l`;
#hapus layar
echo $hapus
#ls -l
echo $isi;
nano latihan2f.sh
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
#!/bin/bash
echo "hello ${LOGNAME}"
echo "hari ini ${date}"
echo "Mencoba melakukan debug pada
script"
w
nano latihan2g.sh
#!/bin/bash -x
echo "hello ${LOGNAME}"
echo "hari ini ${date}"
echo "Mencoba melakukan debug pada
script"
w
nano latihan2ged.sh
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
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>
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
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
Melihat isi file
Menggunakan instruksi cat
$ cat f1
Menampilkan file per satu layar penuh
$ more f1
$ pg f1
Mengubah nama file
Menggunakan instruksi mv
$ 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
Mencari kata atau kalimat dalam file
$ grep root /etc/passwd
$ grep “:0:” /etc/passwd
$ grep student /etc/passwd
Tugas resume perintah
$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
$ echo ${coba:=test}
$ kelas=PCE102
$ echo ${kelas:=PCE103}
$ unset kelas
$ echo ${kelas:=PCE103}
#!/bin/bash
# welcome message
echo "*** Backup Shell Script ***"
echo
echo "*** Run time: $(date) @ $(hostname)"
echo
# Definisi variabel
BACKUP="/PCE10"
NOW=$(date +"%d-%m-%Y")
# Start backup
echo "*** Dumping MySQL Database to $BACKUP/$NOW..."
# Just sleep for 3 secs
sleep 3
# And we are done...
echo
echo "*** Backup wrote to $BACKUP/$NOW/latest.tar.gz"
nano latihan2h.sh
$vech="shell"
$printf "%sn" $vech
$printf "%1sn" $vech
$printf "%1.1sn" $vech
$printf "%1.2sn" $vech
$printf "%1.3sn" $vech
$printf "%10.3sn" $vech
$printf "%10.1sn" $vech
$no=10
$printf "%dn" $no
$big=5355765
$printf "%en" $big
$printf "%5.2en" $big
$sales=54245.22
$printf "%fn" $sales
$printf "%.2fn" $sales
printf
$echo "Path is $PATH" ## $PATH akan dieksekusi
atau
$echo 'I want to print $PATH' ## PATH tidak dieksekusi
Quote
$FILE="/etc/resolv.conf"
$echo "File is "$FILE" "
FILE="/etc/resolv.conf"
echo "File is $FILE "
Backslash
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)
Format READ
#!/bin/bash
read -p "Enter your name : " name
echo "Hi, $name. Welcome to Shell
Programming Lab.!"
nano latihan2i.sh
#!/bin/bash
# baca multiple input, 3 angka
read -p "Bilangan pertama : " n1
read -p "Bilangan kedua : " n2
read -p "Bilangan ketiga : " n3
# tampilkan
echo "Angka 1 - $n1"
echo "Angka 2 - $n2"
echo "Angka 3 - $n3"
nano latihan2j.sh
Untuk membatasi waktu penginputan nilai
variable dapat diset waktunya dengan
option –t .
Timeout inputan
nano latihan2k.sh
#!/bin/bash
read -t 10 -p "Nama domain internet :
" nama_domain
echo $nama_domain
Penanganan form untuk password dengan
menyembunyikan karakter yang dimasukkan
dapat menggunakan option –s.
Inputan Password
#!/bin/bash
read -s -p "Enter Password : "
my_password
echo
echo "Your password -
$my_password"
nano latihan2l.sh
 String yang mengandung spasi, dapat
dipisahkan dengan option -r
MultipleValues Split
#!/bin/bash
nameservers="ns1.telu.cu ns2.telu.cu
ns3.telu.cu"
echo "$nameservers"
printf "%s" $nameservers
read -r ns1 ns2 ns3 <<< "$nameservers"
echo "DNS Server #1 $ns1"
echo " #2 $ns2"
echo " #3 $ns2"
printf "DNS Server #1 %sn #2 %sn #3 %sn" $ns1 $ns2
$ns3
nano latihan2m.sh
#!/bin/bash
echo "Surnamen"
echo "First name: c"
read name1 name2
echo "Welcome to Tel U $name2 $name1"
nano latihan2n.sh
#!/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
#!/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
Variabel yang menyimpan nilai lebih dari
satu. Biasanya bertipe sama.
Cara mendefinisikan :
- declare –a
- read –a
- varX[index]
Array
#!/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
#!/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
#!/bin/bash
echo "Ketikkan min. 3 nama buah "
read –a buah
echo "nama buah : ${buah[*]}"
echo "jumlah buah ${#buah[*]}"
nano latihan2r.sh
#!/bin/bash
x[0]=3
x[5]=2
x[2]=4
echo "isi array adalah ${x[*]}"
echo "jmlh indeks adalah ${#x[*]}"
unset x
nano latihan2s.sh
#!/bin/bash
declare –ai x
x[0]=2
x[2]=3
x[3]=${x[0]}*${x[2]}
echo "hasil ${x[0]} kali ${x[2]} = ${x[3]}"
echo "jumlah indek array adalah ${#x[*]}"
nano latihan2t.sh
#!/bin/bash
declare -ai larik
larik[1,1]=1
larik[1]=10
larik[1,1,1]=4
echo "Jumlah elemen larik ${#larik[*]}"
echo "Isi larik ${larik[*]}"
echo "[1,1]= ${larik[1,1]}"
echo "[1]= ${larik[1]}"
echo "[1,1,1]=${larik[1,1,1]}"
nano latihan2u.sh
#!/bin/bash
declare -ai larik
larik[1,1]=1
echo "[1,1]= ${larik[1,1]}"
larik[1]=10
echo "[1]= ${larik[1]}"
larik[1,1,1]=4
echo "[1,1,1]=${larik[1,1,1]}"
echo "Jumlah elemen larik ${#larik[*]}"
echo "Isi larik ${larik[*]}"
nano latihan2v.sh
#!/bin/bash
declare -ai larik
larik[1,1]=1
larik[1,2]=2
larik[1,3]=3
larik[2,1]=20
larik[2,2]=40
larik[2,3]=60
echo "[1,1]=${larik[1,1]}"
echo "[1,2]=${larik[1,2]}"
echo "[1,3]=${larik[1,3]}"
echo "[2,1]=${larik[2,1]}"
echo "[2,2]=${larik[2,2]}"
echo "[2,3]=${larik[2,3]}"
echo "Jumlah elemen larik ${#larik[*]}"
echo "Isi larik ${larik[*]}"
nano latihan2w.sh
#!/bin/bash
declare -Ai larik
larik[1,1]=1
larik[1,2]=2
larik[1,3]=3
larik[2,1]=20
larik[2,2]=40
larik[2,3]=60
echo "[1,1]=${larik[1,1]}"
echo "[1,2]=${larik[1,2]}"
echo "[1,3]=${larik[1,3]}"
echo "[2,1]=${larik[2,1]}"
echo "[2,2]=${larik[2,2]}"
echo "[2,3]=${larik[2,3]}"
echo "Jumlah elemen larik ${#larik[*]}"
echo "Isi larik ${larik[*]}"
nano latihan2x.sh
#!/bin/bash
declare -Ai larik
larik[1,1]=1
larik[1,2]=2
larik[1,3]=3
larik[2,1]=20
larik[2,2]=40
larik[2,3]=60
echo –n "[1,1]=${larik[1,1]}"
echo –n "[1,2]=${larik[1,2]}"
echo "[1,3]=${larik[1,3]}"
echo –n "[2,1]=${larik[2,1]}"
echo –n "[2,2]=${larik[2,2]}"
echo "[2,3]=${larik[2,3]}"
echo "Jumlah elemen larik ${#larik[*]}"
echo "Isi larik ${larik[*]}"
nano latihan2y.sh
#!/bin/bash
declare -Ai larik
larik[1.nim]=1
larik[1.nama]="Mbilung"
larik[1.kelas]="SP1"
larik[2.nim]=20
larik[2.nama]="Cangik"
larik[2.kelas]="SP2"
echo –n "[1.nim]=${larik[1.nim]}"
echo –n "[1.nama]=${larik[1.nama]}"
echo "[1.kelas]=${larik[1.kelas]}"
echo –n "[2.nim]=${larik[2.nim]}"
echo –n "[2.nama]=${larik[2.nama]}"
echo "[2.kelas]=${larik[2.kelas]}"
echo "Jumlah elemen larik ${#larik[*]}"
echo "Isi larik ${larik[*]}"
nano latihan2z.sh

More Related Content

PDF
Pemrograman shell2
PDF
Os2013 lap1-rizqitohopi
PDF
Lapres so d_modul4_yuka
PDF
Prak sh6
PDF
Os2013 lap3-rizqitohopi
PDF
Os2013 lap6-rizqitohopi
PDF
Lapres so d_modul3_yuka
PDF
Pemrograman Web 7 - Basic PHP
Pemrograman shell2
Os2013 lap1-rizqitohopi
Lapres so d_modul4_yuka
Prak sh6
Os2013 lap3-rizqitohopi
Os2013 lap6-rizqitohopi
Lapres so d_modul3_yuka
Pemrograman Web 7 - Basic PHP

What's hot (20)

PDF
Lapres so d_modul5_yuka
PDF
Os2013 lap6-ridwan
DOCX
Laporan Praktikum Web dengan PHP
PDF
Os2013 lap2-rizqitohopi
DOCX
Laporan praktikum bengkel web dengan PHP
PDF
Os2013 lap5-rizqitohopi
PDF
Praktikum 5B
PDF
Os2013 lap4-rizqitohopi
PDF
Pertemuan7
PDF
Os2013 lap1-sasmita daeng sembang
PDF
Os2013 lap1-ridwan
PDF
Pengenalan perintah terminal pada linux
PDF
Os2013 lap1-riska
PDF
Blog 10
DOCX
Semua tentang php
PDF
Modul praktikum-so-2013
PDF
Instalasi Squid Proxy di Ubuntu
DOCX
Fungsi-Fungsi PHP
PPTX
Slide web programming ii
DOCX
Perintah perintah dasar linux
Lapres so d_modul5_yuka
Os2013 lap6-ridwan
Laporan Praktikum Web dengan PHP
Os2013 lap2-rizqitohopi
Laporan praktikum bengkel web dengan PHP
Os2013 lap5-rizqitohopi
Praktikum 5B
Os2013 lap4-rizqitohopi
Pertemuan7
Os2013 lap1-sasmita daeng sembang
Os2013 lap1-ridwan
Pengenalan perintah terminal pada linux
Os2013 lap1-riska
Blog 10
Semua tentang php
Modul praktikum-so-2013
Instalasi Squid Proxy di Ubuntu
Fungsi-Fungsi PHP
Slide web programming ii
Perintah perintah dasar linux
Ad

Similar to 01 tk2123 - pemrograman shell-2 (20)

PPT
Materi kuliah Sistem Operasi Pembelajaran Mengenai Shell
DOCX
Modul1
PDF
Praktikum os bab2 perintah dasar di linux
PDF
Praktikum os babk3
PDF
Praktikum Sistem Operasi Linux
PDF
Pertemuan2 basic commands linux operating system-handout
PDF
20150927 lab2 basiccommandlinux
PDF
Lapres so d_modul1_yuka
DOCX
Perintah dasar linux
PDF
Modul praktikum sistem operasi
DOCX
Praktikum ii linux file system
DOC
Modul so praktikum
PDF
Lapres so d_modul2_yuka
PPTX
Manajemen file
DOCX
Laporan praktikum 1 perintah dasar sistem operasi linux
PPTX
back up store analisa data for busnis teknologi
PPTX
Materi Training Basic Linux - Debian 7
PPT
Materi 2
PDF
Meeting 8-practice5 a-working with bash shell-b-modul
DOCX
Perintah dasar linux
Materi kuliah Sistem Operasi Pembelajaran Mengenai Shell
Modul1
Praktikum os bab2 perintah dasar di linux
Praktikum os babk3
Praktikum Sistem Operasi Linux
Pertemuan2 basic commands linux operating system-handout
20150927 lab2 basiccommandlinux
Lapres so d_modul1_yuka
Perintah dasar linux
Modul praktikum sistem operasi
Praktikum ii linux file system
Modul so praktikum
Lapres so d_modul2_yuka
Manajemen file
Laporan praktikum 1 perintah dasar sistem operasi linux
back up store analisa data for busnis teknologi
Materi Training Basic Linux - Debian 7
Materi 2
Meeting 8-practice5 a-working with bash shell-b-modul
Perintah dasar linux
Ad

More from Setia Juli Irzal Ismail (20)

PDF
Petunjuk assessmen Kajian 3 - Attack defense
PDF
Minggu 2-2 Praktikum Instalasi RouterOS pada Virtualisasi-2.pdf
PDF
Introduction to self-Supervised learning - kuliah machine learning STEI ITB
PDF
Materi lanjutan Deep Learning S1 Telekomunikasi - STEI ITB
PDF
Slide materi pengantar kuliah Deep Learning STEI ITB
PDF
slide-share.pdf
PDF
slide-lp3i-final.pdf
PDF
society50-jul-share.pdf
PDF
57 slide presentation
PDF
Panduan Proyek Akhir D3 Teknologi Komputer Telkom University
PDF
Sosialisasi kurikulum2020
PDF
Welcoming maba 2020
PDF
Slide jul apcert agm 2016
PDF
Tugas besar MK Keamanan Jaringan
PDF
PDF
PDF
03 keamanan password
PDF
02 teknik penyerangan
PDF
01a pengenalan keamanan jaringan upload
PDF
Kajian3 upload
Petunjuk assessmen Kajian 3 - Attack defense
Minggu 2-2 Praktikum Instalasi RouterOS pada Virtualisasi-2.pdf
Introduction to self-Supervised learning - kuliah machine learning STEI ITB
Materi lanjutan Deep Learning S1 Telekomunikasi - STEI ITB
Slide materi pengantar kuliah Deep Learning STEI ITB
slide-share.pdf
slide-lp3i-final.pdf
society50-jul-share.pdf
57 slide presentation
Panduan Proyek Akhir D3 Teknologi Komputer Telkom University
Sosialisasi kurikulum2020
Welcoming maba 2020
Slide jul apcert agm 2016
Tugas besar MK Keamanan Jaringan
03 keamanan password
02 teknik penyerangan
01a pengenalan keamanan jaringan upload
Kajian3 upload

Recently uploaded (20)

DOCX
Modul Ajar Deep Learning Biologi Kelas 10 SMA Terbaru 2025
PDF
Materi Seminar AITalks: AI dan Konseling GPT
PPTX
PPT Kurikulum Berbasis Cinta tahun 2025.
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
PPTX
Bahan Tayang OJT Pembelajaran Mendalam KS
DOCX
Modul Ajar Deep Learning PJOK Kelas 10 SMA Terbaru 2025
DOCX
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
PPTX
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
PPTX
Presentasi_Pembelajaran_Mendalam_Lengkap.pptx
PDF
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
PPT
Teknologi-Pangan-Pertemuan-820728132309-.ppt
PPTX
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
PPTX
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 12 SMA Terbaru 2025
PPTX
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
DOCX
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
DOCX
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025
Modul Ajar Deep Learning Biologi Kelas 10 SMA Terbaru 2025
Materi Seminar AITalks: AI dan Konseling GPT
PPT Kurikulum Berbasis Cinta tahun 2025.
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
Bahan Tayang OJT Pembelajaran Mendalam KS
Modul Ajar Deep Learning PJOK Kelas 10 SMA Terbaru 2025
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
5. Bahan Bacaan Asinkronus Modul 5_ Perencanaan Pembelajaran.pptx
Presentasi_Pembelajaran_Mendalam_Lengkap.pptx
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
Teknologi-Pangan-Pertemuan-820728132309-.ppt
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
Modul Ajar Deep Learning PAI & BP Kelas 12 SMA Terbaru 2025
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
Modul Ajar Deep Learning Bahasa Inggris Kelas 12 SMA Terbaru 2025

01 tk2123 - pemrograman shell-2

  • 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
  • 2. Aturan Perkuliahan Kehadiran  16 pekan ( 13x kuliah + 3x assessmen )  1 pekan 2x pertemuan (teori + exercise)  32 pertemuan  Hadir > 24 pertemuan Presensi: 1. RFID card, dan 2. Tanda tangan Keterlambatan  Max 15 menit
  • 3.  Tugas / praktek / kuis : 30%  Assessmen 1 : 20%-30%  Assessmen 2 : 20%-30% 70%  Assessmen 3 : 20%-30% Penilaian
  • 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
  • 6. Review OS (Linux) - History
  • 7. Minix, 1987, Prof. Andrew S.Tanenbaum Linux, 1991, LinusTorvalds UNICS, 1969, AT&T UNIX 6 ,1976
  • 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
  • 17. $ file /usr/share/doc/HTML/bookmarks.html $ file testfile $ cat /etc/profile $ cat /etc/passwd $ less /etc/profile $ more /etc/profile Manipulasi File & Direktori
  • 18. $ echo $HOME $ echo $PATH $ env $ printenv $ echo “Hello world” $ echo ‘Hello world’ Interaksi
  • 19. Antarmuka interaksi user dan kernel sistem operasi berbasis command line. Shell
  • 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
  • 25. 1. EnvironmentVariable 2. Positional Parameter 3. User DefinedVariable MacamVariabel
  • 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
  • 31. #!/bin/bash #argumen1 echo $1 adalah salah satu $2 populer di $3 #end ./argumen1 joko siti asep nano latihan2c.sh
  • 32. #!/bin/bash #argumen2 clear echo "Nama script : $0"; echo "Banyak argumen : $#"; echo "Argumennya adalah: $*"; #end ./argumen 1 2 3 empat nano latihan2d.sh
  • 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
  • 35. #!/bin/bash nama="pinguin" kata='Hi $nama, apa kabar' #menyisipkan variabel nama echo $kata; nano latihan2e.sh
  • 36. #!/bin/bash hapus=`clear`; #hasil dari perintah ls -l disimpan di variabel isi isi=`ls -l`; #hapus layar echo $hapus #ls -l echo $isi; nano latihan2f.sh
  • 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
  • 38. #!/bin/bash echo "hello ${LOGNAME}" echo "hari ini ${date}" echo "Mencoba melakukan debug pada script" w nano latihan2g.sh
  • 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
  • 49. $ echo ${coba:=test} $ kelas=PCE102 $ echo ${kelas:=PCE103} $ unset kelas $ echo ${kelas:=PCE103}
  • 50. #!/bin/bash # welcome message echo "*** Backup Shell Script ***" echo echo "*** Run time: $(date) @ $(hostname)" echo # Definisi variabel BACKUP="/PCE10" NOW=$(date +"%d-%m-%Y") # Start backup echo "*** Dumping MySQL Database to $BACKUP/$NOW..." # Just sleep for 3 secs sleep 3 # And we are done... echo echo "*** Backup wrote to $BACKUP/$NOW/latest.tar.gz" nano latihan2h.sh
  • 51. $vech="shell" $printf "%sn" $vech $printf "%1sn" $vech $printf "%1.1sn" $vech $printf "%1.2sn" $vech $printf "%1.3sn" $vech $printf "%10.3sn" $vech $printf "%10.1sn" $vech $no=10 $printf "%dn" $no $big=5355765 $printf "%en" $big $printf "%5.2en" $big $sales=54245.22 $printf "%fn" $sales $printf "%.2fn" $sales printf
  • 52. $echo "Path is $PATH" ## $PATH akan dieksekusi atau $echo 'I want to print $PATH' ## PATH tidak dieksekusi Quote
  • 53. $FILE="/etc/resolv.conf" $echo "File is "$FILE" " FILE="/etc/resolv.conf" echo "File is $FILE " Backslash
  • 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)
  • 56. #!/bin/bash read -p "Enter your name : " name echo "Hi, $name. Welcome to Shell Programming Lab.!" nano latihan2i.sh
  • 57. #!/bin/bash # baca multiple input, 3 angka read -p "Bilangan pertama : " n1 read -p "Bilangan kedua : " n2 read -p "Bilangan ketiga : " n3 # tampilkan echo "Angka 1 - $n1" echo "Angka 2 - $n2" echo "Angka 3 - $n3" nano latihan2j.sh
  • 58. Untuk membatasi waktu penginputan nilai variable dapat diset waktunya dengan option –t . Timeout inputan
  • 59. nano latihan2k.sh #!/bin/bash read -t 10 -p "Nama domain internet : " nama_domain echo $nama_domain
  • 60. Penanganan form untuk password dengan menyembunyikan karakter yang dimasukkan dapat menggunakan option –s. Inputan Password
  • 61. #!/bin/bash read -s -p "Enter Password : " my_password echo echo "Your password - $my_password" nano latihan2l.sh
  • 62.  String yang mengandung spasi, dapat dipisahkan dengan option -r MultipleValues Split
  • 63. #!/bin/bash nameservers="ns1.telu.cu ns2.telu.cu ns3.telu.cu" echo "$nameservers" printf "%s" $nameservers read -r ns1 ns2 ns3 <<< "$nameservers" echo "DNS Server #1 $ns1" echo " #2 $ns2" echo " #3 $ns2" printf "DNS Server #1 %sn #2 %sn #3 %sn" $ns1 $ns2 $ns3 nano latihan2m.sh
  • 64. #!/bin/bash echo "Surnamen" echo "First name: c" read name1 name2 echo "Welcome to Tel U $name2 $name1" nano latihan2n.sh
  • 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
  • 71. #!/bin/bash x[0]=3 x[5]=2 x[2]=4 echo "isi array adalah ${x[*]}" echo "jmlh indeks adalah ${#x[*]}" unset x nano latihan2s.sh
  • 72. #!/bin/bash declare –ai x x[0]=2 x[2]=3 x[3]=${x[0]}*${x[2]} echo "hasil ${x[0]} kali ${x[2]} = ${x[3]}" echo "jumlah indek array adalah ${#x[*]}" nano latihan2t.sh
  • 73. #!/bin/bash declare -ai larik larik[1,1]=1 larik[1]=10 larik[1,1,1]=4 echo "Jumlah elemen larik ${#larik[*]}" echo "Isi larik ${larik[*]}" echo "[1,1]= ${larik[1,1]}" echo "[1]= ${larik[1]}" echo "[1,1,1]=${larik[1,1,1]}" nano latihan2u.sh
  • 74. #!/bin/bash declare -ai larik larik[1,1]=1 echo "[1,1]= ${larik[1,1]}" larik[1]=10 echo "[1]= ${larik[1]}" larik[1,1,1]=4 echo "[1,1,1]=${larik[1,1,1]}" echo "Jumlah elemen larik ${#larik[*]}" echo "Isi larik ${larik[*]}" nano latihan2v.sh
  • 75. #!/bin/bash declare -ai larik larik[1,1]=1 larik[1,2]=2 larik[1,3]=3 larik[2,1]=20 larik[2,2]=40 larik[2,3]=60 echo "[1,1]=${larik[1,1]}" echo "[1,2]=${larik[1,2]}" echo "[1,3]=${larik[1,3]}" echo "[2,1]=${larik[2,1]}" echo "[2,2]=${larik[2,2]}" echo "[2,3]=${larik[2,3]}" echo "Jumlah elemen larik ${#larik[*]}" echo "Isi larik ${larik[*]}" nano latihan2w.sh
  • 76. #!/bin/bash declare -Ai larik larik[1,1]=1 larik[1,2]=2 larik[1,3]=3 larik[2,1]=20 larik[2,2]=40 larik[2,3]=60 echo "[1,1]=${larik[1,1]}" echo "[1,2]=${larik[1,2]}" echo "[1,3]=${larik[1,3]}" echo "[2,1]=${larik[2,1]}" echo "[2,2]=${larik[2,2]}" echo "[2,3]=${larik[2,3]}" echo "Jumlah elemen larik ${#larik[*]}" echo "Isi larik ${larik[*]}" nano latihan2x.sh
  • 77. #!/bin/bash declare -Ai larik larik[1,1]=1 larik[1,2]=2 larik[1,3]=3 larik[2,1]=20 larik[2,2]=40 larik[2,3]=60 echo –n "[1,1]=${larik[1,1]}" echo –n "[1,2]=${larik[1,2]}" echo "[1,3]=${larik[1,3]}" echo –n "[2,1]=${larik[2,1]}" echo –n "[2,2]=${larik[2,2]}" echo "[2,3]=${larik[2,3]}" echo "Jumlah elemen larik ${#larik[*]}" echo "Isi larik ${larik[*]}" nano latihan2y.sh
  • 78. #!/bin/bash declare -Ai larik larik[1.nim]=1 larik[1.nama]="Mbilung" larik[1.kelas]="SP1" larik[2.nim]=20 larik[2.nama]="Cangik" larik[2.kelas]="SP2" echo –n "[1.nim]=${larik[1.nim]}" echo –n "[1.nama]=${larik[1.nama]}" echo "[1.kelas]=${larik[1.kelas]}" echo –n "[2.nim]=${larik[2.nim]}" echo –n "[2.nama]=${larik[2.nama]}" echo "[2.kelas]=${larik[2.kelas]}" echo "Jumlah elemen larik ${#larik[*]}" echo "Isi larik ${larik[*]}" nano latihan2z.sh