NAMA : BOBBY SETIAWAN
NIM : 2011 81 071
SEKSI : 03
TUGAS SISTEM OPERASI (PEMOGRAMAN SHELL)
1. Pemrograman Shell adalah program yang menjembatani user dengan sistem operasi dalam hal ini Kernel (inti dari sistem operasi), umumnya shell menyediakan prompt sebagai user interface, tempat dimana user dapat mengetikkan perintah-perintah yang diinginkan baik berupa perintah internal shell (internal command), ataupun perintah eksekusi file program (eksternal command), selain itu memungkinkan user menyusun sekumpulan perintah pada sebuah atau beberapa file untuk dieksekusi sebagai program. Jadi intinya, Shell ini digunakan sebagai jembatan antara user dengan Kernel untuk mendapatkan hasil atau output yang anda inginkan.
2. Dasar Dasar dari Pemograman Shell :
- cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...
- utilitas seperti cat, cut, paste, chmod, lpr,...
- redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect >, >>, <, <<, contohnya:
ls > data
Hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.
ls >> data
Hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.
cat < data
File data dijadikan input oleh perintah cat
- pipa (output suatu perintah menjadi input perintah lain), operatornya : | , contoh:
ls -l | sort -s
Ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending)
ls -l | sort -s | more
cat <data | sort > databaru
- Wildcard dengan karakter *, ?, [ ], contohnya:
ls i*
Tampilkan semua file yang dimulai dengan i
ls i?i
Tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i
ls [ab]*
Tampilkan file yang dimulai dengan salah satu karakter a atau b.
3. Secara sederhana variabel adalah pengenal (identifier) berupa satuan dasar penyimpanan yang isi atau nilainya sewaktu-waktu dapat berubah baik oleh eksekusi program (runtime program) ataupun proses lain yang dilakukan sistem operasi. dalam dokumentasi ini saya membagi variabel menjadi 3 kategori:
- Environment Variable
Positional
Parameter
- User Defined Variable
1. Environment Variable
Dapat disebut sebagai variabel lingkungan yang digunakan khusus oleh shell atau system linux kita untuk proses kerja system seperti variabel PS1, PS2, HOME, PATH, USER, SHELL,dsb...jika digunakan akan berdampak pada system.
2. Positional Parameter
Dapat disebut sebagai parameter posisi yaitu variabel yang digunakan shell untuk menampung argumen yang diberikan terhadap shell baik berupa argumen waktu sebuah file dijalankan atau argumen yang dikirim ke subrutin.
Contoh :
Hasilnya :
Ada 3 argumen yang disertakan pada scriptargumen1yaitubash, shell, linux. Masing masing argumen akan disimpan pada variabel 1,2,3sesuai posisinya. variabel spesial lain yang dapat digunakan diperlihatkan pada script berikut :
Hasilnya :
3. User Defined Variable
User Defined Variable adalah variabel yang didefinisikan sendiri oleh pembuat script sesuai dengan kebutuhannya.
Contoh :
Hasilnya :
4. Manajemen Input dan Output pada Shell
- Output dengan Echo
Kalimat yang mengikuti echo akan ditampilkan di layar, kemudian kursor pindah baris berikutnya tanda (opsi) –n antara echo dengan kalimat digunakan agar kursor tidak pindah ke baris berikutnya.
Contoh :
- Output dengan Printf
- Output dengan Konstanta ANSI
1. Pengaturan Warna
2. Pengaturan posisi kursor
5. Struktur Kontrol pada Shell
1. Struktur Kontrol if-else (if then .... else ...)
2. Struktur Kontrol if-else bertingkat (if then .... else if then .... fi ...)
3. Struktur Kontrol if-else bertingkat - penyederhanaan (if then ... elif then ... fi ...)
4. Struktur Kontrol Case (Case in isi 1 perintah 1 ... perintah 2 ... perintah 3)
5. Struktur Kontrol For (For variabel do perintah1 done)
6. Struktur Kontrol While (While kondisi do perintah 1 done)
7. Struktur Kontrol Until (Until kondisi do perintah 1 done)
6. Array Pada Shell
Contoh Array pada shell dengan bahasa c++
7. Function pada Shell
Contoh fungsi pada shell
#!/bin/bash
function jual {
if [ -z $1 ] && [ -z $2 ]; then
echo “Tanah Tidak Terjual”
else
echo “Penjualan Tanah”
let panjang=$1
let lebar=$2
let luas=$panjang*$lebar
let “jual=($panjang*$lebar*500000)”
echo “Dengan Luas $luas m2 Telah Terjual dengan harga $jual”
fi
return 1
return 2
}
function beli {
if [ -z $1 ] && [ -z $2 ]; then
echo “Tanah Tidak Dibeli”
else
echo “Pembelian Tanah”
let panjang=$1
let lebar=$2
let luas=$panjang*$lebar
let “beli=($panjang*$lebar*750000)”
echo “dengan Luas $luas m2 Telah Dibeli dengan harga $beli”
fi
return 1
return 2
}
function sewa {
if [ -z $1 ] && [ -z $2 ]; then
echo “Tanah Tidak Tersewa”
else
echo “Penyewaan Tanah”
let panjang=$1
let lebar=$2
let luas=$panjang*$lebar
let “sewa=($panjang*$lebar*200000)”
echo “dengan Luas $luas m2 Telah Disewa dengan harga $sewa”
fi
return 1
return 2
}
rumah() {
if [ $p -eq 1 ]; then
echo “Masukan ukuran Tanah: ”
echo -n “Panjang= ”
read p
echo -n “Lebar= ”
read l
jual $p $l;
elif [ $p -eq 2 ]; then
echo “Masukan ukuran Tanah: ”
echo -n “Panjang= ”
read p
echo -n “Lebar= ”
read l
beli $p $l;
elif [ $p -eq 3 ]; then
echo “Masukan ukuran Tanah: ”
echo -n “Panjang= ”
read p
echo -n “Lebar= ”
read l
sewa $p $l;
fi
}
clear
echo “JBS Makelar Tanah ”
echo “Jual Tanah = 500000/m2″
echo “Beli Tanah = 750000/m2″
echo “Sewa Tanah = 200000/m2/tahun”
echo
echo “1. Jual Tanah Anda”
echo “2. Beli Tanah Baru”
echo “3. Sewa Tanah”
echo -n “Masukkan pilihan Anda: ”
read p
echo
echo
rumah