23.48

 

1  Dasar-dasar Linux & Shell Scripting


Setelah mempelajari modul ini, peserta dapat:
§  Mengenal sejarah dan distro-distro Linux
§  Mengenal perintah-perintah dasar Linux
§  Dapat menggunakan Vi sebagai Text Editor
§  Mengenal jenis-jenis proses pada Linux
§  Mengenal perintah atau utilitas Lanjut Linux
§  Mengatur struktur dan sistem Keamanan File & Folder
§  Mengenal tipe-tipe shell dan dapat membuat aplikasi sederhana menggunakan shell scripting








































Pengenalan Linux



Mengapa Linux dilambangkan dengan Burung Pinguin ?
Menurut cerita Linus Torvalds, yaitu pencipta Linux pertama kali, pernah digigit oleh penguin hingga demam panas. Dari kejadian tersebut ia melambangkan produk Linux-nya dengan TuX, nama dari logo Linux yang berupa burung pinguin tersebut.


APAKAH LINUX ITU?
Linux, sebuah kata yang semakin hari makin populer di dunia komputer tetapi masih tetap asing di telinga orang awam. Untuk lebih mudahnya dapat dikatakan bahwa:
§  Linux dapat menjadi pilihan dan alternatif lain bagi yang menginginkan sistem operasi selain Windows.
§  Sistem operasi komputer adalah perangkat lunak yang memungkinkan terjadinya komunikasi antara manusia dan komputer serta memungkinkan aplikasi untuk berjalan di komputer. Linux, sering juga disebut GNU/Linux merupakan sistem operasi yang mirip UNIX (=UNIX-clone) berisi kernel Linux itu sendiri dan sekumpulan lengkap alat-alat dan program-program lain yang kebanyakan di bawah naungan proyek GNU dari
§  Free Software Foundation atau disingkat FSF. Tampilan grafis atau Graphical User Interface (GUI) disediakan oleh XWindows System beserta kumpulan libraries dan alat-alatnya.


Sejarah Linux

Linux dikembangkan oleh sejumlah pemrogram terbaik diseluruh dunia  mencakup profesor, mahasiswa ilmu komputer, administrator sistem komputer sampai perusahaan besar. Inti dari Linux itu sendiri adalah KERNEL yang dikembangkan pada tahun 1991 oleh seorang mahasiswa dari Universitas Helsinski Finlandia bernama Linus Torvalds. Pada tahun 1991 itulah Linus mengumumkan tentang Linux di newsgroup.

Distribusi atau “Distro” Linux

Linux yang beredar di pasaran pada saat ini sangat beragam. Tipe-tipe Linux  yang beragam tersebut dikenal dengan istilah “Distribution” atau “Distro”. Secara umum, core dari semua sistem operasi Linux (Kernel) adalah sama. Perbedaannya terletak pada environment sistem dan tools-tools pembantu yang digunakan untuk mengkonfigurasi kernel dan struktur filenya.

Beberapa contoh Distro yang cukup terkenal antara lain :
§  RedHat Linux
§  Mandrake
§  Debian
§  Suse
§  Caldera Open Linux
§  Slackware
§  Linux Router
§  Trustix Merdeka (Linux Indonesia)

Distribusi Apa yang Paling Baik?

Tergantung kebutuhan dan situasi. Tidak ada satu distribusi yang paling baik untuk semua orang. Beberapa distribusi memiliki fokus tertentu, misalnya Linux Router untuk keperluan router dan sejenisnya, Mandrake yang dioptimasi untuk prosesor kelas Pentium, dan lain-lain. Perbedaan mendasar antara distribusi-distribusi tersebut adalah target penggunaan, cara instalasi, program bawaan, dan tata letak files/directory. Umumnya setelah selesai instalasi, perbedaan antar distribusi tersebut menjadi tidak terlalu relevan. Linux itu sendiri adalah kernelnya saja, yang membuatnya menjadi OS yang bisa digunakan adalah program-program pendukungnya.

Saran :
Untuk memilih distribusi yang tepat untuk Anda gunakan, jika baru pertama kali menggunakan Linux: cari teman atau kenalan (atau user group di daerah anda) yang menggunakan Linux, lalu gunakan distribusi yang sama, ini untuk mempermudah jika anda menemui kesulitan bisa bertanya dengan mudah.

Kelebihan Linux
§  Mempunyai banyak aplikasi dan dapat diperoleh dengan harga murah bahkan dapat diduplikat dan masih tetap legal.
§  Linux bersifat multitasking, artinya ia dapat menjalankan beberapa aplikasi dalam waktu yang sama dan masing-masing aplikasi juga dapat melakukan beberapa pekerjaan dalam waktu yang sama (multithreading).
§  Linux juga bersifat multiuser, yang berarti lebih dari satu orang dapat menggunakan Linux pada waktu yang bersamaan dan hal ini tentunya dilakukan dalam lingkungan jaringan komputer.
§  Dengan hardware yang terbatas, Linux masih mampu berjalan dengan baik.
§  Didesain dari awal sebagai sebuah sistem operasi yang stabil. Oleh karena itu jarang sekali Linux mengalami kondisi crash dan apabila itu terjadi maka penyebab utamanya adalah aplikasi yang berjalan di Linux atau perangkat keras yang rusak.

 

Kekurangan Linux

§  Menggunakan Linux membutuhkan waktu, usaha dan pikiran yang lebih dari sekedar menggunakan komputer. Tetapi hal tersebut telah berubah dengan cepat karena sudah banyak usaha untuk mempermudah penggunaan Linux seperti yang dikembangkan oleh KDE dengan tampilan ala Windows-nya,GNOME yang memungkinkan tampilan GUI Linux yang indah dan dapat diubah sesuai kehendak penggunanya.
§  Minimnya dukungan teknis yang baik serta terpercaya. Ini adalah citra masa lalu dan tetap menghantui perkembangan Linux. Dengan semakin diterimanya Linux di kalangan pengembang komputer maka semakin banyak pula perusahaan ataupun jasa-jasa dukungan teknis untuk Linux.

Struktur File

Struktur inti dari sistem file pada Linux dapat dilihat pada gambar berikut :

Gambar 1: Struktur inti dari file–file pada Linux
 
 



Bagi Anda yang telah “terbiasa” dengan sistem operasi Windows untuk menyesuaikan diri dengan aplikasi-aplikasi yang sering Anda gunakan di Sistem Operasi Linux, berikut ini adalah tabel software Windows yang sama pada Linux :

Tabel-1: Daftar Software Windows vs Linux:
Software
Windows 2000
Free RedHat Linux
Office
Microsoft Office 2000
§ StarOffice 6.0
§ OpenOffice
Word Processor
Word 2000
§ StarWriter
§ AbiWord
Spreadsheet
Excel 2000
StarCalc
Presentation
PowerPoint 2000
StarImpress
Database
Access 2000
LAMP intranet using PHP/MySQL
POP3 E-mail
Outlook Express
Sylpheed 0.6.2-1
Browser
Internet Explorer 5
§ Mozilla 0.9.4
§ Netscape Navigator
§ Konqueror (Kde)
FTP
WS_FTP 6
GFTP 2.0.7
Firewall
ZoneAlarm Pro
Firestarter 0.7.1
PDF Writer
Acrobat Writer
StarWriter
CD-R Recorder
Easy CD Creator
Gtoaster 1.0Beta
Image Viewer
ACDSee 3
GQView 0.8.1
Image Editor
Fireworks 4
Gimp 1.2
PDF Viewer
Acrobat Reader
§ Acrobat Reader 4
§ xpdf 0.92
Archive Utility
Winzip 8
Archiver (ark 1.9)
MP3 Player
WinAmp
§ XMMS 1.2.4
§ Kde MultiMedia Player
Anti Virus
Norton Anti-Virus
Kaspersky Anti-Virus™
Programming
Visual Basic
§ Jbuilder 6.0
§ Kylix Enterprise 2.0
§ Python


Mengawali Sesi Linux
            Untuk mengawali sesi linux anda, Anda harus memiliki account yang sudah didaftarkan oleh administrator(root) server.
Nama Login umumnya dibatasi hingga 8 Karakter dan ditulis dengan huruf kecil.

Catatan:
Linux dan Unix merupakan sistem operasi yang memperhatikan penulisan perintah pada Shell prompt secara case sensitive (=artinya penulisan dengan huruf besar dan huruf kecil untuk kata yang sama, memiliki makna yang berbeda).
Pada saat Anda mengetikkan password, karakter yang Anda ketikkan tidak akan ditampilkan di layar.

Jika  Nama Login dan Password  sesuai dengan yang terdaftar di server, Anda akan masuk ke dalam sistem  dan akan melihat tampilan sebagai berikut::
Home Directory
Home Directory adalah direktori tempat menempatkan semua file-file milik user bersangkutan. Direktori ini secara default dibuat di bawah direktori “/home”. Pada saat user masuk ke sistem, user akan langsung berada di “Home Directory” miliknya.

Catatan:
Bedakan definisi antara “Home Directory” dengan “Directory Home”.


Password
Password digunakan untuk menjaga akses user yang ingin masuk ke sistem.
Password dapat diubah dengan syarat sebagai berikut:
§  Secara default, minimal 6 karakter
§  Password yang diterima sistem adalah password yang mengandung huruf dan angka.
§  Sebaiknya dipilih password yang susah ditebak oleh orang lain.

Tutorial-1: Merubah Password User
1.     Ketikkan perintah passwd:
[topiq@linux_server topiq]$ passwd
           


            Hasil:
2.  Setelah menekan “Enter”, akan muncul perintah seperti berikut ini:
3.  Jika Anda telah mengikuti prosedur di atas dengan benar, maka hasil yang akan ditampilkan adalah:
Passwd: all authentication tokens updated succesfully
[topiq@Linux_server topiq]$

Memeriksa identitas User
Untuk mengetahui informasi identitas user Anda dapat digunakan perintah id.
Tutorial-2: Informasi Identitas User
Ketik Perintah:
[topiq@Linux_server topiq]$id
Hasil:
Setiap user memiliki satu Primary Group dan 15 Secondary Group.

Untuk mengetahui informasi identitas user lain dapat digunakan:
Ketik Perintah:
[topiq@Linux_server topiq]$id yayat
Hasil:

Mengakhiri sesi Linux
Untuk mengakhiri sesi Linux Anda, dapat digunakan perintah :
[topiq@Linux_server topiq]$exit
atau
Tekan Tombol “Ctrl + D” untuk mengakhiri sesi Linux Anda.

Info:
Jika Anda lupa password  login, segera melapor ke Administrator(root) Server Anda. Administrator akan membuat password baru untuk Nama Login Anda.




Latihan –1 :

1.     Masuk ke sesi login Anda kemudian ganti password Anda.
2.     Mintalah Administrator untuk mengganti password Anda, dan gunakan password baru tersebut untuk masuk ke sesi Linux Anda.
3.     Periksa user id, dan group id Anda.



Linux Command Line


Pada bagian ini, kita akan mempelajari perintah-perintah (command Line) yang umum digunakan di Linux.

Format Standard Perintah pada Linux :

[Shell Prompt]$NamaPerintah  [ option ]  [ argumen ]


Contoh:
           
Peringatan:
§  Semua Perintah Linux maupun UNIX, umumnya dituliskan dengan huruf kecil. Jika Anda salah menuliskan perintah, maka perintah akan menghasilkan pesan error.
§  Untuk mengulangi perintah Linux sebelumnya pada Shell prompt, gunakan Tanda panah ke atas.

Perintah-perintah dasar Linux antara lain adalah :

Tutorial-3: Perintah pwd
Perintah pwd (print work directory) digunakan untuk melihat  posisi direktori dimana user berada.
Ketik perintah:
[topiq@Linux_server topiq]$pwd
Hasil :

Tutorial-4: Perintah ls
Perintah ls (list) digunakan untuk melihat  isi dari suatu direkori.
Ketik perintah:
[topiq@Linux_server topiq]$ls
Hasil :
   [topiq@Linux_server topiq]$ls





Tutorial-5: Perintah ls dengan option all (-a)
Option all digunakan untuk melihat semua file termasuk hidden file. Hidden file pada Linux ditandai dengan Tanda Titik(.) di depan nama filenya (misal: .bashrc)
Ketik perintah:
[topiq@Linux_server topiq]$ls –a
Hasil :
[topiq@Linux_server topiq]$ls –a


Tutorial-6: Perintah ls dengan dua option sekaligus (all dan long)
Option long (-l) digunakan untuk melihat informasi file yang ada didalam direktory secara lengkap.
Ketik perintah:
[topiq@Linux_server topiq]$ls –la
Hasil :
[topiq@Linux_server topiq]$ls –la

Tutorial-7: Option Help
Option Help (--help) digunakan untuk melihat semua option dari suatu perintah. Untuk option Help diawali dengan tanda “double-dashed”(--).
Ketik perintah:
[topiq@Linux_server topiq]$ls –-help
Hasil :
[topiq@Linux_server topiq]$ls –-help

Tutorial-8: Perintah ls dengan argumen NamaDirektori
Fungsi argumen adalah untuk membuat perintah lebih spesifik. Pada perintah ls argumen yang digunakan adalah nama direktori yang ingin dilihat isinya. Dalam satu perintah dapat dituliskan lebih dari satu argumen.
Ketik perintah:
 
Hasil :
[topiq@Linux_server topiq]$ls –a /bin  topiq

Tutorial-9: Perintah who atau w
Perintah who atau w digunakan untuk melihat siapa saja yang sedang aktif atau login di server.
Ketik perintah:
[topiq@Linux_server topiq]$who
Hasil :

Tutorial-10: Perintah finger
§  Perintah finger hampir sama dengan who tetapi lebih lengkap.
Ketik perintah:
[topiq@Linux_server topiq]$finger

Hasil :
[topiq@Linux_server topiq]$finger

§  Untuk melengkapi informasi user pada perintah finger, gunakan perintah:
Ketik perintah:
§  Untuk melihat informasi seorang user (misal:topiq) secara spesifik, gunakan perintah:
Ketik perintah:
Sedangkan untuk mengubah pesan “No Plan” dan “No mail”, dapat dilakukan dengan membuat file “.plan” dan “.forward” pada Home Directory user tersebut (misal: “topiq” , untuk cara pembuatan file akan dibahas pada tutorial selanjutnya).

Tutorial-11: Mengirimkan Pesan pada user lain
§  Untuk mengirimkan pesan pada user lain yang sedang aktif dan terminal user tersebut tidak ditutup (Hasil Tutorial-9 pada bagian tty yang tidak bertanda *).
Format:

[Shell Prompt]$ write [ Nama_user_tujuan ] [ tty ]


§  Jika terdapat tanda * pada tty Anda untuk membuka terminal Anda gunakan perintah:
Ketik perintah:
[topiq@Linux_server topiq]$mesg y

kemudian gunakan perintah finger kembali untuk melihat apakah tanda * pada tty telah hilang.
§  Sekarang coba Anda kirimkan pesan singkat kepada peserta lain yang sedang login.
Ketik perintah :
[topiq@Linux_server topiq]$write yayat tty2

Catatan:
Jika user hanya login pada satu terminal (tidak ada nama login yang sama pada terminal lain) cukup tuliskan perintah write seperti berikut:
[topiq@Linux_server topiq]$write yayat
Lalu tekan Enter, setelah muncul tampilan berikut dan posisi kursor berada di bawah Shell Prompt, ketikkan Pesan Anda.

Langkah 1:  [topiq@Linux_server topiq]$write yayat
 _
Langkah 2:  [topiq@Linux_server topiq]$write yayat
 Hallo Yayat, Apa Kabar ?       (Tekan “Enter” untuk Baris baru)
 _
Langkah 3:  Pesan tidak akan dikirimkan sebelum Anda menekan Tombol “Ctrl + D” untuk mengakhiri dan mengirim pesan.

Tutorial-12: Perintah cd
Perintah cd (current directory)  digunakan untuk berpindah-pindah direktori. Peritah cd selalu diiukuti dengan argumen nama direktory atau simbol yang melabangkan suatu direktory tertentu. Simbol tersebut secara default telah dikenal oleh Linux.

Tabel-2: Daftar Simbol Perintah cd
Simbol
Keterangan
..
direktori yang berada satu level di atas direktori dimana Anda berada.
Contoh:
[topiq@Linux_server topiq]$cd ..
.
Direktori dimana Anda berada (current directory).
~
atau
echo$Home
Home Directory user yang sedang login
/
Root directory (direktori yang paling atas/tertinggi)

Ketik perintah:
[topiq@Linux_server topiq]$cd ..
Hasil :
[topiq@Linux_server /home]$pwd
/home

Tutorial-13: Perintah echo
Perintah echo digunakan untuk menampilkan teks ke layar.
Format:

[Shell Prompt]$ echo argumen


Nilai argumen dapat berupa
§  Teks :
Ketik perintah:
[topiq@Linux_server topiq]$echo test

Hasil :
[topiq@Linux_server topiq]$echo test
test
§  Variabel :
Ketik perintah:
A=12
[topiq@Linux_server topiq]$echo $A
Hasil :
[topiq@Linux_server topiq]$echo $A
12

Catatan:
Aturan penulisan variabel akan dibahas kembali pada bagian “Shell Scripting

Tutorial-14: Perintah man
Perintah man (manual) hampir mirip dengan help. Perintah man lebih sering digunakan untuk manual perintah Linux secara on-line.
Beberapa tipe penggunaan man antara lain :
a.     Perintah manual dari nama perintah yang sudah pasti ada :
            [topiq@Linux_server /home]$ man copy
b.    Perintah manual yang digunakan untuk mencari manual yang mengandung kunci kata tertentu :
      [topiq@Linux_server /home]$man –k telnet
c.     Perintah manual yang menampilkan manual perintah berdasarkan Bab atau section dari manual :
                                    [topiq@Linux_server /home]$man 8 swapon

        Tabel-3 : Daftar Manual Perintah berdasarkan Bab & Section
Bab
Isi

Bab
Isi
1
User commands

6
Games
2
Systems calls

7
Miscellaneous
3
Library calls

8
System commands
4
Devices

9
Kernel internals
5
File formats

0
Tcl/Tk commands

Ketik perintah:
[topiq@Linux_server topiq]$man cp
Hasil :
[topiq@Linux_server /home]$man cp

Untuk keluar langsung dari perintah manual, tanpa harus melihat manual sampai akhir baris, Tekan tombol “q









Latihan-2 :

1.     Tampilkan (list) semua file yang terdapat di dalam direktori /bin, Home Directory Anda, dan /etc secara bersamaan. Apa yang terjadi ?
2.     Pindah ke direktori “/home”, periksa apakah Anda telah berada di direktori “/home”. Jika Anda sudah berada di direktoi “/home” masuk kembali ke Home directory Anda dengan menggunakan simbol pada Tabel-2.
3.     Ulangi latihan No.2, namun gunakan nama Home directory Anda dan diawali dengan simbol “..
Petunjuk:
Misal Anda login sebagai usertopiq”, masuk ke direktori topiq dari posisi Anda (direktori /home).
4.     Lengkapi informasi personal Anda melalui perintah “chfn
5.     Apakah fungsi option –C  pada perintah ls ?
6.     Kirimkan Pesan “Saya sudah belajar perintah dasar Linux” kepada peserta lain yang sedang login.





Manipulasi Berkas

Perintah dasar untuk melakukan manipulasi berkas antara lain:

Tutorial-15: Perintah cp
Perintah cp (copy) digunakan untuk menyalin suatu file ke file lain atau beberapa file di salin ke satu folder tertentu
Format:
[Shell Prompt]$cp [ option ] [ file_Asal ] [ file_Tujuan ]
[Shell Prompt]$cp [ option ] [ file1 ] [ file2 ] [ directory ]
     
Ketik perintah:
Catatan:
Terdapat tiga cara penulisan nama file:
§  Full Path Name : penulisan nama file lengkap mulai dari direktory utama (/). Misal:
[topiq@Linux_server topiq]$cp /etc/passwd f1

file asal: passwd berada di direktori /etc.
file tujuan: f1 diletakkan di direktori topiq

§  Semi-Full Path Name : penulisan nama file mulai dari current directory yang dilambangkan dengan simbol “..”.
Misal:
[topiq@Linux_server topiq]$cp ../folder1/f1  f2

file asal: f1 berada di direktori topiq /folder1.
file tujuan: f2 diletakkan di direktori topiq

§  Tanpa Full Path Name :penulisan nama file hanya nama file tanpa direktory asal.
Misal:
[topiq@Linux_server topiq]$cp f1  f2

file asal: f1 berada di direktori topiq
file tujuan: f2 diletakkan di direktori topiq

Lihat Hasil :
[topiq@Linux_server topiq]$ls -la

Tutorial-16: Perintah mv
Perintah mv (move) digunakan untuk merubah nama file atau memindahkan file ke direktory lain.
Format:
Rubah Nama:
[Shell Prompt]$mv [ Nama_Lama ] [ Nama_Baru ]
Pindah File:
[Shell Prompt]$mv [ /dir_Asal/Nama_file ] [ /dir_tujuan ]


Ketik perintah:
[topiq@Linux_server topiq]$mv f1  f2
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la

Tutorial-17: Perintah mkdir
Perintah mkdir (make dir) digunakan untuk membuat direktory atau sub-direktory.
Format:
Direktori:
[Shell Prompt]$mkdir [ dir1 ] [ dir2 ] [ dirN ]
Sub-Directory:
[Shell Prompt]$mkdir [dir1] [dir1/sub-1] [dir1/sub-1/sub-sub1]
     
Catatan:
Untuk membuat sub-directory, terlebih dahulu harus dibuat directory atasnya.

Ketik perintah:
[topiq@Linux_server topiq]$mkdir folder1
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la

Tutorial-18: Perintah rm
Perintah rm (remove) digunakan untuk menghapus file atau folder.
Format:

[Shell Prompt]$rm [option] [file1 atau dir1] [file2 atau dir2]

     
Catatan:
Untuk mengeluarkan konfirmasi sebelum benar-benar dihapus, gunakan option –i  (interactive).

Ketik perintah:
[topiq@Linux_server topiq]$rm –i f1
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la

Tutorial-19: Perintah rmdir
Perintah rmdir (remove dir) digunakan untuk menghapus folder. Perintah rmdir baru dapat digunakan jika folder yang akan dihapus kosong.
Format:

[Shell Prompt]$rmdir [option] [dir1] [dir2]

     
Menghapus suatu direktori yang memiliki sub-direktori, terlebih dahulu harus dihapus sub-direktori-nya, baru kemudian direktori utamanya.
Misal:
[topiq@Linux_server topiq]$rmdir folder1/sub-folder2 folder1

Ketik perintah:
[topiq@Linux_server topiq]$rmdir folder1
Lihat Hasil :
[topiq@Linux_server topiq]$ls –la


info:
Jika Anda ingin menghapus suatu direktori yang berisikan banyak file, tanpa harus menghapus terlebih dahulu isi direktori-nya, Anda dapa menggunakan perintah rm diikuti dengan option –R (Recursive) dan –f (force)
Misal:
[topiq@Linux_server topiq]$rm -Rf folder1

Tutorial-20: Perintah grep
Perintah grep digunakan untuk mencari kata atau suku kata tertentu dalam satu atau beberapa file
Format:

 [Shell Prompt]$grep kata_dicari Nama_File

     
Catatan:
Untuk membuat sub-directory, terlebih dahulu harus dibuat directory atasnya.

Ketik perintah:
[topiq@Linux_server topiq]$grep root /etc/passwd
Hasil :
[topiq@Linux_server topiq]$grep root /etc/passwd
root:x:0:3:Superuser:/root:/bin/csh

Ketik perintah:
[topiq@Linux_server topiq]$grep bash /etc/passwd
Hasil :
[topiq@Linux_server topiq]$grep “:0:” /etc/passwd
topiq:x:500:3:Muhamad Taufiq:topiq:/bin/bash
yayat:x:501:3:Yayat Supriyatna:/home/yayat:/bin/bash

Tutorial-21: Perintah cat dan more
Perintah cat dan more digunakan untuk melihat isi suatu file . Perintah cat akan menampilkan isi file dari baris pertama hingga baris terakhir. Perintah more akan menampilkan isi file per layar.
Format:

 [Shell Prompt]$cat nama_file1 nama_file2
 [Shell Prompt]$more nama_file1 nama_file2

     
Ketik perintah:
[topiq@Linux_server topiq]$cat /etc/passwd
Hasil :
[topiq@Linux_server topiq]$ cat /etc/passwd


Ketik perintah:
[topiq@Linux_server topiq]$more /etc/passwd
Hasil :
[topiq@Linux_server topiq]$more /etc/passwd

Tutorial-22: Perintah touch
Perintah touch digunakan untuk membuat suatu file baru melalui command line di shell prompt.

Format:

 [Shell Prompt]$touch nama_file

     
Ketik perintah:
[topiq@Linux_server topiq]$touch f3
Lihat Hasil :
[topiq@Linux_server topiq]$ls -la

  


Latihan-3 :

1.     Buat direktori dengan struktur seperti berikut dengan hanya menggunakan satu perintah “mkdir” saja.
Periksa Hasil perintah tersebut.
2.     Hapus direktori folder2 dengan perintah “rmdir”. Apa yang terjadi?
Kemudian gunakan perintah “rm –Rf nama_folder”.
3.     Periksa apakah Nama Anda sudah terdaftar di file /etc/passwd. File /etc/Passwd merupakan Database nama user yang ada di server. File ini akan dibahas pada Modul: Linux System Administrator.
4.     Salinlah file /etc/passwd dan /etc/grp ke dalam direktori folder1
.



Text Editor dengan Vi (Vi Editor)

Ada beberapa Text Editor yang dapat digunakan di Sistem Operasi Linux :
§  Vi  Editor
§  Pico
§  Emacs
§  Midnight Commander (MC) Editor

Pada modul ini lebih ditekankan pada penggunan Vi Editor.

Alasannya :
Vi Editor merupakan Text Editor yang umum digunakan pada setiap sistem operasi Linux maupun Unix.

Mekanisme Kerja dari Vi adalah:


Perintah ex  merupakan perintah pada Vi Editor, yang diawalin dengan Tanda : “.

Berikut ini Tombol yang digunakan untuk melakukan editing pada Vi (command Mode à Editing Mode) :

            Tabel-4: Perintah Command Mode pada Vi Editor
Instruksi  Huruf yang digunakan

Kegunaannya

i

Memulai pengetikan pada posisi cursor

I

Memulai pengetikan pada awal baris kalimat


Tabel-4: Perintah Command Mode pada Vi Editor
Instruksi  Huruf yang digunakan

Kegunaannya

a

Memulai pengetikan setelah posisi cursor

A

Memulai pengetikan pada akhir baris kalimat

o

Memulai pengetikan pada baris baru di bawah posisi cursor

O

Memulai pengetikan pada baris baru di atas posisi cursor

x

Menghapus satu karakter pada posisi kursor

X

Menghapus satu karakter sebelum posisi kursor

dw

Menghapus satu kata, mulai dari posisi cursor hingga spasi pertama yang ditemui.

dd

Menghapus satu baris kalimat pada posisi kursor

D

Menghapus kalimat mulai dari posisi cursor hingga akhir baris kalimat.

u

Membatalkan instruksi terakhir yang dilakukan

.

Mengulang perintah terakhir

r

Mengganti hanya satu karakter pada posisi kursor

R

Menganti beberapa karakter mulai dari posisi kursor sampai ditekan tombol “Esc”

nyy

Mengcopy n baris kalimat pada posisi cursor, dengan n jumlah baris.

Y

Mengcopy satu baris kalimat pada posisi cursor

p

Menampilkan hasil copy dari instruksi “yy” atau “dd” diatas pada posisi cursor

Tabel-5: Perintah Ex ( : )
Instruksi  Huruf yang digunakan

Kegunaannya

:w

Menyimpan File

:w  nama_file

Menyimpan file dengan nama lain

:q

Keluar

:q!

Keluar tanpa disimpan (force quit)

:x

Disimpan dan keluar

:e nama_file

Membuat file baru


Tutorial-23: Membuat file Baru dengan vi
Untuk membuat file baru atau melakukan editing file dalam Vi Editor gunakan perintah dengan format berikut:

Format:

Membuat File Baru:
 [Shell Prompt]$vi nama_file_baru
Editing File:
 [Shell Prompt]$vi nama_file

     
Catatan:
Nama file dapat terdiri atas 255 karakter (alfanumerik, garis bawah, titik, koma dan karakter lainnya) kecuali karakter dibawah ini tidak dapat dijadikan nama file :
& : | ? ‘ “ ` [ ] ( ) $ { } < > ^ # \ /

Ketik perintah:
[topiq@Linux_server topiq]$vi belajar-1
Hasil :
Buatlah Kata “Tulisan Pertama Saya di Program Vi

Langkah 1: 
Pada Tampilan di atas Tekan Tombol “i” kecil pada Keyboard untuk masuk ke Editing Mode.
Langkah 2:
Kemudian Ketikkan kata-kata tersebut.
Langkah 3:
Setelah selesai Pengetikkan, Tekan Tombol “ESC” untuk kembali ke Command Mode.
Langkah 4a:
Untuk Menyimpan file, ketikkan :
:w

Langkah 4b:
Untuk Menyimpan file dan langsung keluar Vi Editor, ketikkan :
:wq
atau
Tekan Tombol “ZZ” dengan huruf besar


Tutorial-24: Manipulasi/Editing File dengan Vi Editor
Untuk melakukan editing file dalam Vi Editor, dapat digunakan perintah-perintah command mode (Tabel-4) atau perintah ex.

Buka kembali file “belajar-1” dengan Vi Editor.

Menyalin Baris:
Untuk menyalin satu baris kalimat pada file dapat dilakukan dengan menekan tombol “yy”.
Langkahnya:
§  Pada Command Mode, Letakkan Kursor di baris yang akan disalin.
§  Tekan Tombol “yy
§  Letakkan posisi kursor pada baris dimana hasil salinan akan ditampilkan
§  Tekan Tombol “p” untuk menampilkan hasil salinan.


Untuk menyalin lebih dari satu baris kalimat pada file dapat dilakukan dengan menekan tombol “nyy”. Dengan n merupakan jumlah baris yang akan disalin.
Langkahnya:
§  Pada Command Mode, Letakkan Kursor di posisi baris pertama dari sekelompok baris yang akan disalin.
§  Misal Anda akan menyalin dua baris kalimat dari posisi kursor ke bawah, Tekan Tombol “2yy
§  Letakkan posisi kursor pada baris dimana hasil salinan akan ditampilkan
§  Tekan Tombol “p” untuk menampilkan hasil salinan.

Catatan:
Perintah “p” dapat dijalankan berulang-ulang, dengan catatan bahwa antara perintah “yy” dan “p” tidak diselingi dengan perintah lain.


Menghapus atau memotong Baris dan kata:
Untuk menghapus/memotong satu baris kalimat pada file dapat dilakukan dengan menekan tombol “dd”.
Langkahnya:
§  Pada Command Mode, Letakkan Kursor di baris yang akan dihapus.
§  Tekan Tombol “dd

Sedangkan untuk menghapus/memotong satu kata pada kalimat dapat dilakukan dengan perintah “dw”.
Langkahnya:
§  Pada Command Mode, Letakkan Kursor di posisi karakter dimana kata akan dihapus. Perintah “dw” akan menghapus dari posisi kursor hingga spasi pertama yang dijumpai.
§  Tekan Tombol “dw

Catatan:
Setelah dihapus/dipotong kata atau kalimat dapat ditampilkan kembali dengan perintah “p


Tutorial-25: Mencari suatu kata
Untuk mencari suatu kata dalam suatu file dengan Vi Editor  dapat digunakan perintah “/” atau “?”



Tutorial-26: Menampilkan nomor baris
Unutk mengetahui no baris dari suatu kalimat dalam file, dapat digunakan perintah ex “:set number”, untuk menghilangkannya kembali ketik perintah “:set nonumber”.

Catatan:
Untuk melihat argumen lain dari perintah ex “:set”, gunakan perintah ex “:set all


Latihan-4 :
1.     Buatlah Kalimat berikut :
Selamat Datang di Pasundan Training
Pasundan Training merupakan Cisco Systems Networking Academy.
Pelatihan yang ditawarkan oleh Pasundan Training antara lain adalah:
Basic Training, Advanced Training dan High-End Training.

Simpanlah file dengan nama “belajar-2”

2.     Ubahlah Kata “Datang” dengan Kata “Belajar”
3.     Hapus Kata “Basic Training,”.
4.     Cari Kata “ High-End”

Struktur File dan Keamanan Sistem File


Struktur File


Direktori standard pada Linux setelah proses instalasi, sistem akan menciptakan suatu struktur file yang baku dengan Struktur inti dari file dan direktori adalah
§  /etc
Berisi file-file administratif, seperti file-file konfigurasi (*.conf), file-file eksekusi atau script yang berguna untuk administrasi sistem.

§  /dev
Berisi file-file khusus yang merepresentasikan Hardware di sistem Linux, seperti floppy(fd0), CD-rom(cdrom), mouse(mouse), serial port(ttyS0 & ttyS1)  dan peralatan lainnya.

Info:
Linux dan Unix merupakan sistem operasi yang dibangun dalam bentuk file-file, hingga peralatan pun direpresentasikan dalam bentuk file.

§  /bin
Berisi program standard Linux. Perintah-perintah dasar Linux yang digunakan semua user diletakkan ke dalam direktori ini.
§  /sbin
Berisi program standard bagi administrator Linux. Perintah-perintah dasar Linux yang digunakan hanya oleh administrator diletakkan pada direktori ini.

§  /usr
Berisi program-program aplikasi Linux. Semua program aplikasi pada Linux, seperti: X-Windows, Software-software, dan program aplikasi lainnya, diletakkan pada direktori ini. (Sama seperti direktori Program Files pada sistem Microsoft Windows)

§  /home
Berisi Home Direktory semua user yang ada di sistem operasi Linux, kecuali user administrator (root). Home Directory root  diletakkan pada direktori /root.

§  /tmp
Berisi file-file sementara, dimana pada saat proses boot, file-file pada direktori ini akan dihapus.

§  /boot
Berisi file-file yang sangat penting untuk proses boot, kernel vmlinuz  (file utama dalam proses booting Linux) disimpan di dalam direktori ini



§  /var
Direktori Variabel, artinya tempat penyimpanan LOG (catatan hasil output program). Semua proses dalam sistem operasi Linux akan dicatat dala file-file LOG di dalam direktori ini. Jika direktori ini penuh, sistem akam berhenti berjalan (hang) karena sistem tidak dapat melakukan proses pencatatan lagi. Oleh karena itu direktori ini penting sekali untuk dimonitor.

§  /proc
Berisi informasi tentang kernel Linux , proses dan virtual sistem file.

§  /mnt
direktori untuk melakukan mounting file.  Mounting dilakukan untuk mengaktifkan suatu peralatan penyimpanan (block device) agar dapat dibaca oleh Sistem seperti floppy, cdrom, ataupun harddisk.

 

Tipe File


Tipe-tipe file yang ada di dalam sistem operasi Linux antara lain:
§  File Biasa (-)
§  Direktori(d)
§  Block device(b)
File yang merepresentasikan peralatan Hardware yang menggunakan transmisi data per block, seperti Hardisk, floppy, CD-Rom dan Lain-lain.
§  Character devce( c)
File yang merepresentasikan peralatan Hardware yang menggunakan transmisi data per character, seperti terminal, modem dan lain-lain.
§  Named pipe (p)
File yang digunakan untuk komunikasi proses.
§  Symbolic Link(l)
File yang menjadi link atau shortcuts bagi file lain.
§  Socket(s)
File yang digunakan untuk komunikasi data.

Ijin Akses


Sistem operasi Linux merupakan sistemoperasi multiuser, dimana masing-masing user mempunyai password tersendiri untuk dapat masuk ke sistem. Oleh karena itu, setiap user mempunyai ijin akses tersendiri dalam mengakses file dan folder di dalam sistem operasi Linux yang disebut dengan ijin akses.

Ijin Akses dibagi dalam 3 bagian yaitu antara lain adalah:
§  Pemilik (owner)
§  Kelompok (Group)
§  Lainnya (Others)

Setiap peran dapat melakukan 3 bentuk operasi:
Untuk File:
R  
(Read) 
=
Ijin untuk membaca
W
(Write) 
=
Ijin untuk menulis
X  
(Execute)
=
Ijin untuk menjalankan Program

Untuk Direktori:
R  
(Read) 
=
Ijin untuk membaca daftar file dalam direktori
W
(Write) 
=
Ijin untuk mengubah/membuat file di direktori
X  
(Execute)
=
Ijin untuk masuk ke direktori (cd)


Tutorial-27: Mengubah ijin akses dengan perintah chmod
Pemilik file dan administrator(root) dapat mengubah ijin akses sebagai berikut:

Format:

[shell prompt] $chmod [ugoa] [= + -] [rwx] File(s)
[shell prompt] $chmod [ugoa] [= + -] [rwx] Dir(s)


Keterangan :
u = user (akses untuk pemilik file)
g = group (akses untuk anggota group)
o = others (akses untuk user di luar group dan pemilik)
a = all (user, group, dan others)

Ketik perintah:
[topiq@Linux_server topiq]$ls -l
Hasil :

ijin akses file “belajar-2” diubah menjadi “-rwxrwxrwx”:
Ketik perintah:
[topiq@Linux_server topiq]$chmod a=rwx belajar-2
Lihat Hasil :
[topiq@Linux_server topiq]$ls –l belajar-2

ijin akses file “belajar-2” diubah kembali menjadi “-rwxr-xr-x”:
Ketik perintah:
[topiq@Linux_server topiq]$chmod g=rx,o=rx belajar-2
Lihat Hasil :
[topiq@Linux_server topiq]$ls –l belajar-2


Tutorial-28: chmod dengan Format Oktal
Selain menggunakan karakter, perintah chmod juga dapat menggunakan format oktal:

Format:

[shell prompt] $chmod [XYZ] File(s)
[shell prompt] $chmod [XYZ] Dir(s)


Keterangan :
X = karakter numerik yang mewakili ijin akses user
Y = karakter numerik yang mewakili ijin akses group
Z = karakter numerik yang mewakili ijin akses Other

Untuk ijin akses bagian ijin akses (misal: user = rwx)
Ijin Akses
r
w
x

Binary
1
1
1
111
Decimal
4
2
1
7


ijin akses file “belajar-2” diubah menjadi “-rwxrwxrwx”:
Ketik perintah:
[topiq@Linux_server topiq]$chmod 777 belajar-2
Lihat Hasil :
[topiq@Linux_server topiq]$ls –l belajar-2

ijin akses file “belajar-2” diubah kembali menjadi “-rwxr-xr-x”:
Ketik perintah:
[topiq@Linux_server topiq]$chmod 755 belajar-2
Lihat Hasil :
[topiq@Linux_server topiq]$ls –l belajar-2

Tutorial-29: Mengubah kepemilikan dengan chown
Suatu file dapat diubah kepemilikannya oleh pemilik file itu sendiri ataupun administrator(root). File yang diberikan kepada user lain tidak dapat diakses user lain tersebut jika ijin aksesnya tidak diberikan ke user tersebut.


Format:

[shell prompt] $chown pemilik_baru File(s)
[shell prompt] $chown pemilik_baru Dir(s)


Kepemilikan file “belajar-2” diberikan kepada user lain (misal: “yayat”)
Ketik perintah:
[topiq@Linux_server topiq]$chown yayat belajar-2
Lihat Hasil :
[topiq@Linux_server topiq]$ls –l belajar-2

Karena file “belajar-2” masih di Home directory Anda, user “yayat” tidak dapat mengakses file tersebut. Salinlah file tersebut ke direktori yang dapat diakses oleh semua user. Misalnya : direktori /(root)
Tutorial-30: Mengubah akses group dengan chgrp
Suatu file dapat diubah akses group oleh pemilik file itu sendiri ataupun administrator (root).
Format:

[shell prompt] $chgrp group_baru File(s)
[shell prompt] $chgrp group_baru Dir(s)


Akses group “belajar-2” diberikan kepada group lain (misal: “root”)
Ketik perintah:
[topiq@Linux_server topiq]$chgrp root belajar-2
Lihat Hasil :
[topiq@Linux_server topiq]$ls –l belajar-2

Karena file “belajar-2” masih di Home directory Anda, group “yayat” tidak dapat mengakses file tersebut. Salinlah file tersebut ke direktori yang dapat diakses oleh semua group. Misalnya : direktori /(root)

 

User Mask (umask)


Pada saat Anda membuat suatu file atau folder, secara default ijin akses yang diberikan tergantung dari nilai umask. Umask secara default oleh sistem Linux adalah:
Ketik perintah:
[topiq@Linux_server topiq]$umask
Hasil:
[topiq@Linux_server topiq]$umask

Artinya:
Tipe file menjelaskan konfigurasi format ijin akses, jika nilainya 0 maka format ijin akses dapat digunakan dalam format octal dan huruf.

Ijin akses default setiap file dan folder yang baru berdasarkan nilai umask tersebut adalah:
Untuk File:
Ijin Akses maksimum File
666


Nilai umask
002


Ijin Akses Default
644
à
rw-r--r--

Untuk Direktori:
Ijin Akses maksimum File
777


Nilai umask
002


Ijin Akses Default
755
à
rwxr-xr-x


Tutorial-31: Mengubah umask
Jika umask diubah dari shell prompt jika user logout, nilai umask akan kembali lagi ke default awal.



Format:
Melihat nilai umask:
[shell prompt] $umask
Mengubah Konfigurasi umask:
[shell prompt] $umask kode_umask

Ketik perintah:
[topiq@Linux_server topiq]$umask 027
Coba Hasil :
[topiq@Linux_server topiq]$touch coba_umask
Liha Hasil :
[topiq@Linux_server topiq]$ls –l coba_umask


Link

Link adalah sebuah teknik untuk memberikan lebih dari satu nama file dengan data yang sama.
Tujuan adalah :
meletakkan shortcuts suatu file yang berada di direktori yang memiliki akses terbatas ke direktori yang  dapat diakses oleh semua orang.

Tipe file Link :
§  Link Biasa
Link biasa merupakan link suatu file ke file lain dengan nama yang berbeda. Tetapi secara fisik di Hardisk, kedua file tersebut disimpan di dalam penyimpanan block yang sama.
§  Link Symbolic
Link Symbolic merupakan link suatu file ke file lain dengan nama yang berbeda. File link tujuan merupakan shortcuts dari file asal. (File Asal dan File tujuan merupakan dua file yang berbeda). Link symbolic terjadi jika lokasi file tujuan berbeda partisi secara fisik dengan lokasi file Asal.

Format:
Link Biasa:
[shell prompt] $ln file_asal file_tujuan
Link Symbolic:
[shell prompt] $ln –s /direktori/file_asal /direktori/file_tujuan

Catatan:
Untuk file Link Symbolic penulisan nama file harus dituliskan secara FULL PATH, lengkap dengan nama direktori.
Misal : Penulisan Full Path untuk file “test-1” pada struktur di bawah adalah:
            FULL PATH: /home/topiq/test-1

Tutorial-32: Membuat Link Biasa
Buat file asal:
[topiq@Linux_server topiq]$vi fasal-1
Isi file:
coba link

Ketik perintah:
[topiq@Linux_server topiq]$ln fasal-1 ftujuan-1
Liha Hasil :
[topiq@Linux_server topiq]$ls – i

Artinya:
Option – i pada perintaha ls artinya menampilkan isi file pada direktori dimana user berada berikut informasi inode. Inode adalah Alamat block penyimpanan file di Hardisk.

Perhatikan nomor inode fasal-1 dan ftujuan-1!
Jika nomor inode sama berarti secara fisik file disimpan ditempat yang sama atau file mempunyai dua nama. Jika salah satu file dihapus, fisik file diblock tidak akan terhapus

Tutorial-33: Membuat Link Symbolic
Buat file asal:
[topiq@Linux_server topiq]$vi fasal-2

Isi file:
coba link symbolic

Ketik perintah:
[topiq@Linux_server topiq]$ln –s /home/topiq/fasal-2 /tmp/ftujuan-2

Lihat Hasil :
[topiq@Linux_server topiq]$ls – i /home/topiq/fasal-2
[topiq@Linux_server topiq]$ls – i /tmp/ftujuan-2


Artinya:
Perhatikan nomor inode fasal-2 dan ftujuan-2!
Jika nomor inode berbeda berarti secara fisik file disimpan ditempat yang berbeda atau file ftujuan-2 merupakan shortcuts bagi fasal-2. Jika file “fasal-2” dihapus, maka link akan terputus (break).


File-file Shell

Shell adalah “Command Executive”, artinya program yang menunggu instruksi dari pemakai, memeriksa sintaks dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut.
Tipe-tipe Shell yang terdapat di dalam sistem Linux antara lain adalah:
§  /bin/sh : Bourne Shell, shell yang dikembangkan oleh UNIX  versi AT&T (System-V).
§  /bin/csh : C-Shell, shell yang dikembangkan oleh UNIX versi BSD( Berkeley Software Distribution).
§  /bin/bash : Bourne Again-Shell, shell yang dikembangkan oleh Linux.

Perbedaan antara ketiga shell tersebut adalah Environment . Masing-masing shell mempunyai gaya tersendiri dalam tools pembantu.


Contoh :
Pada shell Bash, terdapat tools yang digunakan untuk memanggil perintah-perintah sebelumnya, yaitu dengan cara menekan tanda panah ke atas.
Secara default, user akan masuk shell bash. Untuk berganti-ganti Shell dapat dijalankan dengan cara mengetikan nama shell-nya.
[topiq@Linux_server topiq]$csh

Untuk kembali lagi ke shell bash:
[topiq@Linux_server ~topiq]$exit

File-file utama user yang terletak pada Home Directory user, akan dijalankan pada saat user memulai sesi login dan mengakhiri sesi login di Shell bash antara lain :
§  .bash_login : file utama yang akan dieksekusi oleh sistem pada saat user login. Jika file ini tidak ditemukan sistem akan mencari file .bash_profile.
§  .bash_profile : file utama yang memiliki fungsi sama seperti .bash_login.

Info:
Umumnya pada Sistem Linux hanya dicantumkan salah satu dari file tersebut tergantung dari tipe distro-nya.

§  .bashrc : file utama yang akan dieksekusi oleh sistem pada saat user berpindah shell. Semua konfigurasi untuk user pada saat akan masuk shell dijalankan terlebih dahulu. Jika Anda ingin menjalankan suatu aplikasi pada saat Login, masukkan nama program pada file ini.
§  .bash_logout : file utama yang memiliki yang akan dijalankan pada saat user Logout.
§  .bash_history : file utama yang menyimpan perintah-perintah yang pernah dijalankan oleh user mulai dari saat pertama kali user menggunakan Accountnya di server. Maksimum perintah yang disimpan dalam file ini tergantunfg dari konfigurasi HISTSIZE pada file .bash_rc. Untuk mengetahui ukuran history Anda, gunakan perintah:
[topiq@Linux_server topiq]$echo $HISTSIZE

Untuk melihat daftar history Anda, gunakan perintah:
[topiq@Linux_server topiq]$history


Alur file yang dieksekusi pada Sesi Login

Apa yang terjadi Jika semua file-file shell pada Home Directory di atas TERHAPUS?

Sistem akan menjalankan konfigurasi umum bagi semua user yang terdapat pada file /etc/profile dan /etc/bashrc. Kedua file ini merupakan konfigurasi file-file shell yang umum digunakan untuk semua user dan akan dieksekusi paling awal pada saay user memulai sesi Loginnya.

Alur eksekusi file pada sesi login adalah:

Jika terdapat konfigurasi yang sama dengan nilai yang berbeda, nilai yang akan digunakan adalah nilai konfigurasi yang dieksekusi paling akhir.
Misal:
Pada file “/etc/bashrc” terdapat script yang menyatakan nilai umask untuk ses login user adalah 002

Tetapi pada file “.bashrc” pada Home Directory nilai umask adalah 027. Maka Nialai yang akan diambil adalah nilai terakhir (027).


Proses dan Jobs


Proses I/O


Perintah-perintah yang dijalankan di Linux melalui Shell prompt disebut sebagai suatu eksekusi program yang disebut dengan Proses. Setiap proses di suatu sistem operasi, membutuhkan input untuk menghasilkan Output.
Status dari proses selalu dtandai dengan identitas khusus yang disebut dengan “Process ID” (PID). Sistem operasi Linux berasal dari banyak sekali proses, dimana setiap proses terkait satu dengan yang lainnya. Proses di Linux diawali dengan PID = 1 (init atau initialization Process). Dari proses PID=1 akan dihasilkan anak proses yang lain, yaitu PID=2, PID=3 dan lain-lain. PID tersebut akan menghasilkan anak proses lagi dan seterusnya. PID=1 sebagai induk proses dari PID=2 dan PID yang lain akan disebut sebagai PPID (Parent PID)
Dalam sistem Operasi Linux, ada beberapa tipe input dan Output:

Kode 0, 1, dan 2 merupakan file descriptor  yang merepresentasikan :
0 =
Keyboard, merupakan standard input sistem selain file.
1 =
Layar, merupakan standard output dari proses yang bernilai exit benar selain file
2 =
Error merupakan output dari hasi proses yang status exitnya adalah salah, selain file

Tutorial-34: Proses dengan input dari sistem
Ada beberapa perintah yang membutuhkan input hanya dari sistem seperi : perintah lw, who, finger, ps dan lain-lain. Proses ini tidak dapat diberikan input dari keyboard ataupun file.
     
Ketik perintah:
[topiq@Linux_server topiq]$ps
Hasil :

Tutorial-35: Proses dengan input dari keyboard dan file
Umumnya perintah-perintah di Linux memerlukan input dari keyboard dan file,seperti perintah cp, mv, rm dan lain-lain. Salah satu ciri khas dari perintah dengan input dari keyboard dan file, pada saat diketikkan perintah tanpa argumen sama sekali, akan muncul pesan error.
Contoh:

Proses dengan input dari keyboard:
Proses dengan input dari file:

Tutorial-36: Proses dengan Output ke File (Redirection)
Selain output ke layar, output Standard (Layar) dan output Error dapat dibelokkan (redirection) ke suatu file.
Ketik perintah:
Lihat Hasil:
[topiq@Linux_server topiq]$cat file3

“/etc/passwd” merupakan input dari proses “cat” dan output-nya dimasukkan ke dalam file baru “f3”.

 Tabel-6: Simbol untuk proses pembelokan (redirection):
Simbol
Info Aksi
<0  atau  <
Memasukkan file input ke file output.
Contoh : $ cat file_output < file_input
1>   atau  >
Masukkan file input ke file output. Jika file sudah ada maka isi dari file output akan di ganti dengan isi dari file input.
Contoh: $ cat file_input > file_output
2>
Semua output error yang dihasilkan dari proses sebelumnya akan dimasukkan ke dalam file
Contoh: $ ls  /root 2> file_output
1>> atau >>
Masukkan file input ke file output. Jika file sudah ada maka isi dari file input akan ditambahkan di baris terakhir dari file output
2>>
Semua output error yang dihasilkan dari proses sebelumnya akan dimasukkan/ditambahkan ke dalam file


Jika Anda ingin membelokkan Output dan Error dalam satu command line. Dapat dilakukan dengan perintah berikut:
[topiq@Linux_server topiq]$ls /root > hasil.txt  2> error.txt

Untuk perintah yang lebih singkat :
[topiq@Linux_server topiq]$ls /root 2>hasil.txt >&2

Artinya:
Output Error dan Output Standard dimasukkan ke file “hasil.txt” .


Piping
Perintah piping digunakan untuk melakukan filtering perintah yang dijalankan.

Tutorial-37: Perintah Piping
Perintah piping bisa dilakukan, jika proses-2(perintah-2) input-nya bukan dari sistem. Untuk Proses-2 dan proses-3 input-nya harus dari keyboard atau file.
Ketik perintah :
[topiq@Linux_server topiq]$cat /etc/passwd|more

Untuk menampilkan hasil berikutnya :
§  Per Layar : Tekan “Spasi
§  Per Baris: Tekan “Enter

Manipulasi Proses di Linux

Beberapa tipe proses di Linux :
§  Foreground Process
Proses yang berjalan di Shell Prompt user yang sedang login.
§  Background Process
Proses yang tidak berjalan di shell prompt namun tetap berjalan di terminal user yang sedang login, tetapi proses akan berhenti jika user keluar atau logout.
§  Daemon Process
Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankan tugas sesuai dengan permintaan tersebut. Bila tidak ada request maka program akan berada dalam kondisi “stand-by”. Umumnya proses daemon di Linux berakhiran huruf “d”, misal xinetd, httpd, named dan lain-lain.



Tutorial-38: Melihat Status Proses
Untuk melihat proses, dapat digunakan perintah ps (process status). Kegunaan mengetahui status proses adalah user dapat mengetahui dan mengatur proses yang sedang dijalankan. Informasi status proses ini sangat berguna jika Anda menjadi seorang Administrator atau root nantinya.

Ketik perintah :
[topiq@Linux_server topiq]$ps



Hasilnya :

Untuk melihat status proses secara lengkap.
Ketik perintah :
[topiq@Linux_server topiq]$ps –Af|more

Hasilnya :
[topiq@Linux_server topiq]$ps –Af|more

Tanda “?” pada kolom TTY memiliki arti bahwa proses tidak berjalan di Shell Prompt.

Tutorial-39: Background Process
Background process bertujuan untuk menjalankan proses tidak di shell prompt, sehingga selam proses berlangsung, user dapat bekerja di shell prompt. Biasanya ini dilakukan untuk proses yang waktu prosesnya membutuhkan waktu yang cukup lama.

Ketik perintah :
[topiq@Linux_server topiq]$find –name passwd &

Hasilnya :
[topiq@Linux_server topiq]$ find –name passwd &
_

Tekan “Enter” untuk menampilkan Shell prompt kembali.
[topiq@Linux_server topiq]$

Catatan :
Perintah “find” akan dibahas secara lebih lengkap di Utilitas Lanjut

Tanda “&” mempunyai arti:
Proses dijalankan di-background. Jika proses menghasilkan output, output langsung ditampilkan di layar.
Contoh:
[topiq@Linux_server topiq]$
/etc/passwd

Jika dijalankan tanpa tanda “&” mempunyai arti:
Proses dijalankan di-foreground. Pada saat proses foreground, shell prompt tidak dapat digunakan hingga proses selesai.
Namun proses dapat :
§  di-interupsi dengan cara menekan Tombol “Ctr + C”.  Jika di-interupsi, proses tidak dapat dilanjutkan kembali.
§  di-stop dengan cara menekan Tombol “Ctrl +Z”. Jika di-stop proses dapat dilanjutkan kembali dengan menjalankan perintah jobs dan bg/fg (akan dibahas pada bagian Jobs).




JOBS

Jobs merupakan Eksekusi program/proses yang diberikan kepada kernel,  baik proses background maupun foreground.


Tutorial-40: Jobs
Untuk menjalankan perintah jobs, cukup ketikkan perintah “jobs” pada shell prompt.
Ketik perintah :
[topiq@Linux_server topiq]$jobs

Hasilnya :
[topiq@Linux_server topiq]$ jobs
[topiq@Linux_server topiq]$

Belum ada jobs yang dijalankan.

Buat suatu program sederhana yang akan dijalankan di background maupun foreground.

Info:
Program Linux atau biasa disebut dengan Shell Programming, umumnya dibuat dengan menggunakan perintah-perintah yang sudah disediakan di Sistem. (Pembahasan Lebih Lengkap di bagian Shell Scripting)

Langkah pembuatan Program:
1.     Buat file baru dengan nama prog-1:
[topiq@Linux_server topiq]$ vi prog-1
2.     Tuliskan Script berikut dalam file baru tersebut:
while [ true ]
do
sleep 10
echo “halo”
      done
3.     Ubahlah ijin akses dari file agar dapat dieksekusi.
[topiq@Linux_server topiq]$ chmod a+x prog-1


Jalankan Program :
[topiq@Linux_server topiq]$sh prog-1

Hasilnya :
[topiq@Linux_server topiq]$sh prog-1
_

Tekan “Ctrl + Z” untuk menghentikan proses diatas
Ketik perintah :

Jalankan Program di Foreground Process :
[topiq@Linux_server topiq]$fg %1

Hasilnya :

Tekan “Ctrl + Z” untuk menghentikan proses diatas

Jalankan Program di Background Process :
[topiq@Linux_server topiq]$bg %1
_   
Tekan “Enter
[topiq@Linux_server topiq]$

Ketik perintah :

Untuk menghentikan proses dibahas pada bagian Signal           

Signal

Suatu proses dapat  mengirim dan menerima sinyal dari dan ke proses lainnya. Proses mengirim sinyal melalui instruksi “kill”.

Format:

[shell prompt] $kill -[signal_number] PID


Tabel-7: Standard Signal Number pada Linux
No  Signal
Nama
Deskripsi
1
SIGHUP
Hangup, signal dikirim bila proses terputus, misalnya melalui putusnyan hubungan modem
2
SIGINT
Sinyal Interrupt, melalui Tombol “Ctrl + C
3
SIGQUIT
Sinyal Quit, melalui Tombol “Ctrl + \
9
SIGKILL
Sinyal Kill menghentikan Proses
15
SIGTERM
Terminasi Software

Untuk signal number yang lain dapat dilihat pada manual dengan perintah:
        [topiq@Linux_server topiq]$man P 7 signal

Tutorial-41: Tahap-tahap penghentian proses
Lihat PID dengan perintah :
[topiq@Linux_server topiq]$ps -a
Hasilnya :


Hentikan proses dengan perintah :
[topiq@Linux_server topiq]$kill –9 5874

Jika Anda menghentikan suatu proses dari induk prosesnya (Parent Process), maka anak prosesnya akan ikut terhenti juga.

Jika Anda menjalankan kill dengan perintah:
[topiq@Linux_server topiq]$kill 5874

Secara default, signal yang dikirimkan adalah  signal No.15

Tutorial-42: No Hangup
Pada saat menjalankan proses background, proses tersebut akan berhenti jika Anda logout dari sesi login Linux Anda. Untuk menjaga agar proses tetap berjalan walaupun Anda Logout, dapat dilakukan dengan perintah:

Format:

[shell prompt] $nohup nama_file


Pada saat Anda login kembali, proses tidak lagi berjalan di Terminal (tty) anda, tetapi berjalan di luar Shell Prompt.
Ketikkan perintah :
[topiq@Linux_server topiq]$nohup /home/topiq/prog-1 > nohup.out &
Hasilnya :
Lihat Hasilnya :

        Logout dari sistem kemudian masuk ke sesi login dan jalankan perintah:

Dapat Anda lihat bahwa proses masih berjalan meskipun tidak di terminal/shell prompt “pts/3”.
Latihan-4 :
5.     Buatlah file dengan menggunakan perintah “cat”. Nama file adalah “file_cat-1”.
Gunakan : Redirection dengan input dari keyboard.

6.     Tampilkan proses yang dimiliki atau dijalankan oleh user Anda, kemudian di dalam file “sesi_login.
Petunjuk: gunakan redirection dan piping dari perintah: ps, grep dan


 

 

Utilitas Lanjut


Selain perintah-perintah dasar yang sudah dibahas di bagian Perintah Dasar Linux, diperlukan utilitas lain yang mendukung penggunaan linux.

Tutorial-43: sort
Utilitas sort(sortir) digunakan untuk menyusun isi suatu file berdasarkan pola/kriteria tertentu.
Format:

[Shell Prompt]$ sort [option] file(s)


Beberapa option dari sort:
Option
Deskripsi
Fungsi
-r
Reverse
Menyusun isi file secara terbalik dari Z-A
-n
Numeric
Menyusun file berdasarkan nilai numerik (1, 10, 11)

Ketik perintah:
[topiq@Linux_server topiq]$sort –r /etc/passwd|more
Hasilnya:

Tutorial-44: Utilitas cut
Utilitas cut  digunakan untuk memotong/mengambil sekelompok kata atau karakter di dalam file.

Option
Deskripsi
Fungsi
-f
Fields
Memotong sejumlah fields didalam file
-c
Character
Memotong sejumlah karakter didalam file
-d
delimiter
Pembatas fields

Utilitas cut dengan option –f selalu diikuti dengan option –d, jika –d tidak ditentukan maka secara delimiter adalah “TAB”

Ketik Perintah:
[topiq@Linux_server topiq]$cut –d: -f5 /etc/passwd|more
Hasilnya:

Jika digunakan option –c (character), maka option –d tidak dicantumkan.

Ketik Perintah:
[topiq@Linux_server topiq]$date|cut –c1-3
Hasilnya:

Ketik Perintah:
[topiq@Linux_server topiq]$date
Hasilnya:

Tutorial-45: Head
Utilitas head digunakan untuk menampilkan isi file dari awal hingga akhir baris (jika tanpa option secara default adalah sepuluh baris dari baris awal).
Format:

[Shell Prompt]$head -[jumlah_baris] file(s)


Ketik perintah:
[topiq@Linux_server topiq]$head –3 /etc/passwd
Hasilnya:

Tutorial-46: tail
Utilitas tail digunakan untuk menampilkan isi file dari akhir hingga awal baris (jika tanpa option secara default adalah sepuluh baris dari baris akhir).
Format:

[Shell Prompt]$tail [+ -][jumlah_baris] file(s)


Option +n adalah  baris yang ditampilkan dari n hingga ke baris terakhir

Option -n adalah  baris yang ditampilkan dari (baris terakhir ) – n hingga baris terakhir.

Ketik perintah:
[topiq@Linux_server topiq]$tail +40 /etc/passwd



Hasilnya:


Ketik perintah:
[topiq@Linux_server topiq]$tail -4 /etc/passwd
Hasilnya:


Utilitas find
Utilitas find digunakan untuk mencari suatu file atau folder dengan kriteria tertentu.
Format:

[Shell Prompt]$find [daftar-Dir]  [ekspresi]



Option
Fungsi
-print
Menampilkan hasil pencarian ke output standard
-name Nama_file
Mencari suatu file berdasarkan namanya
-type Tipe_File
Mencari file berdasarkan tipe file
-links [+ -]n
Mencari file dengan jumlah links[lebih dari kurang dari] n
-user Nama_user
Mencari file yang dimiliki oleh user “Nama_user
-group Nama_group
Mencari file yang boleh diakses oleh group “Nama_group
-perm Mode_Oktal
Mencari file dengan ijin akses khusus
-newer nama_file
Mencari file yang dibuat atau diakses setelah Nama_file  dibuat atau diakses.

Tutorial-47: penggunaan find pada shell prompt
§  Option –print :
Perhatikan pesan Error yang ditampilkan pada layar.
Permissionn Denied

Untuk menghilangkan pesan Error tersebut, semua pesan Error dibelokkan ke suatu file device yang tidak terdefinisi (sejenis Recycle Bin) = /dev/null.Sehingga perintah diatas akan ditampilkan hasil dari output Standard saja (hasil pencarian).
Perintah menjadi:
[topiq@Linux_server topiq]$find / -print 2>/dev/null

§  Option –name: mencari file dengan nama prog-1
[topiq@Linux_server topiq]$find /home –name prog-1 2>/dev/null

§  Option –type: mencari file dengan type direktori
[topiq@Linux_server topiq]$find /home –type d 2>/dev/null

Tipe Lain adalah :
-
file biasa
d
direktori
p
pipe
b
block device
s
socket
c
character device

§  Option –links: mencari file yang memiliki links sama dengan 6
[topiq@Linux_server topiq]$find /home –links 6 2>/dev/null

§  Option –user: mencari file dan folder yang dimiliki oleh user “topiq”
[topiq@Linux_server topiq]$find /home –user topiq 2>/dev/null

§  Option –group: mencari file dan folder yang dapat diakses oleh group “topiq”
[topiq@Linux_server topiq]$find /home –user topiq 2>/dev/null

§  Option –perm: mencari file yang memiliki ijin akses –rwxr-xr-x
[topiq@Linux_server topiq]$find /home –perm 755 2>/dev/null

§  Option –newer: mencari file yang berusia lebih baru dari pada file “prog-1”
[topiq@Linux_server topiq]$find /home –newer prog-1 2>/dev/null


Tutorial-48: penggunaan find dengan ekspresi
§  Ekspresi –exec : digunakan untuk mengeksekusi file yang ditemukan

§  Ekspresi –ok : sama seperti –exec namun diawali dengan konfirmasi terlebih dahulu.
[topiq@Linux_server topiq]$find /home –name f1 –ok rm {} \;


Latihan-5 :
7.     Buatlah file dengan menggunakan perintah “cat”. Nama file adalah “file_cat-1”.
Gunakan : Redirection dengan input dari keyboard.

8.     Tampilkan proses yang dimiliki atau dijalankan oleh user Anda, kemudian di dalam file “sesi_login.
Petunjuk: gunakan redirection dan piping dari perintah: ps, grep dan



Shell Scripting



Shell scripting merupakan aplikasi pemrograman dengan Shell. Fungsi-fungsi dan Alur logika yang digunakan sama seperti yang digunakan di bahasa pemrograman yang lain.

Tujuan dari Shell Scripting pada sistem operasi Linux:
§  Mengumpulkan sejumlah perintah-perintah yang akan dieksekusi atau dijalankan secara sekaligus dalam suatu file.
§  Mempermudah pekerjaan User dalam bekerja di Sistem Operasi Linux

Struktur File Program dalam Shell Scripting:


Header

:

merupakan pendefinisian letak kompiler atau interpreter dari pemrograman Bash yang digunakan.

Comments

:

merupakan komentar yang ditambahkan oleh pembuat program. Comments selalu diawali dengan tanda “#”.

Body

:

isi dari program yang dijalankan sistem secara berurutan

 


Sistem Penamaan file

File Shell scripting dapat diberi nama apa saja. Tetapi setelah diberikan nama tertentu, ijin akses dari file tersebut harus ditambah dengan ijin akses Executable (x), agar dapat dijalankan user. Agar file shell langsung diberikan ijin akses Executable(x) secara otomatis pada saat penamaan file, nama file shell diberikan ekstensi “sh” dibelakang nama file

Misal: prog-2.sh
Eksekusi Program

Untuk menjalankan/mengeksekusi program pada shell prompt dapat dilakukan dalam beberapa cara, Program ditulis:


§  dalam bentuk FULL PATH
[topiq@Linux_server topiq]$ /home/topiq/prog-2.sh
§  dengan diawali perintah “sh
[topiq@Linux_server topiq]$ sh prog-2.sh
§  diawali simbol “./” (Tanda “.” Memiliki arti file berada didalam current direktori).
[topiq@Linux_server topiq]$ ./prog-2.sh
§  Langsung dengan Nama Program
[topiq@Linux_server topiq]$ prog-2.sh

Untuk  cara yang terakhir, dbutuhkan informasi PATH dari sistem. Suatu program dapat dijalankan langsung dengan nama program saja, jika direktori dimana program tersebut disimpan telah terdaftar didalam PATH sistem.

Tutorial-49: Konfigurasi PATH

Ketik printah:
[topiq@Linux_server topiq]$ echo $PATH

Hasilnya:
[topiq@Linux_server topiq]$ echo $PATH

Jika direktori dimana Anda menyimpan file-file Shell belum terdaftar dalam PATH, masukkan ke dalam PATH.
Ketik printah:
[topiq@Linux_server topiq]$ PATH=$PATH:/home/topiq:.

$PATH” memiliki arti bahwa Konfigurasi PATH yang lama tetap dimasukkan.
.” Memiliki arti bahwa current direktori

Lihat Hasil:
[topiq@Linux_server topiq]$ echo $PATH

Catatan:
Konfigurasi di atas hanya bersifat sementara, jika Anda Logout, konfigurasi PATH akan kembali ke konfigurasi Awal.
Untuk  membuat konfigurasi PATH menjadi Permanent, definisikan PATH didalam file .bashrc yang terdapat didalam Home Directory Anda.
           
Ketikkan script berikut pada file .bashrc:
PATH=$PATH:/home/topiq:.

Agar program Anda dapat diakses oleh banyak orang, Anda harus membuka ijin akses Home Directory Anda agar dapat dieksekusi (x).
Jika Anda tidak menginginkan user lain mengakses Home Directory Anda secara langsung atau , Anda dapat membuat Link symbolic dari file program tersebut ke suatu direktori yang umum, misalnya : direktori “/bin”

Variabel


Pada shell scripting, variabel digunakan tanpa harus mendefinisikan terlebih dahulu tipe dari variabel tersebut seperti dibahasa pemrograman umumnya.

Tutorial-50: Menampilkan Variabel
Buat program berikut:
#!/bin/sh
# prog-2 : program Nama
nama=olivia
lulus=”Mahasiswa yang lulus adalah $nama”
echo $lulus

Jalankan Program:
[topiq@Linux_server topiq]$ ./prog-2.sh

Pada contoh di atas:
§  Variabel harus dituliskan :
nama=olivia     (BENAR)
nama =olivia   (SALAH)
nama= olivia   (SALAH)
§  Variabel dipanggil kembali dengan diawali tanda “$” kemudian diikuti nama_variabel ($lulus)
§  Variabel yang mengandung spasi, harus ditutup dengan tanda petik “.
§  Pada saat memanggil variabel harus dituliskan secara case-sensitive, variabel “$lulus” akan berbeda dengan variabel “$Lulus”

Sistem Linux telah memiliki variabel yang siap-pakai (Built-in Variabel) dan dapat digunakan langsung oleh user. Daftar dari variabel-variabel tersebut antara lain adalah:
 
Tabel-10: Built-in variabel
Variabel
Deskripsi
$HOME
Memberikan nilai Home Directory user yang sedang Login
$PATH
Memberikan informasi PATH dari direktori sistem.
$#
Jumlah Parameter
$$
Nomor PID
$*
Menampilkan seluruh Argumen dari perintah
$?
Status Exit, variabel yang memberikan nilai output dari suatu proses TRUE atau FALSE. TRUE jika bernilai 0 dan FALSE jika bernilai ¹ 0
\u
Nama user yang sedang login
\h
Nama hostname
\W
Nama Working Directory

Nilai variabel juga dapat diambil dari perintah yang ada di Sistem Linux.

Tutorial-51: Command Line Variabel
Buat program berikut:
#!/bin/sh
# prog-3 : program dengan Variabel Command
nama=`whoami`
echo “Nama Pengguna Aktif adalah $nama”

Jalankan Program:
[topiq@Linux_server topiq]$ ./prog-3.sh

Untuk variabel yang diambil dari perintah di sistem Linux harus berada diantara tanda back-quote (`) - tanda petik terbalik, disebelah Tombol Angka “1” pada keyboard. Bukan Single-quote().

Nilai variabel juga dapat diberikan secara langsung oleh user pada saat program shell dijalankan (tidak didefinisikan di dalam body file shell scripting).

Tutorial-52: Input  Variabel
Buat program berikut:
#!/bin/sh
# prog-4 : program input
echo –n “Masukkan nama Anda:”
read nama
echo “Nama Pengguna Aktif adalah $nama”

Option –n berfungsi untuk menahan agar kursor tetap sejajar dengan script, sehingga pada saat memasukkan nilai input, tetap sejajar dengan output echo yang terakhir.

Contoh pada saat program dijalankan :

Fungsi “read” adalah membaca input yang dimasukkan dari keyboard dan dimasukkan sebagai nilai dari variabel “nama”

Jalankan Program:
[topiq@Linux_server topiq]$ prog-4.sh


Command Line Arguments

Program Shell dapat mempunyai parameter/argumen maksimum 9 arumen. Masing-masing argumen akan direpresentasikan sebagai suatu variabel mulai dari $1, $2, $3, $4, $5, $6, $7, $8, $9.
Sedangkan Program Shell direpresentasikan dengan $0.

Tutorial-53: Menampilkan Command Line Argument
Buat program berikut:
#!/bin/sh
# prog-5.sh : Parameter

echo “Nama Program adalah $0”
echo “Parameter 1 adalah $1”
echo “Parameter 2 adalah $2”
echo “Parameter 3 adalah $3”
echo “Jumlah Parameter adalah $#”
echo “Parameter yang dituliskan antara lain $*”
echo “Nomor PID dari Program adalah $$”

Jalankan Program :
[topiq@Linux_server topiq]$ prog-5.sh param1 param2 param3


Operasi Aritmetika

Operasi aritmatika dalam pemrograman shell seperti “+, *, - atau /” dapat dilakukan dengan menggunakan  perintah berikut:

Tutorial-54: Operasi Aritmatika dengan let
Buat program berikut:
#!/bin/sh
# prog-6.sh : Operasi Aritmatika dengan let

echo –n “Masukkan Nilai1 Pertama :”
read nilai1

echo –n “Masukkan Nilai1 Kedua :”
read nilai2
echo “Pilih tipe operasi: ”
read operasi
hasil=`let $nilai1 $operasi $nilai2`
echo “Hasilnya adalah $hasil”

Jalankan Program :
[topiq@Linux_server topiq]$ prog-6.sh

Tutorial-55: Operasi Aritmatika dengan expr
Operasi aritmatika untuk bilangan bulat saja.
Buat program berikut:
#!/bin/sh
# prog-7.sh : Operasi Aritmatika dengan expr

echo –n “Masukkan Nilai1 Pertama :”
read nilai1

echo –n “Masukkan Nilai1 Kedua :”
read nilai2

echo “Pilih tipe operasi: ”
read operasi

hasil=`expr $nilai1 $operasi $nilai2`
echo “Hasilnya adalah $hasil”

Jalankan Program :
[topiq@Linux_server topiq]$ prog-7.sh

Info:
Untuk “expr”, simbol operasi aritmatika yang digunakan:
Perkalian
\*
Pembagian
/
Penjumlahan
+
Pengurangan
-
Modulo/Sisa Bagi
%
Untuk mengelompokkan suatu operasi Aritmatika pada “expr”,  gunakan simbol “\(“ dan “\)” :
Contoh:
expr \( 1 + 2 \) * 3

Tutorial-56: Operasi Aritmatika dengan bc
Operasi aritmatika untuk bilangan pecahan.
Buat program berikut:
#!/bin/sh
# prog-8.sh : Operasi Aritmatika dengan bc

echo –n “Masukkan Nilai1 Pertama :”
read nilai1

echo –n “Masukkan Nilai1 Kedua :”
read nilai2

echo “Pilih tipe operasi: ”
read operasi

hasil=`bc <<**
    scale=2
    $nilai1 $operasi $nilai1
**`
echo “Hasilnya adalah $hasil”

Info:
Scale berfungsi untuk menentukan jumlah angka dibelakang koma.

Simbol “**” merupakan simbol Here Documents. Pada pemrograman shell, script akan langsung dieksekusi jika sistem menemukan Command Return <CR>  atau “ENTER”. Untuk menahan agar sistem tidak melakukan eksekusi terlebih dahulu sebelum semua nilai variabel masuk maka ekseskusi ditahan dulu dengan menggunakan fungsi Here Documents. Simbol here documents boleh diganti dengan simbol lain, misal : “@@@” , asalkan simbol penutupnya sama dan diletakkan pada posisi kolom petama pada layar.

Jalankan Program :
[topiq@Linux_server topiq]$ prog-8.sh

Debugging

Untuk melakukan pelacakan (tracing/debug) terhadap program yang Error dapat dilakukan dengan perintah:

Jalankan Program :
[topiq@Linux_server topiq]$ sh –x prog-8.sh


Pengkondisian

Untuk  mengontrol struktur kondisi dalam pemrograman Shell dapat digunakan struktur :
§  If-then,  if-then-else, dan if-then-elif-then




Sintaks if-then:

if [kondisi]
then
statements
fi


Sintaks if-then-else:

if [kondisi]
then
statements-1
else
statements-2
fi

atau

if [kondisi-1]
then
statements-1
else
if [kondisi-2]
then
statements-2
else
statements-3
fi
fi





Sintaks if-then-elif-else:

if [kondisi-1]
then
statements-1
elif [kondisi-2]
then
statements-2
fi



Untuk mendukung pendefinisian kondisi digunakan :
§  Operator Relasi :
Operator
Deskripsi
> 
-gt
Lebih besar
< 
-lt
Lebih kecil
>=
-ge
Lebis besar atau sama dengan
<=
-le
Lebih kecil atau sama dengan
=

Pembanding
==
-eq
Sama dengan
!=
-ne
Tidak sama dengan

§  Operator Logika :
Operator
Deskripsi
-a
AND
-o
OR




Tutorial-57: Program untuk mencari suatu file dan tipenya
Buat program berikut:
#!/bin/bash
# prog-cek.sh : Program cek file

if [ -f $1 ]
then
      echo “$1 ada, dan suatu file biasa”
else
      if [ -d $1 ]
      then
            echo “$1 ada, dan suatu directory”
      else
            echo “$1 tidak ada”
      fi
fi

Nilai f  pada kondisi [ -f $1 ] dan d  pada kondisi [ -d $1 ] merupakan operator test
§  Operator test :
Operator
Status Exit = 0 (TRUE), Jika:
-f nama_file
File ada, dan tipe file =  file biasa
-d nama_file
File ada, dan tipe file =  directory
-r nama_file
File ada, dan file dapat dibaca
-w nama_file
File ada, dan file dapat ditulis
-x nama_file
File ada, dan file dapat dieksekusi
-s nama_file
File ada, dan file tidak kosong



Jalankan Program :
[topiq@Linux_server topiq]$ prog-cek.sh

Latihan-6:
Buatlah program yang digunakan untuk menghitung pajak:
-          10 Juta Pertama kena 15%
-          25 Juta berikutnya(sisa) kena 25%
-           Bila masih ada sisa, maka sisa tsb kena 35%
-          Simpan dengan nama file “income.sh”
Contoh :
1.    Gaji 8 Juta
PPH = 15% * 8 Juta
2.    Gaji 15 Juta
PPH = (15% * 10 Juta) + (25% * (12-10) Juta)
3.    Gaji 60 Juta
PPH = (15% * 10 Juta) + (25% * 25 Juta) + (35% * (60-10-15) Juta)







Tutorial-58: Program Salam
Buat program berikut:
#!/bin/bash
# prog-salam.sh : Program Salam

jam=`date|cut –c12-13`


if [ $jam –ge 05 –a $jam –le 09 ]
then
clear
tput cup 11 30
tput blink
echo –n “Selamat Pagi”
read
tput sgr0
clear
else
      if [ $jam –gt 09 –a $jam –le 15 ]
then
   clear
tput cup 11 30
tput blink
echo –n “Selamat Siang”
read
tput sgr0
clear
else
            if [ $jam –gt 15 –a $jam –le 18 ]
then
   clear
tput cup 11 30
tput blink
echo –n “Selamat Sore”
read
tput sgr0
clear
            else
   clear
tput cup 11 30
tput blink
echo –n “Selamat Malam”
read
tput sgr0
clear
            fi
      fi
fi


Perintah tput digunakan untuk memanipulasi baris pada shell prompt


Format:

tput   [option]  [argumen]


option
Fungsi
cup   x    y
Meletakkan posisi kursor di koordinat x,y pada Layar
blink
Membuat tampilan terminal menjadi berkedip (blink)
Sgr0
Mengembalikan semua perubahan ke kondisi Default

Untuk option yang lebih lengkap dapat dilihat pada manual:
[topiq@Linux_server topiq]$ man tput

Jalankan Program :
[topiq@Linux_server topiq]$ prog-salam.sh

§  case-in

Sintaks case-in

case string in
pilihan-1)
commands-1
;;
pilihan-2)
commands-2
;;
  *)
default commands
;;
esac


Tutorial-59: Program Menu
Buat program berikut:
#!/bin/bash
# prog-menu.sh: Program Menu
trap "" 1 2 3 15
cat <<**
Menu Pilihan:
     1. Cek File
     2. Salam
     3. Hitung Income
     4. Keluar
**
echo -n "Masukkan Pilihan Anda: "
read pilih
case $pilih in
    1)prog-cek.sh;;
    2)salam.sh ;;
    3)income.sh ;;
    4)exit ;;
    *)clear ; echo "Anda Salah Pilih" ;;
esac

Perintah trap digunakan untuk mencegah agar program tidak dapat diinterupsi dengan “CTRL + C” ataupun “Ctrl +Z” maupun di-kill dengan signal seperti di atas. Fungsi tanda “petik” merupakan tempat comments. Signal yang tidak dapat ditrap adalah signal no.9.

Jalankan Program :
[topiq@Linux_server topiq]$ prog-menu.sh

Perulangan

Perulangan pada pemrograman Shell terbagi menjadi tiga bagian :
§  while-do : Jika kondisi True, commands dijalankan.
Sintaks:

while [kondisi]
do
commands
done


Tutorial-60: Program Menu dengan Looping
Lengkapi program prog-menu.sh:
#!/bin/bash
# prog-menu.sh: Program Menu
trap "" 1 2 3 15
while :
do
clear
cat <<**
Menu Pilihan:
     1. Jalankan Program Salam
     2. Salin File
     3. Hitung Income
     4. Keluar
**
echo -n "Masukkan Pilihan Anda: "
read pilih
case $pilih in
    1)salam ;;
    2)salin ;;
    3)income ;;
    4)exit ;;
    *)clear ; echo "Anda Salah Pilih" ;;
esac
echo ""
echo -n "Tekan Enter untuk Lanjut....!"
read
done

Perintah “while :” disebut sebagai “dummy instruction”, dimana kondisi dari perulangan selalu dibuat TRUE (ditandai dengan simbol “:” atau “ [ true ] “.)

Jalankan Program :
[topiq@Linux_server topiq]$ prog-menu.sh

§  for-in : Commands dijalankan sesuai dengan nilai variabel
Sintaks :

For variable in list of values
do
commands
done


Tutorial-61: Program dengan for-in
Buat program berikut:
#!/bin/bash
# prog-forin.sh : Program dengan for-in

salam=”Selamat Pagi….”

for ulang in dona namira tita
do
echo “$salam $ulang”
done

Jalankan Program :
[topiq@Linux_server topiq]$ prog-forin.sh


§  for-do : Sama seperti for-in tetapi tanpa list of values.
Sintaks :

For variable
do
commands
done


Tutorial-62: Program dengan for-do
Buat program berikut:
#!/bin/bash
# prog-fordo.sh : Program dengan for-do

awal=”ini adalah file “

for ulang
do
echo “$awal $ulang”
done

Jalankan Program :
[topiq@Linux_server topiq]$ prog-fordo.sh /etc/passwd /etc/group

Untuk Contoh Program Shell yang lain dapat dilihat pada Lampiran