Jumat, 14 Desember 2012

Sistem Operasi


Modul 1
SHELL INTERAKTIF dan SKRIP


Shell dapat dikatakan sebagai tempat interaksi antara pengguna dan sistem Linux yang sedang digunakan. Shell juga bertugas menerjemahkan atau mengeksekusi program.
Shell menyediakan suatu antarmuka teks (command line). Shell dapat diguakan untuk mengelola (administering) sistem Linux seperti menambah pengguna, mengatur file dan direktori dan memantau kerja dari sistem operasi. Shell Linux ditandai oleh $ (user reguler) atau # (root).
Shell Bash dapat digunakan dalam dua modus, yaitu modus interaktif dan modus skrip.
Pada modus interaktif, anda menuliskan satu baris perintah disamping prompt dan mengakhirinya dengan ENTER. Hasil eksekusi akan ditampilkan langsung pada layar dan anda kembali disediakan prompt untuk memasukkan perintah-perintah berikutnya.
Pada modus skrip, anda menuliskan skrip atau kode program, berisi perintah-perintah Linux, menyimpannya ke dalam sebuah file dengan ekstensi .sh. Selanjutnya file ini dijalankan pada modus Interaktif.
1.1        Perintah-perintah shell pada linux
cat
Perintah untuk menampilkan isi teks file
cat [namafile]

cp
Perintah untuk Mencopy file
$ cp [source] [destination]

mv
Perintah untuk Memindah file /direktori
$ mv [source] [destination]

touch
Perintah untuk membuat file kosong
touch [file name]
contoh : $touch /tmp/cobadeh

Contoh program perintah-perintah yang berkaitan dengan pengelolaan file seperti cp, mv, touch dan cat :
cantieq@cantieq-laptop:~$ pico rusmiati.txt
cantieq@cantieq-laptop:~$ ls
Desktop    Downloads         Pictures      Templates
Do         examples.desktop  Public        Videos
Documents  Music             rusmiati.txt  xampp-linux-1.7.3a.tar.gz
cantieq@cantieq-laptop:~$ cp rusmiati.txt Documents/
cantieq@cantieq-laptop:~$ ls Documents/
basdat1.ods  rusmiati.txt
cantieq@cantieq-laptop:~$ mv rusmiati.txt Desktop/
cantieq@cantieq-laptop:~$ ls Desktop/
rusmiati.txt
cantieq@cantieq-laptop:~$ cd Desktop/
cantieq@cantieq-laptop:~/Desktop$ ls
rusmiati.txt
cantieq@cantieq-laptop:~/Desktop$ cat rusmiati.txt
belajar shell pada linux

1.2 Penggunaan baca manual dari grep dan tr.
grep
Perintah untuk melakukan scan file terhadap karakter tertentu
grep "pattern" filename

tr
Perintah untuk melakukan penghapusan karakter

Contoh program perintah-perintah yang berkaitan dengan pengelolaan file seperti cp, mv, touch dan cat :
cantieq@cantieq-laptop:~$ ls Desktop/
rusmiati.txt
cantieq@cantieq-laptop:~$ cd Desktop/
cantieq@cantieq-laptop:~/Desktop$ ls
rusmiati.txt
cantieq@cantieq-laptop:~/Desktop$ cat rusmiati.txt
belajar shell pada linux
cantieq@cantieq-laptop:~/Desktop$ grep "e" rusmiati.txt
belajar shell pada linux
cantieq@cantieq-laptop:~$ echo "linux" | tr "i" "o"
lonux
cantieq@cantieq-laptop:~$ echo "linux" | tr -d "n"
liux


1.3  Coba buka file /etc/passwd dengan perintah cat atau more. Gunakan grep dan ambil informasi mengenai pengguna tertentu!
cantieq@cantieq-laptop:~$ cat /etc/passwd
cantieq@cantieq-laptop:~$ cat /etc/passwd | grep cantieq
cantieq:x:1000:1000:cantieq,,,:/home/cantieq:/bin/bash
cantieq@cantieq-laptop:~$ grep cantieq /etc/passwd
cantieq:x:1000:1000:cantieq,,,:/home/cantieq:/bin/bash

1.4  Program skrip sederhana untuk menampilkan daftar file yang ada di dalam direktori aktif!
public@labprog01:~$ pico penutup.sh
public@labprog01:~$ chmod +x penutup.sh
public@labprog01:~$ ./penutup.s
direktori yang aktif
/home/public
file dan direktori yang ada pada direktori aktif
Desktop  examples.desktop  penutup.sh




Modul 2
VARIABEL & KARAKTER ESCAPE


Pembuatan Variabel 
Perlu dicatat bahwa harus tidak ada spasi (ruang) sebelum dan sesudah tanda sama dengan ("="): VAR=value benar sedangkan VAR =  value tidak bekerja. Pada kasus pertama, shell melihat  simbol "=" dan memperlakukan perintah sebagai pemberian atau pelewatan variabel. Pada kasus kedua, shell menganggap bahwa VAR harus berupa nama perintah dan mencoba mengeksekusinya. 

Coba tulis kode berikut ke dalam file skrip var1.sh: 
#!/bin/sh 
# Nama file skrip: var1.sh
MY_MESSAGE="Halo dunia" echo
$MY_MESSAGE
2.1  Perintah mengubah semua file terakhir .html menjadi.php
Untuk di terminal bisa langsung menggunakan perintah : mv *.html *.php tapi untuk di script bash tidak diperbolehkan, untuk itu kita bisa menggunakan perulangan. adapun scriptnya adalah sebagai berikut:
#!/bin/bash
#program tp_mod2_1.sh
for i in *.html; do mv "$i" "`basename $i .html`.php"; done
proses :
achan@labprogserver:~/p_so/mod2$ touch a.html b.html c.html d.html
achan@labprogserver:~/p_so/mod2$ ls
a.html b.html c.html d.html
achan@labprogserver:~/p_so/mod2$ nano tp_mod2_1.sh
achan@labprogserver:~/p_so/mod2$ chmod +x tp_mod2_1.sh
achan@labprogserver:~/p_so/mod2$ ./tp_mod2_1.sh
achan@labprogserver:~/p_so/mod2$ ls
a.php b.php c.php d.php tp_mod2_1.sh
achan@labprogserver:~/p_so/mod2$

2.2  Penggunaan perintah LOGNAME, date, who i am, dan pwd
         Logname
         Perintah untuk menampilkan nama user (nama login)
        
         Date
         Perintah untuk menampilkan hari, tanggal dan jam

         Who I am
         Perintah untuk mencetak pengguna saat ini dan nama id

         Pwd
         Perintah untuk mencetak direktori kerja

         Contoh Syntax:
#!/bin/bash
echo "Halo, $LOGNAME"
echo "Tanggal sekarang `date`"
echo "Pengguna: `who i am`"
echo "Direktori aktif `pwd`"

Keluaran :

2.3        Perintah menampilkan daftar file dan direktori yang terdapat di dalam direktorti aktif
ls
perintah untuk menampilkan list informasi tentang file

contoh syntax:
#!/bin/bash
echo "Halo, $LOGNAME"
echo "Tanggal sekarang `date`"
echo "Pengguna: `who i am`"
echo "Direktori aktif `pwd`"
echo –e "Daftar file dan direktori \n `ls`"


Hasil running :

2.4  Perintah operasi bilangan matematika (Penambahan, Pengurangan, Perkalian, Pembagian, dan Pangkat)
·         Operasi bilangan tambahan dan pengurangan
Skrip :
Running :

·         Operasi bilangan pada pembagian, pangkat dan perkalian
Jawaban:
Skrip:    
           
Running:

2.5       Perintah menhitung luas
·         Luas lingkaran
Skrip menghitung luas Lingkaran:

Running :
·         Skrip Menghitung Luas Persegi

Running:

·         Skrip Menghitung Luas Segitiga samakaki

Running:



Modul 3
Perulangan dan Seleksi


Sebagian besar bahasa pemrograman mempunyai konsep perulangan atau loop. Jika kita perlu mengulangi suatu tugas sebanyak 20 kali, kita tidak harus menuliskan kode yang sama sebanyak 20 kali. Shell Bash menyediakan perulangan for dan while. Shell Linux memang menyediakan lebih sedikit fitur dibandingkan bahasa dunia C/C++.
Perulangan for
Perulangan for digunakan untuk melakukan pekerjaan berulang sebanyak daftar yang disediakan. Contoh :
#!/bin/sh
# Nama file skrip: for1.sh
for i in 1 2 3 4 5
do
echo "Looping ... number $i"
done
Perulangan while
Perulangan while dapat digunakan untuk melakukan pekerjaan berulang yang jumlah perulangannya tidak pasti tetapi bergantung pada suatu kondisi yang harus dipenuhi. Perhatikan skrip berikut:
#!/bin/sh
# Nama file skrip: while.sh
INPUT_STRING=hello
while [ "$INPUT_STRING" != "bye" ]
do
echo "Ketikkan sesuatu (bye untuk keluar)"
read INPUT_STRING
echo "Anda mengetikkan: $INPUT_STRING"



3.1        Program tebak angka dengan bahasa C menggunakan perulangan dan seleksi
Fungsi percabangan berfungsi melakukan suatu aksi tertentu bila suatu syarat dipenuhi, sedangkan fungsi perulangan berfungsi melakukan perulangan terhadap suatu aksi hingga atau sampai suatu syarat terpenuhi.
Program Tebak angka dengan Bahasa C
#include <stdio.h> 
typedef enum{false = 0, true = 1}boolean;
int RandomIsi(int jarak);
main() {
int angka, Jawaban;
boolean ketemu;
printf("Game Tebak Angka!\n"); /*Judul Game*/
ketemu=false;
Jawaban=RandomIsi(100); /*buat angka acak antara 1-100*/
while(!ketemu) //Pengulangan
{ printf("Masukan angka tebakan = ");
scanf("%d", &angka); /*Membaca Jawaban angka dari user*/
if(angka==Jawaban) // Penyeleksian Kondisi Untuk Mengetahui
kebenaran jawaban dari user
{ ketemu=true; //jika sama berarti jawaban benar
}else
{ if(angka { printf("Terlalu kecil\n"); //jika lebih kecil
}else
{ printf("Terlalu besar\n"); //jika lebih besar
}
}
}
if(ketemu)
{ printf("Tebakan anda benar!\n"); }
}
/*fungsi membuat angka acak*/
int RandomIsi(int jarak)
{ int RandomAngka; srand(time(NULL)); /*memakai fungsi time
agar hasil angka acak berbeda-beda*/
RandomAngka=(rand()%jarak)+1;
return RandomAngka; }
 
1.1        Skrip memeriksa keshahihan username dari sistem Linux dengan memberikan inputan dari keyboard (gunakan perintah read).

Hasil running :

1.2        program untuk menampilkan daftar semua pengguna yang ada di dalam sistem Linux mencakup Username, Nama lengkap dan Home directory-nya

Hasil running :

1.3        program tebak angka dengan menggunakan perintah case...esac

Hasil running :

1.4        Program while, for, case, dan if
#!/bin/bash
echo "1. While - Login System"
echo "2. For - Looping nama 3x"
echo "3. Case - Nama Hari"
echo "4. If - Nilai"
echo -n "Masukkan pilihan: "
read pil
if [ $pil = 1 ]; then
echo "semangad \(^.^)/"
elif [ $pil = 2 ]; then
for i in 1 2 3
do
echo "Henny Elvandari"
done
elif [ $pil = 3 ]; then
echo -n "Masukkan angka 1-7: "
read hari
case $hari in
1) echo "Senin";;
2) echo "Selasa";;
3) echo "Rabu";;
4) echo "Kamis";;
5) echo "Jumat";;
6) echo "Sabtu";;
7) echo "Minggu";;
*) echo "Masukkan angka 1-9";;
esac
elif [ $pil = 4 ]; then
echo -n "Masukkan Nilai Anda: "
read nilai
if [ $nilai >60 ]; then
echo "Ye . .yE. . Anda lulus"
else
echo "Maaf !Anda tidak lulus"
fi
fi

Hasil Running :


Modul 4
VARIABLE LINGKUNGAN & PROGRAM EKSTERNAL


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.
2.1  Perintah-perintah penggunaan variabel
1.      Nama file var3.sh

Hasil Running

2.      Nama File var4.sh

Hasil Running

3.      Nama file ulang.sh

Hasil Running :

4.      Nama file nama.sh
Hasil Running


4.2   Perintah Menampilkan daftar proses dengan nama user dari masing-masin komputer!
Syntax :

Hasil Running :


4.3  perintah untuk mengkonfigurasi LAN via terminal
Konfigurasi koneksi LAN peer to peer.
Langkah-Langkahnya sebagai berikut :
Jadi Super User terlebih dahulu dengan ketik “sudo bash” pada terminal.
Ketahui IP addres laptopnya dengan ketikkan perintah “ifconfig”
Setting dengan ketikkan “ifconfig eth0 192.168.1.0 netmask     255.255.255.0
Route add default gw 192.168.1.1
Ping laptop client dengan ketikkan perintah “ping 192.168.1.11
Running :

4.4  program untuk mengkonfigurasi internet sharing di terminal (NB IP Masquarade)
Mensharing koneksi internet dengan 2 Laptop menggunakan Kabel Cross,dan dengan perintah Masquerade di OS Ubuntu
 1. Laptop TOSHIBA (sebagai Router)
Koneksikan dengan Wi-FI/Hotspot (  UKK TKJ 2010/ tkj_sas ) dengan IP Automatically/ DHCP, lalu mengecek koneksi internetnya dengan perintah di Terminal “ping google.com”, lalu muncul “Replay from google.com . . . . .” menandakan bisa mengakses internet
 -Masukkan kabel cross ke NIC Laptop Toshiba dihubungkan ke Compaq
 -Berikutnya setting IP pada masing-masing laptop
TOSHIBA (LAN)
 Ip Adress: 192.168.7.1
 NetMask : 255.255.255.098
 Gateway : 0.0.0.0
COMPAQ sbg Client(LAN) . 
 Ip Adress: 192.168.7.1
 NetMask : 255.255.255.0
 Gateway : 192.168.7.1
 DNS : 202.134.0.155
 DNS : 202.134.0.155/192.168.1.1
Mengecek koneksinya dengan perintah “ping . . . . “
·      Pada laptop Toshiba, setting/rubah terlebih dahulu file sysconf, caranya Masuk ke Terminal, ketik “sudo su”, Enter. Selanjutnya ketik “sudo nautilus”, rubah file di file system/etc.sysconf lalu enter. Hilangkan tanda pagar (#) pada tulisan “#net.ipv4.ip-forward.1 ,jika sudah dihapus lalu SAVE
·      Langkah berikutnya buat file Masquerade dengan perintah di Terminal “gedit masquerade”
·      Isi dengan perintah seperti berikut
#!/bin/bash
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING –s 192.168.7.0/24 -d 0/0 –j MASQUERADE
·      Lalu SAVE
·      Berikutnya merubah formatnya dengan perintah “chmod u+x masquerade” lalu Enter, cek dengan perintah dir/ls,file akan berubah berwarna hijau. -Lalu jalankan filenya dengan perintah “./masquerade”
·      Cek pada laptop Client/Compaq dengan browsing internet.  www.google.com  - Sharing Internet dengan perintah MASQUERADE di Ubuntu  selesai.

Modul 5
FUNGSI

5.1  Perintah Menggunakan Fungsi
Contoh Skrip 1:
#!/bin/sh
#   Nama   file   skrip:   fungsi.sh
#   fungsi   add_a_user()...
add_a_user()
{
USER=$1
PASSWORD=$2
shift;   shift;
#   dua   kali   shift,   sisanya   dianggap   komentar   ...
COMMENTS=$@
echo   "Menambahkan   pengguna   $USER   ..."
echo   useradd   -c   "$COMMENTS"   $USER
echo   passwd   $USER   $PASSWORD
echo   "Pengguna   $USER   ($COMMENTS)   ditambahkan,   passwordnya   $PASSWORD"
} 
#   Bagian   utama   dari   skrip   berawal   di   sini
echo   "Memulai   skrip..."
add_a_user   bob   letmein   Bob   Holness   the   presenter
add_a_user   fred   badpassword   Fred   Durst   the   singer
add_a_user   bilko   worsepassword   Sgt.   Bilko   the   role   model
echo   "Akhir   dari   skrip..."

syntax :
hasil running :
 

Contoh Skrip 2:
#!/bin/sh
#   Nama   file   skrip:fungsivar.sh
myfunc()
{
echo   "\$1   is   $1"
echo   "\$2   is   $2"
#   tidak   dapat   mengubah   $1      jika   ditulis:
#   1="Goodbye   Cruel"
#   maka   itu   not   valid   syntax.   Caranya:   ubah   nilai   variabel   $a:
a="Goodbye   Cruel"
}
###   Skrip   utama   bermula   di   sini
a=Hello
b=World
myfunc   $a   $b
echo   "a   is   $a"
echo   "b   is   $b"

syntax :
hasil running:

5.2 Konfigurasi cron jobs pada crontabs yang mengeksekusi file "jadwal.sh" fitur jadwal.sh, shutdown, restart, sleep dengan menggunakan fungsi.
crontab merupakan cara automatis menjadwalkan sesuatu seperti shutdown, sleep dan restart.
berikut sintaxnya :

0 komentar:

Posting Komentar

 
Copyright 2009 my tracks in our zone. Powered by Blogger
Blogger Templates created by Deluxe Templates
Wordpress by Wpthemesfree