SlideShare a Scribd company logo
1 of 16
Download to read offline
LAPORAN RESMI
PRAKTIKUM SISTEM OPERASI
MODUL 4
“VARIABEL LINGKUNGAN & PROGRAM EKSTERNAL”
Disusun Oleh :
LABORATORIUM
TEKNOLOGI INFORMASI DAN APLIKASI
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2013 / 2014
TGL PRAKTIKUM : 08 NOVEMBER 2013
NAMA : RASMINAWATI
NRP : 120411100103
KELAS/KELOMPOK : D / D2
DOSEN PENGAMPU : IWAN SANTOSA, S.T.,M.T.
ASISTEN : ANANG SETIYAWAN
Disetujui : ....../……./………../Bangkalan
(Anang Setiyawan)
11.04.111.000.60
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pada suatu bahasa pemrograman berbasis shell bash, penggunaan variabel
juga dibutuhkan ketika kita ingin membuat sebuah program. Variabel ini dapat
menyimpan suatu nilai yang dapat dirubah ubah namanya. Di shell Linux telah
ada beberapa variabel dan sebagian besar tidak dapat diberikan suatu nilai
tertentu. Variabel-variabel ini biasanya menyimpan informasi penting yang
bermanfaat mengenai lingkungan dimana ia dijalankan. Di dalam skrip shell di
Linux sering digunakan variabel eksternal. Dalam bab ini, akan dijelaskan
bagaimana mengimplementasikan variabel lingkungan dan program eksternal
dalam shell linux.
1.2 Tujuan
Tujuan praktikum Sistem Operasi modul 4 ini adalah :
1) Untuk mengetahui konsep variabel lingkungan
2) Untuk mengetahui penggunaan variabel lingkungan pada shell bash
LINUX
3) Untuk mengetahui konsep program eksternal serta penggunaannya
BAB II
DASAR TEORI
2.1 Variabel Lingkungan
Ada beberapa himpunan variabel yang telah disiapkan oleh shell Linux dan
Sebagian besar tidak dapat diberikan suatu nilai tertentu. Variabel-variabel ini
biasanya menyimpan informasi penting yang bermanfaat mengenai lingkungan
dimana ia berjalan.
Himpunan variabel pertama adalah $0 .. $9 dan $#. Variabel $0 adalah
basename (nama dasar) dari program saat dipanggil. Variabel $1 .. $9 adalah 9
parameter tambahan yang disertakan saat pemanggilan skrip. Variabel $@ adalah
semua parameter $1 .. whatever. Variabel $*, serupa dengan $@, tetapi tidak
mempertahankan whitespace dan tanda petik sehingga "File with spaces" menjadi
"File" "with" "spaces". Ini menyerupai echo. Sebagai aturan umum, gunakan $@
dan hindari $*. $# adalah jumlah dari parameter yang disertakan saat pemanggilan
skrip.
Perhatikan skrip contoh berikut:
#!/bin/sh
# Nama file skrip: var3.sh
echo "Saya telah dipanggil dengan $#parameter"
echo "Nama saya adalah $0"
echo "Parameter pertama saya adalah $1"
echo "Parameter kedua saya adalah $2"
echo "Semua paramaeter adalah $@"
Perhatikan luaran yang diberikan saat program dijalankan:
$ /home/steve/var3.sh
Saya telah dipanggil dengan 0 Parameter
Nama saya adalah /home/steve/var3.sh
Parameter pertama saya adalah
Parameter kedua saya adalah
Semua paramaeter adalah
$ ./var3.sh hello world earth
Saya telah dipanggil dengan 3 parameter
Nama saya adalah ./var3.sh
Parameter pertama saya adalah hello
Parameter kedua saya adalah world
Semua paramaeter adalah hello world earth
Nilai $0 berubah tergantung pada bagaimana skrip dipanggil. Utilitas eksternal
basename dapat membantu menjelaskan:
echo "Nama saya adalah `basename $0`"
$# dan $1 .. $2 nilainya diset otomatis oleh shell. Kita dapat menyertakan lebih
dari 9 parameter dengan menggunakan perintah shift. Perhatikan skrip berikut:
#!/bin/sh
# Nama file skrip: var4.sh
while [ "$#" -gt "0" ]
do
echo "$1 is $1"
shift
done
Skrip ini berjalan menggunakan shift sampai $# turun menjadi nol, sampai daftar
menjadi kosong. Variabel khusus lain adalah $?. Ini mengandung nilai keluar
(exit) dari perintah yang terakhir berjalan. Sehingga kode:
#!/bin/sh
/usr/local
l/bin/mycommand
if [ "$?" –ne "0" ]; then
echo "Afwan, ada masalah!"
fi
akan mencoba untuk menjalankan /usr/local/bin/my-command yang akan keluar
dengan nilai nol jika semua berjalan baik atau tidak nol jika terjadi kegagalan.
Kita dapat menangani ini dengan memeriksa nilai dari $? Setelah memanggil
perintah tersebut. Ini akan menjadikan skrip robust (berkualitas) dan lebih cerdas.
Aplikasi yang bagus akan mengembalikan nol jika berhasil. Dua himpunan
variabel utama lain yang disediakan oleh lingkungan shell Linux adalah $$ dan $!.
Keduanya digunakan untuk memroses bilangan.
Variabel $$ adalah PID (Process IDentifier) dari shell yang sedang berjalan. Ini
dapat berguna untuk pembuatan file sementara (temporer), seperti /tmp/my-
script.$$ yang berguna jika dibutuhkan banyak instance dari skrip berjalan pada
waktu yang sama dan semuanya memerlukan file temporer tersendiri. Variabel $!
Adalah PID dari proses background yang terakhir dijalankan. Ini berguna untuk
memelihara track dari proses saat proses tersebut kembali mendapatkan jatah
eksekusi.
Variabel lain yang cukup menarik adalah IFS. Singkatan dari Internal Field
Separator. Nilai defaultnya adalah SPACE TAB NEWLINE, tetapi jika anda
mengubahnya, lebih mudah mengambil salinannya. Contohnya sebagai berikut:
#!/bin/bash
# Nama
file
skrip:
var5.sh
old_IFS="$ IFS"
IFS=:
echo "Masukkan 3 data yang dipisahkan titik dua ..."
read x y z
IFS=$old_IFS
echo "x adalah $x y adalah $y z adalah $z"
Skrip di atas berjalan seperti dibawah ini:
$ ./var5.sh
Masukkan 3 data yang dipisahkan titik dua ...
hello:how are you:today
x is hello y is how are you z is today
Perlu disadari bahwa IFS terutama dapat mengandung spasi, baris bari atau
karakter "uncontrollable". Alangkah baiknya jika anda menggunakan double-
quote di awal dan akhirnya, yaitu old_IFS="$IFS", bukan old_IFS=$IFS.
Sebagaimana telah disebutkan, kurung kurawal yang mengelilingi variabel akan
menghindari kebingungan:
foo=sun
echo $fooshine # $fooshine tidak didefinisikan
echo ${foo}shine # menampilkan kata"sunshine"
2.2 Nilai Default
Potongan kode berikut menampilkan prompt, meminta input dari pengguna. Jika
pengguna tidak memasukkan teks apapun, hanya menekan Enter, skrip
memberikan nilai default, yaitu nilai luaran suatu perintah „whoami‟:
#!/bin/sh
# Nama file skrip: name.sh
echo -en "Siapa anda? [ `whoami` ] " read
myname
if [ -z "$myname" ]; then myname=`whoami`
fi
echo "Anda adalah $myname"
Tambahan "-en" pada perintah echo memberitahukan echo untuk tidak
menambahkan suatu linebreak. Pada beberapa sistem, anda dapat menggunakan
"c" pada ujung baris.
Eksekusi dari skrip ini adalah
steve$ ./name.sh
Siapa anda? [ steve ] Anda adalah steve
... atau dengan suatu masukan pengguna:
steve$ ./name.sh
Siapa anda? [ steve ] foo
Anda adalah foo
Adakah fitur yang lebih menarik? Ada, gunakan kurung siku dan dan karakter
khusus “:-“. Anda dapat menentukan suatu nilai default jika variabel tidak diset
(unset):
echo -en "Siapa anda? [ `whoami` ] "
read myname
echo "Anda adalah ${myname:-`whoami`}"
Anda juga dapat memberikan nilai tetap (bukan output dari suatu perintah
eksternal) jika variabel tidak diset:
echo " Anda adalah ${myname:-John Doe}"
Ingat kembali penggunaan backtick, `whoami` berjalan dalam suatu sub-shell,
sehingga suatu perintah cd atau perubahan terhadap variabel lain, di dalam
backtick, tidak akan mempengaruhi shell yang sedang berjalan.
Mengubah Nilai Default
Ada sintaks berbentuk ":=" yang dapat digunakan untuk mengubah nilai variabel
ke suatu default jika tidak didefinisikan:
echo "Anda adalah ${myname:=John Doe}"
Teknik ini berarti bahwa akses berikutnya ke variabel $myname akan
mendapatkan suatu nilai, nilai yang dimasukkan pengguna atau "John Doe" jika
tidak.
2.3 Program Eksternal
Program eksternal sering digunakan di dalam skrip shell. Ada beberapa perintah
builtin (echo, which dan test yang sudah umum). Ada banyak perintah lain yang
berguna merupakan perintah Linux, bukan bawaan shell (Bash) seperti tr, grep,
expr dan cut.
Tanda backtick (`) sering diasosiasikan dengan perintah eksternal. Backtick
menunjukkan bahwa teks yang diapitnya akan dieksekusi sebagai suatu perintah.
Mudah dipahami. Pertama, gunakan shell interaktif untuk membaca nama panjang
anda (full name) yang terdapat di dalam file /etc/passwd:
$ grep "^${USER}:" /etc/passwd | cut -d: -f5
Steve Parker
Sekarang masukkan output ini ke dalam variabel agar dapat lebih mudah
dimanipulasi:
$ MYNAME=`grep "^${USER}:" /etc/passwd | cut -d: -f5`
$ echo $MYNAME Steve Parker
Terlihat jelas bahwa backtick menangkap output standard dari suatu perintah atau
himpunan perintah yang dijalankan Ini juga dapat meningkatkan kinerja jika anda
ingin menjalankan banyak perintah dan memparsing bit-bit outputnya:
#!/bin/sh
find / -name "*.html" - print | grep "/index.html$" find / - name "*.html" -print
|grep "/contents.html$"
Kode di atas membutuhkan waktu lama dalam menyelesaikan eksekusinya.
Solusi yang lebih baik adalah
#!/bin/sh
HTML_FILES=`find / -name "*.html" -print`
echo "$HTML_FILES" | grep "/index.html$"
echo "$HTML_FILES" | grep "/contents.html$"
Tanda petik ganda yang mengapit $HTML_FILES sangat penting untuk
menyediakan baris baru antar setiap file yang didaftarkan. Jika tidak, grep akan
melihat baris teks yang sangat panjang, bukan satu baris per file.
Cara ini hanya menjalankan perintah find 1 kali sehingga waktu eksekusi skrip
menjadi setengah dari sebelumnya.
2.4 Tulis dan Jalankan!
Apa yang dihasilkan oleh skrip pendek dibawah ini?
#!/bin/sh
# Nama file skrip: testgrep.sh
steves=`grep -i steve /etc/passwd | cut -d:-f1`
echo "All users with the word "steve" in their passwd"
echo "Entries are: $steves"
Skrip ini akan berjalan baik jika hanya ada satu baris yang cocok. Namun, jika ada
dua baris dalam /etc/passwd mengandung kata "steve" maka shell interaktif akan
menampilkan:
$> grep -i steve /etc/passwd
steve:x:5062:509:Steve Parker:/home/steve:/bin/bash
fred:x:5068:512:Fred Stevens:/home/fred:/bin/bash
$> grep -i steve /etc/passwd |cut -d: -f1
steve
fred
Tetapi skrip testgrep.sh akan menampilkan:
Entries are: steve fred
Dengan menempatkan hasil ke dalam suatu variabel kita telah mengubah
NEWLINE menjadi spasi; manpage dari sh memberitahukan bahwa karakter
pertama dalam $IFS akan digunakan untuk tujuan ini. Secara default IFS adalah
<space><tab><cr>.
Apa yang dihasilkan oleh skrip berikut:
#!/bin/sh
steves=`grep -i steve /etc/passwd | cut -d: -f1`
echo "All users with the word "steve" in their passwd"
echo "Entries are: "
echo "$steves" | tr ' ' '012'
Perlu diingat bahwa tr menerjemahkan spasi ke dalam karakter octal 012
(NEWLINE). Perintah tr dapat melibatkan range (rentang), mengkonversi teks ke
huruf besar atau kecil, misalnya:
#!/bin/sh
# Nama file skrip: changecase.sh
steves=`grep -i steve /etc/passwd | cut -d: -f1`
echo "All users with the word "steve" in their passwd"
echo "Entries are: "
echo "$steves" | tr ' ' '012' | tr '[a-z]' '[A-Z]'
Di sini ditambahkan suatu translasi dari [a-z] ke [A-Z]. Terdapat jumlah nilai yang
sama dalam range a-z dan A-Z. Kemudian dilakukan translasi suatu karakter
dalam range ASCII a-z menjadi A-Z ... dengan kata lain mengubah huruf kecil ke
pasangan huruf besarnya. Perintah tr sebenarnya lebih cerdas:
tr [:lower:] [:upper:]
memberikan hasil sama dan lebih mudah dibaca.
BAB III
TUGAS PENDAHULUAN
1. Bagaimana memanggil perintah eksternal Linux dari dalam skrip shell?
2. Bagaimana cara mengetahui perintah sapa saja yang disediakan oleh Linux?
3. Bagaimana kita dapat mengetahui suatu perintah termasuk perintah Linux atau
bawaan shellBash?
Jawab:
1. Untuk Memanggil Perintah eksternal Linux dari dalam ShellBash bisa
langsung dipanggil saja(ditulis langsung). Contoh:
#!/bin/bash
ls #memanggil perintah list
Atau perintah ditulis diantara tanda ``(tanda petik diatas tab).
#!/bin/bash
`ls`#memanggil perintah list
2. Dengan cara menekan tombol escape (esc) pada keyboard sebanyak 3 kali.
Maka akan muncul konfirmasi sebagai berikut (Contoh):
adminlab@adminlab-desktop:~/Modul2$ Display all 2700 possibilities? (y or
n)
Tekan y untuk melihat, maka akan tampil perintah-perintah yang ada.
Jika perintah tersebut ada pada direktori bin maka kemungkinan besar itu
merupakan perintah linux, tapi kalau tidak ada maka kemungkinan besar itu
merupakan perintah bawaan dari ShellBash.
BAB IV
IMPLEMENTASI
4.1 Kegiatan Praktikum
1. Apa yang dihasilkan oleh skrip pendek dibawah ini?
#!/bin/sh
# Nama file skrip: testgrep.sh
steves=`grep -i steve /etc/passwd | cut -d: -f1`
echo "All users with the word "steve" in their passwd"
echo "Entries are: $steves"
2. Apa yang dihasilkan oleh skrip pendek dibawah ini?
#!/bin/sh
steves=`grep -i steve /etc/passwd | cut -d: -f1`
echo "All users with the word "steve" in their passwd"
echo "Entries are: "
echo "$steves" | tr ' ' '012'
3. Apa yang dihasilkan oleh skrip pendek dibawah ini?
#!/bin/sh
# Nama file skrip: changecase.sh
steves=`grep -i steve /etc/passwd | cut -d: -f1`
echo "All users with the word "steve" in their passwd"
echo "Entries are: "
echo "$steves" | tr ' ' '012' | tr '[a-z]' '[A-Z]'
Jawaban :
1. Script Nomer 1
Hasil Running
2. Script Nomer 2
Hasil Running
3. Script Nomor 3
Hasil Running
4.2 Tugas Tambahan
1. Buatlah Program yang meminta user untuk menginputkan nama file dan
menginputkan password, jika cocok file tersebut akan tampil?
2. Buatlah Program Upper Case Pad shell Bash?
Jawaban
1. Program membuka file dengan password.
Hasil Running
2. Program Upper Case
Hasil Running
BAB V
PENUTUP
5.1 KESIMPULAN
Dari praktikum modul 4 kali ini dapat disimpulkan :
Cara memanggil perintah eksternal Linux dari dalam skrip shell adalah
dengan menggunakan tanda backtick (`), Backtick menunjukkan bahwa teks yang
diapitnya akan dieksekusi sebagai suatu perintah.
Di dalam skrip shell,program eksternal sering di gunakan. Ada beberapa
perintah builtin (echo, which dan test yang sudah umum). Ada banyak perintah
lain yang berguna merupakan perintah Linux, bukan bawaan shell (Bash) seperti
tr, grep, expr dan cut.
5.1 Saran
Pada praktikum modul 4 kali ini pelaksanaan praktikum sudah cukup baik.
Asisten Praktikum sudah bisa menjelakan modul lebih detail dengan
implementasi-implementasinya , perlu dipertahankan untuk praktikum
selanjutnya.

More Related Content

What's hot (19)

Os2013 lap5-rizqitohopi
Os2013 lap5-rizqitohopiOs2013 lap5-rizqitohopi
Os2013 lap5-rizqitohopi
 
Semua tentang php
Semua tentang phpSemua tentang php
Semua tentang php
 
Lapres so d_modul1_yuka
Lapres so d_modul1_yukaLapres so d_modul1_yuka
Lapres so d_modul1_yuka
 
Lapres so d_modul2_yuka
Lapres so d_modul2_yukaLapres so d_modul2_yuka
Lapres so d_modul2_yuka
 
Fungsi-Fungsi PHP
Fungsi-Fungsi PHPFungsi-Fungsi PHP
Fungsi-Fungsi PHP
 
Pemrograman shell2
Pemrograman shell2Pemrograman shell2
Pemrograman shell2
 
01 tk2123 - pemrograman shell-2
01   tk2123 - pemrograman shell-201   tk2123 - pemrograman shell-2
01 tk2123 - pemrograman shell-2
 
Prak sh6
Prak sh6Prak sh6
Prak sh6
 
Variabelphp
VariabelphpVariabelphp
Variabelphp
 
Materi 2
Materi 2Materi 2
Materi 2
 
Praktikum 6A
Praktikum 6APraktikum 6A
Praktikum 6A
 
Praktikum 5B
Praktikum 5BPraktikum 5B
Praktikum 5B
 
Os2013 lap6-ridwan
Os2013 lap6-ridwanOs2013 lap6-ridwan
Os2013 lap6-ridwan
 
L I N U X
L I N U XL I N U X
L I N U X
 
Pertemuan7
Pertemuan7Pertemuan7
Pertemuan7
 
Praktikum Sistem Operasi Linux
Praktikum Sistem Operasi LinuxPraktikum Sistem Operasi Linux
Praktikum Sistem Operasi Linux
 
Pengenalan PHP
Pengenalan PHPPengenalan PHP
Pengenalan PHP
 
02 struktur-kendali-program
02 struktur-kendali-program02 struktur-kendali-program
02 struktur-kendali-program
 
Os2013 lap1-sasmita daeng sembang
Os2013 lap1-sasmita daeng sembangOs2013 lap1-sasmita daeng sembang
Os2013 lap1-sasmita daeng sembang
 

Similar to Lapres so d_modul4_yuka

Meeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modulMeeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modulSyaiful Ahdan
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv webrahmi wahyuni
 
Praktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linuxPraktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linuxSyaiful Ahdan
 
Modul so praktikum
Modul so praktikumModul so praktikum
Modul so praktikumjoko2016
 
Praktikum os babk3
Praktikum os babk3Praktikum os babk3
Praktikum os babk3yats hidayat
 
Pertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handoutPertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handoutSyaiful Ahdan
 
20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinuxWahyu W
 
Belajar php (pemula dasar)
Belajar php (pemula dasar)Belajar php (pemula dasar)
Belajar php (pemula dasar)Andi Irawan
 
Praktikum ii linux file system
Praktikum ii linux file systemPraktikum ii linux file system
Praktikum ii linux file systemMooksHal Mhiestri
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasiHidayatullah Aldy
 
Slide web programming ii
Slide web programming iiSlide web programming ii
Slide web programming iiIlman Kadori
 
Tutorial perl programming ind ver
Tutorial perl programming ind verTutorial perl programming ind ver
Tutorial perl programming ind verQrembiezs Intruder
 
Mod -3_-_so_-_2013-2014
Mod  -3_-_so_-_2013-2014Mod  -3_-_so_-_2013-2014
Mod -3_-_so_-_2013-2014day_aftercoma
 
Perintah dasar-di-linux-dan-unix
Perintah dasar-di-linux-dan-unixPerintah dasar-di-linux-dan-unix
Perintah dasar-di-linux-dan-unixDidit Septiawan
 
Perintah dasar terminal linux 2
Perintah dasar terminal linux 2Perintah dasar terminal linux 2
Perintah dasar terminal linux 2yusri9908
 
Berkenalan dengan bahasa php pemrograman web
Berkenalan dengan bahasa php   pemrograman webBerkenalan dengan bahasa php   pemrograman web
Berkenalan dengan bahasa php pemrograman webVicky Nitinegoro
 
Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2Fitrahdede
 

Similar to Lapres so d_modul4_yuka (20)

Meeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modulMeeting 8-practice5 a-working with bash shell-b-modul
Meeting 8-practice5 a-working with bash shell-b-modul
 
pemrograman php ii
pemrograman  php iipemrograman  php ii
pemrograman php ii
 
Dasar PHP
Dasar PHPDasar PHP
Dasar PHP
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv web
 
Modul1
Modul1Modul1
Modul1
 
Praktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linuxPraktikum os bab2 perintah dasar di linux
Praktikum os bab2 perintah dasar di linux
 
Modul so praktikum
Modul so praktikumModul so praktikum
Modul so praktikum
 
Praktikum os babk3
Praktikum os babk3Praktikum os babk3
Praktikum os babk3
 
Pertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handoutPertemuan2 basic commands linux operating system-handout
Pertemuan2 basic commands linux operating system-handout
 
20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux20150927 lab2 basiccommandlinux
20150927 lab2 basiccommandlinux
 
Belajar php (pemula dasar)
Belajar php (pemula dasar)Belajar php (pemula dasar)
Belajar php (pemula dasar)
 
Praktikum ii linux file system
Praktikum ii linux file systemPraktikum ii linux file system
Praktikum ii linux file system
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasi
 
Slide web programming ii
Slide web programming iiSlide web programming ii
Slide web programming ii
 
Tutorial perl programming ind ver
Tutorial perl programming ind verTutorial perl programming ind ver
Tutorial perl programming ind ver
 
Mod -3_-_so_-_2013-2014
Mod  -3_-_so_-_2013-2014Mod  -3_-_so_-_2013-2014
Mod -3_-_so_-_2013-2014
 
Perintah dasar-di-linux-dan-unix
Perintah dasar-di-linux-dan-unixPerintah dasar-di-linux-dan-unix
Perintah dasar-di-linux-dan-unix
 
Perintah dasar terminal linux 2
Perintah dasar terminal linux 2Perintah dasar terminal linux 2
Perintah dasar terminal linux 2
 
Berkenalan dengan bahasa php pemrograman web
Berkenalan dengan bahasa php   pemrograman webBerkenalan dengan bahasa php   pemrograman web
Berkenalan dengan bahasa php pemrograman web
 
Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2
 

Recently uploaded

Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxBambang440423
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...MarwanAnugrah
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024budimoko2
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfmaulanayazid
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxDwiYuniarti14
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfkustiyantidew94
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaNadia Putri Ayu
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
Pembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasPembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasAZakariaAmien1
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdfvebronialite32
 
alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxRioNahak1
 
Membuat Strategi Penerapan Kurikulum Merdeka di dalam Kelas
Membuat Strategi Penerapan Kurikulum Merdeka di dalam KelasMembuat Strategi Penerapan Kurikulum Merdeka di dalam Kelas
Membuat Strategi Penerapan Kurikulum Merdeka di dalam KelasHardaminOde2
 
SILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxSILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxrahmaamaw03
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxalalfardilah
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxarnisariningsih98
 
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...Kanaidi ken
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfTaqdirAlfiandi1
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxErikaPuspita10
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisNazla aulia
 

Recently uploaded (20)

Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
 
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...Wawasan Nusantara  sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
Wawasan Nusantara sebagai satu kesatuan, politik, ekonomi, sosial, budaya, d...
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional Dunia
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
Pembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnasPembahasan Soal UKOM gerontik persiapan ukomnas
Pembahasan Soal UKOM gerontik persiapan ukomnas
 
Demonstrasi Kontekstual Modul 1.2. pdf
Demonstrasi Kontekstual  Modul 1.2.  pdfDemonstrasi Kontekstual  Modul 1.2.  pdf
Demonstrasi Kontekstual Modul 1.2. pdf
 
alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptx
 
Membuat Strategi Penerapan Kurikulum Merdeka di dalam Kelas
Membuat Strategi Penerapan Kurikulum Merdeka di dalam KelasMembuat Strategi Penerapan Kurikulum Merdeka di dalam Kelas
Membuat Strategi Penerapan Kurikulum Merdeka di dalam Kelas
 
SILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docxSILABUS MATEMATIKA SMP kurikulum K13.docx
SILABUS MATEMATIKA SMP kurikulum K13.docx
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
 
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdfAKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
AKSI NYATA Strategi Penerapan Kurikulum Merdeka di Kelas (1).pdf
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara Inggris
 

Lapres so d_modul4_yuka

  • 1. LAPORAN RESMI PRAKTIKUM SISTEM OPERASI MODUL 4 “VARIABEL LINGKUNGAN & PROGRAM EKSTERNAL” Disusun Oleh : LABORATORIUM TEKNOLOGI INFORMASI DAN APLIKASI JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO MADURA 2013 / 2014 TGL PRAKTIKUM : 08 NOVEMBER 2013 NAMA : RASMINAWATI NRP : 120411100103 KELAS/KELOMPOK : D / D2 DOSEN PENGAMPU : IWAN SANTOSA, S.T.,M.T. ASISTEN : ANANG SETIYAWAN Disetujui : ....../……./………../Bangkalan (Anang Setiyawan) 11.04.111.000.60
  • 2. BAB I PENDAHULUAN 1.1 Latar Belakang Pada suatu bahasa pemrograman berbasis shell bash, penggunaan variabel juga dibutuhkan ketika kita ingin membuat sebuah program. Variabel ini dapat menyimpan suatu nilai yang dapat dirubah ubah namanya. Di shell Linux telah ada beberapa variabel dan sebagian besar tidak dapat diberikan suatu nilai tertentu. Variabel-variabel ini biasanya menyimpan informasi penting yang bermanfaat mengenai lingkungan dimana ia dijalankan. Di dalam skrip shell di Linux sering digunakan variabel eksternal. Dalam bab ini, akan dijelaskan bagaimana mengimplementasikan variabel lingkungan dan program eksternal dalam shell linux. 1.2 Tujuan Tujuan praktikum Sistem Operasi modul 4 ini adalah : 1) Untuk mengetahui konsep variabel lingkungan 2) Untuk mengetahui penggunaan variabel lingkungan pada shell bash LINUX 3) Untuk mengetahui konsep program eksternal serta penggunaannya
  • 3. BAB II DASAR TEORI 2.1 Variabel Lingkungan Ada beberapa himpunan variabel yang telah disiapkan oleh shell Linux dan Sebagian besar tidak dapat diberikan suatu nilai tertentu. Variabel-variabel ini biasanya menyimpan informasi penting yang bermanfaat mengenai lingkungan dimana ia berjalan. Himpunan variabel pertama adalah $0 .. $9 dan $#. Variabel $0 adalah basename (nama dasar) dari program saat dipanggil. Variabel $1 .. $9 adalah 9 parameter tambahan yang disertakan saat pemanggilan skrip. Variabel $@ adalah semua parameter $1 .. whatever. Variabel $*, serupa dengan $@, tetapi tidak mempertahankan whitespace dan tanda petik sehingga "File with spaces" menjadi "File" "with" "spaces". Ini menyerupai echo. Sebagai aturan umum, gunakan $@ dan hindari $*. $# adalah jumlah dari parameter yang disertakan saat pemanggilan skrip. Perhatikan skrip contoh berikut: #!/bin/sh # Nama file skrip: var3.sh echo "Saya telah dipanggil dengan $#parameter" echo "Nama saya adalah $0" echo "Parameter pertama saya adalah $1" echo "Parameter kedua saya adalah $2" echo "Semua paramaeter adalah $@" Perhatikan luaran yang diberikan saat program dijalankan: $ /home/steve/var3.sh Saya telah dipanggil dengan 0 Parameter Nama saya adalah /home/steve/var3.sh Parameter pertama saya adalah Parameter kedua saya adalah
  • 4. Semua paramaeter adalah $ ./var3.sh hello world earth Saya telah dipanggil dengan 3 parameter Nama saya adalah ./var3.sh Parameter pertama saya adalah hello Parameter kedua saya adalah world Semua paramaeter adalah hello world earth Nilai $0 berubah tergantung pada bagaimana skrip dipanggil. Utilitas eksternal basename dapat membantu menjelaskan: echo "Nama saya adalah `basename $0`" $# dan $1 .. $2 nilainya diset otomatis oleh shell. Kita dapat menyertakan lebih dari 9 parameter dengan menggunakan perintah shift. Perhatikan skrip berikut: #!/bin/sh # Nama file skrip: var4.sh while [ "$#" -gt "0" ] do echo "$1 is $1" shift done Skrip ini berjalan menggunakan shift sampai $# turun menjadi nol, sampai daftar menjadi kosong. Variabel khusus lain adalah $?. Ini mengandung nilai keluar (exit) dari perintah yang terakhir berjalan. Sehingga kode: #!/bin/sh /usr/local l/bin/mycommand if [ "$?" –ne "0" ]; then echo "Afwan, ada masalah!" fi
  • 5. akan mencoba untuk menjalankan /usr/local/bin/my-command yang akan keluar dengan nilai nol jika semua berjalan baik atau tidak nol jika terjadi kegagalan. Kita dapat menangani ini dengan memeriksa nilai dari $? Setelah memanggil perintah tersebut. Ini akan menjadikan skrip robust (berkualitas) dan lebih cerdas. Aplikasi yang bagus akan mengembalikan nol jika berhasil. Dua himpunan variabel utama lain yang disediakan oleh lingkungan shell Linux adalah $$ dan $!. Keduanya digunakan untuk memroses bilangan. Variabel $$ adalah PID (Process IDentifier) dari shell yang sedang berjalan. Ini dapat berguna untuk pembuatan file sementara (temporer), seperti /tmp/my- script.$$ yang berguna jika dibutuhkan banyak instance dari skrip berjalan pada waktu yang sama dan semuanya memerlukan file temporer tersendiri. Variabel $! Adalah PID dari proses background yang terakhir dijalankan. Ini berguna untuk memelihara track dari proses saat proses tersebut kembali mendapatkan jatah eksekusi. Variabel lain yang cukup menarik adalah IFS. Singkatan dari Internal Field Separator. Nilai defaultnya adalah SPACE TAB NEWLINE, tetapi jika anda mengubahnya, lebih mudah mengambil salinannya. Contohnya sebagai berikut: #!/bin/bash # Nama file skrip: var5.sh old_IFS="$ IFS" IFS=: echo "Masukkan 3 data yang dipisahkan titik dua ..." read x y z IFS=$old_IFS echo "x adalah $x y adalah $y z adalah $z" Skrip di atas berjalan seperti dibawah ini: $ ./var5.sh
  • 6. Masukkan 3 data yang dipisahkan titik dua ... hello:how are you:today x is hello y is how are you z is today Perlu disadari bahwa IFS terutama dapat mengandung spasi, baris bari atau karakter "uncontrollable". Alangkah baiknya jika anda menggunakan double- quote di awal dan akhirnya, yaitu old_IFS="$IFS", bukan old_IFS=$IFS. Sebagaimana telah disebutkan, kurung kurawal yang mengelilingi variabel akan menghindari kebingungan: foo=sun echo $fooshine # $fooshine tidak didefinisikan echo ${foo}shine # menampilkan kata"sunshine" 2.2 Nilai Default Potongan kode berikut menampilkan prompt, meminta input dari pengguna. Jika pengguna tidak memasukkan teks apapun, hanya menekan Enter, skrip memberikan nilai default, yaitu nilai luaran suatu perintah „whoami‟: #!/bin/sh # Nama file skrip: name.sh echo -en "Siapa anda? [ `whoami` ] " read myname if [ -z "$myname" ]; then myname=`whoami` fi echo "Anda adalah $myname" Tambahan "-en" pada perintah echo memberitahukan echo untuk tidak menambahkan suatu linebreak. Pada beberapa sistem, anda dapat menggunakan "c" pada ujung baris. Eksekusi dari skrip ini adalah steve$ ./name.sh Siapa anda? [ steve ] Anda adalah steve ... atau dengan suatu masukan pengguna: steve$ ./name.sh
  • 7. Siapa anda? [ steve ] foo Anda adalah foo Adakah fitur yang lebih menarik? Ada, gunakan kurung siku dan dan karakter khusus “:-“. Anda dapat menentukan suatu nilai default jika variabel tidak diset (unset): echo -en "Siapa anda? [ `whoami` ] " read myname echo "Anda adalah ${myname:-`whoami`}" Anda juga dapat memberikan nilai tetap (bukan output dari suatu perintah eksternal) jika variabel tidak diset: echo " Anda adalah ${myname:-John Doe}" Ingat kembali penggunaan backtick, `whoami` berjalan dalam suatu sub-shell, sehingga suatu perintah cd atau perubahan terhadap variabel lain, di dalam backtick, tidak akan mempengaruhi shell yang sedang berjalan. Mengubah Nilai Default Ada sintaks berbentuk ":=" yang dapat digunakan untuk mengubah nilai variabel ke suatu default jika tidak didefinisikan: echo "Anda adalah ${myname:=John Doe}" Teknik ini berarti bahwa akses berikutnya ke variabel $myname akan mendapatkan suatu nilai, nilai yang dimasukkan pengguna atau "John Doe" jika tidak. 2.3 Program Eksternal Program eksternal sering digunakan di dalam skrip shell. Ada beberapa perintah builtin (echo, which dan test yang sudah umum). Ada banyak perintah lain yang berguna merupakan perintah Linux, bukan bawaan shell (Bash) seperti tr, grep, expr dan cut. Tanda backtick (`) sering diasosiasikan dengan perintah eksternal. Backtick menunjukkan bahwa teks yang diapitnya akan dieksekusi sebagai suatu perintah.
  • 8. Mudah dipahami. Pertama, gunakan shell interaktif untuk membaca nama panjang anda (full name) yang terdapat di dalam file /etc/passwd: $ grep "^${USER}:" /etc/passwd | cut -d: -f5 Steve Parker Sekarang masukkan output ini ke dalam variabel agar dapat lebih mudah dimanipulasi: $ MYNAME=`grep "^${USER}:" /etc/passwd | cut -d: -f5` $ echo $MYNAME Steve Parker Terlihat jelas bahwa backtick menangkap output standard dari suatu perintah atau himpunan perintah yang dijalankan Ini juga dapat meningkatkan kinerja jika anda ingin menjalankan banyak perintah dan memparsing bit-bit outputnya: #!/bin/sh find / -name "*.html" - print | grep "/index.html$" find / - name "*.html" -print |grep "/contents.html$" Kode di atas membutuhkan waktu lama dalam menyelesaikan eksekusinya. Solusi yang lebih baik adalah #!/bin/sh HTML_FILES=`find / -name "*.html" -print` echo "$HTML_FILES" | grep "/index.html$" echo "$HTML_FILES" | grep "/contents.html$" Tanda petik ganda yang mengapit $HTML_FILES sangat penting untuk menyediakan baris baru antar setiap file yang didaftarkan. Jika tidak, grep akan melihat baris teks yang sangat panjang, bukan satu baris per file. Cara ini hanya menjalankan perintah find 1 kali sehingga waktu eksekusi skrip menjadi setengah dari sebelumnya. 2.4 Tulis dan Jalankan! Apa yang dihasilkan oleh skrip pendek dibawah ini? #!/bin/sh # Nama file skrip: testgrep.sh steves=`grep -i steve /etc/passwd | cut -d:-f1`
  • 9. echo "All users with the word "steve" in their passwd" echo "Entries are: $steves" Skrip ini akan berjalan baik jika hanya ada satu baris yang cocok. Namun, jika ada dua baris dalam /etc/passwd mengandung kata "steve" maka shell interaktif akan menampilkan: $> grep -i steve /etc/passwd steve:x:5062:509:Steve Parker:/home/steve:/bin/bash fred:x:5068:512:Fred Stevens:/home/fred:/bin/bash $> grep -i steve /etc/passwd |cut -d: -f1 steve fred Tetapi skrip testgrep.sh akan menampilkan: Entries are: steve fred Dengan menempatkan hasil ke dalam suatu variabel kita telah mengubah NEWLINE menjadi spasi; manpage dari sh memberitahukan bahwa karakter pertama dalam $IFS akan digunakan untuk tujuan ini. Secara default IFS adalah <space><tab><cr>. Apa yang dihasilkan oleh skrip berikut: #!/bin/sh steves=`grep -i steve /etc/passwd | cut -d: -f1` echo "All users with the word "steve" in their passwd" echo "Entries are: " echo "$steves" | tr ' ' '012' Perlu diingat bahwa tr menerjemahkan spasi ke dalam karakter octal 012 (NEWLINE). Perintah tr dapat melibatkan range (rentang), mengkonversi teks ke huruf besar atau kecil, misalnya: #!/bin/sh # Nama file skrip: changecase.sh steves=`grep -i steve /etc/passwd | cut -d: -f1`
  • 10. echo "All users with the word "steve" in their passwd" echo "Entries are: " echo "$steves" | tr ' ' '012' | tr '[a-z]' '[A-Z]' Di sini ditambahkan suatu translasi dari [a-z] ke [A-Z]. Terdapat jumlah nilai yang sama dalam range a-z dan A-Z. Kemudian dilakukan translasi suatu karakter dalam range ASCII a-z menjadi A-Z ... dengan kata lain mengubah huruf kecil ke pasangan huruf besarnya. Perintah tr sebenarnya lebih cerdas: tr [:lower:] [:upper:] memberikan hasil sama dan lebih mudah dibaca.
  • 11. BAB III TUGAS PENDAHULUAN 1. Bagaimana memanggil perintah eksternal Linux dari dalam skrip shell? 2. Bagaimana cara mengetahui perintah sapa saja yang disediakan oleh Linux? 3. Bagaimana kita dapat mengetahui suatu perintah termasuk perintah Linux atau bawaan shellBash? Jawab: 1. Untuk Memanggil Perintah eksternal Linux dari dalam ShellBash bisa langsung dipanggil saja(ditulis langsung). Contoh: #!/bin/bash ls #memanggil perintah list Atau perintah ditulis diantara tanda ``(tanda petik diatas tab). #!/bin/bash `ls`#memanggil perintah list 2. Dengan cara menekan tombol escape (esc) pada keyboard sebanyak 3 kali. Maka akan muncul konfirmasi sebagai berikut (Contoh): adminlab@adminlab-desktop:~/Modul2$ Display all 2700 possibilities? (y or n) Tekan y untuk melihat, maka akan tampil perintah-perintah yang ada. Jika perintah tersebut ada pada direktori bin maka kemungkinan besar itu merupakan perintah linux, tapi kalau tidak ada maka kemungkinan besar itu merupakan perintah bawaan dari ShellBash.
  • 12. BAB IV IMPLEMENTASI 4.1 Kegiatan Praktikum 1. Apa yang dihasilkan oleh skrip pendek dibawah ini? #!/bin/sh # Nama file skrip: testgrep.sh steves=`grep -i steve /etc/passwd | cut -d: -f1` echo "All users with the word "steve" in their passwd" echo "Entries are: $steves" 2. Apa yang dihasilkan oleh skrip pendek dibawah ini? #!/bin/sh steves=`grep -i steve /etc/passwd | cut -d: -f1` echo "All users with the word "steve" in their passwd" echo "Entries are: " echo "$steves" | tr ' ' '012' 3. Apa yang dihasilkan oleh skrip pendek dibawah ini? #!/bin/sh # Nama file skrip: changecase.sh steves=`grep -i steve /etc/passwd | cut -d: -f1` echo "All users with the word "steve" in their passwd" echo "Entries are: " echo "$steves" | tr ' ' '012' | tr '[a-z]' '[A-Z]' Jawaban : 1. Script Nomer 1
  • 13. Hasil Running 2. Script Nomer 2 Hasil Running 3. Script Nomor 3
  • 14. Hasil Running 4.2 Tugas Tambahan 1. Buatlah Program yang meminta user untuk menginputkan nama file dan menginputkan password, jika cocok file tersebut akan tampil? 2. Buatlah Program Upper Case Pad shell Bash? Jawaban 1. Program membuka file dengan password. Hasil Running
  • 15. 2. Program Upper Case Hasil Running
  • 16. BAB V PENUTUP 5.1 KESIMPULAN Dari praktikum modul 4 kali ini dapat disimpulkan : Cara memanggil perintah eksternal Linux dari dalam skrip shell adalah dengan menggunakan tanda backtick (`), Backtick menunjukkan bahwa teks yang diapitnya akan dieksekusi sebagai suatu perintah. Di dalam skrip shell,program eksternal sering di gunakan. Ada beberapa perintah builtin (echo, which dan test yang sudah umum). Ada banyak perintah lain yang berguna merupakan perintah Linux, bukan bawaan shell (Bash) seperti tr, grep, expr dan cut. 5.1 Saran Pada praktikum modul 4 kali ini pelaksanaan praktikum sudah cukup baik. Asisten Praktikum sudah bisa menjelakan modul lebih detail dengan implementasi-implementasinya , perlu dipertahankan untuk praktikum selanjutnya.