Anda di halaman 1dari 41

LAPORAN AKHIR

NAMA NPM / KELAS BARIS / SHIFT TGL PRAKTIKUM MATERI KETUA ASS ASS BARIS

: BAYU ADI YUDHA PRASETYA : 10108399 / 2 KA 01 : 1 (SATU) : 27 April 2010 : Rangkuman Linux : :

PARAF

LABORATORIUM SISTEM INFORMASI UNIVERSITAS GUNADARMA 2010

LAPOARAN AKHIR

Bayu Adi Yudha P

BAB I SEJARAH LINUX


Sejak lahirnya Linux, kernel sebuah Sistem Operasi bebas, ia telah berkembang dengan pesatnya dibangun oleh ribuan relawan programer sejagat. "Born to be Free" hadir sejak limabelas tahun lampau dengan ketentuan lisensi bebas. Dibesarkan penuh dengan kontroversi mulai dari pemberian nama sampai dengan permasalahan keabsahan atas keberadaannya. Ia telah menawan hati ratusan juta pendukungnya namun tidak pernah bebas dari adanya pihak-pihak yang memusuhinya.

Prasejarah Linux
Pada tahun 1983 Richard M. Stallman mendirikan proyek GNU dengan tujuan mengadakan sebuah sistem operasi mirip UNIX dan kompatibel dengan POSIX. Dua tahun kemudian ia mendirikan yayasan Free Software Foundation (FSF) dan menciptakan GNU General Public License ( GPL) sebagai pondasi hukum guna menjamin penyebaran software secara bebas. Atas dasar pondasi hukum itu, Software GNU telah tersebar luas dan banyak pengembang relawan dapat memberikan kontribusinya. Dalam waktu singkat telah tersedia banyak paket program dan jumlahnya terus meningkat. Pada awal 1990an pada prinsipnya telah tersedia cukup paket program bebas (GNU Software) yang dapat digunakan sebagai komponen membangun sebuah sistem operasi. Untuk itu ternyata masih tertinggal Kernel (Proyek GNU-Hurd) yang merupakan jantung dari sebuah sistem operasi yang pengembangannya masih terhambat. Microkernel yang dikembangkan untuk itu ternyata mengalami banyak hambatan, terutama dalam hal melibas kecoa (bugs) dan sehubungan dengan arsitekturnya yang moderen tapi dianggap cukup ribet. Pada dasawarsa tahun 80an Universtas Berkeley juga mengembangkan sistem operasi bebas dengan distribusi bernama Berkeley Software Distribution ( BSD). Proyek pengembangan BSD ini menggunakan versi Unix edisi 4 dari AT&T sebagai rujukan. Karena sistem operasi BSD saat itu belum 100% halal dan masih mengandung Code asal AT&Ts Unix, maka di tahun 1990an terjadi perselishan hukum antara AT&T dan Universitas Berkeley, yang menurunkan

April 27, 2010

LAPOARAN AKHIR

Bayu Adi Yudha P

stamina para pengembangnya dan secara drastis menghambat pengembangannya. Dengan terhambatnya pengembangan BSD, maka pada awal tahun 1990an sebenarnya belum tersedia sistem operasi yang 100% bebas. Dan perselisihan hukum dengan AT&T membuat masa depan proyek BSD jadi tak menentu, sementara pengembangannya juga praktis dibekukan. Sementara itu, proyek GNU lainnya tetap berjalan dan jumlah paket software yang dihasilkan terus meningkat.

Lahirnya Linux
Di tahun 1991 Linus Torvalds di Helsinki mulai mengembangkan sistem operasi yang belakangan dikenal dengan nama Linux. Mulanya sekedar emulasi terminal yang saat itu ia butuhkan untuk mengakses server UNIX di Universitas tempat ia menuntut ilmu. Torvalds menulis program dengan pendekatan yang berorientasi kepada hardware dan independen terhadap sistem operasi yang ada karena ia ingin menggunakan PC yang telah tertanam prosesor intel tipe 80386 secara optimal (keluarga x86 sampai saat ini telah menjadi standar). Sebagai rujukan Torvalds menggunakan Sistem Minix dan kompiler GNU-CCompiler ( GCC).

Linus Torvalds 2004

Seperti ditulis dalam bukunya (bersama David Diamond, 2001), Torvalds kemudian menyadari bahwa apa yang dibuatnya itu ternyata merupakan basis sebuah sistem operasi. Pada hari bersejarah 25 Augustus 1991 ia kemudian memposting email ke milis pengguna Minix: comp.os.minix yang isinya selalu dikutip sebagai sebuah proklamasi lahirnya Linux: Hello everybody out there using minix I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus ( torvalds@kruuna.helsinki.fi)
April 27, 2010

PS. Yes it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

LAPOARAN AKHIR

Bayu Adi Yudha P

Timeline: Keterkaitan Lahirnya Linux dari Lingkungan UNIX Hari ini limabelas tahun lampau tanggal 17 September 1991 kode sumber Linux versi 0.01 untuk pertama kalinya tersedia di server FTP di Helsinki untuk dicoba dan dikembangkan lebih lanjut komunitas pengembang relawan. Versi Kernel Linux yang berlaku pada hari ini (2006) telah mencapai versi 2.6.17.13 dan versi 2.4.33.3.

Linux vs. GNU/Linux


April 27, 2010

Sesungguhnya, bila mengikuti kata hati Linus Torvalds saat itu, nama sistem operasi atau tepatnya kernel yang dibidaninya, bukannya bernama Linux melainkan Freax. Sebuah kata berasal dari Free dan juga bisa dari kata Freak. Ditambahkan huruf x dibelakangnya seperti umumnya penamaan di lingkungan Unix. Karena itu awalnya selama enam bulan pertama, Torvalds masih sempat menyimpan karyanya di folder bernama Freax. Walaupun nama Linux pernah terlintas dalam pikirannya, tapi kata itu tidak pernah dilontarkan karena ia beranggapan hal itu terlalu egosentris.

LAPOARAN AKHIR

Bayu Adi Yudha P

Untuk memberikan akses kepada pengembang lain memungkinkan kontributor melakukan perbaikan maupun kontribusi termasuk saran dalam pengembangan lebih lanjut, ia harus meletakkan file tersebut di sebuah server FTP di (ftp.funet.fi) Helsinki University of Technology (HUT), seperti yang telah dilakukan pada hari bersejarah tanggal 17 September 1991. Penanggung jawab untuk server di HUT saat itu Ari Lemmke ternyata tidak suka dengan nama Freax dan tanpa banyak diskusi langsung saja memberi nama Linux. Di kode sumber versi 0.01 masih dapat dibaca kalimat tertinggal yang menyebutkan "Makefile for the FREAXkernel". Tanpa direncanakan, nyaris kebetulan, demikianlah nama Linux secara de facto digunakan sampai saat ini, dimana mana dan untuk segala hal yang erat kaitannya dengan Linux (termasuk GudangLinux. Sehubungan dengan lisensi, awalnya Torvalds menggunakan lisensi buatan sendiri, tapi kemudian memutuskan untuk memakai GPL. Hal itu diberlakukan untuk pertama kalinya bersamaan dengan rilis kernel versi 0.99.10 pada tanggal 7 Juni 1993 yang menggunakan lisensi GPL. Sejak itu pengembangan Linux tumbuh lebih cepat dan lebih efisien. Belakangan dalam sebuah wawancara Linus Torvalds mengakui bahwa pemberlakuan lisensi GPL untuk Linux merupakan keputusan yang paling baik yang pernah ia lakukan dalam hidupnya: "Making Linux GPL'd was definitely the best thing I ever did.". Mulanya istilah Linux bagi Torvalds adalah untuk Kernel saja, yaitu jantung dari sebuah sistem operasi. Kemudian ia berkembang menjadi distribusi yang mengemas paket program lain terutama dari proyek GNU, dan itu hampir semuanya menggunakan kata Linux untuk nama distribusinya. Realita ini telah membangkitkan permasalahan yang mempertanyakan penggunaan kata GNU/Linux ketimbang hanya Linux saja.

GNU sahabat Linux (Gambar lisensi GPL oleh Stephan Uhlmann)

April 27, 2010

LAPOARAN AKHIR

Bayu Adi Yudha P

Sementara itu Richard Stallman sebagai tokoh utama proyek GNU berupaya untuk mensosialisasikan agar sistem operasi yang menanamkan Linux sebagai Kernel sebaiknya membubuhkan nama GNU/Linux. Apa yang telah terjadi saat ini, dari ratusan distro yang ada, hanya beberapa distribusi saja, salah satunya yang terbesar adalah Debian GNU/Linux, yang mematuhi keinginan Stallman. Perbedaan pendapat juga diperluas karena kondisi distribusi dewasa ini yang tidak sekedar mengemas kernel Linux dan program dari proyek GNU saja, melainkan juga program-program dari sumber bebas pihak ketiga lainnya.

Perjuangan mencapai 1.0


Pecinta dan pengembang Linux sejak mula berkumpul dan berdiskusi di Minix Newsgroup yang jumlahnya baik dari sisi peserta maupun topik yang dibahas kian hari terus meningkat. Pada awal 1992, pendiri Minix Profesor Andrew Tanenbaum kewalahan dengan dimensi threads tentang Linux yang dibahas di milis Minix dan ia merasa hal itu sudah berlebihan. Dalam sebuah postingnya yang terkenal "LINUX is obsolete" (Linux adalah kadaluarsa), Profesor Tanenbaum melontarkan kritik yang menjadi awal dari perseteruan dengan kelompok Linux. Ia menyebutkan bahwa kernel Linux yang monolithic adalah kuno dan sebuah sistem operasi yang moderen seharusnya merujuk kepada teknologi microkernel. Selain itu dikatakan bahwa Linux telah menyatu dengan arsitektur prosesor x86, sedangkan menurut Tanenbaum sebuah sistem operasi yang baik harus portable. Diskusi berkelanjutan memanas dan posting Torvalds menjawab hal itu mulai emosional melampaui batas teknis sampai menyinggung pribadi. Hal terakhir kemudian diluruskan dengan permintaan maaf. Sebagai konsekuensi dari 'tawuran elektronik' tersebut, kelompok kubu Linux meninggalkan milis minix dan membentuk sebuah newsgroup baru: comp.os.linux. In article I wrote: >Well, with a subject like this, I'm afraid I'll have to reply. And reply I did, with complete abandon, and no thought for good taste and netiquette. Apologies to ast, and thanks to John Nall for a friendy "that's not how it's done"-letter. I overreacted, and am now composing a (much less acerbic) personal letter to ast. Hope nobody was turned away from linux due to it being (a) possibly obsolete (I still think that\'s not the case, although some of the criticisms are valid) and (b) written by a hothead :-) Linus "my first, and hopefully last flamefest" Torvalds Usaha implementasi sistem X-Window dilakukan pada tahun yang sama, memberikan Linux tidak hanya sebuah antarmuka grafis (GUI) melainkan juga kemampuan networking di tengah sistem operasi dengan x-clients dan x-server via socket domain. Selain itu kemampuan networking dengan dunia luar yang menjadi keharusan sebuah sistem ala Unix, juga saat itu dianggap nyaris rampung. Tanpa ragu Torvalds membuat lompatan dengan meningkatkan versi Linux dari 0.95 menjadi 1.0, sebuah status bagi pengembang mengekspresikan apa yang direncanakan sudah jadi. Namun apa yang terjadi sebagai realita yang harus dihadapi sehubungan dengan networking ternyata tidak semudah itu. Hampir dua tahun dibutuhkan tim pengembangan sampai akhirnya versi 1.0 benar-benar berfungsi. Kernel Linux kemudian untuk pertama kalinya mendapatkan driver untuk SCSI dan sound, termasuk sistem file ext2.

April 27, 2010

LAPOARAN AKHIR

Bayu Adi Yudha P

Dengan sistem X-window yang telah dimilikinya, dimungkinkan portasi program-program jang jalan untuk X11 termasuk yang berasal dari SCO Unix, semuanya telah memperluas penawaran aplikasi yang bisa digunakan untuk Linux. Linux mulai belajar mencetak via port paralel berkat portasi dari sistem cetak BSD, membuat ia mulai bisa digunakan. Sebagai distribusi Linux pertama, di akhir tahun 1992 telah tersedia distro Yggdrasil yang bisa di instalasi menggunakan CDROM. Distribusi generasi awal lainnya yang masih ditemukan piawai sampai hari ini (2006) adalah Slackware Linux yang ada sejak awal tahun 1993 dan Debian GNU/Linux dimulai pada pertengahan tahun yang sama. Pada bulam Maret 1994 akhirnya Torvalds meluncurkan Linux 1.0. Dimensi kode sumber untuk kernel Linux saat itu mencapai lebih dari 170.000 baris, dimana separuhnya terdiri dari hardware drivers. Sejumlah elemen yang senantiasa diperbaiki sampai saat ini, masih bisa ditemukan dalam versi Linux terbaru. Tercatat saat itu, sekitar seratus pemrogram relawan yang aktif dan tersebar diseluruh dunia, bahu membahu membangun Linux, termasuk pemrogram prominen seperti Alan Cox dan Donald Becker. Jumlah pengguna sistem operasi Linux dimasa yang sama di-estimasikan sekitar seratus ribuan.

Jalan menuju Komersialisasi


Bersama dengan ketersediaan versi 1.0, pengembang kernel mulai memberlakukan ketentuan baru untuk seterusnya dengan memisahkan versi untuk pengguna dan versi untuk pengembang dengan kode genap (stabil) dan ganjil (tidak stabil, sedang dikembangkan). Semua fitur-fitur terkini diujicoba pada kernel 1.1 (ganjil atau 'minor version number'), sementara untuk versi 1.0 (genap) disediakan perbaikan bugfixes dengan melibas semua kecoa-kecoa (bugs) setiap kali bila ditemukan. Hanya fitur-fitur yang telah teruji dengan baik disertakan bersama versi stabil untuk produksi. Pengembangan kernel berlangsung berkesinambungan dan satu tahun kemudian ia mampu membuat sebuah lompatan bersama rilis kernel Linux 1.2. Kode sumber yang diproduksi kini mencapai 300.000 baris atau hampir duakali lipat dari versi 1.0 sebelumnya. Ia juga menyertakan banyak hardware driver. Dan selain itu, untuk pertama kalinya tersedia edisi yang diportasi dan bisa jalan di arsitektur lain kecuali Intel termasuk prosesor Alpha, Mips dan SPARC. Peningkatan lainnya pada Linux 1.2 ini terutama untuk dukungan jaringan yang kini mendukung lebih banyak kartu jaringan dan berkat fitur IP-Forwarding, ia mudah dimanfaatkan sebagai Router termasuk Packet Filter Firewall. Protokol-protokol untuk jaringan seperti NFS, IPX atau AppleTalk dikuasai Linux dengan baik, dan membuka kemungkinan penerapan di lingkungan jaringan majemuk. Dengan prakiraan pengguna Linux sekitar limaratus ribu sampai satu setengah juta saat itu, tersedia pasar yang serius dan mulai manarik untuk diexpoitasi perusahan yang bergerak di lingkungan Linux secara komersil. Distribusi komersil bermunculan mulai berusaha memperkuat keberadaannya termasuk distro-distro seperti Caldera, Red Hat dan SuSE. Banyak perusahan mulai menyadari manfaat dari software bebas, atau dengan formulasi lain

April 27, 2010

LAPOARAN AKHIR

Bayu Adi Yudha P

banyak sysadmin yang mulai berkiprah berkat kebebasan dengan menerapkan fitur-fitur yang disediakan Linux kedalam lingkungan produksi. Bagaimanapun juga dimasa itu, Linux masih merupakan mainan para hacker yang masih tidak seberapa peduli dengan industri TI. Diantara fitur yang sering digunakan adalah Samba, sebuah paket software yang mampu membuat sistem Linux beroperasi di lingkungan jaringan Windows sebagai server file dan server printer. Disamping itu, bermodal aplikasi klasik dari lingkungan Unix, Linux dimanfaatkan sebagai webserver menggunakan Apache dan sebagai mailserver menggunakan sendmail sangat popular. Sampai dengan musim panas tahun 1996 telah dirilis sekitar 100 kali versi percobaan untuk kernel uijicoba 1.3 guna menyiapkan seri kernel berikutnya versi Linux 2.0. Dimensi kode sumber saat itu telah mencapai sekitar 800 000 baris, dua setengah kali dari versi 1.2. Dukungan untuk hardware juga meningkat signifikan termasuk penambahan portasi untuk arsitektur prosesor Motorola-68k dan PowerPC. Peningkatan cukup penting pada Linux 2.0 adalah dukungan untuk Multiprosesor (SMP) yang mampu menangani sampai dengan 16 CPU, walaupun fitur ini pada saat itu masih dalam status experimental.

Tux: Maskot si Pingu


Pada tahun 1996 Torvalds mengumumkan kebutuhan akan maskot untuk dijadikan simbol kegiatan Linux. Syaratnya adalah harus berbentuk seekor penguin, tapi bukan sembarang penguin. Seperti tertulis dalam buku biografinya Just For Fun, persyaratan untuk si Pingu idamannya itu adalah: "Seekor penguin yang tampil sangat 'happy', seperti baru saja menikmati segelas bir setelah mendapatkan 'sex' terindah dalam hidupnya." Simbol penguin yang dianggap memenuhi persyaratan itu, telah digunakan secara luas untuk semua urusan yang terkait dengan Linux, merupakan hasil disain dibuat oleh Larry Ewing. Sedangkan nama Tux yang telah diusulkan James Hughes konon diturunkan dari kata Torvalds UniX. Atau barangkali dari 'tuxedo' karena si Pingu tampil seperti menggunakan baju jas smoking (dinner jacket atau black tie) yang formal dikenakan di Inggris. Apapun alasannya, Tux dengan penampilan yang cinta damai dan lucu itu, telah disambut oleh semuanya, tua dan muda mulai dari balita sampai manula di seluruh dunia. Ia juga merupakan bagian dari logo kebanyakan distribusi Linux yang ada. Replikasi Tux banyak dibuat guna memenuhi kebutuhan pencintanya, tersedia dalam segala jenis asesoris, terutama boneka segala ukuran.
April 27, 2010

LAPOARAN AKHIR

Bayu Adi Yudha P

BAB II SHELL
Shell sebagai interpreter komando merupakan penghubung penting antara pengguna dan sistem operasi. Kemampuan pengendalian secara langsung dan interaktif via \'command line\': mulai dari perintah sederhana menampilkan sebuah \'promt\', mengedit dan memasukkan perintah sampai dengan menjalankan daftar perintah sebagai sebuah job, membuat sistem operasi keluarga Unix (termasuk Linux) sangat powerful.

Macam - macam shell?


Tidak seperti sistem operasi lain yang hanya menyediakan satu atau 2 shell, sistem operasi dari keluarga unix misalnya linux sampai saat ini dilengkapi oleh banyak shell dengan kumpulan perintah yang sangat banyak, sehingga memungkinkan pemakai memilih shell mana yang paling baik untuk membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di linux antara lain:

Bourne shell(sh), C shell(csh), Korn shell(ksh), Bourne again shell(bash), dsb.

Masing - masing shell mempunyai kelebihan dan kekurangan yang mungkin lebih didasarkan pada kebutuhan pemakai yang makin hari makin meningkat, untuk dokumentasi ini shell yang digunakan adalah bash shell dari GNU, yang merupakan pengembangan dari Bourne shell dan mengambil beberapa feature (keistimewaan) dari C shell serta Korn shell, Bash shell merupakan shell yang cukup banyak digunakan pemakai linux karena kemudahan serta banyaknya fasilitas perintah yang disediakan.versi bash shell yang saya gunakan adalah 2.04
[bayu@linux$]echo $BASH_VERSION bash 2.04.12(1)-release

Mungkin saat anda membaca dokumentasi ini versi terbaru dari bash sudah dirilis dengan penambahan feature yang lain.

2. Pemrograman Shell ?
Yaitu menyusun atau mengelompokkan beberapa perintah shell (internal atupun eksternal command) menjadi kumpulan perintah yang melakukan tugas tertentu sesuai tujuan penyusunnya. Kelebihan shell di linux dibanding sistem operasi lain adalah bahwa shell di linux memungkinkan kita untuk menyusun serangkaian perintah seperti halnya bahasa pemrograman (interpreter language), melakukan proses I/O, menyeleksi kondisi, looping, membuat fungsi, dsb. adalah proses - proses yang umumnya dilakukan oleh suatu bahasa pemrograman, jadi dengan shell di linux kita dapat membuat program seperti halnya bahasa pemrograman, untuk pemrograman shell pemakai unix atau linux menyebutnya sebagai script shell.

April 27, 2010

10

LAPOARAN AKHIR

Bayu Adi Yudha P

3. Kebutuhan Dasar
Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu internal command yang telah disediakan shell maupun eksternal command atau utility, seperti
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), mending pake ls -l -r saja :-)
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


April 27, 2010

4. Simple Bash Script


Langkah awal sebaiknya periksa dulu shell aktif anda, gunakan perintah ps (report process status)
[bayu@linux$]ps PID TTY TIME CMD 219 tty1 00:00:00 bash

11

LAPOARAN AKHIR

Bayu Adi Yudha P

301 tty1

00:00:00 ps

bash adalah shell aktif di system saya, jika disystem anda berbeda misalnya csh atau ksh ubahlah dengan perintah change shell
[bayu@linux$]chsh Password: New shell [/bin/csh]:/bin/bash Shell changed

atau dengan mengetikkan bash


[bayu@linux$]bash

sekarang coba anda ketikkan perintah dibawah ini pada prompt shell
echo "Script shell pertamaku di linux" [bayu@linux$]echo "Script shell pertamaku di linux" Script shell pertamaku di linux

string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada layar anda, echo adalah statement (perintah) built-in bash yang berfungsi menampilkan informasi ke standard output yang defaultnya adalah layar. jika diinginkan mengulangi proses tersebut, anda akan mengetikkan kembali perintah tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu mungkin perintahperintah tadi sudah tertimpa oleh perintah lain karena history mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil kapanpun diinginkan. coba ikuti langkah - langkah berikut:
1. Masuk ke editor anda, apakah memakai vi,pico,emacs,dsb... 2. ketikkan perintah berikut
3. #!/bin/bash 4. echo "Hello, apa khabar"

5. simpan dengan nama file tes 6. ubah permission file tes menggunakan chmod
7. [bayu@linux$]chmod 755 tes

8. jalankan
9. [bayu@linux$]./tes

PATH=$PATH:.

setelah itu script diatas dapat dijalankan dengan cara


[bayu@linux$]tes Hello, apa khabar

April 27, 2010

kapan saja anda mau mengeksekusinya tinggal memanggil file tes tersebut, jika diinginkan mengeset direktory kerja anda sehingga terdaftar pada search path ketikkan perintah berikut

12

LAPOARAN AKHIR

Bayu Adi Yudha P

tanda #! pada /bin/bash dalam script tes adalah perintah yang diterjemahkan ke kernel linux untuk mengeksekusi path yang disertakan dalam hal ini program bash pada direktory /bin, sebenarnya tanpa mengikutkan baris tersebut anda tetap dapat mengeksekusi script bash, dengan catatan bash adalah shell aktif. atau dengan mengetikkan bash pada prompt shell.
[bayu@linux$]bash tes

tentunya cara ini kurang efisien, menyertakan path program bash diawal script kemudian merubah permission file sehingga dapat anda execusi merupakan cara yang paling efisien. Sekarang coba kita membuat script shell yang menampilkan informasi berikut:
1. Waktu system 2. Info tentang anda 3. jumlah pemakai yang sedang login di system contoh scriptnya:
#!/bin/bash #myinfo #membersihkan tampilan layar clear #menampilkan informasi echo -n "Waktu system :"; date echo -n "Anda :"; whoami echo -n "Banyak pemakai :"; who | wc -l

sebelum dijalankan jangan lupa untuk merubah permission file myinfo sehingga dapat dieksekusi oleh anda
[bayu@linux$]chmod 755 myinfo [bayu@linux$]./myinfo Waktu system : Sat Nov 25 22:57:15 BORT 2001 Anda : fajar Banyak pemakai : 2

tentunya layout diatas akan disesuaikan dengan system yang anda gunakan statement echo dengan opsi -n akan membuat posisi kursor untuk tidak berpindah ke baris baru karena secara default statement echo akan mengakhiri proses pencetakan ke standar output dengan karakter baris baru (newline), anda boleh mencoba tanpa menggunakan opsi -n, dan lihat perbedaannya. opsi lain yang dapat digunakan adalah -e (enable), memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada bahasa C atau perl, misalkan :
echo -e "\abunyikan bell"

jika dijalankan akan mengeluarkan bunyi bell, informasi opsi pada statement echo dan backslash karakter selengkapnya dapat dilihat via man di prompt shell.
[bayu@linux$]man echo

April 27, 2010

13

LAPOARAN AKHIR

Bayu Adi Yudha P

5. Pemakaian Variabel
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:
1. Environment Variable 2. Positional Parameter 3. User Defined Variable

5.1. Environment Variable


atau 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, misalkan variabel PS1 yang digunakan untuk mengeset prompt shell pertama yaitu prompt tempat anda mengetikkan perintah - perintah shell (defaultnya "\s\v\$"), PS2 untuk prompt pelengkap perintah, prompt ini akan ditampilkan jika perintah yang dimasukkan dianggap belum lengkap oleh shell (defaultnya ">"). anda dapat mengeset PS1 dan PS2 seperti berikut. simpan dahulu isi PS1 asli system anda, sehingga nanti dapat dengan mudah dikembalikan
[bayu@linux$]PS1LAMA=$PS1

sekarang masukkan string yang diinginkan pada variabel PS1


[bayu@linux$]PS1="Hi ini Promptku!" Hi ini Promptku!PS2="Lengkapi dong ? "

maka prompt pertama dan kedua akan berubah, untuk mengembalikan PS1 anda ke prompt semula ketikkan perintah
[bayu@linux$]PS1=$PS1LAMA

Jika anda ingin mengkonfigurasi prompt shell, bash telah menyediakan beberapa backslash karakter diantaranya adalah:
\a ASCII bell character (07) \d date dengan format "Weekday Month Date" (misalnya "Tue May 26") \e ASCII escape character (033) \H hostname (namahost) \n newline (karakter baru) \w Direktory aktif \t time dalam 24 jam dengan format HH:MM:SS dll man bash:-) April 27, 2010

contoh pemakaiannya:

14

LAPOARAN AKHIR

Bayu Adi Yudha P

[bayu@linux$]PS1="[\t][\u@\h:\w]\$"

agar prompt shell hasil konfigurasi anda dapat tetap berlaku (permanen) sisipkan pada file .bashrc atau .profile

5.2. Positional Parameter


atau 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. variabel yang dimaksud adalah 1,2,3,dst..lebih jelasnya lihat contoh script berikut :
#!/bin/bash #argumen1 echo $1 adalah salah satu $2 populer di $3

Hasilnya
[bayu@linux$]./argumen1 bash shell linux bash adalah salah satu shell populer di linux

ada 3 argumen yang disertakan pada script argumen1 yaitu bash, shell, linux, masing2 argumen akan disimpan pada variabel 1,2,3 sesuai posisinya. variabel spesial lain yang dapat digunakan diperlihatkan pada script berikut:
#!/bin/bash #argumen2 clear echo "Nama script anda : $0"; echo "Banyak argumen : $#"; echo "Argumennya adalah: $*";

Hasilnya:
[bayu@linux$]./argumen 1 2 3 empat Nama script anda : ./argumen Banyak argumen : 4 Argumennya adalah : 1 2 3 empat

5.3. User Defined Variable


atau variabel yang didefinisikan sendiri oleh pembuat script sesuai dengan kebutuhannya, beberapa hal yang perlu diperhatikan dalam mendefenisikan variabel adalah:

dimulai dengan huruf atau underscore hindari pemakaian spesial karakter seperti *,$,#,dll... bash bersifat case sensitive, maksudnya membedakan huruf besar dan kecil, a berbeda dengan A, nama berbeda dengan Nama,NaMa,dsb..

untuk mengeset nilai variabel gunakan operator assignment (pemberi nilai)"=", contohnya :

April 27, 2010

15

LAPOARAN AKHIR

Bayu Adi Yudha P

myos="linux" nama='pinguin' hasil=`ls -l`; angka=12

#double-quoted #single-quoted #back-quoted

kalau anda perhatikan ada 3 tanda kutip yang kita gunakan untuk memberikan nilai string ke suatu variabel, adapun perbedaannya adalah:

dengan kutip ganda (double-quoted), bash mengizinkan kita untuk menyisipkan variabel di dalamnya. contohnya:
#!/bin/bash nama="pinguin" kata="Hi $nama, apa khabarmu" echo $kata;

#menyisipkan variabel nama

Hasilnya:
Hi pinguin, apa khabarmu

dengan kutip tunggal (single-quoted), akan ditampilkan apa adanya. contohnya:


#!/bin/bash nama="pinguin" kata='Hi $nama, apa khabarmu' echo $kata;

#menyisipkan variabel nama

Hasilnya:
Hi $nama, apa khabarmu

dengan kutip terbalik (double-quoted), bash menerjemahkan sebagai perintah yang akan dieksekusi, contohnya:
#!/bin/bash hapus=`clear`; isi=`ls -l`; isi #hapus layar echo $hapus #ls -l echo $isi;

#hasil dari perintah ls -l disimpan di variabel

Untuk lebih jelasnya lihat contoh berikut:


#!/bin/bash #varuse nama="fajar" OS='linux'

April 27, 2010

Hasilnya: silahkan dicoba sendiri

16

LAPOARAN AKHIR

Bayu Adi Yudha P

distro="macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll" pc=1 hasil=`ls -l $0` clear echo -e "Hi $nama,\npake $OS\nDistribusi, $distro\nkomputernya, $pc buah" echo "Hasil ls -l $0 adalah =$hasil"

Hasilnya:
[bayu@linux$]./varuse Hi fajar, pake linux Distribusi, macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll komputernya, 1 buah Hasil ls -l ./varuse adalah -rwxr-xr-x 1 fajar users 299 Nov 21 06:24 ./varuse

untuk operasi matematika ada 3 cara yang dapat anda gunakan, dengan statement builtin let atau expr atau perintah subtitusi seperti contoh berikut:
#!/bin/bash #mat1 a=10 b=5 #memakai let let jumlah=$a+$b let kurang=$a-$b let kali=$a*$b #memakai expr bagi=`expr $a / $b` #memakai perintah subtitusi $((ekspresi)) modul =$(($a%$b)) #sisa pembagian echo echo echo echo echo "$a+$b=$jumlah" "$a-$b=$kurang" "$a*$b=$kali" "$a/$b=$bagi" "$a%$b=$mod"

Hasilnya:
[bayu@linux$]./mat1 10+5=15 10-5=5 10*5=50 10/5=2 10%5=0

fungsi expr begitu berdaya guna baik untuk operasi matematika ataupun string contohnya:
[bayu@linux$]mystr="linux" [bayu@linux$]expr length $mystr 5

#!/bin/bash declare -i angka angka=100; echo $angka;

April 27, 2010

Mungkin anda bertanya - tanya, apakah bisa variabel yang akan digunakan dideklarasikan secara eksplisit dengan tipe data tertentu?, mungkin seperti C atau pascal, untuk hal ini oleh Bash disediakan statement declare dengan opsi -i hanya untuk data integer (bilangan bulat). Contohnya:

17

LAPOARAN AKHIR

Bayu Adi Yudha P

apabila variabel yang dideklarasikan menggunakan declare -iternyata anda beri nilai string (karakter), maka Bash akan mengubahnya ke nilai 0, tetapi jika anda tidak menggunakannya maka dianggap sebagai string.

6. Simple I/O
I/O merupakan hal yang mendasar dari kerja komputer karena kapasitas inilah yang membuat komputer begitu berdayaguna. I/O yang dimaksud adalah device yang menangani masukan dan keluaran, baik itu berupa keyboard, floppy, layar monitor,dsb. sebenarnya kita telah menggunakan proses I/O ini pada contoh -contoh diatas seperti statement echo yang menampilkan teks atau informasi ke layar, atau operasi redirect ke ke file. selain echo, bash menyediakan perintah builtin printf untuk mengalihkan keluaran ke output standard, baik ke layar ataupun ke file dengan format tertentu, mirip statement printf kepunyaan bahasa C atau perl. berikut contohnya:

6.1 Output dengan printf


#!/bin/bash #pr1 url="pemula.linux.or.id"; angka=32; printf "Hi, Pake printf ala C\n\t\a di bash\n"; printf "My url %s\n %d decimal = %o octal\n" $url $angka $angka; printf "%d decimal dalam float = %.2f\n" $angka $angka

Hasilnya:
[bayu@linux$]./pr1 Hi, Pake printf ala C di bash My url pemula.linux.or.id 32 decimal = 40 octal 32 decimal dalam float = 32.00

untuk menggunakan format kontrol sertakan simbol %, bash akan mensubtitusikan format tsb dengan isi variabel yang berada di posisi kanan sesuai dengan urutannya jika lebih dari satu variabel, \n \t \a adalah karakter sekuen lepas newline,tab, dan bell,
Format control keterangan
%d %o %f %x

untuk format data integer octal float atau decimal Hexadecimal April 27, 2010

pada script diatas %.2f akan mencetak 2 angka dibelakang koma, defaultnya 6 angka, informasi lebih lanjut dapat dilihat via man printf

6.2 Input dengan read


Setelah echo dan printf untuk proses output telah anda ketahui, sekarang kita menggunakan statement read yang cukup ampuh untuk membaca atau menerima masukan dari input standar

18

LAPOARAN AKHIR

Bayu Adi Yudha P

syntax :
read -opsi [nama_variabel...]

berikut contoh scriptnya:


#!/bin/bash #rd1 echo -n "Nama anda :" read nama; echo echo read echo "Hi $nama, apa khabarmu"; "Pesan dan kesan :"; "kata $nama, $REPLY";

Hasilnya:
[bayu@linux$]./rd1 Nama anda : pinguin Hi pinguin, apa khabarmu Pesan & kesan : pake linux pasti asyk - asyk aja kata pinguin, pake linux pasti asyk - asyk aja

jika nama_variabel tidak disertakan, maka data yang diinput akan disimpan di variabel REPLY contoh lain read menggunakan opsi -t(TIMEOUT), -p (PROMPT), -s(SILENT), -n (NCHAR) dan -d(DELIM)
#!/bin/bash read -p "User Name : " user echo -e "Password 10 karakter,\njika dalam 6 second tidak dimasukkan pengisian password diakhiri" read -s -n 10 -t 6 pass echo "kesan anda selama pake linux, _underscore=>selesai" read -d _ kesan echo echo echo "User = $user" "Password = $pass" "Kesan selama pake linux = $kesan"

Hasilnya: silahkan dicoba sendiri :-)


Opsi Keterangan
-p -s -n -d

memungkinkan kita membuat prompt sebagai informasi pengisian membuat input yang dimasukkan tidak di echo ke layar (seperti layaknya password di linux) menentukan banyak karakter yang diinput menentukan karakter pembatas masukan April 27, 2010

informasi secara lengkap lihat man bash

6.3. Output dengan konstanta ANSI

19

LAPOARAN AKHIR

Bayu Adi Yudha P

6.3.1. Pengaturan Warna

Untuk pewarnaan tampilan dilayar anda dapat menggunakan konstanta ANSI (salah satu badan nasional amerika yang mengurus standarisasi). syntaxnya:
\033[warnam

Dimana: m menandakan setting color contohnya:


[bayu@linux$]echo -e "\033[31m HELLO\033[0m" HELLO

konstanta 31m adalah warna merah dan 0m untuk mengembalikan ke warna normal (none), tentunya konstanta warna ansi ini dapat dimasukkan ke variabel PS1 untuk mengatur tampilan prompt shell anda, contohnya:
[bayu@linux$]PS1="\033[34m" [bayu@linux$]

berikut daftar warna yang dapat anda gunakan:


foreground None 0m Black 0;30 Dark Gray 1;30 Red 0;31 Light Red 1;31 Green 0;32 Light Green 1;32 Brown 0;33 Yellow 1;33 Blue 0;34 Light Blue 1;34 Purple 0;35 Light Purple 1;35 Cyan 0;36 Light Cyan 1;36 Light Gray 0;37 White 1;37 background dimulai dengan 40 untuk BLACK,41 RED,dst lain-lain 4 underscore,5 blink, 7 inverse

tentunya untuk mendapatkan tampilan yang menarik anda dapat menggabungkannya antara foreground dan background
[bayu@linux$]echo -e "\033[31;1;33m Bash and ansi color\033[0m"

Bash and ansi color 6.3.2 Pengaturan posisi kursor April 27, 2010

sedangkan untuk penempatan posisi kursor, dapat digunakan salah satu cara dibawah.

Menentukan posisi baris dan kolom kursor:


\033[baris;kolomH

Pindahkan kursor keatas N baris:


\033[NA

Pindahkan kursor kebawah N baris:


\033[NB

20

LAPOARAN AKHIR

Bayu Adi Yudha P

Pindahkan kursor kedepan N kolom:


\033[NC

Pindahkan kursor kebelakang N kolom:


\033[ND

Contohnya:
#!/bin/bash SETMYCOLOR="\033[42;1;37m" GOTOYX="\033[6;35H" clear echo -e "\033[3;20H INI DIBARIS 3, KOLOM 20" echo -e "\033[44;1;33;5m\033[5;35H HELLO\033[0m"; echo -e "$SETMYCOLOR$GOTOYX ANDA LIHAT INI\033[0m"

Hasilnya: Silahkan dicoba sendiri

Menggunakan utulity tput untuk penempatan posisi kursor


kita dapat pula mengatur penempatan posisi kursor di layar dengan memanfaatkan utility tput, syntaxnya:
tput cup baris kolom

contohnya:
#!/bin/bash clear tput cup 5 10 echo "HELLO" tput cup 6 10 echo "PAKE TPUT"

jika dijalankan anda akan mendapatkan string HELLO di koordinat baris 5 kolom 10, dan string PAKE TPUT dibaris 6 kolom 10. informasi selengkapnya tentang tput gunakan man tput, atau info tput

7. Seleksi dan Perulangan


Bagian ini merupakan ciri yang paling khas dari suatu bahasa pemrograman dimana kita dapat mengeksekusi suatu pernyataan dengan kondisi terntentu dan mengulang beberapa pernyataan dengan kode script yang cukup singkat.

7.1 test dan operator


test adalah utility sh shell yang berguna untuk memeriksa informasi tentang suatu file dan berguna untuk melakukan perbandingan suatu nilai baik string ataupun numerik syntaxnya: test ekspresi proses kerja test yaitu dengan mengembalikan sebuah informasi status yang dapat bernilai 0 (benar) atau 1 (salah) dimana nilai status ini dapat dibaca pada variabel spesial $?.
April 27, 2010

21

LAPOARAN AKHIR

Bayu Adi Yudha P

[bayu@linux$]test 5 -gt 3 [bayu@linux$]echo $? 0

pernyataan 5 -gt (lebih besar dari) 3 yang dievaluasi test menghasilkan 0 pada variabel status $? itu artinya pernyataan tersebut benar tetapi coba anda evaluasi dengan expresi berikut
[bayu@linux$]test 3 -lt 1 [bayu@linux$]echo $? 1

status bernilai 1, berarti pernyataan salah. anda lihat simbol -gt dan -lt, itulah yang disebut sebagai operator, secara sederhana operator adalah karakter khusus (spesial) yang melakukan operasi terhadap sejumlah operand, misalkan 2+3, "+" adalah operator sedangkan 2 dan 3 adalah operandnya, pada contoh test tadi yang bertindak sebagai oparatornya adalah -lt dan -gt, sedangkan bilangan disebelah kiri dan kanannya adalah operand. cukup banyak operator yang disediakan bash antara lain:
7.1.1. Operator untuk integer Operator Keterangan bil1 -eq bil2 Mengembalikan Benar jika bil1 sama dengan bil2 bil1 -ne bil2 -||- Benar jika bil1 tidak sama dengan bil2 bil1 -lt bil2 -||- Benar jika bil1 lebih kecil dari bil2 bil1 -le bil2 -||- Benar jika bil1 lebih kecil atau sama dengan bil2 bil1 -gt bil2 -||- Benar jika bil1 lebih besar dari bil2 bil1 -ge bil2 -||- Benar jika bil1 lebih besar atau sama dengan bil2 7.1.2. Operasi string Operator -z STRING Keterangan Mengembalikan Benar jika panjang STRING adalah zero

STRING1 == STRING2 -||- Benar jika STRING1 sama dengan STRING2 7.1.3 Operator file Operator Keterangan -f FILE -d FILE Mengembalikan Benar jika FILE ada dan merupakan file biasa -||- Benar jika FILE ada dan meruapakan direktory

7.1.3 Operator logika ekspr1 -o ekspr2 Benar jika jika salah satu ekspresi benar (or,||) ekspr1 -a ekspr2 Benar jika ekspresi1 dan ekspresi2 benar (and,&&) ! ekspresi Mengembalikan Benar jika ekspresi tidak benar (not!) April 27, 2010

untuk informasi lebih lengkap man bash atau info bash di prompt shell anda.

7.2. Seleksi

22

LAPOARAN AKHIR

Bayu Adi Yudha P

7.2.1 if

Statement builtin if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu syntax:
if test-command1; then perintah1; elif test-command2; then perintah2; else alternatif_perintah; fi

contoh script if1:


#!/bin/bash #if1 clear; if [ $# -lt 1 ]; then echo "Usage : $0 [arg1 arg2 ...]" exit 1; fi echo "Nama script anda : $0"; echo "Banyak argumen : $#"; echo "Argumennya adalah: $*";

Hasilnya:
[bayu@linux$]./if1 Usage : ./if1 [arg1 arg2 ...]

statement dalam blok if...fi akan dieksekusi apabila kondisi if terpenuhi, dalam hal ini jika script if1 dijalankan tanpa argumen. kita tinggal membaca apakah variabel $# lebih kecil (less than) dari 1, jika ya maka eksekusi perintah di dalam blok if ..fi tsb. perintah exit 1 akan mengakhiri jalannya script, angka 1 pada exit adalah status yang menandakan terdapat kesalahan, status 0 berarti sukses, anda dapat melihat isi variabel $? yang menyimpan nilai status exit, tetapi jika anda memasukkan satu atau lebih argumen maka blok if...fi tidak akan dieksekusi, statement diluar blok if..filah yang akan dieksekusi. contoh script if2:
#!/bin/bash kunci="bash"; read -s -p "Password anda : " pass if [ $pass==$kunci ]; then echo "Sukses, anda layak dapat linux" else echo "Wah sorry, gagal nih"; fi

Hasilnya
[bayu@linux$]./if2 Password anda : bash

April 27, 2010

23

LAPOARAN AKHIR

Bayu Adi Yudha P

Sukses, anda layak dapat linux [bayu@linux$]./if2 Password anda : Bash Wah sorry, gagal nih

klausa else akan dieksekusi jika if tidak terpenuhi, sebaliknya jika if terpenuhi maka else tidak akan dieksekusi contoh script if3: penyeleksian dengan kondisi majemuk
#!/bin/bash clear echo "MENU HARI INI"; echo "-------------"; echo "1. Bakso "; echo "2. Gado-Gado "; echo "3. Exit "; read -p "Pilihan anda [1-3] :" pil; if [ $pil -eq 1 ]; then echo "Banyak mangkuk ="; read jum let bayar=jum*1500; elif [ $angka -eq 2 ]; then echo "Banyak porsi ="; read jum let bayar=jum*2000; elif [ $angka -eq 3 ]; then exit 0 else echo "Sorry, tidak tersedia" exit 1 fi echo "Harga bayar = Rp. $bayar" echo "THX"

Hasilnya:
[bayu@linux$]./if3 MENU HARI INI ------------1. Bakso 2. Gado-Gado 3. Exit Pilihan anda :2 Banyak porsi = 2 Harga bayar = Rp. 4000 THX

7.2.2. statement builtin case

syntax:
case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]... esac

contoh script cs1

April 27, 2010

seperti halnya if statement case digunakan untuk menyeleksi kondisi majemuk, dibanding if, pemakaian case terasa lebih efisien

24

LAPOARAN AKHIR

Bayu Adi Yudha P

#!/bin/bash clear echo -n "Masukkan nama binatang :"; read binatang; case $binatang in pinguin | ayam | burung ) echo "$binatang berkaki 2" break ;; onta | kuda | anjing ) echo "$binatang berkaki 4" break ;; *) echo "$binatang blom didaftarkan" break ;; esac

Hasilnya:
[bayu@linux$]./cs1 Masukkan nama binatang : pinguin pinguin berkaki 2

7.3. Perulangan
7.3.1. statement for
syntax:
for NAME [in WORDS ...]; do perintah; done contoh script for1 #!/bin/bash for angka in 1 2 3 4 5; do echo "angka=$angka"; done

Hasilnya:
[bayu@linux$]./for1 angka=1 angka=2 angka=3 angka=4 angka=5

contoh script for2 berikut akan membaca argumen yang disertakan waktu script dijalankan
#!/bin/bash for var do echo $var done

Hasilnya:
[bayu@linux$]./for2 satu 2 tiga satu 2 tiga

atau variasi seperti berikut


#!/bin/bash

April 27, 2010

25

LAPOARAN AKHIR

Bayu Adi Yudha P

for var in `cat /etc/passwd` do echo $var done

Hasilnya: hasil dari perintah cat terhadap file /etc/passwd disimpan ke var dan ditampilkan menggunakan echo $var ke layar, mendingan gunakan cat /etc/passwd saja biar efisien. :-)
7.3.2. statement while

selama kondisi bernilai benar atau zero perintah dalam blok while akan diulang terus syntax:
while KONDISI; do perintah; done;

contoh script wh1 mencetak bilangan ganjil antara 1-10


#!/bin/bash i=1; while [ $i -le 10 ]; do echo "$i,"; let i=$i+2; done

Hasilnya:
[bayu@linux$]./wh1 1,3,5,7,9,

kondisi tidak terpenuhi pada saat nilai i=11 (9+2), sehingga perintah dalam blokwhile tidak dieksekusi lagi contoh script wh2 akan menghitung banyak bilangan genap dan ganjil yang ada.
#!/bin/bash i=0; bil_genap=0; bil_ganjil=0; echo -n "Batas loop :"; read batas if [ -z $batas ] || [ $batas -lt 0 ]; then echo "Ops, tidak boleh kosong atau Batas loop exit 0; fi while [ $i -le $batas ]; do echo -n "$i,"; if [ `expr $i % 2` -eq 0 ]; then let bil_genap=$bil_genap+1; else let bil_ganjil=$bil_ganjil+1; fi let i=$i+1; #counter untuk mencapai batas done echo echo "banyak bilangan genap = $bil_genap"; echo "banyak bilangan ganjil = $bil_ganjil"; harus >= 0";

April 27, 2010

26

LAPOARAN AKHIR

Bayu Adi Yudha P

Hasilnya:
[bayu@linux$]./wh2 Batas loop : 10 0,1,2,3,4,5,6,7,8,9,10, banyak bilangan genap = 6 banyak bilangan ganjil = 5

untuk mengetahui apakah nilai i berupa bilangan genap kita cukup menggunakan operasi matematika % (mod), jika nilai i dibagi 2 menghasilkan sisa 0 berarti i adalah bilangan genap (semua bilangan genap yang dibagi dengan 2 mempunyai sisa 0) maka pencacah (bil_genap) dinaikkan 1, selain itu i bilangan ganjil yang dicatat oleh pencacah bil_ganjilproses ini dilakukan terus selama nilai i lebih kecil atau samadengan nilai batas yang dimasukkan. script juga akan memeriksa dahulu nilai batas yang dimasukkan apabila kosong atau lebih kecil dari 0 maka proses segera berakhir.tentunya dengan statement while kita sudah dapat membuat perulangan pada script kedai diatas agar dapat digunakan terus-menerus selama operator masih ingin melakukan proses perhitungan. lihat contoh berikut:
#!/bin/bash #kedai lagi='y' while [ $lagi == 'y' ] || [ $lagi == 'Y' ]; do clear echo "MENU HARI INI"; echo "-------------"; echo "1. Bakso "; echo "2. Gado-Gado "; echo "3. Exit "; read -p "Pilihan anda [1-3] :" pil; if [ $pil -eq 1 ]; then echo -n "Banyak mangkuk ="; read jum let bayar=jum*1500; elif [ $pil -eq 2 ]; then echo -n "Banyak porsi ="; read jum let bayar=jum*2000; elif [ $pil -eq 3 ]; then exit 0 else echo "Sorry, tidak tersedia" exit 1 fi

-n "Hitung lagi (y/t) :"; lagi;

#untuk validasi input while [ $lagi != 'y' ] && [ $lagi != 'Y' ] && [ $lagi != 't' ] && [ $lagi != 'T' ];

April 27, 2010

echo echo echo echo read

"Harga bayar = Rp. $bayar" "THX"

27

LAPOARAN AKHIR

Bayu Adi Yudha P

do echo "Ops, isi lagi dengan (y/Y/t/Y)"; echo -n "Hitung lagi (y/t) :"; read lagi; done done

proses pemilihan menu dan perhitungan biaya akan diulang terus selama anda memasukkan y/Y dan t/T untuk berhenti. dalam script terdapat validasi input menggunakan while, sehingga hanya y/Y/t/T saja yang dapat diterima soalnya saya belum mendapatkan fungsi yang lebih efisien :-)
7.3.3. statement until

jika while akan mengulang selama kondisi benar, lain halnya dengan statement until yang akan mengulang selama kondisi salah. berikut contoh script ut menggunakan until
#!/bin/bash i=1; until [ $i -gt 10 ]; do echo $i; let i=$i+1 done

Hasilnya:
[bayu@linux$]./ut 1,2,3,4,5,6,7,8,9,10,

perhatikan kodisi until yang salah [ $i -gt 10], dimana nilai awal i=1 dan akan berhenti apabila nilai i = 11 (bernilai benar) 11 -gt 10.
7.3.4. statement select
selectberguna untuk

pembuatan layout berbentuk menu pilihan, anda lihat contoh script pembuatan menu diatas kita hanya melakukannya dengan echo secara satu persatu, dengan select akan terlihat lebih efisien. syntax:
select varname in (&ltitem list>); do perintah; done

sewaktu dijalankan bash akan menampilkan daftar menu yang diambil dari item list, serta akan menampilkan prompt yang menunggu masukan dari keyboard, masukan tersebut oleh bash disimpan di variabel builtin REPLY, apabila daftar item list tidak dituliskan maka bash akan mengambil item list dari parameter posisi sewaktu script dijalankan. lebih jelasnya lihat contoh berikut:
#!/bin/bash

April 27, 2010

28

LAPOARAN AKHIR

Bayu Adi Yudha P

#menu1 clear select menu do echo "Anda memilih $REPLY yaitu $menu" done

Hasilnya:
layout: [bayu@linux$]./menu1 Slackware Redhat Mandrake 1) Slackware 2) Redhat 3) Mandrake #? 1 Anda memilih 1 yaitu Slackware

karena item list tidak disertakan dalam script, maka sewaktu script dijalankan kita menyertakan item list sebagai parameter posisi, coba gunakan statement select pada program kedai diatas.
#!/bin/bash #kedai lagi='y' while [ $lagi == 'y' ] || [ $lagi == 'Y' ]; do clear select menu in "Bakso" "Gado-Gado" "Exit"; case $REPLY in 1) echo -n "Banyak mangkuk ="; read jum let bayar=jum*1500; ;; 2) echo -n "Banyak porsi ="; read jum let bayar=jum*2000; ;; 3) exit 0 ;; *) echo "Sorry, tidak tersedia" ;; esac do echo "Harga bayar = Rp. $bayar" echo "THX" echo echo -n "Hitung lagi (y/t) :"; read lagi; #untuk validasi input while [ $lagi != 'y' ] && [ $lagi != 'Y' ] && [ $lagi != 't' ] && [ $lagi != 'T' ]; do echo "Ops, isi lagi dengan (y/Y/t/Y)"; echo -n "Hitung lagi (y/t) :"; read lagi; done done

8. Array
adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah :-) dan salah satu hal yang cukup penting dalam bahasa pemrograman, anda bisa

April 27, 2010

29

LAPOARAN AKHIR

Bayu Adi Yudha P

membayangkan array ini sebagai tumpukan buku - buku dimeja belajar. lebih jelasnya sebaiknya lihat dulu contoh script berikut:
#!/bin/bash #array1 buah=(Melon,Apel,Durian); echo ${buah[*]};

Hasilnya:
[bayu@linux$]./array1. Melon,Apel,Durian

anda lihat bahwa membuat tipe array di Bash begitu mudah, secara otomatis array buah diciptakan dan string Melon menempati index pertama dari array buah, perlu diketahui bahwa array di Bash dimulai dari index 0, jadi array buah mempunyai struktur seperti berikut:
buah[0] berisi Melon buah[1] berisi Apel buah[2] berisi Durian 0,1,2

adalah index array, berarti ada 3 elemen pada array buah, untuk menampilkan isi semua elemen array gunakan perintah subtitusi seperti pada contoh diatas, dengan index berisi "*" atau "@". dengan adanya index array tentunya kita dapat mengisi array perindexnya dan menampilkan isi array sesuai dengan index yang diinginkan. anda lihat contoh berikut:
#!/bin/bash #array2 bulan[0]=31 bulan[1]=28 bulan[2]=31 bulan[3]=30 bulan[4]=31 bulan[5]=30 bulan[6]=31 bulan[7]=31 bulan[8]=30 bulan[9]=31 bulan[10]=30 bulan[11]=31 echo "Banyak hari dalam bulan November adalah ${bulan[10]} hari"

Hasilnya:
[bayu@linux$]./array2 Banyak hari dalam bulan November adalah 30 hari

sebenarnya kita dapat mendeklarasikan array secara eksplisit menggunakan statement declare contohnya:
declare -a myarray

April 27, 2010

30

LAPOARAN AKHIR

Bayu Adi Yudha P

mendeklarasikan variabel myarray sebagai array dengan opsi -a, kemudian anda sudah dapat memberinya nilai baik untuk semua elemen atau hanya elemen tertentu saja dengan perulangan yang telah kita pelajari pengisian elemen array dapat lebih dipermudah, lihat contoh :
#!/bin/bash #array3 #deklarasikan variabel array declare -a angka #clear i=0; while [ $i -le 4 ]; do let isi=$i*2; angka[$i]=$isi; let i=$i+1; done #tampilkan semua elemen array #dengan indexnya berisi "*" atau "@" echo ${angka[*]}; #destroy array angka (memory yang dipakai dibebaskan kembali) unset angka

Hasilnya:
[bayu@linux$]./array3 0 2 4 6 8

9. Subrutin atau Fungsi


merupakan bagian script atau program yang berisi kumpulan beberapa statement yang melaksanakan tugas tertentu. dengan subrutin kode script kita tentunya lebih sederhana dan terstruktur, karena sekali fungsi telah dibuat dan berhasil maka akan dapat digunakan kapan saja kita inginkan. beberapa hal mengenai fungsi ini adalah:

Memungkinkan kita menyusun kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing. Mencegah penulisan kode yang berulang - ulang.

untuk membuat subrutin shell telah menyediakan keyword function seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak). syntax:
function nama_fungsi() { perintah; }

nama_fungsi adalah pengenal (identifier) yang aturan penamaannya sama seperti pemberian nama variabel, setelah fungsi dideklarasikan atau dibuat anda dapat memaggilnya dengan menyebutkan nama fungsinya. lebih jelasnya lihat contoh script fungsi1 berikut:
#!/bin/bash

April 27, 2010

31

LAPOARAN AKHIR

Bayu Adi Yudha P

function say_hello() { echo "Hello, apa kbabar" } #panggil fungsi say_hello; #panggil sekali lagi say_hello;

Hasilnya:
[bayu@linux$]./fungsi1 Hello, apa khabar Hello, apa khabar

jika keyword function disertakan maka kita boleh tidak menggunakan tanda kurung (), tetapi jika keyword function tidak disertakan maka tanda kurung harus digunakan, lihat contoh berikut:
#!/bin/bash function say_hello{ echo "Hello,apa khabar" } balas(){ echo "Baik-baik saja"; echo "Bagaimana dengan anda ?"; } #panggil fungsi say_hello say_hello; #panggil fungsi balas balas;

Hasilnya:
[bayu@linux$]./fungsi2 Hello, apa khabar Baik-baik saja Bagaimana dengan anda ?

tentunya suatu fungsi lebih berdaya guna apabila dapat menerima argumen yang dikirim oleh pemanggilnya dan memproses argumen tsb didalam fungsinya, fungsi yang kita buat pada bash shell tentunya dapat melakukan hal tsb, apabila pada pemanggilan fungsi kita menyertakan argumen untuk diproses fungsi tsb, maka bash akan menyimpan argumen - argumen tsb pada

April 27, 2010

9.1. Mengirim argumen sebagai parameter ke fungsi

32

LAPOARAN AKHIR

Bayu Adi Yudha P

parameter posisi 1,2,3,dst...,nah dengan memanfaatkan parameter posisi tsb tentunya kita dapat mengambil nilai yang dikirim. lebih jelasnya anda lihat contoh berikut:
#!/bin/bash function hello{ if [ -z $1 ]; then echo "Hello, apa khabar anda" else echo "Hello $1, apa khabar"; fi } #masukkan nama anda disini echo -n "Nama anda :"; read nama #panggil fungsi dan kirim isi variabel nama ke fungsi untuk dicetak hello $nama;

Hasilnya:
[bayu@linux$]./fungsi3 Nama anda : pinguin Hello pinguin, apa khabar

lihat fungsi hello, sebelum mencetak pesan kita melakukan pemeriksaan dengan if terhadap parameter posisi $1 apabila kosong maka pesan "Hello, apa khabar anda" yang akan ditampilkan, tetapi jika ada string yang kita input maka string tersebut akan dicetak di dalam blok else pada fungsi. argumen pertama diteruskan ke variabel 1, argumen kedua pada variabel 2, dst.. jika argumen yang dikirim lebih dari satu.

9.2. Cakupan Variabel


secara default variabel - variabel yang digunakan dalam script adalah variabel bersifat global, maksud global adalah bahwa variabel tsb dikenal dan dapat diakses oleh semua fungsi dalam script, tetapi bash menyediakan keyword localyang berfungsi membatasi cakupan (scope) suatu variabel agar dikenal hanya oleh fungsi yang mendeklarasikannya.coba lihat contoh berikut:
#!/bin/bash proses(){ echo "Isi variabel a=$a"; } a=2; proses(); proses $a

Hasilnya:
Isi variabel a=2 Isi variabel a=2

April 27, 2010

33

LAPOARAN AKHIR

Bayu Adi Yudha P

coba anda tambahkan local a pada fungsi proses menjadi


proses(){ local a; echo -e "a didalam fungsi, a=$a"; } a=10; proses() echo "a diluar fungsi, a=$a" proses $a

Hasilnya:
a didalam fungsi, a= a diluar fungsi, a=10 a didalam fungsi a=

nah jelas perbedaannya jika mendeklarasikan variabel memakai keyword local menyebabkan variabel tersebut hanya berlaku pada fungsi yang mendekalarasikannya. pada contoh dalam fungsi proses variabel a dideklarasikan sebagai variabel local dan tidak diberi nilai. Diakhir dokumentasi ini saya menyertakan contoh script sederhana untuk melakukan entry data-data KPLI (Kelompok Pencinta Linux Indonesia) dan menyimpannya ke sebuah file. perintah-perintah shell dan beberapa utility yang digunakan adalah:

apa yang telah anda pelajari diatas utility test, touch operator redirection ">>" untuk menambah data sleep, grep (global regular expression parser), cut, cat, | (pipa), sort dan more tput untuk menempatkan cursor pada koordinat tertentu (baris kolom)

sebagai latihan silahkan mengembangkan sendiri script dibawah ini:


#!/bin/bash #-----------------------------------------------------------------#(C) Moh.fajar Makassar 2001, contoh script buat para linuxer #file ini adalah public domain, silahkan mendistribusikan kembali #atau mengubahnya asalkan anda mengikuti aturan - aturan dari GPL # menu(){ clear tput cup 2 8; echo "SIMPLE DATABASE KPLI" tput cup 3 11; echo "1. Entry Data" tput cup 4 11; echo "2. Cari Data" tput cup 5 11; echo "3. Cetak Data" tput cup 6 11; echo "4. Exit" tput cup 7 9; read -p "Pilihan anda [1-4] :" pil;

April 27, 2010

34

LAPOARAN AKHIR

Bayu Adi Yudha P

while [ -z $pil ] || [ $pil -lt 1 ] || [ $pil -gt 4 ]; do tput cup 7 9 read -p "Pilihan anda [1-4] :" pil; done } entry() { tput cup 9 27 echo "Enrty data" tput cup 11 27 echo -n "Nama KPLI :"; read nama; while [ -z $nama ] || grep $nama $data -q -i; do tput cup 13 27 echo "Ops Tidak boleh kosong atau $nama sudah ada"; sleep 3 clear tput cup 11 27 echo -n "Nama KPLI :"; read nama; done tput cup 12 27 echo -n "Kota :"; read kota; tput cup 13 27 echo -n "Alamat :"; read alamat; tput cup 14 27 echo -n "Email :"; read email; tput cup 16 27 echo "Rekam data ke file" if !(echo $nama:$kota:$alamat:$email>>$data); then echo "Ops, gagal merekam ke file" exit 1; fi sleep 3; } cari(){ tput cup 9 27 echo "Cari data per record" tput cup 11 27 echo -n "Nama KPLI :"; read nama; while [ -z $nama ]; do tput cup 13 27 echo "Ops, nama tidak boleh kosong" sleep 3; tput cup 11 27 echo -n "Nama KPLI :"; read nama; done if found=`grep $nama $data -n -i`; then tput cup 12 27 echo -n "Kota :"; echo "$found" | cut -d: -f3 tput cup 13 27 echo -n "Alamat :";

April 27, 2010

35

LAPOARAN AKHIR

Bayu Adi Yudha P

echo tput cup echo echo tput echo else tput echo fi

"$found" | cut -d: -f4 14 27 -n "Mail :"; "$found" | cut -d: -f5 cup 16 27 -n "Record ke- $found" | cut -d: -f1 cup 13 27 "Ops, data tidak ditemukan";

April 27, 2010

} cetak() { tput cup 12 27 echo "Tampilkan Data" tput cup 13 27 echo -n "1->Ascendig, 2->Descending :" read mode clear; if [ -z $mode ] || [ $mode -eq 1 ]; then cat $data | sort | more -d elif [ $mode -eq 2 ]; then cat $data | sort -r | more -d else cat $data | sort | more -d fi } #block utama data="mydata" if !(test -e $data); then if !(touch $data); then echo "gagal buat file database" exit 1 fi fi lagi='y' while [ $lagi == 'y' ] || [ $lagi == 'Y' ] do menu; case $pil in 1) entry ;; 2) cari; ;; 3) cetak ;; 4) clear; exit 0; ;; *) echo "$pil, tidak ada dalam pilihan" ;; esac tput cup 18 27 echo -n "Ke Menu (y/t): "; read lagi; done clear

36

LAPOARAN AKHIR

Bayu Adi Yudha P

tentunya kemampuan script ini dapat kita tambahkan dengan mudah sehingga mendekati program database sesungguhnya, utility seperti tr, paste, egrep, lpr, dll.. cukup baik dan membantu untuk digunakan.
(http://www.pemula.linux.or.id)

April 27, 2010

37

LAPOARAN AKHIR

Bayu Adi Yudha P

BAB III MACAM MACAM DISTRO LINUX


1. Slackware Distro paling tua, dibuat oleh Patrick Volkerding. Ini mungkin distro linux yang paling mirip UNIX. Paket manager nya pake dpkg dengan akhiran tgz. Rilis pertama adalah Juli 1993, rilis terakhir versi 10.2 performace nya bagus untuk low end komputer, kurang cocok untuk pemula, cocok bagi yang sangat terbiasa dengan unix. turunan nya cukup banyak sekarang ada vector, slax 2. Debian Distro paling lengkap, dibuat oleh Ian dan cewek nya Debbie jadilan Debian. Didukung oleh paling banyak hacker di dunia, paling banyak paket program nya. Paket manager nya pake apt-get, paket file nya *.deb. Paling cepat update nya, tapi rilis stabil nya paling lelet rilis terakhir sarge versi 3r1. Sebanyak 14CD atau 2DVD, source nya sebanyak 15CD, 3DVD. Mendownload cd nya dengan jidgo, jidgo ini akan mendownload paket paket program dan membuat image cd nya di komputer kita. Target nya stabilitas distro, pemakai nya kebanyakan advance user, untuk pemula kurang frienly, banyak tool yang harus diakses dari konsol. Saat ini banyak turunan dari debian contoh terkenal adalah linux live cd knoppix, ubuntu. 3. Redhat Pelopor distro linux user frendly, dibuat oleh Alan Cox. redhat yang menciptakan paket manager rpm, saat ini ada paket manager yup, dan apt-get untuk redhat. Target nya untuk pemula sampai advance user. Redhat juga yang membuat proyek Gnome. Turunan nya banyak sekali contoh nya adalah Mandriva, Fedora dll. Saat ini Redhat fokus untuk komersial untuk enterprise Linux, sedangkan untuk komunitas ada Fedora. Btw sebenarnya orang orang nya dia-dia juga. Paket source dari Redhat sebenarnya free, jadi banyak yang porting dari RPMS redhat menjadi Distro lain contoh nya adalah CentOS, Tao, Whitebox. 4. SuSE/Novell Distro ini dikembangkan di eropa, jerman tepatnya, target user nya pemula sampai advance, dulu nya SuSE tidak menyediankan iso image untuk di download, jadi kalau mau install konek internet, download disket boot dan install langsung dari Internet, maklum aja di eropa jaringan internet nya udah kenceng sampe ke rumah. Saat ini SuSE dibeli oleh Novell, berkerja sama juga dengan Sun Microsystem, sehingga desktop default nya solaris 10 adalah gnome. Baru baru ini saja Suse mengeluarkan versi OpenSuSE yang bisa di download iso image nya.

April 27, 2010

38

LAPOARAN AKHIR

Bayu Adi Yudha P

5. Mandriva Distro paling user frendly ini dikembangkan di Prancis, Dahulu nama nya Mandrake tapi karena ada masalah lisensi nama, kemudian ganti nama menjadi mandriva setelah mengakuisisi Conectiva. Memakai paket mamager RPM, dan oleh mandriva di kembangkan menjadi urpmi. Target user nya pemula sampai advance, banyak dipakai untuk desktop. Yang baru pemula sungguh enak sekali pakai mandriva, karena instalasi nya mudah, pengenalan hardware nya bagus. Default dekstop nya adalah KDE 6. Gentoo Distro ini menyediakan compile di tempat. Artinya anda bisa mengoptimalkan distro linux untuk pc anda, pembuat nya (sory lupa) pernah menjadi developer freebsd. Kemudian membuat paket manager yang mirip dengan freebsd untuk gentoo. sory gue gak bisa komentar banyak belum pernah install gentoo soalnya.

7. Knoppix Distro paling asik deh, soalnya enggak perlu install ke hardisk, cukup masukan cd nya dan boot ke cd. Dikembangkan dari debian, sehingga paket debian bisa di install ke knoppix, bisa di install ke hardisk. Guna nya cukup banyak misalnya untuk demo program, sarana belajar linux dengan cepat. Bagi pemula yang takut install linux lebih baik belajar pake Knoppix. Yang pembuat nya dari Jerman Klaus Knopper.

8. Ubuntu Distro baik hati, bayangin dia bagi bagi CD gratis kei seluruh dunia. Pasti uang nya juga lumayan terutama ongkos kirim nya. dikembangkan dari debian & knoppix, ada dua versi live cd atau install. paket debian bisa langsung di install di Ubuntu.

9. Mepis & Xandros


April 27, 2010

Ini distro yang mudah di install, menyertakan paket yang instant misalnya flash, java, acrobat reader, mplayer, quicktime, nvidia driver sudah include ada di sini. Fedora, Mandriva free download, opensuse, belum menyertakan paket tersebut. Dkembangkan dari debian

39

LAPOARAN AKHIR

Bayu Adi Yudha P

10. linux lain lain Bnyak lagi linux yang lain ada ratusan distro coba lihat refrensi link di atas dengan terget nya macam-macam, tapi yang pasti linux itu program program nya sama saja, yang berbeda cara paket nya, instalasi nya. kalau sudah masuk konsol pasti rasanya mirip mirip.

April 27, 2010

40

LAPOARAN AKHIR

Bayu Adi Yudha P

BAB IV Vi EDITOR
Pernah kah anda merasa frustasi ketika harus melakukan edit file di Linux? Atau pernahkah anda kebingungan bagaimana keluar dari editor vi? Saya pernah oleh karena itu saya menulis artikel ini supaya tidak harus melakukan kill setiap kali harus keluar dari vi.. Untuk memulai editor vi bisa dilakukan dengan dua cara yaitu: 1. langsung mengetikan
vi

dan anda akan dibawah ke editor vi dengan blank page. 2. dengan mengetikan
vi namafile

ini dilakukan untuk meng edit file yang sudah ada atau apabila namafile tidak ada akan secara otomatis dibuatkan sebuah file kosong dengan nama seperti yang diketikan. Mode di vi 1. Command mode: mode dimana kita memberikan perintah-perintah kepada vi untuk melakukan manipulasi text atau file. Untuk memastikan kita ada dalam kondisi command mode cukup tekan esc. 2. Insert mode: mode dimana kita diperbolehkan untuk menyisipkan text menghapus atau meng edit text didalam file. untuk memulai mode ini cukup ketikan i dalam command mode. Sebelum kita pusing dengan perintah-perintah yang lain kita harus mengenal perintah berikut ini karena dengan perintah ini kita bisa keluar dari editor vi. semua dilakukan lewat command mode 1. : q [enter], keluar dari editor vi hanya apabila tidak ada modifikasi sama sekali. 2.ZZ, keluar dari vi dan menyimpan hasil modifikasi terakhir 3. :wq [enter], keluar dari vi dan menyimpan hasil modifikasi terakhir ke file. 4. :x [enter], keluar dari vi dan menyimpan hasil modifikasi terakhir ke file. 5. :q! [enter], memaksa keluar dari vi tanpa menyimpan hasil modifikasi. Ok anda sudah bisa keluar dari vi sekarang kita belajar bagaimana bergerak didalam editor vi. 1. l, panah kanan atau spasi , digunakan untuk bergerak ke kanan satu karakter 2. h, atau panah kiri , digunakan untuk bergerak satu karakter ke kiri 3. j, atau panah bawah, digunakan untuk bergerak satu baris ke bawah. 4. k, atau panah atas, digunakan untuk bergerak satu baris ke atas. 5. :0 atau 1-shift-G, untuk pindah ke baris pertama 6. :$, untuk pindah ke baris terakhir 7. nG, untuk pindah ke baris ke n 8. 0, untuk pindah ke baris awal 9. $, untuk pindah ke baris akhir Setelah bisa bergerak dengan leluasa di editor vi kita belajar melakukan edit text.

April 27, 2010

41

LAPOARAN AKHIR

Bayu Adi Yudha P

1. x, menghapus satu karakter pada posisi kursor 2. X, menghapus karakter disebelah kiri kursor 3. Dd, menghapus satu baris pada posisi kursor 4. d [enter], menghapus dua barus, baris pada posisi kursor dan baris berikutnya 5. d0, menghapus dari baris awal sampai posisi dimana kursor berada 6. d$, menghapus dari posisi kursor ke baris terakhir. Berpindah antar layar (scrolling) 1. ctrl-b, berpindah satu layar ke atas (sebelumnya) 2. ctrl-d, berpindah satu layar ke bawah (sesudah nya) 3. ctrl-f, Turun satu bagian layar 4. ctrl-j, naik setengah bagian layar. Copy paste Beberapa perintah dapat diulang beberapa kali dengan menambahkan jumlah pengulangan didepan perintah tersebut. Sebagai contoh, jika ingin copy dan paste beberapa baris langsung gunakan langkah langkah berikut: 1. tempatkan kursor pada posisi line yang akan dicopy. 2. contoh jika ingin copy 3 baris, gunakan command 3yy ( tekan angka 3 diikuti tombol y sebanyak 2x) 3. tempatkan posisi kursor pada tempat yang akan di insertkan dan kemudian tekan p. Perintah-perintah lain di vi. 1. U atau u, untuk membatalkan perintah sebelumnya (undo) 2. / atau ? , perintah untuk mencari suatu kata dipakai dengan mengetikan /kata atau ?kata tanpa tanda kutip tentunya 3. /\ , perintah ini akan mencari kata tu saja dimana kata-kata seperti kata hantu, saturday, dan tukang akan diabaikan. 4. :1,7s/balon/mobil/g , untuk mengganti kata balon dengan kata mobil dari baris ke 1 sampai 7

April 27, 2010

Anda mungkin juga menyukai