LAPORAN PRAKTIKUM SISTEM OPERASI Semester 4 Tahun Akademik 2016/2017
Oleh Nama : Pebri Ramdani NPM : 147006012
LABORATORIUM INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS SILIWANGI TASIKMALAYA 2016
KATA PENGANTAR
Puji syukur penyusun panjatkan atas berkat dan rahmat Allah SWT. sehingga penyusun dapat menyelesaikan Laporan Praktikum Pemrograman Sistem Operasi. Laporan ini diajukan unuk memenuhi tugas mata kuliah Sistem Operasi. Materi yang disusun dalam laporan ini berisi 12 materi modul praktikum. Di dalam laporan ini penulis menggunakan aplikasi oracle virtual box yang menjalankan operasi sistem linux fedora 23. Penyusun menyadari bahwa selama penyusunan laporan praktikum ini, penyusun banyak mendapat bantuan dari berbagai pihak. Oleh sebab itu, penyusun mengucapkan terima kasih kepada: 1. pak Andi Nur Rachman, S.T., M.T. selaku Dosen mata kuliah Sistem Operasi, 2. teh Yuni Elyani selaku asisten dosen praktikum Sistem Operasi, 3. semua pihak yang telah membantu dan tidak dapat penyusun sebutkan satupersatu. Penyusun menyadari laporan ini masih jauh dari sempurna, oleh karena itu penyusun mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan laporan ini. Semoga laporan ini memberikan manfaat bagi pembaca dan penyusun. Aamiin.
Tasikmalaya, Juni 2016 Penyusun
i
DAFTAR ISI
KATA PENGANTAR ........................................................................................................ i DAFTAR ISI...................................................................................................................... ii PENDAHULUAN Latar Belakang .................................................................................................................. 1 Tujuan ................................................................................................................................ 2
MODUL I PERINTAH DASAR SISTEM OPERASI LINUX 1.1.
Tujuan ...................................................................................................................I-1
1.2.
Resume...................................................................................................................I-1
1.3.
Hasil Dan Pembahasan.........................................................................................I-4
1.4.
Latihan.................................................................................................................I-34
MODUL II OPERASI INPUT OUTPUT 2.1.
Tujuan ................................................................................................................. II-1
2.2.
Resume................................................................................................................. II-1
2.3.
Hasil Dan Pembahasan....................................................................................... II-5
2.4.
Latihan............................................................................................................... II-22
MODUL III OPERASI FILE DAN STRUKTUR DIREKTORY 3.1. Tujuan .................................................................................................................. III-1 3.2. Resume .................................................................................................................. III-1 3.3. Hasil Dan Pembahasan ........................................................................................ III-9 3.4. Latihan ................................................................................................................ III-24
ii
MODUL IV PROSES DAN MANAJEMEN PROSES 4.1. Tujuan ................................................................................................................... IV-1 4.2. Resume ................................................................................................................... IV-1 4.3. Hasil Dan Pembahasan ......................................................................................... IV-6 4.4. Latihan ................................................................................................................. IV-18
MODUL V BEKERJA DENGAN BASH SHELL 5.1. Tujuan .................................................................................................................... V-1 5.2. Resume .................................................................................................................... V-1 5.3. Hasil Dan Pembahasan .......................................................................................... V-7 5.4. Latihan .................................................................................................................. V-44
MODUL VI PEMROGRAMAN SHELL 6.1. Tujuan ................................................................................................................... VI-1 6.2. Resume ................................................................................................................... VI-1 6.3. Hasil Dan Pembahasan ....................................................................................... VI-11 6.4. Latihan ................................................................................................................. VI-66
MODUL VII UNIX SYSTEM CALL DAN MANAJEMEN MEMORY 7.1. Tujuan ................................................................................................................. VII-1 7.2. Resume ................................................................................................................. VII-1
MODUL VIII SISTEM FILE 8.1. Tujuan ................................................................................................................VIII-1 8.2. Resume ................................................................................................................VIII-1
iii
MODUL IX MANAJEMEN PERANGKAT KERAS 9.1. Tujuan ................................................................................................................... IX-1 9.2. Resume ................................................................................................................... IX-1
MODUL X LINUX BOOTING PROCESS 10.1.
Tujuan .............................................................................................................. X-1
10.2.
Resume .............................................................................................................. X-1
MODUL XI MANAJEMEN USER DAN GROUP 11.1.
Tujuan ............................................................................................................. XI-1
11.2.
Resume ............................................................................................................. XI-1
MODUL XII MANAJEMEN APLIKASI 12.1.
Tujuan ........................................................................................................... XII-1
12.2.
Resume ........................................................................................................... XII-1
PENUTUP Simpulan ............................................................................................................................ 1 Saran .................................................................................................................................. 1
DAFTAR PUSTAKA
LEMBAR ASISTENSI
iv
PENDAHULUAN
A. Latar Belakang Jurusan Teknik Informatika Fakultas Teknik Universitas Siliwangi secara
teknis merujuk
sederhana
dari
kepada
computing
terminologi
itu
computing.
Pengertian
sendiri adalah segala hal teknis yang
melibatkan penggunaan komputer. Diantara aktivitas dan pengertian computing menurut dokumen Computing Curricula adalah: -
Designing and building hardware and software systems for any
of a wide range of purposes. -
Processing, structuring and managing various kinds of information.
-
Doing scientific studies using computers.
-
Making computer systems behave intelligently.
-
Creating and using communications and entertainment media.
-
Finding and gathering information relevant to any particular purpose.
Berdasar pengertian diatas, maka bidang kajian teknik informatika mencangkup area dilakukan
adalah
yang
cukup
luas.
Salah
satu
strategi
yang
dengan penyelenggaraan praktikum matakuliah di
laboratorium. Bebarapa matakuliah dasar dan unggulan diupayakan untuk terintegrasi dengan praktikum di laboratorium agar skill mahasiswa dapat terbentuk dengan matang. Proses pembelajaran harus merupakan upaya bersama antara dosen dan mahasiswa untuk berbagi dan mengolah informasi dengan tujuan agar pengetahuan yang terbentuk ter-’internalisasi’- dalam diri peserta didik dan menjadi landasan untuk menciptakan belajar secara mandiri
dan berkelanjutan. Sejumlah keterlibatan peserta didik sangatlah
penting agar proses pembelajaran menjadi efektif, salah satunya keterlibatan
1
2
aspek Psikomotorik yang dapat terdiri dari kegiatan praktikum dan kegiatan ’experimental’.
B. Tujuan Tujuan Praktikum Matakuliah adalah sebagai berikut: 1. Memberikan pedoman bagi semua aturan tentang pelaksanaan praktikum matakuliah. 2. Memenuhi kebutuhan informasi yang diperlukan yang berkenaan dengan pelaksanaan praktikum.
I -1
MODUL 1 Perintah Dasar Sistem Operasi Linux
1.1. Tujuan Praktikum 1. Menggunakan perintah-perintah dasar untuk informasi user. 2. Mengenal format instruksi pada system operasi linux. 3. Menggunakan perintah-perintah dasar pada system operasi linux. 4. Menggunakan utilitas dasar pada system operasi linux.
1.2. Resume Linux terinspirasi oleh sistem operasi Unix yang pertama kali muncul pada tahun 1969, dan terus digunakan dan dikembangkan sejak itu. Banyak dari konvensi desain untuk Unix juga terdapat pada Linux, dan bagian penting untuk memahami dasar-dasar dari sistem Linux. Orientasi utama dari Unix adalah penggunaan antarmuka baris perintah, dan warisan ini ikut terbawa ke Linux. Jadi antarmuka pengguna berbasis grafik dengan jendela, ikon dan menunya dibangun di atas dasar antarmuka baris perintah. Lagipula, hal ini berarti bahwa sistem berkas Linux tersusun agar dapat dengan mudah dikelola dan diakses melalui baris perintah. Pada dasarnya, Linux merupakan sistem operasi yang berbasiskan pada text (Text Bases) dalam sistem kerjanya. Bila ingin melakukan sesuatu terhadap komputer user bisa mengetikkan perintah-perintah yang kemudian dieksekusi oleh komputer. Sehingga mode teks terus melekat dengan Linux sampai saat ini, walaupun sekarang tampilan GUI (Graphic User Interface) Linux sudah semakin bagus dan memudahkan user. Perintah-perintah yang diketikkan itu biasa disebut Command Line. Untuk perintah-perintah dasar, biasa disebut Basic Command Line. Bila sudah ada GUI, Kenapa harus menggunakan Perintah Dasar? Pertanyaan bagus.. Saat ini, anda bisa melakukan banyak hal di GUI. Untuk melakukan manajemen file dan direktori tinggal klik sudah beres. Mau putar
I - 1
I -2
lagu, nonton film, edit document, edit gambar, add remove aplikasi, configurasi desktop dsb. Semua bisa dilakukan dengan mudah dari GUI dengan menggunakan mouse. Tetapi, bila anda menguasai perintah dasar linux ada beberapa hal yang lebih mudah dan cepat bila dilakukan dari mode teks, bahkan ada beberapa hal yang hanya bisa dilakukan dengan Command Line. Karnel, kernel adalah jantung dari sebuah sistem operasi karena kernel lah yang
mengatur
semua
proses
seperti
manajemen
memori,
proses
input/output, termasuk mengatur bekerjanya device. Secara teknis Linux hanyalah sebuah kernel. Program lain seperti kompiler, editor, window manager dan sebagainya adalah pelengkap yang membuat kernel menjadi sebuah sistem operasi yang lengkap. Kernel membentuk inti dari sistem operasi Linux. Shell, shell adalah program penerjemah perintah yang menjembatani user dengan sistem operasi. Pada umumnya shell menyediakan prompt sebagai user interface, yaitu tempat dimana user mengetikkan perintahperintah yang diinginkan. Perintah dasar di linux ditulis dengan format dibawah ini:
$ nama_perintah [ argument ] keterangan:
prompt : $ menunjukkan user biasa, dan # menunjukkan user root.
nama perintah : adalah perintah yang ingin anda jalankan
argument : sesuatu yang ditambahkan ke perintah dasar pada umumnya argument terdiri dari OPTION dan PATH
I -3
✗ OPTION : adalah pilihan yang bisa anda gunakan untuk menghasilkan kondisi tertentu dari suatu perintah. ✗ PATH : adalah sesuatu yang akan diproses oleh perintah, misalnya nama file atau nama direktori.
I -4
Pada saat menuliskan perintah, ada beberapa aturan yang harus kita ikuti, antara lain:
Case Sensitive (penggunaan huruf besar dan huruf kecil) Dalam menuliskan perintah harus diperhatikan apakah perintah tersebut menggunakan huruf besar atau huruf kecil. Karena huruf besar dan huruf kecil diartikan berbeda. Bila ada kekeliruan perintah tidak mau dijalankan atau terjadi error.
Penggunaan tanda baca dan spasi Anda harus meneliti penggunaan titik (.), koma (,), slash (/) atau backslash (\). Begitu juga dengan spasi. Karena bila terjadi kesalahan dalam penggunaan tanda baca dan spasi, perintah juga tidak bisa dijalankan.
Ejaan kata dari perintah yang digunakan Pastikan perintah anda sudah benar ejaan katanya. Perintah-perintah yang ada menggunakan bahasa inggris.
Untuk membatalkan perintah yang anda instruksikan kepada sistem, anda bisa mengetikkan Ctrl+c atau Ctrl+z. Maka perintah yang sedang diproses oleh system akan terhenti.
Login sebagai user, bukalah Console Terminal dan lakukan percobaan percobaan dibawah ini kemudian selesaikan soal-soal latihan !
1.3 Hasil dan Pembahasan Percobaan 1 : Melihat identitas diri (nomor id, group id) $ id
Gambar 1.1 Tampilan Identitas Diri
I -5
Analisis Gambar di atas merupakan cara untuk melihat atau menampilkan identitas user (nomor id, group id) dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ id pada command promt yang terdapat di sistem operasi.
Percobaan 2 : Melihat tanggal dan kalender dari system 1. Melihat tanggal saat ini $ date
Gambar 1.2 Tampilan Tanggal Saat Ini Analisis Gambar di atas merupakan cara untuk menampikan / melihat tanggal dan waktu system. dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ date pada command promt yang terdapat di sistem operasi.
2. Melihat kalender $ cal 2 1996
Gambar 1.3 Tampilan Kalender Bulan 5 Tahun 2008 Analisis Gambar di atas merupakan cara untuk menampilkan / melihat kalender pada bulan 2 (februari) tahun 1996. dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ cal 2 1996 pada terminal sistem operasi Linux.
I -6
$ cal –y
Gambar 1.4 Tampilan Kalender Analisis Gambar di atas merupakan cara untuk menampilkan/melihat kalender secara utuh pada tahun sekarang di system. dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ cal –y.
Percobaan 3 : Melihat identitas mesin $ hostname
I -7
Gambar 1.5 Tampilan Identitas Mesin Analisis Gambar di atas merupakan cara untuk menampilkan / melihat nama dari computer (hostname) dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ hostname pada command promt yang terdapat di sistem operasi.
$ uname
Gambar 1.6 Tampilan Identitas Mesin Analisis Gambar di atas merupakan cara untuk menampilkan/melihat informasi system computer, Antara lain tipe mesin computer, hostname, nama dan versi system operasi dan tipe prosesor. Dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ uname pada command promt yang terdapat di terminal linux. $ uname –a
Gambar 1.7 Tampilan Identitas Mesin Analisis Gambar di atas merupakan cara untuk menampilkan/melihat semua informasi system computer, Antara lain tipe mesin computer, hostname, nama dan versi system operasi dan tipe prosesor. Dengan cara mengetikan
I -8
prompt dari shell bash dari Linux yaitu $ uname –a pada command promt yang terdapat di terminal linux. Akhiran a merupakan kepanjangan dari All.
Percobaan 4 : Melihat siapa yang sedang aktif 1. Mengetahui siapa saja yang sedang aktif $w
Gambar 1.8 Tampilan Siapa Saja yang Sedang Aktif Analisis Gambar di atas merupakan cara untuk mengetahui siapa saja yang sedang aktif dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ w pada command promt yang terdapat di sistem operasi.
$ who
Gambar 1.9 Tampilan Siapa Saja yang Sedang Aktif Analisis Gambar di atas merupakan cara untuk mengetahui siapa saja yang sedang login saat ini. Dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ who, sehingga akan tampil daftar nama user di terminal beberapa user tersebut berada dan waktu login.
I -9
$ whoami
Gambar 1.10 Tampilan Siapa Saja yang Sedang Aktif Analisis Gambar di atas merupakan cara untuk mengetahui siapa saja yang sedang aktif dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ whoami, tempilan yang tampak hanya nama usernya saja.
2. Melihat informasi finger $ finger
Gambar 1.11 Tampilan Informasi Finger Analisis Gambar di atas merupakan cara untuk melihat informasi finger user dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ finger. Dikarenakan paket kode yang terdapat belum kumplit semua, maka sebagian harus diunduh terlebih dahulu. Gambar diatas ini merupakan tampilan finger yang gagal ditampilkan.
I - 10
$ finger
Gambar 1.12 Tampilan Informasi Finger Menggunakan User Analisis Gambar di atas merupakan cara untuk melihat informasi finger menggunakan user dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ finger . Gambar diatas merupakan gambar yang gagal (tidak bias diakses).
3. Mengubah informasi finger $ chfn Change finger information for student. Password: Nama[user wks] : Office[] : Lab TI UNSIL Office Phone [] : 0313013 Home Phone [] :3203344904920 Finger information changed $ chfn
Gambar 1.13 Tampilan Informasi Finger Menggunakan User Analisis Gambar di atas merupakan cara untuk mengubah informasi finger dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ chfn . Apabila berhasil maka akan muncul tampilan untuk mengisikan password
I - 11
terlebih dahulu kemudian nama, office, office phone, home phone dan jika sudah selesai maka akan muncul tulisan “finger information changed”.
Percobaan 5 : Menggunakan Manual $ man ls
Gambar 1.14 Tampilan Manual (ls) Analisis Gambar di atas merupakan penggunaan manual ls dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ man ls. Lalu muncul output penjelasan secara rinci perintah atau instruksi ls, deskripsi tentang perintah ls tersebut antara lain ada nama, sinopsis, pengertian, contoh, pengaturan, dll.
I - 12
$ man man
Gambar 1.15 Tampilan Manual (man man) Analisis Gambar di atas merupakan cara menggunakan manual man dengan mengetikan prompt dari shell bash dari Linux yaitu $ man man. sehingga muncul output penjelasan secara rinci perintah atau instruksi man seperti deskripsi tentang perintah man tersebut antara lain ada nama, sinopsis, pengertian, contoh, pengaturan, dll.
I - 13
$ man –k file
Gambar 1.16 Tampilan Manual (man –k file) Analisis Gambar di atas merupakan penggunaan manual –k file dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ man –k.sehingga muncul output tentang pengertian atau kepanjangannya sesuai dengan abjadnya.
I - 14
$ man 5 passwd
Gambar 1.17 Tampilan Manual (man 5 passwd) Analisis Gambar di atas merupakan penggunaan manual 5 passwd dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ man 5 passwd. Sehingga muncul output penjelasan secara rinci perintah tentang perintah man 5 passwd tersebut antara lain ada nama, pengertian, dll.
Percobaan 6 : Menghapus layar $ clear
Gambar 1.18 Tampilan Hapus Layar
I - 15
Analisis Gambar di atas merupakan tampilan setelah menghapus layar dengan cara mengetikan prompt dari shell bash dari Linux yaitu $. Apabila user memeprlukan layar seperti semula maka gunakanlah perintah ini.
Percobaan 7 : Mencari perintah yang deskripsinya mengandung kata kunci yang dicari $ apropos date
Gambar 1.19 Tampilan Deskripsi Kata Kunci Date Analisis Gambar di atas merupakan cara untuk menampilkan informasi singkat perintah yang hanya diketahui sebagian atau untuk menampilkan perintah yang berhubungan dengan sesuatu, dengan kata lain apropos mirip dengan fasilitas find di word.
I - 16
$ apropos mail
Gambar 1.20 Tampilan Deskripsi Kata Kunci Mail Analisis Gambar di atas merupakan cara untuk menampilkan informasi singkat perintah yang hanya diketahui sebagian atau untuk menampilkan perintah yang berhubungan dengan sesuatu, dengan kata lain apropos mirip dengan fasilitas find di word. Lalu muncul seperti gambar di atas dengan output perintah yang deskripsinya mengandung kata kunci mail.
$ apropos telnet
Gambar 1.21 Tampilan Deskripsi Kata Kunci Telnet Analisis Gambar di atas merupakan cara untuk menampilkan informasi singkat perintah yang hanya diketahui sebagian atau untuk menampilkan perintah yang berhubungan dengan sesuatu, dengan kata lain apropos mirip dengan fasilitas find di word. Lalu muncul seperti gambar di atas dengan output perintah yang deskripsinya mengandung kata kunci telnet.
I - 17
Percobaan 8 : Mencari perintah yang tepat sama degan kunci yang di cari $ whatis date
Gambar 1.22 Tampilan Kata Kunci Date Analisis Gambar di atas merupakan perintah untuk menampilkan informasi singkat mengenai suatu perintah. output perintah yang tepat sama degan kunci yang di cari yaitu kata kunci date.
Percobaan 9 : Manipulasi berkas (file) dan direktori 1. Menampilkan file pada direktori yang sedang aktif $ ls
Gambar 1.23 Tampilan Direktori yang Aktif Analisis Gambar di atas merupakan perintah untuk menampilkan dari suatu direktori. Perintah ini bias berdiri sendiri ataupun dijalankan dengan argument.
I - 18
2. Menampilkan semua file direktori lengkap $ ls –l
Gambar 1.24 Tampilan Semua File Direktori Lengkap Analisis Gambar di atas merupakan perintah untuk menampilkan dari suatu direktori secara lengkap, mulai dari hak akses, owner, group dan tanggal file atau direktori tersebut dibuat.
3. Menampilkan semua file / direktori yang tersembunyi $ ls –a
Gambar 1.25 Tampilan Semua File / Direktori yang Tersembunyi Analisis Gambar di atas merupakan cara untuk menampilkan semua file dan folder, termasuk file dan folder yang tersembunyi.
I - 19
4. Menampilkan semua file yang tersembunyi tanpa proses sorting $ ls –f
Gambar 1.26 Tampilan Semua File Tersembunyi Tanpa Proses Sorting Analisis Gambar di atas merupakan cara untuk menampilkan isi direktori tanpa diurutkan.
5. Menampilkan isi suatu direktori $ ls /usr
Gambar 1.27 Tampilan Isi Suatu Direktori Analisis Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ ls /usr pada command promt yang terdapat di sistem operasi.
6. Menampilkan isi direktori root $ ls/
Gambar 1.28 Tampilan Isi Direktori Root Analisis
I - 20
Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ ls / pada command promt yang terdapat di sistem operasi.
7. Menampilkan semua file atau direktori dengan menandai : tanda (/) untuk direktori, tanda asterisk (*) untuk file yang bersifat executable , tanda (@) untuk file symbol linx, tanda (=) untuk socket , tanda (%) untuk wgiteout dan tanda (\) untuk FIFO. $ ls –F/etc
Gambar 1.29 Tampilan Semua File atau Direktori yang Bertanda Analisis Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ ls –F /etc. lalu muncul outtput semua file.
I - 21
8. Menampilkan file atau direktori secara lengkap yaitu terdiri dari nama file, ukuran, tanggal dimodifikasi, pemilik, group dan mode atau atrinbutnya. $ ls –l /etc
Gambar 1.30 Tampilan File atau Direktori Secara Lengkap Analisis Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ ls –l /etc. Lalu muncul output file atau direktori secara lengkap.
9. Menampilkan semua file dan isi direktori. Argument ini akan menyebabkan proses berjalan agak lama apabila proses akan dihentikan menggunakan Ctrl + c.
I - 22
$ ls –R /usr
Gambar 1.31 Tampilan Semua File dan Isi Direktori Analisis Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ ls –R /usr . Lalu muncul output semua file dan isi direktori. Apabila proses lama tanpa henti gunakan Ctrl + c untuk mengakhiri.
Percobaan 10 : Melihat tipe file $ file
I - 23
Gambar 1.32 Tampilan Tipe File Analisis Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ file. Lalu muncul output tipe file.
$ file *
Gambar 1.33 Tampilan Tipe File Analisis Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ file *. lalu muncul output tipe file masing-masing folder.
$ file /bin/ls
Gambar 1.34 Tampilan Tipe File Analisis Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ file /bin/ls lalu muncul output tipe file pada bin direktori yang sedang aktif.
I - 24
Percobaan 11 : Menyalin file 1. Mengkopi suatu file. Berikan opsi –i untuk pertanyaan interaktif bila file sudah ada $ cp /etc/group f1
Gambar 1.35 Tampilan Hasil Copy Suatu File Analisis Gambar di atas merupakan cara untuk menyalin file. Caranya dengan mengetikan prompt dari shell bash dari Linux yaitu $ cp /etc/group f1 lalu muncul output file f1 berhasil disalin dan file tersebut berada di luar folder. $ ls –l
Gambar 1.36 Tampilan File yang Berhasil Di Salin Analisis Gambar di atas merupakan cara untuk melihat file yang telah berhasil di copy. $ cp –i f1 f2
Gambar 1.37 Tampilan Hasil Copy Suatu File
I - 25
Gambar 1.38 Tampilan File yang Berhasil Di Salin Analisis Gambar di atas merupakan cara untuk menyalin file dengan mengetikan prompt dari shell bash dari Linux yaitu $ cp –i f1 f2 lalu muncul output konfirmasi karena menggunakan –i dan file f2 sudah ada di luar. Dengan mengisi y(yes) maka f2 akan ditimpa (replace).
2. Mengkopi ke direktori $ mkdir backup
Gambar 1.39 Tampilan Folder Backup Berhasil Di Buat Analisis Gambar di atas merupakan cara untuk membuat folder backup dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ mkdir backup, folder backup sudah berhasil di buat.
$ cp f1 f3
Gambar 1.40 Tampilan File yang Berhasil Di Salin Analisis Gambar di atas merupakan cara untuk menyalin file dengan mengetikan prompt dari shell bash dari Linux yaitu $ cp f1 f3, output file f1 f3 berhasil disalin dan file tersebut berada di luar folder.
I - 26
$ cp f1 f2 f3 backup
Gambar 1.41 Tampilan File yang Berhasil Di Salin Analisis Gambar di atas merupakan cara untuk menyalin file ke folder backup dengan mengetikan prompt dari shell bash dari Linux yaitu $ cp f1 f2 f3 backup, lalu muncul file f1 f2 f3 berhasil disalin ke folder backup.
$ ls backup
Gambar 1.42 Tampilan File yang Berhasil Di Salin Analisis Gambar di atas merupakan cara untuk melihat file f1 f2 f3 berhasil disalin ke folder backup.
$ cd backup
Gambar 1.43 Tampilan CD Backup Analisis Gambar di atas merupakan cara untuk pindah ke direktori backup dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ cd.
I - 27
$ ls
Gambar 1.44 Tampilan File yang Berhasil di Salin Analisis Gambar di atas merupakan cara untuk mengecek file file f1 f2 f3 yang berhasil di salin ke direktori backup.
Percobaan 12 : Melihat isi file 1. Menggunakan instruksi cat $ cat f1
Gambar 1.45 Tampilan Isi File
I - 28
Analisis Gambar di atas merupakan perintah yang digunakan untuk menampilkan isi file, tampilan denga perintah ini adalah file yang bertype teks yang pastinya bukan file kosong.
2. Menampilkan file per satu layar penuh $ more f1
Gambar 1.45 Tampilan Isi File Layar Penuh Analisis Gambar di atas merupakan cara yang bias digunakan untuk menampilkan isi file teks dengan tampilan perlayar. Perintah ini cocok saat membaca file
I - 29
panjang. Untuk menampilkan layar selanjutnya menggunakan spasi, namun more tidak bias melihat layar terdahulu.
$ pg f1
Gambar 1.45 Tampilan Isi File Layar Penuh Analisis Gambar di atas merupakan cara untuk melihat isi file per satu layar penuh dengan fasilitas melihat isi file dari atas dan untuk kebawah menggunakan tombol Enter untuk perbaris. Namun perintah ini tidak menampilkan f1 karena tidak ada.
Percobaan 13 : Mengubah nama file 1. Menggunakan instruksi mv $ mv f1 prog.txt
Gambar 1.46 Tampilan Nama File yang Diubah Analisis Gambar di atas merupakan cara untuk mengubah nama file f1 menjadi prog.txt.
$ ls
Gambar 1.47 Tampilan Nama File yang Diubah Analisis
I - 30
Gambar di atas merupakan cara untuk melihat hasil dari perubahan nama file, file f1 telah berubah menjadi prog.txt, maka proses perubahan berhasil.
2. Memindahkan file ke direktori lain. Bila argument terakhir adalah nama direktori maka berkas-berkas akan dipindahkan ke direktori tersebut $ mkdir mydir
Gambar 1.48 Tampilan Direktori Mydir yang Telah Dibuat Analisis Gambar di atas merupakan cara untuk membuat direktori dengan nama mydir.
$ mv f1 f2 f3 mydir
Gambar 1.48 Tampilan File yang Telah Pindah ke Direktori Mydir Analisis Gambar di atas merupakan cara untuk memindahkan file f1, f2 dan f3. File f2 dan f3 berhasil di pindahkan ke direktori mydir. Untuk file f1 tidak bisa dipindahkan karena file f1 nama filenya sudah di ubah menjadi prog.txt.
Percobaan 14 : Menghapus file $ rm f1 dan $ cp mydir/f1 f1
I - 31
Gambar 1.49 Tampilan Hapus File F1 dan cp f1 Analisis Gambar di atas merupakan cara untuk menghapus file f1, namun file f1 tidak bias dihapus karena f1 telah dirubah namanya menjadi prog.txt. Kedua merupakan cara untuk mengeluarkan file f1 dari direktori mydir.
$ cp mydir/f2 f2
Gambar 1.50 Tampilan Pindah File F2 Analisis Gambar di atas merupakan cara untuk memindahkan file f2 keluar direktori, lalu output file f2 tersebut berhasil di pindahkan keluar direktori mydir.
I - 32
$ rm –i f2
Gambar 1.51 Tampilan Hapus File F2 Analisis Gambar di atas merupakan cara untuk menghapus file f2, dengan perintah – i maka komputer meminta konfirmasi supaya dapat meyakinkan user menghapus file tersebut. file f2 tersebut berhasil di remove atau dihapus.
Percobaan 15: Mencari kata atau kalimat dalam file $ grep root /etc/passwd
Gambar 1.52 Tampilan Kata atau Kalimat Root Analisis Gambar di atas merupakan cara untuk mencari karakter atau kata yang diinginkan dari sebuah file yang terdiri dari banyak kalimat.
I - 33
$ grep “:0:” /etc/passwd
Gambar 1.53 Tampilan Kata atau Kalimat :0: Analisis Gambar di atas merupakan cara untuk mencari kata atau kalimat “:0:” dalam file dengan cara mengetikan prompt dari shell bash dari Linux yaitu $ grep “:0:” /etc/passwd.
$ grep student /etc/passwd
Gambar 1.54 Tampilan Kata atau Kalimat Student Analisis Gambar di atas merupakan cara untuk mencari kata atau kalimat “student” dalam file. Karena didalam file tidak ada kata student maka output tidak ada tampilan apapun karena kata student tidak ada dalam file..
I - 34
LATIHAN 4. Bagaimana anda dapat melihat manual dari perintah cal? $ man cal
Gambar 1.58 Tampilan Manual (cal) Analisis Gambar di atas merupakan cara menampilkan calendar dengan menggunakan manual cal. Setelah selesai mengetikan perintah maka muncul output penjelasan secara rinci perintah atau instruksi cal..
I - 35
5. Bagaimana melihat perintah manual ls dengan kata kunci sort? $ man ls |sort
Gambar 1.59 Tampilan Manual (ls |sort) Analisis Gambar di atas merupakan cara menampilkan manual ls dengan kata kunci sort. Setelah pengetikan perintah lalu muncul output penjelasan secara rinci perintah atau instruksi ls |sort.
I - 36
6. Bagaimana tampilan untuk perintah ls –a –l dan ls –al $ ls –a –l
Gambar 1.59 Tampilan Perintah ls –a –l $ ls –al
I - 37
Gambar 1.60 Tampilan Perintah ls –al Analisis Gambar di atas merupakan tampilan hasil yang sama dari cara yang berbeda. Perintah ini berfungsi untuk manipulasi berkas (file) dan direktori. Setelah mengetikan perintah $ ls –a -l dan $ ls –al lalu output semua file direktori lengkap dan semua file atau direktori yang tersembunyi tampil. Kedua perintah tersebut beroutput sama hanya beda perintah saja.
7. Tampilkan semua file termasuk yang hidden file pada direktori /etc $ ls –a /etc
Gambar 1.61 Tampilan Semua Direktori /etc yang Tersembunyi Analisis
I - 38
Gambar di atas merupakan cara untuk manipulasi berkas (file) dan direktori dengan perintah $ ls –a /etc pada command promt. Setelah mengetikan perintah muncul output semua file atau direktori etc yang tersembunyi.
8. Tampilkan semua file secara lengkap pada direktori /etc $ ls –l /etc
Gambar 1.62 Tampilan Semua Direktori /etc Secara Lengkap Analisis Gambar di atas merupakan cara unttuk manipulasi berkas (file) dan direktori dengan cara mengetikan perintah $ ls –l /etc pada command promt, setelah mengetikan perintah muncul output semua file direktori etc secara lengkap.
I - 39
9. Buatlah direktori prak1 pada direktori aktif, kemudian copy-kan file /etc/group ke file tes1, tes2 dan tes3 pada direktori tersebut.
Gambar 1.63 Tampilan Semua Perintah Nomer 9 Analisis Gambar di atas merupakan cara copy paste. Pertama perintah mkdir prak1 yaitu membuat folder prak1, kemudian perintah cp /etc group tes1, cp /etc group tes2, cp /etc group tes3 adalah untuk mengcopy file tersebut, perintah cp tes1, tes2, dan tes3 adalah mengcopy ke deriktori prak1. Kemudian perintah ls prak1 merupakan cara untuk melihat file yang ada didalamnya, kemudian perintah cd prak1 merupakan cara untuk masuk ke deriktori prak1, setelah masuk menggunakan perintah ls untuk melihat isi dari direktori prak1 hasilnya masih sama.
10. Tampilkan isi file tes1 per satu layar penuh. $ more tes1
I - 40
Gambar 1.64 Tampilan Isi File Tes1 Layar Penuh Analisis Gambar di atas merupakan cara untuk melihat isi file tes1 didalam direktori prak1. Perintah ini menampilkan file per satu layar penuh, setelah mengetikan perintah muncul output isi dari file tes1 dengan file per satu layar penuh dengan fasilitas melihat isi file dari atas dan untuk kebawah menggunakan tombol Enter untuk perbaris dan tombol Spasi untuk perlayar.
11. Pindahkan file tes1 dan tes2 ke home direktori $ cp tes1 tes2 home
Gambar 1.65 Tampilan File yang Berhasil Di Salin Analisis Gambar di atas merupakan cara untuk menyalin file dengan perintah $ cp test1 test2 ke direktori home pada command promt, setelah mengetikan perintah copy berhasil kemudian pergi ke home dengan perintah cd, detelah berada di home cek file dengan perintah ls, melihat hasil output dan terdapat file test1 test2 berhasil disalin ke direktori home.
I - 41
12. Hapus file tes1 dan tes2 dengan konfirmasi $rm –i tes1 tes2
Gambar 1.66 Tampilan Hapus File Tes1 dan Tes2 Analisis Gambar di atas merupakan cara untuk menghapus file dengan fasilitas konfirmasi sebelum menghapus. Denga perintah $ rm –i tes1 tes2 pada command promt maka muncul output pertanyaan dari computer, untuk menjawabnya tekan y apabila telah yakin file tersebut akan di hapus dan file tes1 juga tes2 tersebut berhasil dihapus.
BUATLAH LAPORAN PRAKTIKUM 1. Buatlah penjelasan Percoban 1 sampai dengan Percobaan 15 dalam bentuk tabel seperti di bawah ini : Perintah id
Deskripsi Melihat identitas diri (nomor id dan
Format $ id
grup id) date cal
melihat tanggal saat ini
$ date
Melihat kalender
$ cal 5 2008 dan $ cal -y
hostname
Melihat identitas mesin
$ hostname
uname
Melihat identitas mesin
$ uname dan $ uname -a
w
Mengetahui siapa saja yang sedang aktif
$w
I - 42
who
Mengetahui siapa saja yang sedang
$ who
aktif whoami
Mengetahui siapa saja yang sedang
$ whoami
aktif finger
Melihat informasi finger
$ finger dan $ finger
chfn
Mengubah informasi finger
$ chfn
man
Menggunakan manual
$ man ls, $ man man, $ man –k file, dan $ man 5 passwd
clear apropos
Menghapus layar
$ clear
Mencari perintah yang deskripsinya
$ apropos date, $
mengandung kata kunci yang dicari
apropos mail, dan $ apropos telnet
whatis
Mencari perintah yang tepat sama
$ whatis date
dengan kunci yang dicari ls
Manipulasi berkas (file) dan direktori
$ ls, $ ls –l, $ ls –a, $ ls –f, $ ls /usr, $ ls /, $ ls – F /etc, $ ls –l /etc, dan $ ls –R /usr
file
Melihat tipe file
$ file, $ file *, dan $ file /bin/ls
cp
Mengkopi suatu file. Berikan opsi –i
$ cp /etc/group
untuk pertanyaan interaktif bila file
f1, $ cp –i f1 f2,
sudah ada
$ cp mydir/f1 f1,
I - 43
dan $ cp mydir/f2 f2 mkdir
Membuat direktori
$ mkdir backup, dan $ mkdir mydir
cd
Pindah direktori
$ cd backup
cat
Melihat isi file
$ cat f1
more
Menampilkan file per satu layar penuh
$ more f1
pg
Menampilkan file per satu layar penuh
$ pg f1
mv
Mengubah nama file
$ mv f1 prog.txt, dan $ mv f1 f2 f3 mydir
rm
Menghapus file
$ rm fl, dan $ rm –i f2
grep
Mencari kata atau kalimat dalam file
$ grep root /etc/passwd, $ grep “:0:” /etc/passwd, dan $ grep student /etc/passwd
2. Tampilkan semua hasil dari perintah-perintah yang anda kerjakan pada latihan di atas kemudian berikan analisa/penjelasan! Sudah di kerjakan di atas
II - 1
MODUL 2 Operasi Input Output
2.1 Tujuan Praktikum 1. Mengetahui proses input output pada simstem operasi Linux. 2. Mengetahui konteks input dan output dalam Linux 3. Menggunakan perintah-perintah operasi input output pada sistem operasi Linux. 4. Menggunakan utilitas operasi input output pada sistem operasi Linux.
2.2 Resume 1. PROSES I/O Sebuah proses memerlukan Input dan Output.
Sebuah proses memerlukan Input dan Output. Instruksi (command) yang diberikan pada Linux melalui Shell disebut sebagai eksekusi program yang selanjutnya di sebut proses. Setiap kali instruksi diberikan, maka linux kernel akan menciptakan sebuah proses dengan memberikan nomor PID (Process Identity). Proses dalam linuk slalu membutuhkan Input dan menghasilkan suatu Output. Dalam konteks Linux input/output adalah : Keyboard (input) Layar (output) Files Struktur data kernel Peralatan I/O lainnya (misalnya Network)
II - 1
II - 2
2. FILE DESCRIPTOR Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan melalui angka yang di mulai dari 0,1,2 dan seterusnya. Tiga buah file descriptor standar yang lalu diciptakan oleh proses adalah : 0 = keyboard (standar input) 1 = layar (standar output) 2 = layar (standar error)
Linux tidak membedakan antara peralatan hardware dan file, linux memanipulasi peralatan hardwaresama dengan file.
3. PEMBELOKAN (REDIRECTION) Terdapat istilah standard input, standard output, dan standard error. Standard input adalah masukan atau input standard dari suatu perintah atau program.
Input standar ini adalah keyboard.
Standard output adalah
keluaran atau output standar dari suatu perintah atau program. Outpot standar ini adalah layar monitor atau terminal. Standard error adalah keluaran atauoutput standar jika pada program atau perintah terjadi error. Keluaran iniberupa pesan-pesan kesalahan yang berguna bagi pembuat program atau oranglain yang membutuhkan. Standard error biasanya dalah layar console. Kita dapat membelok-belokkan standard input, standard output dan standard error menuju ke tujuan lain. Misalnya membelokkan standard output suatu program ke file atau membelokkan standard input suatu program dari suatu file. Proses pembelokan ini disebut redirection, dan
II - 3
menggunakan symbol > (membelokkan standard output ke file), < (membelokkan standard input darifile). Fasilitas redirection memungkinkan kita untuk dapat menyimpan output dari sebuah proses untuk disimpan ke file lain (Output Redirection) atau sebaliknya menggunakan isi dari file sebagai input dalam suatu proses (Input redirection). Komponen-komponen dari redirection adalah <, >, < <, >>
4. PIPA (PIPELINE) Pada Linux, hasil keluaran suatu proses program dapat diberikan sebagai input pada proses lainnya. Tanda vertical bar (|) adalah tanda yang digunakan untuk pipeline. Penggunaan pipeline pada perintah-perintah Linux tidak terbatas. Mekanisme pipa digunakan sebagai alat komunikasi antar proses. Input => Proses1 => Output = Input =>Proses2 => Output. Proses 1 menghasilkan output yang selanjutnya digunakan sebagai input oleh proses 2. Hubungan output input ini dinamakan pipa, yang menghubungkan Proses 1 dengan Proses2 dan dinyatakan dengan symbol “|”. Proses1 | Proses2.
5. FILTER Filter adalah utilitas linux yang dapat memproses standar input(dari keyboard) dan menampilkan hasilnya pada standard output (layar). Contoh filter adalah cat, sort, grep, pr, head, tail, paste dan lainnya. Pada sebuah rangkaian pipa : P1 | P2 | P3………. | Pn-1 | Pn Maka P2 sampai dengan Pn-1 mutlak harus utilitas Linux yang berpungsi sebagai filter. P1 (awal) dan Pn (terakhir) boleh bukan filter. Utilitas yang bukan filter misalnya who, is, ps, 1p, 1pr, mail dan lainnya. Beberapa perintah linux yang di gunakan untuk proses penyaringan antara lain : Perintah grep
II - 4
Global regular expresion parse atau grep adalah perintah untuk mencari file-file yang mengandung teks dengan kriteria yang telah Anda tentukan. Digunakan untuk menyaring masukan dan menampilkan baris-baris yang hanya mengandung pola yang ditentukan. Pola ini disebut regular expression. Anda dapat mencari karakter atau kata yang diinginkan dari sebuah file yang terdiri dari banyak kalimat. Perintah yang digunakan adalah grep. Dengan perintah ini pencarian lebih mudah dilakukan. Format : grep option karakter/kata Perintah wc Digunakan untuk menghitung jumlah baris, kata dan karakter dari barisbaris ,asukan yang diberikan kepadanya. Untuk mengetahui berapa baris gunakan option –l, untuk mengetahui berapa kata, gunakan option –w dan untuk mengetahui berapa karakter, gunakan option –c. Jika salah satu option tidak digunakan, maka tampilannya adalah jumlah baris, jumlah kata, dan jumlah karakter. Perintah untuk menampilkan jumlah baris, jumlah kata dan ukuran dari sebuah file. Format : wc option nama_file Perintah sort Digunakan untuk mengurutkan masukannya berdasarkan urutan nomor ASCII dari karakter. Apabila anda ingin menampilkan isi file teks secara urut. Gunakan perintah ini. Format : sort option nama_file Perintah cut Digunakan
untuk
mengambil
kolom
tertentu
dari
baris-baris
masukannya, yang direntukan pada option –c. Perintah uniq Digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, biasanya digabungkan dalam pipeline dengan sort.
II - 5
2.3 Hasil dan Pembahasan Login sebagai user, bukalah Console Terminal dan lakukan percobaanpercobaan dibawah ini kemudian selesaikan soal-soal latihan ! Percobaan 1 : File descriptor 1. Output kelayar (standar output), input dari system(kernel) $ ps
Gambar 2.1 Tampilan Percobaan 1 ($ ps) Analisis Gambar di atas merupakan perintah ps akronim dari process status. Perintah ini akan memberikan informasi status proses pada sistem kita. Informasi mengenai proses apa ssaja yang sedang aktif, siapa pemilik proses tersebut, berapa lama proses berjalan dan berapa ID atau nomor pengenal proses.
2. Output kelayar (standar output), input dari keyboard (standard input) $ cat hallo, apa khabar hallo, apa khabar exit dengan ̂d exit dengan ̂d [Ctrl-d]
II - 6
Gambar 2.2 Tampilan Input Output Menggunakan Cat Analisis Gambar di atas merupakan perintah cat yang digunakan untuk menampilkan isi file. file descriptor yang diinputkan sebelumnya akan lngsung dioutputkan kelayar hallo, apa kabar dan exit dengan ̂d, untuk kembali seperti semula.
3. Input dari keyboard dan output ke alamat internet $ mail [email protected] contoh surat elektrik yang langsung dibuat pada standar input (keyboard) [ctrl-d]
Gambar 2.3 Tampilan Email yang Langsung Input Keyboard Analisis
II - 7
Gambar di atas merupakan perintah menginputkan dari keyboard dan mengoutputkan ke alamat internet $ mail [email protected] akan tetapi perintah ini gagal karena tidak terhubung ke internetakan tetapi perintah ini gagal karena tidak terhubung ke internet, untuk kembali seperti semula tekan ctrl+d.
4. Input nama directory, output tidak ada (membuat directory baru), bila terjadi error maka tampilan error pada layar (standard error) $ mkdir mydir $ mkdir mydir (terdapat pesan error)
Gambar 2.4 Tampilan Input Nama Direktori Analisis Gambar di atas merupakan cara untuk membuat direktori mydir. Perintah ini gagal karena berkas mydir telah dibuat sebelumnya, jadi output direktori mydir tidak bisa di input karena sudah ada.
Percobaan 2 : Pembelokan (redirection) 1. Pembelokan standar output $ cat 1> myfile.txt Ini adalah text yang saya simpan ke file my file.txt
Gambar 2.5 Tampilan Pembelokan Standar Output Analisis
II - 8
Gambar di atas merupakan perintah pembelokan (redirection) yang membelokan standar. 1> artinya pengganti standar output. Setelah menuliskan perintah cat 1>myfile.txt kemudian mulailah mengetikan isi file tersebut, setelah selesai simpan file dengan menekan ctrs+c atau ctrl+z
2. Pembelokan standar input, yaitu input dibelokan dari keyboard menjadi dari file $ cat 0< myfile.txt $ cat myfile.txt
Gambar 2.6 Tampilan Pembelokan Standar Input Analisis Gambar di atas merupakan perintah pembelokan (redirection) yang membelokan input, yaitu input dibelokan dari keyboard menjadi dari file. $ cat 0< myfile.txt. perintah 0< artinya pengganti standar input, setelah mengetikan perintah tersebut maka akan muncul output isi file. Cara ini sama dengan mengetikan perintah cat myfile.txt yang tujuannya untuk menampilkan isi file tersebut.
3. Pembelokan standar error untuk disimpan di file $ mkdir mydir
(Terdapat pesan error)
$ mkdir mydir 2> myerror.txt
II - 9
$ cat myerror.txt
Gambar 2.7 Tampilan Pembelokan Standar Error Analisis Gambar di atas merupakan perintah pembelokan (redirection) standar error untuk disimpan di file $ mkdir mydir (Terdapat pesan error karena file sudah ada), $ mkdir mydir 2> myerror.txt (artinya pengganti standar error), dan $ cat myerror.txt (menampilkan file myerror).
4. Notasi 2>&1 : pembelokan standar error (2>) adalah identic dengan file descriptor 1. $ Is filebaru (Terdapat pesan error) $ Is filebaru 2> out.txt $ cat out.txt $ Is filebaru 2> out.txt 2>&1 $ cat out.txt
II - 10
Gambar 2.8 Tampilan Pembelokan Standar Error Notasi 2>&1 Analisis Gambar di atas merupakan perintah pembelokan dengan notasi 2>&1. Perintah $ Is filebaru (Terdapat pesan error karena file tidak ditemukan), $ Is filebaru 2> out.txt, (identic dengan file descriptor 1), $ cat out.txt, (menampilkan file out.txt) $ Is filebaru 2> out.txt 2>&1 (merupakan pembelokan standar error) dan $ cat out.txt (menampilkan file out.txt).
II - 11
5. Notasi 1>&2 (atau>&2) : pembelokan standar output sama dengan file descriptor 2 yaitu standar error. $ echo “mencoba menulis file” 1> baru $ cat filebaru 2> baru 1>&2 $ cat baru
Gambar 2.9 Tampilan Pembelokan Standar Error Notasi 1>&2 Analisis Gambar di atas merupakan perintah pembelokan notasi 1>&2. Perintah $ echo “mencoba menulis file” 1> baru (merupakan percobaan untuk menulis kedalam file baru), $ cat filebaru 2> baru 1>&2 (pembelokan standar output sama dengan file descriptor 2 yaitu standar error), dan $ cat baru (menampiknan file baru, namun file ini tidak ada).
II - 12
6. Notasi>>(append) $ echo “kata pertama” > surat $ echo “kata kedua” >> surat $ echo “kata ketiga” >> surat $ caat surat $ echo “kata keempat” > surat $ cat surat
Gambar 2.10 Tampilan Notasi >> Analisis Gambar di atas merupakan perintah pembelokan dengan notasi >> yang artinya penambahan. Perintah $ echo “kata pertama” > surat (mgengisi kata pertama pada file surat), $ echo “kata kedua” >> surat (menambahkan kata kedua pada file surat), $ echo “kata ketiga” >> surat (menambahkan kata ketiga pada file surat), $ cat surat (menampilkan isi file surat), $ echo “kata keempat” > surat (menambahkan kata keempat pada file surat, namun tanda > akan menimpa file yang sudah ada).
II - 13
7. Notasi here document (<<++ …. ++) di gunakan sebagai pembatas input dari keyboard. Perhatikan bahwa tanda pembatas dapat di gantikan dengan tanda apa saja, namun harus sama dan tanda penutup harus di berikan pada awal baris $ cat <<++ Hallo, apa kabar ? Baik-baik saja ? Ok! ++ $ cat <<%%% Hallo, apa kabar ? Baik-baik saja ? Ok ! %%%
Gambar 2.11 Tampilan Notasi here document (<<++ …. ++) Analisis Gambar di atas merupakan perintah pembelokan dengan notasi here document (<<++ …. ++). Perintah $ cat <<++ (merupakan perintah untuk
II - 14
memulai menginputkan isi untuk di outputkan), setalah meninputkan kata-kata, perintah ++ (merupakan perintah untuk mengakhiri kata-kata tersebut dan menampilkan hasil dari kata-kata tersebut. Perintah ini sama dengan perintah $ cat <<%%% dengan akhiran %%%. Yang membedakannya adalah simbol pembatas yang digunakan. Pastikan simbol yang digunakan antara pembuka dan penutup harus sama. 8. Notasi – (input keyboard) adalah representan input dari keyboard. Artinya menampilkan file 1, kemudian menampilkan input dari keyboard dan menampilkan file 2. Perhatikan bahwa notasi “-“ berarti menyelipkan input dari keyboard. $ cat myfile.txt – surat
Gambar 2.12 Tampilan Notasi – (input keyboard) Analisis Gambar di atas merupakan perintah pembelokan dengan notasi – (input keyboard). Perintah $ cat myfile.txt – surat, merupakan cara untuk menampilkan file myfile.txt dan menyelipkan inputan surat dari keyboard.
II - 15
9. Untuk membelokkan standart output ke file, di gunakan operator > $ echo hello $ echo hello > output $ cat output
Gambar 2.13 Tampilan Operator > Analisis Gambar di atas merupakan perintah pembelokan dengan notasi operator >. Perintah $echo hello (merupakan perintah untuk menginputkan kata helo dan meng outputkannya secara langsung), perintah $ echo hello > output (merupakan perintah penginputan kata helo, lalu dibelokan ke file output), perintah $cat output (merupakan perintah untuk menampilkan isi file tersebut).
10. Untuk menambahkan output ke file di gunakan operator >> $ echo bye >> output $ cat output
Gambar 2.14 Tampilan Operator >> Analisis
II - 16
Gambar di atas merupakan perintah pembelokan dengan notasi operator >>. Perintah $echo bye >> output merupakan perintah untuk menambahkan kata bye pada file output. Perintah $cat output merupakan perintah untuk menampilkan isi dari file output maka akan tampil hello dan bye.
11. Untuk membelokan standart input di gunakan operator < $ cat < output
Gambar 2.15 Tampilan Operator < Analisis Gambar di atas merupakan perintah pembelokan dengan notasi operator <. operator < merupakan pembelokan ke file output. Perintah $cat < output merupakan perintah untuk menampilkan file output, cara ini sama dengan perintah cat output, maka akan tampil output hello dan bye.
12. Pembelokan standart input dan standar output dapat dikombinasikan tetap tidak boleh menggunakan nama file yang sama sebagai standart input dan output. $ cat < output > out $ cat out $ cat < output > out $ cat out $ cat < output > output $ cat output $ cat < out >> out {ctrl –c} $ cat out
(Proses tidak berhenti )
II - 17
Gambar 2.16 Tampilan Pembelokkan I/O Kombinasi
Gambar 2.17 Tampilan Pembelokkan I/O Kombinasi Analisis Gambar di atas merupakan perintah pembelokan dengan standart input dan standar output dapat dikombinasikan tetap tidak boleh menggunakan nama file yang sama sebagai standart input dan output, maka akan tampil output hello dan bye.
II - 18
Percobaan 3 : Pipa (Pipeline) Operator pipa ( I ) digunakan untuk membuat eksekusi proses dengan melewati data langsung ke data lainnya. $ who $ who I sort $ who I sort -r $ who > tmp $ sort tmp $ rm tmp $ Is -1 /etc I more $ Is -1 /etc I sort I more
Gambar 2.18 Tampilan Operator Pipa ( I )
II - 19
Gambar 2.19 Tampilan Operator Pipa ( I ) Analisis Gambar di atas merupakan perintah pipa (pipeline) dengan menggunakan perintah who, sort, dan ls. Pipeline dugunakan untuk komunikasu antar perintah. Dengan ini dapat menghubungkan sebuah perintah yang menghasilkan sebuah output dengan perintah lain yang akan memproses output tersebut.
Percobaan 4 : Filter Pipa juga digunakan untuk mengkombinasikan utilitas system untuk membentuk pengsi yang lebih kompleks $ w-h | $ grep /etc/passwd $ Is etc | wc $ Is etc | wc -1 $ cat > kelas1.txt Budi Zulkifli Yulizir Yudi Ade [Ctrl-d] $ cat > kelas2.txt Budi Gama Asep Muchlis [Ctrl –d] $ cat kelas1.txt kelas2.txt I sort $ cat kelas1.txt kelas2.txt > kelas,txt $ cat kelas.txt I sort I uniq
II - 20
II - 21
Gambar 2.20 Tampilan Filter
Gambar 2.21 Tampilan Filter Analisis Gambar di atas merupakan perintah filter dengan menggunakan perintah w,
grep,
ls
dan
cat.
Operatot
Pipa
juga
digunakan
untuk
mengkombinasikan. Setelah semua perintah selesai maka file kelas1.txt dan file kelas2.txt berhasil dibuat.
II - 22
LATIHAN 1. Lihat daftar secara lengkap pada directory aktif, belokan tampilan standar output ke file baru.
Gambar 2.22 Tampilan Nomer 1 Analisis Gambar di atas merupakan daftar lengkap suatu directory yang aktif, lalu dibelokan output ke filebaru.txt, perintah $ ls filebaru.txt merupakan perintah untuk melihat filebaru.txt dalam direktori. Perintah $ cat filebatu.txt merupakan perintah untuk menampilkan isi dari hasil tempilan suatu direktori yang berhasil dibelokan.
II - 23
2. Lihat daftar secara lengkap pada direktori /etc/passwd, belokan tampilan standard output ke file baru tanpa menghapus file baru sebelumnya.
Gambar 2.23 Tampilan Nomer 2 Analisis Gambar di atas merupakan perintah untuk membelokan tampilan direktori etc/passwd ke filebaru.txt. perintah $ls /etc/passwd merupakan perintah untuk menampilkan direktori passwd. Perintah >> merupakan menambahkan isi direktori ke filebaru.txt tanpa menghapus isi sebelumnya. Perintah $ cat filebaru.txt merupakan perintah untuk melihat daftar secara lengkap direktori yang telah ditambahkan dan dibelokan.
II - 24
3. Urutkan file baru dengan cara membelokan standar input.
Gambar 2.24 Tampilan Nomer 3 Analisis Gambar di atas merupakan perintah pengurutan file baru dengan cara membelokan standar input. Perintah $sort filebaru.txt merupakan perintah untuk mengurutkan isi dari terkecil ke terbesar dalam sebuah file.
II - 25
4. Urutkan file baru dengan cara membelokan standar input dan standar output ke file baru.urut
Gambar 2.25 Tampilan Nomer 4 Analisis Gambar di atas merupakan perintah mengurutkan file baru dengan cara membelokan ke filebaru.urut. perintah $ sort filebatu.txt > filebaru.urut merupakan perintah pembelokan dari filebaru.txt ke filebaru.urut. perintah $ sort filebaru.urut merupakan perintah untuk mengurutkan filebaru.urut yang telah dibelokan.
II - 26
5. Buatlah directory latihan2 sebanyak 2x dan belokan standar error ke file rmderror.txt.
Gambar 2.26 Tampilan Nomer 5 Analisis Gambar di atas merupakan perintah untuk membuat latihan2 sebanyak 2x dengan membelokan standar error ke file rmderror.t. perintah $mkdir latihan2 merupakan perintah untuk membuat direktori latihan2. Lalu perintah $mkdir latihan2 merupakan perintah membuat direktori namun gagal karena direktori latihan2 telah ada. $perintah $mkdir latihan2 > rmdirerror.t merupakan perintah untuk membelokan ke file rmderror.t. Perintah $ cat rmderror.t merupakan perintah untuk menampilkan file rmderror.t.
II - 27
6. Urutkan kata2 berikut : Jakarta Bandung Surabaya Padang Palembang Lampung. Dengan menggunakan notasi here document (<@@@..........@@@)
Gambar 2.27 Tampilan Nomer 6 Analisis Gambar di atas merupakan pengurutan nama-nama kota dengan menggunakan notasi here document (<@@@..........@@@). Perintah cat <<@@@ | sort merupakan perintah untuk memulai pengetikan penginputan Nama-nama kota, dengan menggunakan operator pipa sort maka perintah akan bersinergi untuk mengoutputkan hasil yang akan diurutkan.
II - 28
7. Hitung jumlah baris, kata dan karakter
dari file baru.urut dengan
menggunakan filter dan tambahkan data tersebut ke filebaru.
Gambar 2.28 Tampilan Nomer 7 Analisis Gambar diatas merupakan perintah untuk menampilkan jumlah baris kata dan karakter-karakter pada filebaru.urut dengan menggunakan perintah wc. Perintah wc –l digunakan untuk mengetahui jumlah baris. Perintah wc –l > baru merupakan perintah yang digunakan untuk mengetahui jumlah baris yang dibelokan deri baru.
8. Gunakan perintah dibawah ini dan catat hasilnya $ cat > hello.txt Dog cat Cat duck Dog chicken Chicken duck Chickeun cat Dog duck $ cat hello.txt | sort | uniq $ cat hello.txt | grep “dog” | grep –v “cat”
II - 29
Gambar 2.29 Tampilan Nomer 8 Analisis Gambar diatas merupakan perintah untuk membelokan dari hello.txt sehingga bisa menginputkan beberapa kata atau karakter. Perintah $ cat hello.txt | sort | uniq merupakan perintah untuk menampilkan isi dari file hello.txt yang diurutkan menggunakan sort dan uniq digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi. Perintah cat hello.txt | grep “dog” | grep –v “cat” merupakan perintah untuk menampilkan isi dari file hello.txt dengan kalimat yang mengandung kata “dog” sedangkan tidak mengandung kata “cat”.
BUATLAH LAPORAN PRAKTIKUM 1. Analisa hasil percobaan 1 sampai dengan 4, untuk setiap perintah jelaskan tampilannya. Sudah di kerjakan di atas 2. Kerjakan latihan di atas dan analisa hasilnya Sudah di kerjakan di atas
III - 1
MODUL 3 Operasi File dan Struktur Direktory
3.1 Tujuan Praktikum 1. Mengetahui operasi file dan struktur direktori pada sistem operasi Linux. 2. Menggunakan perintah-perintah operasi file dan struktur direktori. 3. Menggunakan utilitas operasi file dan struktur direktori pada sistem operasi Linux.
3.2 Resume 1. ORGANISASI FILE Sistem file pada Linx menyerupai pepohonan (tree), yaitu dimulai dari root, kemudian direktori dan sub direktori. Sistem file pada Linux diatur secara hirarki, yaitu dimulai dari root dengan symbol “/”. Kita dapat menciptakan File dan Direktori mulai dari root ke bawah. Direktori adalah file khusus, yang berisi nama file dan INODE ( pointer yang menunjuk ke data / isi file tersebut ). Secara logika, direktori dapat berisi file dan direktori lagi (disebut juga SubDirektori).
III - 1
III - 2
2. DIREKTORY STANDAR Struktur DirektoriStruktur direktori di Unix dan Linux adalah sebuah struktur direktori terpadu di mana semua direktori bersatu di bawah direktori “/” filesystem root. Terlepas dari mana filesystem secara fisik dipasang, semua direktori yang disusun secara hirarki dibawah filesystem root. Struktur Direktori Linux mengikuti “Filesystem Hierarchy Structure (FHS)” dipelihara oleh Free Standars Group meskipun sebagian besar distribusi kadang-kadang cenderung menyimpang dari standar.Mari kita lihat sekilas direktori apa saja yang berada di bawah hirarki filesystem linux. “/” root Struktur direktori diawali dengan filesystem root “/” dan memang direktori akar dari seluruh struktur. Partisi dimana / (direktori root) akan ditempatkan pada sistem Unix atau kompatibel dengan Unix. /boot Direktori /boot berisi file boot loader termasuk Grub dan LiLO, kernel, initrd, config dan system.map. /sys Direktori ini berisi kernel, firmware dan file yang berhubungan dengan sistem. /sbin Berisi binari sistem esensial dan peralatan sistem administrasi penting bagi sistem operasi dan kinerjanya. /bin Berisi binari penting bagi pengguna dan utilitasnya yang diperlukan dalam mode pengguna sendiri. /lib Berisi file-file pustaka untuk semua binari yang berada di dalam direktori /sbin dan /bin./dev Berisi file sistem esensial dan driver-driver./etc Direktori ini berisi file konfigurasi sistem esensial termasuk /etc/hosts, /etc/resolve.conf, nsswitch.conf dan file konfigurasi jaringan./home
III - 3
Semua direktori rumah dari pengguna berada di dalam direktori ini dengan pengecualian direktori rumah akun root yang mana disimpan di dalam direktori /root. Direktori ini berisi file pengguna, pengaturan pengguna, profil dan lain-lain./media Poin mount untuk media penyimpanan bergerak seperti CD-ROM, USB, Floppy dan lain-lain./mnt Poin mount generik untuk filesystem sementara. Ini sangat berguna khususnya ketika mengalami permasalahan dan harus menggunakan LiveCD yang di mana anda mungkin harus melakukanmount terhadap filesystem root dan mengubah pengaturan./opt Sebuah direktori yang jarang sekali digunakan di Linux dan biasanya dipakai untuk perangkat lunak dari pihak ketiga dan bukan merupakan utilitas dari Proyek GNU seperti aplikasi java ataupun virtualbox./usr Sebuah sub-hirarki terhadap filesystem root yang mana merupakan direktori data pengguna. Berisi file yang merupakan utilitas dan aplikasi tertentu. Terdapat juga direktori dokumentasi dari aplikasi tersebut. /var Direktori ini biasa di-mount sebagai filesystem pada partisi yang terpisah di bawah root di mana semua konten (isi) variabel seperti logs, file spool untuk printer, crontab, mail, proses yang dilakukan, file lock dan lainlain. Penting sekali untuk memperhatikan dalam perencanaan pembuatan darifilesystem ini dan perawatannya karena filesystem ini dapat terisi penuh secara cepat dan ketikafilesystem kapasitasnya penuh maka dapat menyebabkan permasalahan pada operasional dari sistem dan aplikasi./tmp Sebuah filesystem sementara yang menyimpan file-file sementara dan akan dihapus ketika sistem di-reboot (dijalankan kembali). Ada juga sebuah direktori /tmp di dalam direktori /var yang berfungsi sama untuk menyimpan file-file sementara. Salah satu perbedaan di antara keduanya adalah direktori /var/tmp tetap menyimpan file-file di dalamnya dan melindungi ketika sistem reboot. Dengan kata lain, file di dalam /var/tmp tidak akan dibuang setelah reboot.Struktur Direktori secara Visual
III - 4
Setelah proses instalasi, Linux menciptakan system file yang baku, terdiri atas directori sebagai berikut : Directori /etc Berisi file yang berhubungan dengan administrasi system, maintenance script, konfigurasi, security. Hanya superuser yang boleh memodifikasi file yang berada di direktori ini. Subdirektori yang sering diakses pada direktori /etc antara lain: - httpd, apache web server. - ppp, point to point protocol untuk koneksi ke internet. - rc.d atau init.d inisialisasi (startup) dan terminasi (shutdown) proses di Linux dengan onsep runlevel. - Cron.d, rincian proses yang dieksekusi dengan menggunakan jadwal (time dependent process). - FILES, file security dan konfigurasi meliputi : passwd, hosts, shadow, ftpacces, inetd, conf, lilo.conf, motd, printcap, profile, resolv.conf, dhcp.conf, smb.conf, fstab. Direktori /dev Komponen Unix dan Linux adalah memperlakukan peralatan hardware sama seperti penanganan file. Setiap alat mempunyai file yang disimpan direktori /dev.
III - 5
Peralatan
Direktori
Floppy
/dev/fd0
Harddisk
IDE
: /dev/hd, /dev/hdb, /dev/hdc,
/dev/hdd
CDROM
SCSI
: /dev/sda, /dev/sdh, /dev/sdc
SCSI
: /dev/scd0, /dev/scd1
IDE
: /dev/gscd, /dev/sonycd
Universal : /dev/cdrom (link dari actual cdrom ide atau scsi) Mouse
PS2
: /dev/ip0
Universal : /dev//mouse Parallel Port
Serial Port
LPT1
: /dep/lp0
LPT2
: /dep/lp1
COM1
: /dev/ttyS0
COM2
: /dev/ttyS1
Universal : /dev/modem (link dari S0 dan S1) Directori /proc Directori /proc adalah direktori yang diabuat diatas RAM (Random Acces Memory) dengan system file yang diatur oleh kernel. /proc berisi nomor proses dari system dan nama driver yang aktif disystem. Semua direktori berukuran 0 (kosong). Kecuali file kcore dan self. Setiap nomor yang ada pada direktori tersebut merepresentasikan PID (Process ID).
III - 6
3. TIPE FILE Pada Linux terdapat 6 buah tipe file, yaitu : - Ordinary file - Direktori - Block Device ( Peralatan I/O). Merupakan representasi dari peralatan hardware yang menggunakan transmisi data per block (misalnya 1KB block), seperti disk, floopy disk, tape. - Character Device ( Peralatan I/O). Merupakan representasi dari peralatan hardware yang menggunakan transmisi data karakter per karakter , seperti terminal,modem,plotter dll. - Named Pipe (FIFO). File yang digunakan secara intern oleh sistem operasi untuk komunikasi proses - Link File
4. PROPERTI FILE File mempunyai beberapa atribut, antara lain : Tipe File : menentukan tipe dari file, yaitu : Karakter
Arti
-
File biasa
d
Direktori
l
Symbolic link
b
Block special file
c
Character special file
s
Socket link
p
FIFO
Ijin akses : menentukan hak user tehadap file ini Jumlah link : jumlah link untuk file ini. Pemilik (owner) : menentukan siapa pemilik file ini Group : menentukan siapa pemilik file ini Jumlah karakter : menentukan ukuran file dalam byte
III - 7
Waktu pembuatan : menentukan kapan file terakhir di modifikasi Nama file : menentukan nama file yang dimaksud Contoh :
5. NAMA FILE Nama file maksimal terdiri dari 255 karakter berupa alfanumerik dan beberapa karakter special yaitu garis bawah, titik, koma dan lainnya kecuali spasi
dan
karakter
“&”,”;”,”|”,”`”,”””,”’”,”[“,”]”,”(“,”)”,”$”,”<”,”>”,”{“,”}”,”^”,”#”,”\”,”/”.L inux membedakan huruf kecil denga huruf besar (case sensitive). Contoh nama file yang benar : Abcde5434 3 prog.txt PROG.txt Prog.txt,old report_101,v2.0.1 5-01.web.html
6. SIMBOLIC LINK Link adalah sebuah teknik untuk memberikan lebih dari satu nama file dengan data yang sama. Bila file asli dihapus, maka data yang baru juga terhapus. Format dari Link: 1n fileAsli fileDuplikat. fileDuplikat disebut hard link, dimana kedua file akan muncul identik (link count = 2) bila fileAsli atau fileDuplikat diubah, perubahan akan terjadi pada file lainnya.
III - 8
Symbolic Link diperlukan bila file tersebut dikaitkan dengan direktori/file yang berada pada partisi yang berbeda. Tie fie menjadi 1 (link) dan file tersebut menunjuk ke tempat asal. Format : ln
–s
/FULLPATH/fileAsli
/FULLPATH/fileDuplikat Pilihan –s (shortcut)merupakan bentuk soft link dimana jumlah link count pada file asal tidak akan berubah. Pada bentuk soft link, symbolic. Link dapat dilakukan pada file yang tidak ada, sedangkan pada hard link tidak dimungkinkan. Perbedaan lain, symbolic link dapat dibentuk melalui media disk atau partisi yang berbeda dengan soft link, tetapi pada hard link terbatas pada partisi disk yang sama.
7. MELIHAT ISI FILE Untuk melihat jenis file menggunakan format : file filename (s) Isi file akan dilaporkan dengan deskripsi level tinggi seperti contoh berikut $ file myprog.c letter.txt webpage.html mypro.c : C program text letter.txt : ASCII text webpage.html : HTML document text Perintah ini dapat digunakan secara luas untuk file yang kadang membingungkan, misalnya antara kode C++ dan java
8. MENCARI FILE Jika ingin melihat bagaimana pohon direktori dapat digunakan perintah : find Format : find directory –name targetfile –print. Akan melihat file yang bernama targetfile (bisa berupa karakter wildcard) which Format : which command.
III - 9
Untuk mengetahui letak system utility locate Format : locate string Akan mencari file pada semua direktori dengan lebih cepat dan ditampilkan dengan path yang penuh.
9. MENCARI TEXT PADA FILE Untuk mencari text pada file digunakan perintah grep (General Regular Expression Print) dengan format perintah : grep option pattern files. Grep akan mencari nama file yang sesuai pola yang diberikan dan akan menampilkan baris sesuai.
3.3 Hasil dan Pembahasan Login sebagai user, bukalah Console Terminal dan lakukan percobaanpercobaan dibawah ini kemudian selesaikan soal-soal latihan ! Percobaan 1 : Direktori 1. Melihat direktori HOME $ pwd $ echo $HOME
Gambar 3.1 Tampilan Direktori Home Analisis
III - 10
Gambar di atas merupakan tampilan untuk menampilkan direktori. Perintah pwd (print working direktory) berfungsi untuk melihat direktori yang sedang aktif (curent directory), perintah ini tidak mempunyai option dan argumen. Perintah $echo &HOME berfungsi untuk menampilkan direktori yang sedang aktif yaitu direktori HOME, cara ini sama dengan perintah sebelumnya.
2. Melihat direktori actual dan parent direktori $ pwd $ cd $ pwd $ cd . . $ pwd
Gambar 3.2 Tampilan Direktori Home Analisis Gambar di atas merupakan tampilan untuk menampilkan direktori. Perintah pwd berfungsi untuk melihat direktori yang sedang aktif. Perintah $cd berfungsi untuk berpindah ke direktori sebelumnya dari direktori yang sedang aktif. Perintah $cd . . berfungsi untuk berpindah ke direktori Home.
III - 11
3. Membuat satu direktori, lebih dari satu direktori atau sub direktori $ pwd $ mkdir A B C A/A/D A/E /B/F A/D/A $ ls -l $ ls –l A $ ls –l A/D
Gambar 3.3 Tampilan Direktori Home Analisis Gambar di atas merupakan tampilan untuk menampilkan dan membuat direktori dan sub direktori. Perintah pwd berfungsi untuk menamopilkan direktori yang sedang aktif. perintah mkdir A B C A/D A/E B/F A/D/A berfungsi untuk membuat direktori baru A B C, sedangkan karakter yang
III - 12
berada dibelakang tanda / berfungsi untuk membuiat subdirektori. Misalnya A/D, A adalah sebuah direktori induk dan D merupakan sub direktori. Perintah ls –l untuk melihat list folder dan perintah ls –l A yang menampilkan isi dari direktori A begitu pula ls –l A/D sama menampilkan isi folder.
4. Menghapus satu atau lebih direktori hanya dapat dilakukan pada direktori kosong dan hanya dapat dihapus oleh pemiliknya kecuali bila diberikan ijin aksesnya $ rmdir B (terdapat pesan error, mengapa?) $ ls –l B $ rmdir /B/F B $ ls –l B (terdapat pesan error, mengapa?)
Gambar 3.4 Tampilan Direktori Home Analisis Gambar di atas merupakan cara untuk menghapus sebuah dan beberapa direktori. Perintah $rmdir B berfungsi untuk menghapus direktori B, namun perintah ini gagal karena di dalam direktori B tidak kosong, melainkan ada isinya. Perintah $ls –l B berfungsi untuk menampilkan isi dari direktori B, isinya dalah direktori F. Printah $rmdir B/F B berfungsi untuk menghapus sub direktori F yang ada pada direktori B, dan menghapus direktori B. Perintah ini berhasil, dan di lihat hasilnya pada perintah $ ls –l B, perintah ini gagal karena direktori B telah terhapus.
III - 13
5. Navigasi direktori dengan instruksi cd untuk pindah dari satu direktori ke direktori lain $ pwd $ ls -l $ cd A $ pwd $ cd .. $ pwd $ cd /home//C $ pwd $ cd //C (Terdapat pesan error, mengapa ?) $ pwd
Gambar 3.5 Tampilan Direktori Home Analisis
III - 14
Gambar di atas merupakan cara untuk menampilkan dan pindah ke direktori lain. Perimntah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ ls –l berfungsi untuk menampilkan isi list dari deriktori yang sedang aktif. Perintah $ cd A berfungsi untuk berpindah ke direktori A. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ cd .. berfungsi untuk kembali ke direktori Home. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ cd /home/pebri.ramdani/C berfungsi untuk pinah ke sub direktori C. Perintah $ pwd berfungsi untuk menampilkan deriktori yang sedang aktif. Perintah $ cd /pebri.ramdani/C berfungsi untuk pindah ke sub direktori C, namun perintah ini gagal karena tidak ada direktori sepetri itu. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif.
Percobaan 2 : Manipulasi File 1. Perintah cp untuk mengkopi file atau seluruh direktori $cat > contoh Membuat sebuah file [ctrl + d] $ cp contoh contoh1 $ ls –l $ cp contoh A $ ls –l A $ cp contoh contoh1 A/D $ ls –l A/D
III - 15
Gambar 3.6 Tampilan Manipulasi File
Gambar 3.7 Tampilan Manipulasi File Analisis Gambar diatas merupakan cara untuk membelokan dan meng copy file. Perintah $cat > contoh berfungsi untuk membuat file dan dibelokan ke file contoh, setelah mengisi “Membuat sebuah file” perintah [ctrl + d] berfungsi untuk mengakhiri pengisian file. Perintah $ cp contoh contoh1berfungsi untuk mengcopy contoh ke contoh1. Perintah $ ls –l berfungsi untuk menampilkan isi dari direktori yang sedang aktif. Perintah $ cp contoh A berfungsi untuk mengcopy file contoh ke direktori A. Perintah $ ls –l A berfungsi untuk menampilkan isi dari direktori A. Perintah $ cp contoh contoh1 A/D berfungsi untuk mengcopy file contoh dan contoh1 ke sub direktori D melalui direktori A. Perintah $ ls –l A/D berfungsi untuk menampilkan subdirektori D.
III - 16
2. Perintah mv untuk memindahkan file $ mv contoh contoh2 $ ls –l $ mv contoh contoh2 A/D $ ls –l A/D $ mv contoh contoh1 C $ ls –l C
Gambar 3.8 Tampilan Manipulasi File
Gambar 3.9 Tampilan Manipulasi File Analisis Gambar di atas merupakan cara untuk memindahkan dan menyalin file. Perintah $ mv contoh contoh2 berfungsi untuk meminahkan file contoh ke contoh2. Perintah $ ls –l berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ mv contoh contoh2 A/D berfungsi untuk memindahkan file contoh dan contoh2 ke subdirektori D melalui direktori A. Perintah $ ls –l A/D berfungsi untuk menampilkan isi dari subdirektori D. Perintah $ mv contoh contoh1 C berfungsi untuk memondahkan file
III - 17
contoh dan contoh1 ke direktori C, perintah ini gagal karena file contoh dan contoh1 tidak ada pada direktori home.
3. Perintah rm untuk menghapus file $ rm contoh2 $ ls –l $ rm –i contoh $ rm –rf A C $ ls –l
Gambar 3.10 Tampilan Manipulasi File Analisis Gambar di atas merupakan cara untuk menghapus dan menampilkan direktori. Perintah $ rm contoh2 berfungsi untuk meghapus, tetapi cara ini gagal, karena tidak ada file atau direktori di direktori home. Perintah $ ls –l berfungsi untuk melihat isi file yang sedang aktif. Perintah $ rm – i contoh berfungsi untuk menghapus file contoh dengan konfirmasi terlebih dahulu, tetepi perintah ini gagal karena sebelumnya file contoh telah dipindahkan. Perintah $ rm –rf A C berfungsi untuk menghapus dua
III - 18
deriktori secara bersamaan. Perintah $ ls –l berfungsi untuk melihat isi dari deriktori yang sedang aktif.
Percobaan 3 : Symbolic Link Membuat shortcut (file link) $ echo “Hallo apa khabar” > halo.txt $ ls –l $ ln halo.txt z $ ls –l $ cat z $ mkdir mydir $ ln z mydir/halo.juga $ cp contoh contoh2 $ cat mydir/halo.juga $ ln -s z bye.txt $ ls –l bye.txt $ cat bye.txt
III - 19
Gambar 3.11 Tampilan Symbolic Link Analisis Gambar di atas merupakan perintah simbol link, dengan kata lain shortcut. Perintah $ echo “Hallo apa khabar” > halo.txt berfungsi untuk
III - 20
membuat file dan mengisinya dengan karakter “Hallo apa khabar”. Perintah $ ls –l berfungsi untuk menampilkan isi dari deriktori yang sedang aktif. Perintah $ ln halo.txt z berfungsi untuk membuat link dari halo.txt ke z. Perintah $ ls –l berfungsi untuk menampilkan isi dari deriktori yang sedang aktif. Perintah $ cat z berfungsi untuk menampilkan isi dari z. Perintah $ mkdir mydir berfungsi untuk membuat direktori mydir. Perintah $ ln z mydir/halo.juga berfungsi untuk membuat link dari z ke dalam direktori mydir file halo.juga. perintah $ cp contoh contoh2 berfungsi untuk menyalin file contoh ke contoh2. Perintah $ cat mydir/halo.juga berfungsi untuk menampilkan isi file halo.juga didalam direktori mydir. Perintah $ ln -s z bye.txt berfungsi untuk membuat socket link dari z ke bye.txt. perintah $ ls –l bye.txt berfungsi untuk menampilkan file bye.txt. perintah $ cat bye.txt berfumngsi untuk menampilkan isi dari file bye.txt, yang secara otomatis akan meng link dan mengambil isi dari z.
Percobaan 4 : Melihat Isi File $ ls -l $ file halo.txt $ file bye.txt
Gambar 3.12 Tampilan Isi File Analisis Gambar di atas merupakan cara untuk melihat isi file. Perintah ls –l berfungsi untuk menampilkan seluruh file secara lengkap, file halo.txt berfungsi untuk melihat isi file halo tersebut begitu juga dengan bye.txt.
III - 21
Percobaan 5 : Mencari file dan Mencari text pada file 1. Perintah find $ find /home –name “*,txt” –print > myerror.txt $ cat myerror.txt $find . –name “*,txt” –exec wc -1 ‘{}’ ‘;’
Gambar 3.13 Tampilan File dan Text Pada File yang Dicari Analisis
III - 22
Gambar di atas merupakan cara untuk mencari file dan mencari text pada file menggunakan perintah find. Perintah home –name “*,txt” –print > myerror.txt untuk melihat file .txt didalam file myerror.txt dan perintah cat myerror berfungsi untuk melihat file myerror.
2. Perintah which $ which ls
Gambar 3.14 Tampilan File dan Text Pada File yang Dicari Analisis Gambar di atas merupakan tampilan perintah which. Perintah $ which ls berfungsi untuk menampilkan lokasi perintah dasar yang dicari. Bisa juga digunakan untuk mencari file program yang bisa dieksekusi.
III - 23
3. Perintah locate $ locate “*.txt”
Gambar 3.15 Tampilan File dan Text Pada File yang Dicari Analisis Gambar di atas merupakan tampilan untuk mencari file dan mencari text pada file. Perintah $locate berfungsi untuk mencari file pada semua direktori dengan format .txt
III - 24
Percobaan 6 Mencari text pada file $ grep Hallo *.txt
Gambar 3.16 Tampilan Text Pada File yang Dicari Analisis Gambar di atas merupakan cara untuk mencari text pada file. Perintah grep ini berfungsi untuk mencari text pada file seperti output pada gambar di atas.
LATIHAN 1. Cobalah urutan perintah berikut : $ cd $ pwd $ ls -al $ cd $ pwd $ cd
..
$ pwd $ ls –al $ cd .. $ pwd $ ls –al $ cd /etc $ pwd
III - 25
Gambar 3.17 Tampilan Nomer 1
Gambar 3.18 Tampilan Nomer 1
Gambar 3.19 Tampilan Nomer 1
Gambar 3.20 Tampilan Nomer 1 Analisis
III - 26
Gambar di atas merupakan jawaban nomor satu $. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ ls – al berfungsi untuk menampilkan isi dari deriktori secara lengkap. $ cd berfungsi untuk kembali ke sebelumnya dari deriktori yang sedang aktif. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ cd.. berfungsi untuk kembali ke direktori sebelumnya. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ ls –al untuk menampilkan direktori semuanya. Perintah $ cd .. untuk kembali ke direktori sebelumnya. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah $ ls –al berfungsi untuk melihat isi deriktori secara lengkap. Perintah $ cd /etc berfungsi untuk pergi ke direktori /etc. Perintah $ pwd berfungsi untuk menampilkan direktori yang sedang aktif.
2. Lanjutkan penelusuran pohon pada sistem file menggunakan cd , ls, pwd dan cat. Telusuri direktori /bin,
/usr/bin,
dan/boot.
/bin
Gambar 3.21 Tampilan Nomer 2
/sbin.
/tmp
III - 27
Gambar 3.22 Tampilan Nomer 2 /usr/bin
Gambar 3.23 Tampilan Nomer 2
Gambar 3.24 Tampilan Nomer 2 /sbin
Gambar 3.25 Tampilan Nomer 2
III - 28
Gambar 3.26 Tampilan Nomer 2 /tmp
Gambar 3.27 Tampilan Nomer 2 /boot
Gambar 3.28 Tampilan Nomer 2 Analisis Gambar di atas merupakan penelusuran direktori menggunakan cara penelusuran pohon pada sistem file menggunakan cd , ls, pwd dan cat. Perintah cd /bin, berfungsi untuk pergi menuju direktori /bin. Perintah ls /bin berfungsi untuk menampilkan deriktori /bin. Perintah pwd berfungsi untuk melihat lokasi direktori yang sedang aktif.
III - 29
Perintah /usr/bin berfungsi untuk pergi ke direktori /usr/bin. Perintah ls /usr/bin berfungsi untuk menampilkan isi dari direktori /usr/bin. Perintah pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah cd /sbin berfungi untuk pergi ke direktori /sbin.
Perintah
ls
/sbin
berfungsi untuk menampilkan isi
direktori ini. Perintah pwd berfungsi untuk menampilkan direktori yang sedang aktif. Perintah cd /tmp berfungsi untuk menuju direktori /tmp. Perintah ls /tmp berfungsi untuk melihat isi direktori ini, perintah pwd /tmp berfungsi untuk menampilkan lokasi direktori yang sedang aktif.perintah cd /boot berfungsi untuk pergi ke direktori /boot. Perintah ls /boot. Berfungsi untuk melihat isi dari direktori /boot. Perintah pwd /boot berfungsi untuk melihat lokasi direktori yang sedang aktif.
3. Telusuri direktori /dev. Identifikasi perangkat yang tersedia. Identifikasi tty (terminal) anda (ketik who am i); siapa pemilih tty anda (gunakan ls – l)
Gambar 3.29 Tampilan Nomer 3
III - 30
Gambar 3.30 Tampilan Nomer 3 Analisis Gambar di atas merupakan penelusuran direktori /dev. Identifikasi perangkat yang tersedia. Identifikasi tty (terminal) anda (ketik who am i); siapa pemilih tty anda (gunakan ls –l). Ketikkan perintah-perintah tersebut kemudian diakhiri dengan perintah ls -l, maka akan muncul output seperti gambar di atas.
III - 31
4. Telusuri direktori
/proc. Tampilkan isi file interrupts,
devices, cpuinfo, meminfo dan uptime menggunakan perintah cat . dapatkah anda melihat mengapa direktori /proc disebut pseudeo – filesystem yang memungkinkan akses ke struktur data kernel ?
Gambar 3.31 Tampilan Nomer 4
III - 32
Gambar 3.32 Tampilan Nomer 4
III - 33
Gambar 3.33 Tampilan Nomer 4
Gambar 3.34 Tampilan Nomer 4
III - 34
Gambar 3.35 Tampilan Nomer 4
Gambar 3.36 Tampilan Nomer 4 Analisis Gambar di atas merupakan soal no 4 yaitu menelusuri direktori direktori /proc. Tampilkan isi file interrupts, devices, cpuinfo, meminfo dan uptime menggunakan perintah cat, dapatkah melihat mengapa direktori /proc disebut pseudeo – filesystem yang memungkinkan akses ke struktur data kernel. Ketikkan perintah-perintah tersebut, maka akan muncul output seperti gambar di atas.
III - 35
5. Ubahlah direktori home ke user lain secara langsung menggunakan cd ~username
Gambar 3.37 Tampilan Nomer 5 Analisis Gambar di atas merupakan soal no 5 yaitu mengubah direktori home ke user lain secara langsung menggunakan cd ~username. Ketikkan perintah-perintah tersebut, maka akan muncul output seperti gambar di atas.
6. Ubah kembali direktori home anda
Gambar 3.38 Tampilan Nomer 6 Analisis Gambar di atas merupakan soal no 6 kebalikan dari nomer 5 yaitu mengubah kembali ke direktori home menggunakan cd ... Ketikkan perintah-perintah tersebut, maka akan muncul output seperti gambar di atas. 7. Buat subdirectory work dan play.
Gambar 3.39 Tampilan Nomer 7 Analisis
III - 36
Gambar di atas perintah untuk membuat subdirectory work dan play didalam direktori pebri dengan perintah mkdir. 8. Hapus subdirectory work
Gambar 3.40 Tampilan Nomer 8 Analisis Gambar di atas merupakan cara untuk menghapus subdirectory work dengan perintah rmdir pada direktori pebri. Setelah dihapus lalu dibuktikan dengan melihat direktori pebri dan direktori work tidak ada artinya telah terhapus.
9. Copy file /etc/passwd ke directory home anda.
Gambar 3.41 Tampilan Nomer 9
III - 37
Analisis Gambar di atas maerupakan cara untuk mengcopy file /etc/passwd ke directory home dengan perintah cp. 10. Pindahkan ke subdirectory play.
Gambar 3.42 Tampilan Nomer 10 Analisis Gambar di atas merupakan perintah untuk memindahkan subdirectory play dengan perintah mv. 11. Ubahlah ke subdirectory play dan buat symbolic link dengan nama terminal yang menunjuk ke perangkat tty. Apa yang terjadi jika melakukan hard link ke perangkat tty?
Gambar 3.43 Tampilan Nomer 11 Analisis Gambar di atas merupakan perintah untuk mengubah ke subdirectory play dan membuat symbolic link dengan nama terminal yang menunjuk ke perangkat tty.
III - 38
12. Buatlah file bernama hello.txt yang berisi kata “hello word”. Dapatkah anda gunakan “cp” menggunakan “terminal” sebagai file asal untuk menghasilkan efek yang sama ?
Gambar 3.44 Tampilan Nomer 12 Analisis Gambar di atas merupakan cara untuk membuat file bernama hello.txt yang berisi kata “hello word”. Kemudian mencoba menggunakan “cp” juga menggunakan “terminal” sebagai file asal untuk menghasilkan efek yang sama. 13. Copy hello.txt ke terminal. Apa yang terjadi?
Gambar 3.45 Tampilan Nomer 13 Analisis Gambar di atas merupakan perintah untuk mengcopy isi file hello.txt ke terminal dan cat terminal berfungsi untuk melihat isi file dari terminal. 14. Masih directory home, copy keseluruhan subdirectory play ke directory bernama work menggunakan symbolic link.
Gambar 3.46 Tampilan Nomer 14
III - 39
Analisis Gambar di atas merupakan perintah yang masih di directory home, mengcopy keseluruhan subdirectory play ke directory bernama work menggunakan symbolic link. 15. Hapus subdirectory work dan isinya dengan satu perintah.
Gambar 3.47 Tampilan Nomer 15 Analisis Gambar di atas merupakan cara untuk menghapus subdirectory work dan isinya dengan satu perintah.
BUATLAH LAPORAN PRAKTIKUM 1. Analisa hasil percobaan 1-6 yang anda lakukan a. Analisa hasil tampilannya. Sudah di kerjakan di atas b. Pada Percobaan 1 point 3 buatlah pohon dari struktur file dan direktori
c. Bila terdapat pesan error, jelaskan penyebabbnya. 2. Kerjakan latihan diatas dan analisa hasil tampilannya. Sudah di kerjakan di atas
IV - 1
MODUL 4 Proses dan Manajemen Proses
4.1 Tujuan Praktikum 1. Mengetahui proses dan manajemen proses pada sistem operasi Linux. 2. Mengetahui konsep proses pada sistem operasi Linux. 3. Menggunakan perintah-perintah proses dan manajemen proses. 4. Menerapkan proses dan manajemen proses dalam program.
4.2 Resume 1. Perintah Dasar dalam Manajemen Pemrosesan
Menampilkan proses-proses yang sedang berjalan : ps aux
Menampilkan daftar perangakt yang ditancapkan di port USB : lsusb
Membersihkan tampilan terminal : clear
Kalkulator di dalam terminal : bc
Menampilkan lamanya sistem telah berjalan : uptime
Menampilakn daftar hardware : lshw
Mematikan sistem : shutdown/halt
Merestart sistem : reboot
2. Manajemen Proses Proses adalah program yang sedang dieksekusi. Di Linux, setiap program merupakan proses. Proses dapat diciptakan dan dapat pula dimusnahkan.
3. Terdapat 4 konsep dasar manajemen proses :
Multiprogramming, salah satu teknik penjadwalan dimana tugas (task) yang sedang berjalan tetap berjalan sampai ia melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar (external event)
Pseudoparallelism, eksekusi proses secara paralel pada sistem
IV - 2
Multiprcessing,
kemampuan
pemrosesan
komputer
yang
dilakukan secara serentak.
Distributed Processing, Mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi.
4. Operasi – operasi pada Proses :
Penciptaan proses (create a process). Penghancuran/terminasi proses (destroy a process). Penundaan proses (suspend a process). Pelanjutan kembali proses (resume a process). Mem-block proses. Membangunkan proses. Menjadwalkan proses. Komunikasi Antar Proses.
5. Perintah-perintah proses di linux :A
ps : digunakan untuk melihat kondisi proses yang ada
ps u : Untuk melihat faktor/elemen lainnya
ps -u : Mencari proses yang spesifik untuk pemakai
ps –a : Mencari proses lainnya gunakan opsi a, au dan aux
top : Melihat proses yang sedang berjalan
ps -eH : Menampilkan hubungan proses parent dan child
ps -eF : Menampilkan hubungan proses parent dan child serta letak prosesnya
pstree : Menampilkan semua proses pada sistem dalam bentuk hirarki parent/child
kill %: Menghentikan suatu proses/job
renice : Mengubah prioritas suatu proses
IV - 3
6. KONSEP PROSES PADA SISTEM OPERASI LINUX Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas system atau program aplikasi dari shell, satu atau lebih proses “child” akan dibuat shell sesuai perintah yang diberikan. Setiap kali instruksi diberikan pada linux shell, maka kernel akan menciptakan sebuah proses-id. Proses ini disebut juga dengan terminologi Unix sebagai sebuah job. Proses Id (PID) dimulai dari 0, yaitu proses INIT, kemudian diikuti oleh proses berikutnya (terdaftar pada /etc/inittab). Beberapa tipe proses : Foreground Proses yang diciptakan oleh pemakai langsung pada terminal (Interaktif, dialog). Batch Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Proses Batch tidak diasosiasikan (berinteraksi) dengan terminal. Daemon Proses yang menunggu permintaan (request) dari proses lainya dan menjalankan tugas sesuai dengan permintaan tersebut. Bila tidak request, maka program ini akan berada dalam kondisi “idle” dan tidak menggunakan waktu hitung CPU. Umumnya nama proses daemon di Linux berakhiran d, misalnya inetd, named,popd dll.
IV - 4
2. SINYAL Proses dapat mengirim dan menerima sinyal dari dan ke proses yang lainnya. Proses mengirim sinyal melalui instruksi “kill” dengan format: kill [-nomor sinyal] PID. Nomor sinyal : 1 s/d maksimum nomor sinyal yang didefinisikan system standar nomor sinyal diantaranya : No
Nama
Deskripsi
Sinyal 1
SIGHUP
Hang up, sinyal dikirim bila proses terputus, misalnya melalui putusnya hubungan modem.
2
SIGINT
Sinyal interrupt, melalui ^C
3
SIGQUIT
Sinyal quit melalui ^\
9
SIGKILL
Sinyal kill, menghentikan proses
15
SIGTERM Sinyal terminal software
3. MENGIRIM SINYAL Mengirim sinyal merupakan suatu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang berjalan bahwa ada sesuatu yang harus dikendalikan. Berdasarkan sinyal yang dikirim maka proses dapat beraksi dan administrator/programmer dapat menentukan reaksi tersebut. Mengirim sinyal menggunakan instruksi kill [-nomor sinyal] PID. Sebelum mengirimn sinyal PID proses yang akan dikirim harus diketahui terlebih dahulu.
4. MENGONTROL PROSES PADA SHELL Shell menyediakan fasilitas job control yang memungkinkan mengontrol beberapa job atau proses yang sedang berjalan pada waktu yang sama. Misalnya bila melakukan pengeditan file teks dan ingin melakukan interrupt pengeditan untuk mengerjakan hal lainya. Bila selesai, dapat kembali (switch) ke editor dan melakukan pengeditan file teks kembali. Job
IV - 5
bekerja pada Foreground atau background. Pada foreground hanya digunakan untuk satu job pada satu waktu. Job pada Foreground akan mengontrol shell, menerima input dari keyboard dan mengirim output ke layar. Job pada background tidak menerima input dari terminal, biasanya berjalan tanpa memerlukan interaksi. Job pada foreground kemungkinan dihentikan sementara (suspend), dengan menekan [Ctrl-Z]. Job yang dihentikan sementara dapat dijalankan kembali pada foreground atau background sesuai keperluan dengan menekan “fg” atau “bg”. Sebagai catatan, menghentikan job sementara sangat berbeda dengan melakukan interrupt job (biasanya menggunakan [Ctrl-C]), dimana job yang di interrupt akan dimatikan secara permanen dan tidak dapat dijalankan lagi.
5. MENGONTROL PROSES LAIN Perintah ps dapat digunakan untuk menunjukan semua proses yang sedang berjalan pada mesin (bukan hanya proses pada shell saat ini) dengan format : ps –fae atau ps –aux Beberapa versi Unix mempunyai utilitas sistem yang disebut top yang menyediakan cara interaktif untuk memonitor aktifitas sistem. Statistik secara detail dengan proses yang berjalan ditampilkan dan secara terusmenerus di-refresh. Proses dilakukan secara terurut dari utilitas CPU. Kunci yang berguna pada top adalah : s –set update frequency u –display proses dar satu user k –kill proses(dengan PID) q –quit Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada sistem UNIX adalah perintah killall. Perintah ini akan menghentikan proses sesuai PID atau job number proses. Login sebagai user, bukalah
IV - 6
Console Terminal dan lakukan percobaan-percobaan dibawah ini kemudian selesaikan soal-soal latihan !
4.3 Hasil dan Pembahasan Percobaan 1 : Status Proses 1. Pindah ke command line (tty2) dengan menekan Ctl+Alt+F2 & login ke sebagai user. Analisis Perintah ini merupakan cara untuk pindah ke command line (tty2). Setelah melakukan perintah Ctl+Alt+F2 maka user akan diminta untuk login, dengan memasukan username dan pasword.
2. Intruksi ps (process status). PID adalah Nomor Identitas Proses, TTY adalah nama terminal dimana proses tersebut aktiv, STAT berisi S (Sleeping) dan R (Running), COMMAND merupakan instuksi yang digunakan $ ps Analisis Perintah diatas merupakan cara untuk melihat status pemrosesan. COMMAND yang digunakan $ ps, maka akan muncul output tampilan PID, TTY, TIME, dan CMD. PID adalah Nomor Identitas Proses, TTY adalah nama terminal dimana proses tersebut aktiv, STAT berisi S (Sleeping) dan R (Running).
3. Untuk melihat faktor elemn lainya, gunakan option (user). %CPU adalah persentasi CPU time yang digunakan oleh proses tersebut, %MEM adalah persentasi memori yang digunakan proses, SIZE adalah jumlah memori yang digunakan, RSS (Real System Storage) adalah jumlah memori yang digunakan, START adalah kapan proses tersebut diaktivkan $ ps –u Analisis Percobaan diatas merupakan status proses untuk melihat faktor elemen lainya, gunakan option (user) dengan perintah $ ps –u, maka akan dimulai
IV - 7
dari START, adalah kapan proses tersebut diaktivkan. Lalu, %CPU adalah persentasi CPU time yang digunakan oleh proses tersebut. Lalu, %MEM adalah persentasi memori yang digunakan proses. Lalu, SIZE adalah jumlah memori yang digunakan. Lalu, RSS (Real System Storage) adalah jumlah memori yang digunakan. Perintah ini diibaratkan seperti task manager proses pada window.
4. Mencari proses yang spesifik pemakai. Proses diatas hanya terbatas pada proses milik pemakai, dimana pemakai tersebut melakukan login $ ps – u(user) Analisis Percobaan diatas merupakan cara untuk mencari atau melihat proses yang spesifik pada sebuah user. Setelah pemakai melakukan login dan mengetikan perintah ini $ ps –u(user), maka akan muncul output proses. 5. Mencari proses lainya gunakan opsi a(all) dan au(all user) $ ps –a $ ps –au Analisis Percobaan diatas merupakan cara untuk menampilkan atau mencari suatu proses, opsi a(all) dan au(all user) $ ps –a $ ps –au, maka akan muncul output proses dengan proses semua user terlihat.
6. Logout dan tekan Alt+F7 untuk kembali ke mode grafis. Analisis Percobaan diatas berfungsi untuk keluar dari mode command line, untuk kembali ke metode grafis. Dengan menekan Alt+F7 maka mode tersebut terlogout.
IV - 8
Percobaan 2 : Menampilkan Hubungan Proses Parent dan Child 1. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 & login sebagai user. Analisis Perintah ini merupakan cara untuk pindah ke command line (tty2). Setelah melakukan perintah Ctl+Alt+F2 maka user akan diminta untuk login, dengan memasukan username dan pasword. 2. Ketik ps –eH dan tekan Enter. Opsi e memilih semua proses dan opsi H menghasilkan tampilan proses secara hierarki. Proses child muncul dibawah proses parent. Proses child ditandai dengan awalan beberapa spasi. $ ps – eH Analisis Percobaan diatas merupakan cara untuk menampilkan hubungan parent dan child. Perintah ps –eH menghasilkan tampilan proses secara hierarki. Proses child muncul dibawah proses parent. Proses child ditandai dengan awalan beberapa spasi. 3. Ketik ps -e f dan tekan Enter. Tampilan serupa dengan langkah 2. Opsi -f akan menampilkan status proses dengan karakter grafis (\ dan _) $ ps –e f Analisis Percobaan diatas merupakan cara untuk menampilkan hubungan parent dan child. Perintah ps -e f berfungsi untuk menampilkan status proses dengan karakter grafis. Sehingga outputnya seperti alamat exploler pada window.
IV - 9
4. Ketik pstree dan tekan Enter. Akan ditampilkan semua proses pada sistem dalam bentuk hirarki parent/child. Proses parent disebelah kiri proses child. Sebagai contoh proses init sebagai parent (ancestor) dari semua proses pada sistem. Beberapa child dari init mempunyai child. Proses login mempunyai i proses bash sebgai child. Proses bash mempunyai proses startx. Proses startx mempunyai child xinit dan seterusnya. $ pstree Analisis Percobaan diatas merupakan cara untuk menampilkan Perintah dari $ pstree. Perintah ini berfungsi untuk menampilkan informasi suatu proses dengan digambarkan dalam bentuk pohon.
5. Ketik pstree | grep mingetty dan tekan Enter. Akan menampilkan semua proses mingetty yang berjalan pada sistem yang berupa console virutual. Selain menampilkan semua proses dikelompokan dalam satu baris dengan satu angka sebagai jumlah proses yang berjalan. $ pstree | grep mingetty Analisis Percobaan diatas merupakan cara untuk menampilkan hubungan parent dan child. Perintah pstree | grep mingetty berfungsi untuk menampilkan semua proses mingetty yang berjalan pada sistem yang berupa console virutual. Selain menampilkan semua proses dikelompokan dalam satu baris dengan satu angka sebagai jumlah proses yang berjalan. 6. Untuk melihat semua PID untuk proses gunakan semua opsi –p . $ pstree –p Analisis Percobaan diatas merupakan cara untuk menampilkan hubungan parent dan child. Untuk melihat semua PID maka perintah yang digunakan $ pstree –p.
IV - 10
7. Untuk menampilkan proses dan ancestor yang tercetak tebal gunakan opsi h. $ pstree –h Analisis Percobaan diatas merupakan cara untuk menampilkan hubungan parent dan child. Untuk menampilkan proses dan ancestor yang tercetak tebal gunakan opsi -h. $ pstree –h.
PERCOBAAN 3 : Menampilkan Status Proses dengan Berbagai Format 1. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 & login sebagai user. Analisis Perintah ini merupakan cara untuk pindah ke command line (tty2). Setelah melakukan perintah Ctl+Alt+F2 maka user akan diminta untuk login, dengan memasukan username dan pasword.
2. Ketik ps -e | more dan kemudian tekan Enter. Opsi -e menampilkan semua proses dalam bentuk 4 kolom : PID, TTY, TIME dan CMD. $ ps -e | more Jika halaman penuh terlihat prompt --More—dibagian bawah screen, tekan q untuk kembali ke prompt perintah. Analisis Percobaan diatas merupakan cara untuk menampilkan status proses dengan berbagai format. Opsi -e menampilkan semua proses dalam bentuk 4 kolom : PID, TTY, TIME dan CMD, Jika halaman penuh terlihat prompt --More—dibagian bawah screen, tekan q untuk kembali ke prompt perintah.
IV - 11
3. Ketik ps ax | more dan tekan Enter. Opsi a akan menampilkan semua proses yang dihasilkan terminal (TTY). Opsi x menampilkan semua proses yang tidak dihasilkan terminal. Secara logika opsi ini sama dengan opsi -e . Terdapat 5 kolom : PID, TTY, STAT, TIME, dan COMMAND. $ ps ax | more Jika halaman penuh terlihat prompt --More—dibagian bawah screen, tekan q untuk kembali ke prompt perintah. Analisis Percobaan diatas merupakan cara untuk menampilkan status proses dengan berbagai format. Opsi a akan menampilkan semua proses yang dihasilkan terminal (TTY). Opsi x menampilkan semua proses yang tidak dihasilkan terminal. Secara logika opsi ini sama dengan opsi -e . Terdapat 5 kolom : PID, TTY, STAT, TIME, dan COMMAND, Jika halaman penuh terlihat prompt --More—dibagian bawah screen, tekan q untuk kembali ke prompt perintah.
4. Ketik ps -e f | more dan tekan Enter. Opsi -e f akan menampilkan semua proses dalam semua format daftar penuh. $ ps -ef | more Analisis Percobaan diatas merupakan cara untuk menampilkan status proses dengan berbagai format. Opsi -e f akan menampilkan semua proses dalam semua format daftar penuh. Jika halaman penuh terlihat prompt --More— dibagian bawah screen, tekan q untuk kembali ke prompt perintah.
IV - 12
5. Ketik ps -eo pid, cmd | more dan tekan Enter. Opsi -eo akan menampilkan semua proses dalam format sesuai definisi user yaitu terdiri dari kolom PPID dan CMD. $ ps –eo pid, cmd | more Jika halaman penuh terlihat prompt --More—dibagian bawah screen, tekan q untuk kembali ke prompt perintah. Analisis Percobaan diatas merupakan cara untuk menampilkan status proses dengan berbagai format. Opsi -eo akan menampilkan semua proses dalam format sesuai definisi user yaitu terdiri dari kolom PPID dan CMD. Jika halaman penuh terlihat prompt --More—dibagian bawah screen, tekan q untuk kembali ke prompt perintah.
6. Ketik ps -eo
pid,ppid,%mem,cmd | more dan tekan Enter. Akan
menapilkan kolom PID, PPID, dan %MEM. PPID adalah proses ID dari proses parent. %MEM menampilkan persentasi memori system yang digunakan proses. Jika proses hanya menggunakan sedikit memory system akan ditampilkan 0. $ ps -eo pid,ppid,%mem,cmd | more Analisis Percobaan diatas merupakan cara untuk menampilkan status proses dengan berbagai format. Perintah ps -eo pid,ppid,%mem,cmd | more Akan menapilkan kolom PID, PPID, dan %MEM. PPID adalah proses ID dari proses parent. %MEM menampilkan persentasi memori system yang digunakan proses. Jika proses hanya menggunakan sedikit memory system akan ditampilkan 0. Jika halaman penuh terlihat prompt --More— dibagian bawah screen, tekan q untuk kembali ke prompt perintah.
IV - 13
7. Logout dan tekan Alt+F7 untuk kembali ke mode grafis. Analisis Percobaan diatas berfungsi untuk keluar dari mode command line, untuk kembali ke metode grafis. Dengan menekan Alt+F7 maka mode tersebut terlogout.
Percobaan 4 : Mengontrol proses data shell 1. Pindah ke command line terminal (tty2) dengan menekan Ctrl+Alt+F2 & login sebagai user. Analisis Perintah ini merupakan cara untuk pindah ke command line (tty2). Setelah melakukan perintah Ctl+Alt+F2 maka user akan diminta untuk login, dengan memasukan username dan pasword.
2. Gunakan perintah yes yang mengirim output y yang tidak pernah berhenti. $ yes Analisis Percobaan diatas merupakan cara untuk mengontrol proses data shell. Menggunakan perintah yes yang mengirim output y yang tidak pernah berhenti.
3. Belokan standar output ke /dev/null. $ yes > /dev/null Analisis Percobaan diatas merupakan cara untuk mengontrol proses data shell. Dengan membelokkan standar output ke /dev/null dengan perintah $ yes > /dev/null.
IV - 14
4. Salah satu cara agar perintah yes tetap dijalankan tetapi shell tetap digunakan untuk hal yang lain dengan meletakan proses pada background dengan menambah karakter & pada akhir perintah. $ yes /dev/null & Angka dalam “[ ]” merupakan job number diikuti PID. Analisis Percobaan diatas merupakan cara untuk mengontrol proses data shell. satu cara agar perintah yes tetap dijalankan tetapi shell tetap digunakan untuk hal yang lain dengan meletakan proses pada background dengan menambah karakter & pada akhir perintah. Perintah $ yes /dev/null &. Angka dalam “[ ]” merupakan job number diikuti PID.
5. Untuk melihat status proses gunakan perintah jobs. $ jobs Analisis Percobaan diatas merupakan cara untuk mengontrol proses data shell. Untuk melihat status proses gunakan perintah jobs, perintah ini seperti proses pada task manager di window.
6. Untuk menghentikan job, gunakan perintah kil diikuti job number atau PID proses. Untuk identifikasi job number, diikuti prefix dengan karakter “%”. $ kill % contoh : kill %1 Analisis Percobaan diatas merupakan cara untuk mengontrol proses data shell. Untuk menghentikan job, gunakan perintah kil diikuti job number atau PID proses. Untuk identifikasi job number, diikuti prefix dengan karakter “%”.
7. Lihat status job setelah diterminasi. $ jobs Analisis Percobaan diatas merupakan cara untuk mengontrol proses data shell. Untuk melihat status job setelah diterminasi gunakan perintah $ jobs.
IV - 15
Percobaan 5 : Menghentikan dan memulai kembali job 1. Cara lain meletakan job pada background dengan memulai job secara normal (pada foreground), stop job dan memulai lg pada background. $ yes > /dev/null Hentikan sementara job (suspend), bukan menghentikanya (terminate), tetapi menghentikan sementara job sampai di restart. Untuk menghentikan sementara job gunakan Ctrl-Z. Analisis Percobaan diatas merupakan cara untuk menghentikan dan memulai kembali job. Cara lain meletakan job pada background dengan memulai job secara normal (pada foreground), stop job dan memulai lg pada background. Hentikan sementara job (suspend), bukan menghentikanya (terminate), tetapi menghentikan sementara job sampai di restart. Untuk menghentikan sementara job gunakan Ctrl-Z.
2. Untuk restart job pada foreground, gunakan perintah fg. $ fg Analisis Percobaan diatas merupakan cara untuk menghentikan dan memulai kembali job. Untuk restart job pada foreground, gunakan perintah fg.
3. Shell akan menampilkan nama perintah yang diletakan di foreground. Stop job lagi dengan Ctrl-Z. Kemudian gunakan perintah bg untuk meletakan job pada background. $ bg Job tidak bisa dihentikan dengan Ctrl-Z karena job berada pada background. Untuk menghentikanya letakan job pada foreground dengan fg dan kemudian hentikan sementara dengan Ctrl-Z. $ fg Analisis Percobaan diatas merupakan cara untuk menghentikan dan memulai kembali job. Shell akan menampilkan nama perintah yang diletakan di foreground. Stop job lagi dengan Ctrl-Z. Kemudian gunakan perintah bg
IV - 16
untuk meletakan job pada background. Job tidak bisa dihentikan dengan Ctrl-Z karena job berada pada background. Untuk menghentikanya letakan job pada foreground dengan fg dan kemudian hentikan sementara dengan Ctrl-Z.
4. Job pada background dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan jika mengerjakan job lain. $ yes & Untuk menghentikanya tidak dapat menggunakan Ctrl-C. Job harus dipindah ke foreground, baru dihentikan dengan cara tekan fg dan tekan Enter. Kemudian lanjutkan dengan Ctrl-Z untuk menghentikan sementara. Analisis Percobaan diatas merupakan cara untuk menghentikan dan memulai kembali job. pada background dapat digunakan untuk menampilkan teks pada terminal, dimana dapat diabaikan jika mengerjakan job lain. Untuk menghentikanya tidak dapat menggunakan Ctrl-C. Job harus dipindah ke foreground, baru dihentikan dengan cara tekan fg dan tekan Enter. Kemudian lanjutkan dengan Ctrl-Z untuk menghentikan sementara.
5. Apabila ingin menjalankan banyak job dalam satu waktu, letakan job pada foreground atau beckground dengan memberikan job ID $ fg %2 atau $ %2 $ bg %2 Analisis Percobaan diatas merupakan cara untuk menghentikan dan memulai kembali job. Apabila ingin menjalankan banyak job dalam satu waktu, letakan job pada foreground atau beckground dengan memberikan job ID.
IV - 17
6. Tekan fg dan tekan Enter, kemudian lanjutkan dengan Ctrl-Z untuk menghentikan sementara. Analisis Setelah menggunakan perintah $ fg %2 atau $ %2 dan $ bg %2 diatas kemudian Tekan fg dan tekan Enter, kemudian lanjutkan dengan Ctrl-Z untuk menghentikan sementara. 7. Lihat job dengan perintah ps –fae dan tekan Enter. Kemudian hentikan proses dengan perintah kill. $ ps –fae Analisis Percobaan diatas merupakan cara untuk yaitu menghentikan dan memulai kembali job. Untuk job dengan perintah ps –fae dan tekan Enter. Kemudian hentikan proses dengan perintah kill.
$ kill -9 Analisis Percobaan diatas merupakan cara untuk menghentikan dan memulai kembali job. Perintah $ kill -9 perintah ini berfungsi untuk memberhentikan prosesperintah ini berfungsi untuk memberhentikan proses, tetapi pada proses ini akses nya tidak diizinkan.
8. Logout dan tekan Alt+F7 untuk kembali kemode grafis. Analisis Percobaan diatas berfungsi untuk keluar dari mode command line, untuk kembali ke metode grafis. Dengan menekan Alt+F7 maka mode tersebut terlogout.
IV - 18
4.3 Latihan
1.
Masuk ke tty2 dengan CTRL+ALT+F2 Ketik ps –au dan tekan Enter. Kemudian perhatikan keluaran sebagai berikut : Analisis Perintah diatas merupakan cara untuk memindahkan mode ke command line terminal tty2.
a.
Sebutkan nama-nama proses yang bukan root Analisis Dilihat dari hasil perintah $ps –au, nama-nama proses yang bukan root diantaranya yaitu Avahi, dan colord.
b.
Tulis PID dan COMMAND dari proses yang paling banyak menggunakan CPU time Analisis Dilihat dari hasil perintah $ps –au, proses yang paling banyak menggunakan CPU time yaitu dengan PID 4180 dan Command /usr/bin/gnome-shell.
c.
Sebutkan buyut proses dan PID dari proses tersebut Analisis Dilihat dari hasil perintah $ps –au, Buyut proses tersebut adalah : /usr/bin/gnome-shell.
d.
Sebutkan beberapa proses daemon Analisis : Dilihat dari hasil perintah $ps –au, proses demon diantaranya ibusdaemon dan dbus daemon.
IV - 19
e.
Pada prompt login lakukan hal-hal berikut : $ csh $ who $ bash $ ls $ sh $ ps
Analisis Perintah $ csh berfungsi untuk membuat C shell, perintah $ who berfungsi untuk menampilkan user yang sedang aktif, perintah $ bash berfungsi untuk menampilkan file yang terdapat pada direktori aktif, perintah $ ls berfungsi untuk menampilkan file yang terdapat pada direktori aktif, perintah $ sh berfungsi untuk memasuki shell, perintah $ ps berfungsi untuk menampilkan melihat kondisi proses yang ada. f.
Sebutkan PID yang paling besar, kemudian buat urutan-urutan proses sampai ke PPID = 1. Analisis : Dilihat dari hasil perintah sh, PID paling besar hingga terkecil adalah : PPID : 5108, CMD : ps PPID : 5107, CMD : sh PPID : 5071, CMD : bash PPID : 5025, : CMD : bash
IV - 20
2.
Cobalah format tampilan ps dengan opsi berikut dan perhatikan hasil tampilannya : a.
–f
daftar penuh
Analisis Dilihat dari hasil percobaan perintah ps –f, hasilnya menampilkan proses sistem dalam daftar penuh yang berisi UID, PID, PPID, C, STIME, TTY, TIME, CMD.
b.
–j
format job
Analisis Dilihat dari hasil percobaan perintah ps –j, hasilnya menampilkan proses sistem dalam bentuk format job, yang berisi PID, PGID, SID, TTY, TIME, CMD.
c.
J
format job control
Analisis Dilihat dari hasil percobaan perintah ps J, hasilnya menampilkan proses sistem dalam bentuk format job kontrol, hasilnya berisi job yang lebih detail yang berisi PPID, PID, PGID, SID, TTY, TPGID, STAT, UID, TIME, COMMAND.
d.
L
daftar memanjang
Analisis Dilihat dari hasil percobaan perintah ps L, hasilnya menampilkan proses sistem dalam bentuk daftar memanjang hasilnya berisi F, UID, PID, PPID, PRI, NI, VSZ, RSS, WCHAN, STAT, TTY, TIME, COMMAND.
IV - 21
e.
S
format sinyal
Analisis Dilihat dari hasil percobaan perintah ps S, hasilnya menampilkan proses sistem dalam bentuk format sinyal, hasilnya berisi UID, PID, PENDING, BLOCKED, IGNORED, CAUGHT, STAT, TTY, TIME, COMMAND.
f.
v
format virtual memory
Analisis Dilihat dari hasil percobaan perintah ps v, hasilnya menampilkan proses sistem dalam bentuk Virtual memory, hasilnya berisi PID, TTY, STAT, TIME, MAJFL, TRS, DRS, RSS, %MEM, COMMAND.
g.
X
format register i386
Analisis Dilihat dari hasil percobaan perintah ps X, hasilnya menampilkan proses sistem dalam bentuk format register i368, hasilnya berisi PID, STACKP, ECP, EIP, TMOUT, ALARM, STAT, TTY, TIME, COMMAND.
3.
Lakukan urutan pekerjaan berikut : a.
Gunakan perintah find ke seluruh direktori pada system, belokkan output sehingga daftar direktori dialihkan ke file directories.txt dan daftar pesan error dialihkan ke file errors.txt Analisis Dilihat dari hasil perintah find / >direktories | grep error > error.txt berfungsi untuk membelokkan standar output berupa daftar direktori kedalam file directories.txt, kemudian error yang ada dibelokan kedalam file errors.txt.
IV - 22
b.
Gunakan perintah sleep 5. Apa yang terjadi dengan perintah ini? Analisis Dilihat dari hasil perintah sleep 5 yaitu digunakan untuk menghentikan proses job pada terminal selama 5 detik.
c.
Jalankan perintah background menggunakan & Analisis Dilihat dari hasil perintah sleep 5 & yaitu digunakan untuk memulai kembali job.
d.
Jalankan sleep 15 pada foreground, hentikan sementara dengan CTRL +Z dan kemudian letakkan pada background dengan bg. Ketikkan jobs. Ketikkan ps. Kembaliakn job ke foreground dengan perintah fg. Analisis Dilihat dari hasil perintah sleep 15 yaitu berfungsi untuk menghentikan proses job pada terminal selama 15 detik. Perintah CTRL+Z digunakan untuk menghentikan proses yang bersifat sementara.
e.
Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan perintah kill untuk menghentikan proses diikuti job number. Analisis Dilihat dari hasil perintah perintah sleep 15 & digunakan untuk memulai kembali job pada background. Perintah kill %1 digunakan untuk menghentikan proses pada job kesatu.
IV - 23
f.
Jalankan sleep 15 pada background menggunakan & dan kemudian gunakan perintah kill untuk menghentikan sementara proses. Gunakan bg untuk melanjutkan menjalankan proses. Analisis Dilihat dari hasil perintah sleep 15 & digunakan untuk memulai kembali job pada background. Perintah kill digunakan untuk menghentikan semua proses, sedangkan perintah bg, digunakan untuk meletakan perintah pada background dan melanjutkan kembali perintah sleep 15&.
g.
Jalankan sleep 60 pada background 5 kali dan terminasi semua pada dengan mengunakan perintah kill all. Analisis Dilihat dari hasil perintah sleep 60 & sebanyak lima kali yaitu berfungsi untuk menjalankan job satu sampai lima dengan PID yang berbeda-beda. Kemudian perintah killall sleep yaitu digunakan untuk menghentikan semua job.
h.
Gunakan perintah ps, w dan top untuk menunjukkan proses yang sedang dieksekusi. Analisis Dilihat dari hasil perintah ps menunjukan proses status yang sedang aktif. Perintah w, menunjukan siapa saja user yang aktif. Perintah top, digunakan untuk menunjukkan semua proses yang sedang dieksekusi.
IV - 24
i.
Gunakan perintah ps –aeH untuk menampilkan hierarki proses. Carilah init proses. Apakah Anda bisa identifikasi system daemon yang penting? Dapatkah Anda identifikasi shell dan subproses? Analisis Dilihat dari hasil perintah ps –aeH yaitu menampilkan proses secara hirarki. Dimulai dari PID 2728 hingga PID 5462 didalam terminal tty3 terdapat comand yang memiliki sub sub proses.
j.
Kombinasikan ps –fae dan grep, apa yang anda lihat? Analisis Dilihat dari hasil perintah ps –fae | grep pebri.ramdani mengarahkan pada
proses
yang
bernama
pebri.ramdani.
dan
tampilan
pebri.ramdani berwarna merah.
k.
Jalankan proses sleep 300 pada background. Log off computer dan log in kembali. Lihat daftar semua proses yang berjalan. Apa yang terjadi pada proses sleep? Analisis Dilihat dari hasil perintah sleep 300 & yaitu digunakan untuk menghentikan proses pada terminal selama 300 detik, setelah komputer log off dan in kembali, proses sleep masih terus berjalan apabila waktunya belum habis. Sedangkan apabila melakukan log off pada mode GUI, proses sleep tidak berjalan lagi meskipun waktunya belum habis.
V - 1
MODUL 5 Bekerja Dengan Bash Shell
5.1 Tujuan Praktikum 1. Mengetahui proses dan manajemen proses pada sistem operasi Linux. 2. Mengetahui konsep proses pada sistem operasi Linux. 3. Menggunakan perintah-perintah proses dan manajemen proses. 4. Menerapkan proses dan manajemen proses dalam program.
5.2 Resume 1. SHELL Shell adalah sebuah program yang membaca input standar yaitu keyboard. Ketika kita mengetikkan sesuatu di keyboard maka shell akan menafsirkan apa yang kita ketikkan. Sebagai contoh apabila kita ketikkan ls pada shell dan ls ternyata merupakan program yang dapat di eksekusi maka shell akan menjalankan program tersebut. Misal : antoro@drutz:~$ ls test antoro@drutz:~$ hello bash: hello: command not found antoro@drutz:~$
Kita dapat melihat bahwa ketika ls kita ketikkan maka program ls dijalankan, sedangkan apabila kita jalankan hello dan karena memang tidak ada program hello maka shell tidak dapat mengeksekusinya.
V - 1
V - 2
Jenis-Jenis Shell Jenis shell yang digunakan di unix maupun linux banyak macamnya, tetapi dilihat dari segi kuantitas pemakainya shell yang banyak dipakai adalah sebagai berikut :
Bourne shell (sh)
C shell (csh)
Korn shell (ksh)
Bourne Again shell (bash)
Yang paling banyak di gunakan adalah bash, dimana bash ini merupakan pengembangan dari sh dan ksh. Mayoritas distribusi linux saat ini menggunakan bash sebagai default shell-nya.
2. PROFILE Pada saat kita login dan memulai sebuah session baru bash shell, maka bash akan menjalankan file /etc/profile, .profile, /etc/bash.bashrc .bashrc. File /etc/profile dan /etc/bash.bashrc digunakan untuk semua user yang ada, jika kita melakukan modifikasi file ini maka akan ber-efek pada semua user yang bisa login kedalam system. Sedangkan .profile dan .bashrc hanya terdapat pada masing-masing home direktori dari user yang bersangkutan. File /etc/profile dan .profile hanya akan dieksekusi oleh login shell, jika dalam session aktif kita menjalankan perintah $ bash maka file .profile tidak akan dijalankan, agar .profile dijalankan kita harus menggunakan perintah. $ bash --login Perintah ini berguna untuk melihat hasil dari file .profile yang dimodifikasi tanpa harus logout dari session. Sekarang kita akan mencoba memodifikasi file .profile, buka dengan teks editor, dan tambahkan baris berikut dibagian paling bawah date simpan hasil perubahan tersebut, kemudian jalankan perintah berikut
V - 3
$ bash --login Tue Nov 13 20:55:13 WIT 2007 Untuk keluar ketik perintah $ logout Modifikasi seperti merubah prompt shell secara permanen, mode editing yang digunakan oleh shell bisa ditempatkan pada file .profile. Untuk interaktif session yang bukan login session, maka bash akan melihat pada file /etc/bash.bashrc dan .bashrc. Pada .bashrc, umumnya digunakan untuk menempatkan sebuah fungsi alias bagi sebuah command, misalnya alias ls=‟ls –qF‟. Pada distro Ubuntu, file .bashrc ini juga dijalankan pada waktu login session, hal ini bisa dilihat pada file .profile di Ubuntu terdapat baris berikut # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f ~/.bashrc ]; then . ~/.bashrc fi fi .bash_logout merupakan file yang dijalankan pada saat kita logout dari session bash shell. Jika kita ingin menghapus isi direktori tertentu pada saat logout, maka perintah tersebut harus ditempatkan pada file .bash_logout. Sedangkan .bash_history berisikan command-command yang pernah kita input pada shell.
3. HISTORY Semua perintah-perintah yang sudah pernah anda ketikkan, akan disimpan ke dalam history. Untuk menampilkan anda bisa menggunakan perintah history. Secara default perintah-perintah yang bisa ditampung dalam history
adalah
1000
perintah,
untuk
konfigurasi
berada
pada
/home/user/.bashrc pada baris “export HISTSIZE=1000” . Penyimpanan file
V - 4
history biasanya disimpan secara default berada pada /home/user/ dengan nama file .bash_history (jika menggunakan shell bash), .zsh_history(jika menggunakan shell zsh). 4. BASH –SCRIPT Bash-script adalah file yang berisi koleksi program yang dapat dieksekusi. Untuk eksekusi bash-script gunakan . sebelum file bash-script yang berarti eksekusi shell dan tanda ./ berarti file bash-script berada pada directori actual.
5. JOB CONTROL Job adalah sebuah eksekusi program yang diberikan kepada karnel. Sebuah job dianggap selesai, bila eksekusi program tersebut berakhir. Eksekusi Job adalah sama dengan eksekusi program, baik proses Background maupun proses Foreground.
6. EDITOR vi/vim vi merupakan teks editor yang pertama kalinya dibuat untuk UNIX, dimana teks editor ini sangat sederhana, memiliki ukuran yang kecil tapi mempunyai fungsionalitas yang besar. Saat ini banyak versi dari vi yang ada seperti nvi, vim, vile, elvis. Pada GNU/Linux umumnya menggunakan vim yang diciptakan oleh Bram Moolenar's berdasarkan vi. Pada Ubuntu saat kita mengetikkan vi atau vim pada shell, maka program yang dijalankan adalah sama yaitu vim. VIM merupakan singkatan dari VI Improved, dimana vim memiliki fitur seperti multiple undo yang tidak terdapat pada vi versi lama. Untuk memulai vi/vim pada shell (jika menggunakan GUI, jalankan gnometerminal) bisa dengan cara vi vi options file vi options +num file vi adalah full screen editor, artinya editor tersebut dapat memanfaatkan fasilitas satu layar penuh. Vi mempunyai 2 buah modus, yaitu :
V - 5
Command line Editor vi mengintepretasikan input sebagai instruksi untuk dieksekusi oleh editor, contoh seperti mencari teks, mengganti teks secara otomatis dan lainnya.
Editing Editor vi mengintepretasikan input sebagai teks yang akan dimmasukan kedalam buffer editor. Pada bagian bawah layar akan tampil teks “INSERTING”. Pada awal vi dijalankan, maka program memasuki command mode. Dengan menekan tombol “i” maka akan memasuki editing. Untuk kembali ke command mode, tekan tombol Esc.
Kunci-kunci editor vi dapat dilihat pada tabel sebagai berikut: Kunci H
Keterangan Pindah Kursor ke kiri satu karakter
J
Pindah Kursor ke kanan satu karakter
Kunci Ctrl -b
Pindah Kursor ke atas
L
Pindah Kursor ke bawah
Ctrl -f -d B
Maju satu layar
baris setelah posisi
W
Menggerakan kursor ke
Menggerakan kursosr ke kanan satu kata
kursor) Menyisipkan teks (di
Maju setengah layar
kiri satu kata
Menyisipkan teks (satu
I
Mundur satu layar
Ctrl
K
O
Keterangan
^
Pergi ke awal baris
$
Pergi ke akhir baris
sebelah kiri posisi kursor Menyisipkan teks (di A
sebelah kanan posisi kursor)
V - 6
I (shi Menyisipkan teks (di ft
U
posisi awal baris)
Membatalkan perintah yang terakhir kali
i) A (shi Menyisipkan teks (di ft
Membatalkan seluruh U
posisi akhir baris)
tempat kursor berada
a)
Keluar untuk sementara
Menghapus 1 huruf (di X
sebelah kanan posisi
:!
lain
Menghapus 1 kata (di sebelah kanan posisi
Write dan quite, simpan :wq
kursor)
sebelah kanan posisi
:q!
2yy
Mengkopi 1 baris
Mengkopi 2 baris
keluarkeluar vi tanpa menyimpan
kursor) Yy
berkas dan keluarkeluar vi tanpa menyimpan
Menghapus 1 baris (di Dd
dari editor vi dan menjalankan perintah yang
kursor)
Dw
perubahan teks pada baris
:se
Menampilkan semua
all
pilihan set status
:se
Menampilkan nomor baris
nu
pada kiri layar
(Paste) Menampilkan P
baris kalimat yang sudah
/str
ada dikopi dengan kunci
ing
Mencari string ke arah depan
yy Mengganti 1 kata yang Cw
telah ditulis di sebelah kanan posisi kursor dengan kata lain
?str ing
Mencari string ke arah belakang
V - 7
Mengganti 1 baris kalimat yang telah ditulis Cc
disebelah kanan posisi kursor dengan kalimat
N
meneruskan pencarian untuk arah yang sama
lain
Login sebagai user, bukalah Console Terminal dan lakukan percobaanpercobaan dibawah ini kemudian selesaikan soal-soal latihan !
5.3 Hasil dan Pembahasan Percobaan 1 : Profile 1. File bash_profile dijalankan pada home direktori pemakai yang login. File .bash_profile adalah hiden file ,sehingga untuk melihatnya digunakan opsi a pada instruksi ls. $ ls –a
Gambar 5.1 Tampilan Profile Analisis Gambar di atas merupakan cara untuk menampilkan direktori secara keseluruhan. Perintah ls
–a
berfungsi untuk menampilkan file
.bash_profile (file yang tersembunyi) pada home direktori pemakai yang login.
V - 8
$ more .bash_profile
Gambar 5.2 Tampilan Profile Analisis Gambar di atas merupakan perintah untuk menampilkan isi dari .bash_profile (file yang tersembunyi) pada home direktori pemakai yang login.
2. File .bash_logout akan dieksekusi sesaat sebelum logout, berfungsi sebagai house clearing jobs, artinya membersihkan semuanya, misalnya menghapus temporary file atau job lainnya. Melihat file .bash_logout dengan instruksi $ cat .bash_logout
Gambar 5.3 Tampilan Profile Analisis Gambar di atas merupakan perintah untuk menampilkan .bash_logout. Perintah ini akan dieksekusi sesaat sebelum logout, berfungsi sebagai house clearing jobs, artinya membersihkan semuanya, misalnya menghapus temporary file atau job lainnya. Melihat file .bash_logout dengan instruksi $ cat .bash_logout.
V - 9
Percobaan 2 : Menggunakan Feature History Bash 1. Bash shell menyimpan “history” perintah yang digunakan sebelumnya. Anda dapat mengaksis history dalam beberapa cara. Cara paling mudah adalah menggunakan tombol Panah Atas. Maka perintah sebelumnya akan ditampilkan. 2. Berikutnya, berikan Bash shell beberapa perintah untuk diingat. Masukan perintah berikut dan tekan Enter pada setiap baris. $ cd $ ls –l /etc
Gambar 5.4 Tampilan Feature History Bash Analisis Gambar di atas merupakan tampilan menggunakan Feature History Bash. Perintah $ cd berfungsi untuk memastikan sedang berada pada direktori home. Perintah $ ls –l /etc berfungsi untuk menampilkan output file atau direktori secara lengkap yaitu terdiri dari nama file, ukuran, tanggal dimodifikasi, pemilik, group dan mode atau atrinbutnya. $ ls –l
Gambar 5.5 Tampilan Feature History Bash
V - 10
Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Perintah $ ls -l berfungsi untuk menampilkan daftar file pada direktori yang sedang aktif yaitu direktori home. $ whoami $ who
Gambar 5.6 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Perintah $ whoami dan $ who berfungsi untuk mengetahui siapa saja yang sedang aktif.
3. Untuk memeriksa apakah perintah ini ditambahkan pada history, dapat menggunakan perintah history untuk melihat semua perintah yang pernah dimasukan. $ history
V - 11
Gambar 5.7 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Untuk memeriksa apakah perintah ini ditambahkan pada history, dapat menggunakan perintah $history untuk melihat semua perintah yang pernah dimasukan.
4. Anda dapat memilih perintah sebelumnya dengan menggunakan Panah Atas, tetapi hal ini tidak efisien untuk perintah yang semakin bertambah banyak. Cara yang mudah menggunakan nomor pada perintah history atau mencarinya. Untuk memilih dan mengeksekusi perintah dengan nomor, masukan kunci! Diikuti nomor perintah. $ ! Contoh : !431
V - 12
Gambar 5.8 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Dapat memlih perintah sebelumnya dengan menggunakan Panah Atas, tetapi hal ini tidak efisien untuk perintah yang semakin bertambah banyak. Cara yang mudah menggunakan nomor pada perintah history atau mencarinya. Untuk memilih dan mengeksekusi perintah dengan nomor, masukan kunci! Diikuti nomor perintah, maka akan muncul output seperti gambar di atas. Contoh : !431 setelah menginputkan perintah tersebut maka perintah who terpanggil lagi.
V - 13
5. Anda dapat mencari perintah dengan meyertakan perintah yang diinginkan. Misalnya !?etc? akan menjalankan perintah ls
–l
/etc yang
sebelumnya digunakan. $ !?etc?
Gambar 5.9 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Dapat mencari perintah dengan meyertakan perintah yang diinginkan. Misalnya !?etc? akan menjalankan perintah ls –l /etc yang sebelumnya digunakan.
V - 14
6. Kemudian gunakan perintah history, maka akan terlihat perintah ls –l etc yang kedua dan bukan !?etc? $ history
Gambar 5.10 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Gunakan perintah history, maka akan terlihat perintah ls –l etc yang kedua dan bukan !?etc?.
7. Apabila string tidak ditemukan pada perintah history maka akan terdapat pesan error $ !?wombat99?
Gambar 5.11 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Apabila string tidak ditemukan pada perintah history maka akan terdapat
V - 15
pesan error dengan menggunakan perintah $ !?wombat99?, maka akan muncul output error karena tidak diketemukan. 8. Jika diketikkan !who maka yang dijalankan adalah perintah who. Tetapi bila Anda ketikkan !whoa maka yang dijalankan adalah perintah whoami $ !who $ !whoa
Gambar 5.12 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Jika diketikkan !who maka yang dijalankan adalah perintah who. Tetapi bila Anda ketikkan !whoa maka yang dijalankan adalah perintah whoami.
9. Anda bisa menggantikan string pada perintah history, terutama pada perintah yang panjang. Misalnya ketik cat /bin/bash | strings | greph shell | less dan tekan Enter. Maka akan menampilkan semua string pada file /bin/bash yang berisi kata “shell”. Untuk keluar tekan q. Jika ingin menampilkan kata “alias”, maka Anda tidak perlu mengetik perintah yang panjang lagi, tetapi cukup ketik ^shell^alias^ dan tekan Enter maka akan menggantikan kata “shell” dengan “alias”. $ cat /bin/bash | strings | greph shell | less
V - 16
Gambar 5.13 Tampilan Feature History Bash Analisis Gambar di atas merupakan perintah menggunakan Feature History Bash. Bisa menggantikan string pada perintah history, terutama pada perintah yang panjang. Misalnya ketik cat /bin/bash | strings | greph shell | less dan tekan Enter. Maka akan menampilkan semua string pada file /bin/bash yang berisi kata “shell”. Untuk keluar tekan q. Akan tetapi perintah ini gagal karena paket bunitils pada oprasi sistem linux yang digunakan belum terpasang.
Percobaan 3 : Mengubah Feature History Bash 1. Bash shell akan menyimpan perintah history meskupun telah logout dan login kembali. File .bash_history menyimpan file history yang terdapat pada home directory. $ cd
Gambar 5.14 Tampilan cd Analisis Gambar di atas merupakan perintah untuk memastikan berada didirektori home. Bash shell akan menyimpan perintah history meskupun telah logout dan login kembali. File .bash_history menyimpan file history yang terdapat pada home directory dengan menggunakan perintah $ cd.
V - 17
2. Lihat beberapa baris pada file .bash_history dengan ketik tail .bash_history dan tekan Enter. File ini bukan file yang up to date. $ tail .bash_history
Gambar 5.15 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Lihat beberapa baris pada file .bash_history dengan ketik tail .bash_history dan tekan Enter.
3. Ketik history dan tekan Enter. Maka akan terlihat baris terakhir adalah perintah history dan baris sebelumnya adalah tail .bash_history. Perintah history bersifat up to date, karena disimpan pada memory sistem. $ history
Gambar 5.16 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Ketik $ history dan tekan Enter. Maka akan terlihat baris terakhir adalah
V - 18
perintah history dan baris sebelumnya adalah tail .bash_history. Perintah history bersifat up to date, karena disimpan pada memory sistem.
4. Ketik perintah berikut $ echo ‘Ini perintah saya’
Gambar 5.17 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Ketikkan perintah echo ‘Ini perintah saya’, maka akan muncul tulisan atau output Ini perintah saya.
5. Logout dan login kembali sebagai user yang sama. Ketik history dan tekan Enter. Maka perintah echo ‘Ini Perintah saya’ akan berada pada baris terkahir. Lihat file .bash_history, maka perintah tersebut akan terdapat pada file .bash_history. $ history $ tail .bash_history
Gambar 5.18 Tampilan Perubahan Feature History Bash Analisis
V - 19
Gambar di atas merupakan perintah mengubah Feature History Bash. Logout dan login kembali sebagai user yang sama. Ketik history dan tekan Enter. Maka perintah echo ‘Ini Perintah saya’ akan berada pada baris terkahir. Lihat file .bash_history dengan mengetikkan perintah tail .bash_history, maka perintah tersebut akan terdapat pada file .bash_history.
6. Untuk history|less untuk melihat perintah history terakhir pada screen. Tekan spacebar untuk melihat file lebih banyak. Untuk keluar tekan q. $ history|less
Gambar 5.19 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Untuk history|less untuk melihat perintah history terakhir pada screen. Tekan spacebar untuk melihat file lebih banyak. Untuk keluar tekan q.
V - 20
7. Untuk melihat berapa banyak perintah history yang ada pada file. ketik berikut dan output yang keluar serupa di bawah ini $ wc –l .bash_history 164 .bash_history
Gambar 5.20 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Untuk melihat berapa banyak perintah history yang ada pada file. Ketik wc –l .bash_history dan output yang keluar serupa yaitu 164 .bash_history.
8. Output menunjukkan bahwa 164 perintah history disimpan pada file history. Untuk melihat jangkauan (limit) perintah history digunakan variabel HISTSIZE. Untuk melihat jangkauan history ketik sebagai berikut $ set|grep HISTIZE
Gambar 5.21 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Output menunjukkan bahwa 164 perintah history disimpan pada file history. Untuk melihat jangkauan (limit) perintah history digunakan variabel HISTSIZE. Untuk melihat jangkauan history ketik set|grep HISTIZE.
V - 21
9. Bila ingin memperbesar jangkauan file history, maka ubahlah variabel HISTSIZE pada skrip startup yang disebut .bashrc pada home direktory. $ echo ‘HISTSIZE=5000’ >> .bashrc
10. Logout dan login kembali sebagai user yang sama. Lihat perubahan variabel HISTSIZE. $ set|grep HISTSIZE
Gambar 5.22 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Bila ingin memperbesar jangkauan file history, maka ubahlah variabel HISTSIZE pada skrip startup yang disebut .bashrc pada home direktory dengan mengetikkan perintah echo ‘HISTSIZE=5000’ >> .bashrc. Logout dan login kembali sebagai user yang sama. Ketikkan set|grep HISTSIZE. Lihat perubahan variabel HISTSIZE.
11. Ketikkan perintah history beberapa kali, maka perintah ini akan disimpan pada BASH history meskipun yang diketikkan perintahnya sama.
Gambar 5.23 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Ketikkan perintah history beberapa kali, maka perintah ini akan disimpan pada BASH history meskipun yang diketikkan perintahnya sama.
V - 22
12. Anda dapat melakukan konfigurasi BASH agar tidak menambah perintah ke history jika perintah yang diketikkan sama dengan sebelumnya. Hal ini dilakukan dengan menambahkan variabel HISTCONTROL dan diberikan nilai ignoredups pada file .bashrc $ echo ‘HISTCONTROL=ignoredups’ >> .bashrc
13. Logout dan login kembali sebagai user yang sama. Ketikkan history beberapa kali dan perintahkan berapa kali history yang muncul.
Gambar 5.24 Tampilan Perubahan Feature History Bash Analisis Gambar di atas merupakan perintah mengubah Feature History Bash. Dapat melakukan konfigurasi BASH agar tidak menambah perintah ke history jika perintah yang diketikkan sama dengan sebelumnya. Hal ini dilakukan dengan menambahkan variabel HISTCONTROL dan diberikan nilai ignoredups pada file .bashrc dengan mengetikkan perintah echo ‘HISTCONTROL=ignoredups’ >> .bashrc. Logout dan login kembali sebagai user yang sama. Ketikkan history beberapa kali dan perintahkan berapa kali history yang muncul.
V - 23
Percobaan 4 : Mengubah Prompt Shell 1. Prompt Bash Shell dikonfigurasikan dengan menseting nilai variabel PS1. Selain menampilkan string statik sebagai prompt, anda dapat menampilkan menjadi dinamis. Contohnya, apabila ingin menunjukkan current directory atau current time. Ketik PS1=’\t:’ dan tekan Enter untuk menampilkan waktu sistem dalam format 24 jam sebagai prompt bash. Format dalam HH:MM:SS $ PS1=’\t:’
Gambar 5.25 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Pada Bash Shell dikonfigurasikan dengan menseting nilai variabel PS1. Selain menampilkan string statik sebagai prompt, anda dapat menampilkan menjadi dinamis. Contohnya, apabila ingin menunjukkan current directory atau current time. Ketik PS1=’\t:’ dan tekan Enter untuk menampilkan waktu sistem dalam format 24 jam sebagai prompt bash. Format dalam HH:MM:SS.
2. Untuk menampilkan format 12 jam dengan indikator am dan pm ketik sebagai berikut: $ PS1=’\t:’
Gambar 5.26 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Untuk menampilkan format 12 jam dengan indikator am dan pm ketik PS1=’\t:,
V - 24
3. Kebanyakan orang menginginkan prompt Bash menampilkan current working directory. Direktory dapat ditampilkan dalam bentuk keseluruhan path atau hanya nama direktori. Karakter \w menampilkan hanya nama direktori. Jika current direktory adalah home directory, maka tampil prompt ~: $ PS1=’\w:’
Gambar 5.27 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Kebanyakan orang menginginkan prompt Bash menampilkan current working directory. Direktory dapat
ditampilkan dalam bentuk
keseluruhan path atau hanya nama direktori. Karakter \w menampilkan hanya nama direktori. Jika current direktory adalah home directory, maka tampil prompt ~: dengan mengetikkan perintah $ PS1=’\w:’.
4. Ketik cd /usr/sbin untuk melihat prompt /usr/sbin: $ cd /usr/sbin 5. Ketik PS1=’\W:’ untuk melihat prompt sbin: $ PS1=’\W:’
Gambar 5.28 Tampilan Perubahan Prompt Shell
V - 25
Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Perintah $ cd /usr/sbin berfungsi untuk membuka direktori sbin. Ketik PS1=’\W:’ untuk melihat prompt sbin:.
6. Ada beberapa prompt BASH lain yang dapat diubah, yaitu PS2, PS3 dan PS4. Prompt PS2 digunakan sebagai prompt sekunder. Untuk melihat bagaimana penggunanya, ketik echo ‘Hello (tanpa diakhiri penutup quote) dan tekan Enter. Simbol lebih besar dari (>) akan muncul. Hal ini memberitahukan bahwa BASH menunggu anda menyelesaikan perintah. Ketik penutup quote (‘) dan tekan Enter. Perintah ini akan menyelesaikan prompt PS2, kata “Hello, “ muncul diikuti dengan prompt PS1 pada baris baru. $ echo ‘Hello >’
Gambar 5.29 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Ada beberapa prompt BASH lain yang dapat diubah, yaitu PS2, PS3 dan PS4. Prompt PS2 digunakan sebagai prompt sekunder. Untuk melihat bagaimana penggunanya, ketik echo ‘Hello (tanpa diakhiri penutup quote) dan tekan Enter. Simbol lebih besar dari (>) akan muncul. Hal ini memberitahukan bahwa BASH menunggu anda menyelesaikan perintah. Ketik penutup quote (‘) dan tekan Enter. Perintah ini akan menyelesaikan prompt PS2, kata “Hello, “ muncul diikuti dengan prompt PS1 pada baris baru.
V - 26
7. Anda dapat mengubah prompt PS2 seperti mengubah prompt PS1. Ketik perintah berikut: $ PS2=’Selesai memasukkan perintah anda:’ 8. Kemudian ketik echo ‘Hello (tanpa diakhiri penutup quote) dan tekan Enter. Pada baris berikutnya muncul Selesai memasukkan perintah Anda:. Kemudian ketikkan penutup quote (‘) dan tekan Enter. Jika perintah selesai, maka kata Hello akan muncul diikuti prompt PS1 pada baris baru. $ echo ‘Hello Selesai memasukkan perintah anda:’
Gambar 5.30 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Mengubah prompt PS2 seperti mengubah prompt PS1. Ketik perintah $ PS2=’Selesai memasukkan perintah anda:’. Kemudian ketik echo ‘Hello (tanpa diakhiri penutup quote) dan tekan Enter. Pada baris berikutnya muncul Selesai memasukkan perintah Anda:. Kemudian ketikkan penutup quote (‘) dan tekan Enter. Jika perintah selesai, maka kata Hello akan muncul diikuti prompt PS1 pada baris baru. $ echo ‘Hello kemudian Selesai memasukkan perintah anda:’.
V - 27
9. Prompt BASH dapat ditampilkan berwarna dengan melakukan setting colorsetting string. Sebagai contoh, prompt BASH di seti dengan \w\$, akan menampikan current working directory yang diikuti $ (atau # jika anda login sebagai root). Untuk setting warna menjadi biru ketikkan berikut: $ PS1 =’\033[0;34m\w\$ \033[0;37m’
Gambar 5.31 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Prompt BASH dapat ditampilkan berwarna dengan melakukan setting colorsetting string. Sebagai contoh, prompt BASH di seti dengan \w\$, akan menampikan current working directory yang diikuti $ (atau # jika anda login sebagai root). Untuk setting warna menjadi biru ketikkan $ PS1 =’\033[0;34m\w\$ \033[0;37m’.
10. Untuk menampilkan prompt warna merah, ketikkan perintah berikut: $ PS1 =’\033[0;31m\w\$ \033[0;37m’ 30=hitam, 31=merah, 32=hijau, 34=biru, 35=ungu, 36=cyan, 37=putih.
Gambar 5.32 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Untuk menampilkan prompt warna merah, ketikkan perintah $ PS1 =’\033[0;31m\w\$ \033[0;37m’. Maka tulisan berwarna merah.
V - 28
11. Bila menginginkan beberapa warna, ketikkan perintah berikut: $ PS1 =’\033[0;34m\w\$ \033[0;32m$ \033[0;37m’
Gambar 5.33 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Bila menginginkan
beberapa
warna,
ketikkan
perintah
$
PS1
=’\033[0;34m\w\$ \033[0;32m$ \033[0;37m’, maka Maka tulisan dengan warna warni.
12. Anda bisa menampilkan atribut visual seperrti lebih terang, berkedip dan warna kebalikannya. Untuk menampilkan prompt yang lebih terang, atribut control diganti 1, seperti berikut: $ PS1 =’\033[1;34m\w\$ \033[1;32m$ \033[0;37m’
Gambar 5.34 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Untuk menampilkan atribut visual seperrti lebih terang, berkedip dan warna kebalikannya. Untuk menampilkan prompt yang lebih terang, atribut control diganti 1, dengan perintah PS1 =’\033[1;34m\w\$ \033[1;32m$ \033[0;37m’, Maka tulisan menjadi lebih terang.
V - 29
13. Untuk menampilkan prompt dengan warna berkebalikan, atribut control diganti 7, seperti perintah berikut: $ PS1 =’\033[7;34m\w\$ \033[7;32m$ \033[0;37m’
Gambar 5.35 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Untuk menampilkan prompt dengan warna berkebalikan, atribut control diganti 7, seperti perintah PS1 =’\033[7;34m\w\$ \033[7;32m$ \033[0;37m’, Maka tulisan menjadi berwarna berkebalikan.
14. Untuk menampilkan prompt berkedip, atribut control diganti 5, seperti berikut: $ PS1 =’\033[5;34m\w\$ \033[5;32m$ \033[0;37m’
Gambar 5.36 Tampilan Perubahan Prompt Shell Analisis Gambar di atas merupakan perintah mengubah Prompt Shell. Untuk menampilkan prompt berkedip, atribut control diganti 5, seperti perintah PS1 =’\033[5;34m\w\$ \033[5;32m$ \033[0;37m’, maka tulisan prompt menjadi berkedip.
V - 30
Percobaan 5 : Menambahkan otomatosasi ke Prompt Shell 1. Pastikan anda berada di home direktori $ cd 2. Buatlah skrip sederhana untuk mengurut daftar file. Anda dapat menggunakan teks editor, tetapi karena hanya satu baris, gunakan perintah echo untuk membuat file. $ echo ‘sort ~/list > ~/r13; mv ~/r13 ~/list’ > ~/sorter
Gambar 5.37 Tampilan Tambahan Otomatosasi ke Prompt Shell Analisis Gambar di atas merupakan perintah menambahkan otomatosasi ke Prompt Shell. Pastikan sedang berada di home direktori, kemudian membuat skrip sederhana untuk mengurut daftar file. Anda dapat menggunakan teks editor, tetapi karena hanya satu baris, gunakan perintah echo untuk membuat file. Ketikkan perintah echo ‘sort ~/list > ~/r13; mv ~/r13 ~/list’ > ~/sorter untuk membuat deteran file terurut.
3. Buatlah file skrip diatas menjadi executable $ chmod +x sorter
4. Jalankan program sorter diatas setiap shell Bash menampilkan prompt PS1. Untuk melakukannya, buatlah variabel PROMPT_COMMAND dimana nilainya adalah nama dari program sorter. $ PROMPT_COMMAND=~/sorter
V - 31
Gambar 5.38 Tampilan Tambahan Otomatosasi ke Prompt Shell Analisis Gambar di atas merupakan perintah menambahkan otomatosasi ke Prompt Shell. Membuat file skrip diatas menjadi executable dengan perintah chmod +x sorter, kemudian program sorter diatas setiap shell Bash menampilkan prompt PS1. Untuk melakukannya, buatlah variabel PROMPT_COMMAND dimana nilainya adalah nama dari program sorter. 5. Ketikkan echo ‘John Smith:13001’>>list dan tekan Enter. Jika file list tidak ada, akan dibuat secara otomatis, tetapi jika sudah ada, string ‘John Smith:13001’ akan ditambahkan. $ echo ‘John Smith:13001’>>list 6. Ketik cat list dan tekan Enter. Maka anda akan melihat isi gile list. Pada saat ini, file mungkin memnpunyai hanya satu baris sehingga tidak dapat dilihat apakah file sudah terurut. $ cat list
Gambar 5.39 Tampilan Tambahan Otomatosasi ke Prompt Shell Analisis Gambar di atas merupakan perintah menambahkan otomatosasi ke Prompt Shell. Ketikkan echo ‘John Smith:13001’>>list dan tekan Enter.
V - 32
Jika file list tidak ada, akan dibuat secara otomatis, tetapi jika sudah ada, string ‘John Smith:13001’ akan ditambahkan, dan Ketik cat list dan tekan Enter. Maka anda akan melihat isi gile list. Pada saat ini, file mungkin memnpunyai hanya satu baris sehingga tidak dapat dilihat apakah file sudah terurut.
7. Masukkan beberapa printah serupa dengan point 5 tetapi dengan nama dan nomor yang berbeda kemudian ketik cat list dan tekan Enter. $ echo ‘Anita:13002’>>list $ echo ‘Samantha:13003’>>list $ echo ‘Patrik’:13004’>>list $ echo ‘Sponsebob’:13005’>>list $ echo ‘Lisa’:13006’>>list $ echo ‘Squid’:13007’>>list
Gambar 5.40 Tampilan Tambahan Otomatosasi ke Prompt Shell Analisis Gambar di atas merupakan peritnah menambahkan otomatosasi ke Prompt Shell. Masukkan beberapa printah serupa dengan point 5 tetapi dengan nama dan nomor yang berbeda kemudian ketik cat list dan tekan Enter, maka akan muncul output dengan urutan daftar nama dari kecil ke besar.
V - 33
8. Apabila anda tidak menginginkan Shell Bash menampilkan file terurut sepanjang
waktu,
anda
tidak
perlu
menambahkan
variabel
PROMPT_COMMAND=~/sorter pada file konfigurasi seperti .bashrc. bila anda ingin BASH berhenti menjalankan program sorter, maka ketikkan variabel PROMPT_COMMAND= dan tekan Enter atau logout dan login kembali. $ PROMPT_COMMAND= (SUDAH DICOBA)
Percobaan 6 : Membuat Bash-Script dan menjalankannya 1. Membuat file p1.sh $ vi p1.sh echo “program bash script”
Gambar 5.41 Tampilan Pembuatan Bash-Script dan menjalankannya Analisis Gambar di atas merupakan perintah membuat Bash-Script dan menjalankannya. Membuat file p1.sh menggunakan perintah vi p1.sh dan echo “program bash script”, maka akan muncul output menampilkan program bash script.
2. Mengubah program menjadi executable $ ls -l p1.sh $ chmod +x p1.sh $ ls –l p1.sh
V - 34
Gambar 5.42 Tampilan Pembuatan Bash-Script dan menjalankannya Analisis Gambar di atas merupakan perintah membuat Bash-Script dan menjalankannya. Perintah ls -l p1.sh digunakan untuk menampilkan semua file p1.sh. Perintah chmod +x p1.sh digunakan untuk mengubah menjadi executable. Perintah ls –l p1.sh digunakan menampilkan file untuk meng cek kembali file, tanda tulisan berwarna ijo artinya telah diubah menjadi excutable.
3. Menjalankan script $ bash p1.sh $ sh p1.sh $ . p1.sh $ . /p1.sh
Gambar 5.43 Tampilan Pembuatan Bash-Script dan menjalankannya Analisis Gambar di atas merupakan perintah membuat Bash-Script dan menjalankannya. Semua perintah diatas telah dicoba dan memiliki hasiil output yang sama.
4. Konvensi dalam pembuatan script shell dinyatakan sebagai #!/bin/bash. Tambahkan pada file p1.sh konvensi tersebut $ vi p1.sh #!/bin/bash echo “program bash script”
V - 35
Gambar 5.44 Tampilan Pembuatan Bash-Script dan menjalankannya Analisis Gambar di atas merupakan perintah membuat Bash-Script dan menjalankannya. Konvensi dalam pembuatan script shell dinyatakan sebagai #!/bin/bash. Tambahkan pada file p1.sh konvensi tersebut dengan tulisan “Program 2 bash script”.
5. Buatlah file p2.sh $ vi p2.sh #!/bin/bash echo “Program 2 bash script”
Gambar 5.45 Tampilan Pembuatan Bash-Script dan menjalankannya Analisis Gambar di atas merupakan perintah membuat Bash-Script dan menjalankannya. Konvensi dalam pembuatan script shell dinyatakan
V - 36
sebagai #!/bin/bash. Tambahkan pada file p2.sh konvensi tersebut dengan tulisan “Program 2 bash script”.
6. Menjalankan beberapa program shell dalam satu baris instruksi yang dipisahkan dengan tanda ; $ cat p1.sh ; cat p2.sh $ ./p1.sh ; ./p2.sh
Gambar 5.46 Tampilan Pembuatan Bash-Script dan menjalankannya Analisis Gambar di atas merupakan perintah membuat Bash-Script dan menjalankannya. Menjalankan beberapa program shell dalam satu baris instruksi yang dipisahkan dengan tanda ; dengan perintah cat p1.sh ; cat p2.sh dan ./p1.sh ; ./p2.sh.
7. Menjalankan script sebagai proses background, sehingga promt tidak
V - 37
Percobaan 7 : Job Control 1. Proses foreground $ ps x
Gambar 5.47 Tampilan Job Control Analisis Gambar di atas merupakan perintah Job Control. Proses foreground dengan menggunakan perintah ps x , maka akan muncul output daftar file yang sedang dijalanjan.
2. Proses background $ ps x > hasil &
Gambar 5.48 Tampilan Job Control Analisis Gambar di atas merupakan perintah Job Control. Proses background dengan menggunakan perintah ps x > hasil & , maka akan muncul output jumlah semua proses yang sedang berjalan.
V - 38
3. Setiap job mempunyai PID yang tunggal (unique). Untuk melihat jobs yang aktif $ jobs
Gambar 5.49 Tampilan Job Control Analisis Gambar di atas merupakan perintah Job Control. Setiap job mempunyai PID yang tunggal (unique). Untuk melihat jobs yang aktif dengan menggunakan perintah jobs, maka akan muncul output proses yang berjalan yaitu ps x > hasil tadi.
4. Buatlah file ploop.sh. file ini tidak akan pernah berhenti kecuali ditekan CTRL+C $ vi ploop.sh #!/bin/bash while [true] do sleep 10 echo “Hallo” done
V - 39
Gambar 5.50 Tampilan Job Control Analisis Gambar di atas merupakan perintah Job Control. Membuat file ploop.sh. file ini tidak akan pernah berhenti kecuali ditekan CTRL+C dengan menggunakan perintah $ vi ploop.sh kemudian ketikkan while [true], do, sleep 10, echo “Hallo”, done.
5. Buatlah file ploop.sh menjadi executable. Jalankan program, akan ditampilkan kata Hallo setiap 10 detik. Untuk keluar program, tekan CTRL-C (^C) $ chmod +x ploop.sh $ ./ploop.sh
Gambar 5.51 Tampilan Job Control Analisis Gambar di atas merupakan perintah Job Control. Membuat file ploop.sh menjadi executable. Jalankan program, akan ditampilkan kata Hallo setiap 10 detik. Untuk keluar program, tekan CTRL-C (^C) dengan menggunakan perintah chmod +x ploop.sh dan ./ploop.sh, maka akan muncul output dengan menampilkan kata hallo berulang kali setiap 10 detik.
V - 40
Percobaan 8 : Manipulasi stack untuk Direktori 1. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~ $ dirs
Gambar 5.52 Tampilan Manipulasi stack untuk Direktori Analisis Gambar di atas merupakan perintah Manipulasi stack untuk Direktori. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~, maka akan muncul output direktori yang diingat.
2. Membuat 3 buat direktori $ mkdir marketing sales support
Gambar 5.53 Tampilan Manipulasi stack untuk Direktori Analisis Gambar di atas merupakan perintah yaitu Manipulasi stack untuk Direktori. Perintah diatas merupakan cara untuk membuat tiga direktori dengan satu perintah.
V - 41
3. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~ $ dirs
Gambar 5.54 Tampilan Manipulasi stack untuk Direktori Analisis Gambar di atas merupakan perintah Manipulasi stack untuk Direktori. Instruksi dirs digunakan untuk melihat stack direktori, pada output hanya ditampilkan direktori home ~, maka akan muncul output direktori yang diingat.
4. Membuat 3 buah direktori
Percobaan 9 : Alias 1. Alias adalah mekanisme untuk memberi nama alias pada satu atau sekelompok instruksi. Untuk melihat alias yang sudah terdaftar pada sistem: $ alias
Gambar 5.55 Tampilan Alias Analisis
V - 42
Gambar di atas merupakan perintah Alias. Alias adalah mekanisme untuk memberi nama alias pada satu atau sekelompok instruksi. Untuk melihat alias yang sudah terdaftar pada sistem, maka akan muncul output yang memberi informasi perintah alias.
2. Membuat beberapa alias $ alias del=’rm –i’ $ alias h=’history’
Gambar 5.56 Tampilan Alias Analisis Gambar di atas merupakan perintah Alias. Untuk membuat beberapa alias menggunakan perintah alias del=’rm –i’ artinya dengan menggunakan alias del, maka yang akan dikerjakan rm-i. Dan alias h=’history’ artinya perintah alias h akan menjalankan perintah history.
3. Gunakan instruksi hasil alias $ ls $ del hasil $ h | more
V - 43
Gambar 5.57 Tampilan Alias Analisis Gambar di atas merupakan perintah Alias. Untuk menggunakan instruksi hasil alias menggunakan perintah ls untuk melihat current working directory, kemudian perintah del hasil digunakan untuk menghapus file hasil, karena alias del menjalankan perintah rm-i tadi. Dan perintah h | more digunakan untuk menjalankan perintah history, karena perintah h tadi merupakan alias dari perintah history.
4. Untuk menghapus alias gunakan instruksi unalias $ unalias del $ del files (Terdapat pesan Kesalahan, mengapa?)
Gambar 5.58 Tampilan Alias Analisis Gambar di atas merupakan perintah Alias. Untuk menghapus alias gunakan instruksi unalias menggunakan perintah unalias del, yang tadi
V - 44
menggunakan perintah rm –i. Dan del files tidak berfungsi karena perintah alias del sudah dihapus.
LATIHAN 1. Eksekusi seluruh profile yang ada: a. Edit file profile /etc/profile dan tampilkan pesan sebagai berikut: echo ‘profile dari /etc/profile’
Gambar 5.59 Tampilan Latihan Nomer 1 Analisis Tampilan diatas merupakan jawaban nomor 1 a. Perintah vi /etc/profile berfungsi untuk masuk ke prompt script /etc/profile, untuk mengedit pesan menggunakan perintah i, kemudian inputkan perintah echo ‘profile dari /etc/profile’.
V - 45
b. Asumsi nama anda student, maka edit semua profile yang ada yaitu: /home/student/.bash_profile /home/.student/.bash_login /home/student/.profile /home/student/.bashrc
Gambar 5.60 Tampilan Latihan Nomer 1 Analisis Tampilan diats merupakann jawaban dari latihan 1 b. Perintah vi digunakan untuk masuk ke teks editor untuk mengedit file konfigurasi sistem, membuat script shell, membuat program, dan sebagainya.
c. Ganti nama /home/student dengan nama anda sendiri. Pada setiap file tersebut,
cantumkan
instruksi
echo,
/home/student/.bash_profile: echo “Profile dari .bash_profile” $ vi /home/pebri.ramdani/.bash_profile
$ vi /home/. pebri.ramdani/.bash_login
misalnya
pada
V - 46
$ vi /home/pebri.ramdani/.profile
$ vi /home/pebri.ramdani/.bashrc
Gambar 5.61 Tampilan Latihan Nomer 1 Analisis Gambar di atas merupakan latihan nomer 1 c, yaitu menambahkan instruksi pada file /home/pebri.ramdani/.bash_profile dengan instruksi echo “Profile dari .bash_profile”, kemudian cara menginputakan instruksi dengan i, kemudian esc untuk mengakhiri perintah insert, lalu perintah :wq untuk menyimpan dan keluar dari text editor. Pada /home/. pebri.ramdani /.bash_login dengan instruksi echo “Profile dari .bash_login”, kemudian cara menginputakan instruksi dengan i, kemudian esc untuk mengakhiri perintah insert, lalu perintah :wq untuk menyimpan dan keluar dari text editor. Pada /home/ pebri.ramdani /.profile dengan instruksi echo “Profile dari .profile”, kemudian cara menginputakan instruksi dengan i, kemudian esc untuk mengakhiri
V - 47
perintah insert, lalu perintah :wq untuk menyimpan dan keluar dari text editor. Pada /home/ pebri.ramdani /.bashrc dengan instruksi echo “Profile dari .bashrc”, kemudian cara menginputakan instruksi dengan i, kemudian esc untuk mengakhiri perintah insert, lalu perintah :wq untuk menyimpan dan keluar dari text editor.
d. Lakukan hal yang sama untuk file lainnya, sesuaikan tampilan dengan nama file yang bersangkutan. SUDAH DIKERJAKAN PADA POINT B DAN C
2. Jalankan instruksi subtitute user, kemudian keluar dengan perintah exit sebagai berikut: $ su student $ exit
Gambar 5.62 Tampilan Latihan Nomer 2 Analisis : Tampilan diatas merupakan jawaban no 2, yaitu perintah $ su student digunakan untuk pindak ke super user, sistem meminta password admin. Pada perintah tersebut pada file .bashrc sudah dimodifikasi sebelumnya sehingga instruksi echo terpanggil bila menggunakan perintah SU, untuk mengakhiri menggunakan Perintah $ exit. Kemudian gunakan opsi – sebagai berikut: $ su – student $ exit
V - 48
Gambar 5.63 Tampilan Latihan Nomer 2 Analisis : Tampilan diatas merupakan jawaban no 2, yaitu perintah $ su - student digunakan untuk pindak ke super user, sistem meminta password admin. Pada perintah tersebut akan menjalankan dua file yaitu file .bashrc dan file .bash_profile yang keduanya sudah dimodifikasi sebelumnya sehingga instruksi echo terpanggil bila menggunakan perintah SU, untuk mengakhiri menggunakan Perintah $ exit. jadi yang membedakannya yaitu memunculnya jumlah file yang dibuka dan mengakhiri filenya dengan akhiran logout.
Jelaskan perbedaan kedua utilitas tersebut. Sudah terdapat pada analisis diatas
3. Logout a. Edit file .bash_logout, tampilkan pesan dan tahan selama 5 detik, sebelum eksekusi logout echo “Terima kasih atas sesi yang diberikan” sleep 5 clear $ vi .bash_logout $ chmod +x .bashk_logout $ ./.bash_logout
V - 49
Gambar 5.64 Tampilan Latihan Nomer 3 Analisis : Tampilan diatas merupakan jawaban no3, yaitu membuat program logout menggunakan vi editor. Perintah $ vi .bash_logout digunakan untuk membuat text editor membuat program. Kemudian insert echo “Terima kasih atas sesi yang diberikan” sleep 5 clear dengan menggunakan i, setelah selesai akhiri dan simpan dengan perintah :wq. Perintah $ chmod +x .bashk_logout berfungsi untuk merubah file menjadi excutable.
Perintah
$
./.bash_logout
untuk
mengeksekusi
file
.bash_logout.
b. Edit file .bash_logout, tampilkan pesan dan tahan selama 4 detik, sebelum eksekusi logout
V - 50
Gambar 5.65 Tampilan Latihan Nomer 3 Analisis : Tampilan diatas merupakan jawaban no3, yaitu mengedit program logout menggunakan vi editor. Perintah $ vi .bash_logout digunakan untuk membuat text editor membuat program. Kemudian edit text editor menjadi insert echo “Terima kasih atas sesi yang diberikan” sleep 4 clear dengan menggunakan i, setelah selesai akhiri dan simpan dengan perintah :wq. Perintah $ chmod +x .bashk_logout berfungsi untuk merubah file menjadi excutable.
Perintah
.bash_logout.
$
./.bash_logout
untuk
mengeksekusi
file
V - 51
4. History a. Ganti nilai HISTSIZE dari 1000 menjadi 20 $ HISTSIZE=20 $ h
Gambar 5.66 Tampilan Latihan Nomer 4 Analisis Gambar di atas merupakan latihan nomer 4 yaitu tentang history. Ketikkan perintah set | grep HISTSIZE untuk mengecek jumlah history sebelumnya kemudian ubah history tersebut menjadi 20 menggunakan perintah echo, >> dan file .bashrc. Setelah itu cek kembali apakah sudah berubah atau belum menggunakan perintah set | grep HISTSIZE, maka akan muncul output seperti gambar di atas.
b. Gunakan fasilitas history dengan mengedit instruksi baris ke 5 dari instruksi yang terakhir dilakukan. $ !-5
V - 52
c. Ulangi instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasi pada history buffer $ !! d. Ulangi instruksi pada history buffer nomor tertentu, misalnya nomor !150 $ !150
Gambar 5.67 Tampilan Latihan Nomer 4 b, c, d. Analisis Gambar di atas merupakan latihan nomer 4 yaitu tentang history. Perintah !-5 digunakan untuk menampilkan atau mengeksekusi kembali history pada 5 terakhir perintah di history. Perintah !! digunakan mengulangi instruksi yang terakhir. Gunakan juga ^P dan ^N untuk bernavigasi pada history buffer. Perintah !150 digunakan untuk memanggil perintah dari history dengan nomor PID 150. e. Ulangi instruksi dengan prefix “ls” $ !ls $ !?ls? Jelaskan perbedaan instruksi di atas (sudah pada analisis)
V - 53
Gambar 5.68 Tampilan Latihan Nomer 4 Analisis Gambar di atas merupakan latihan nomer 4 yaitu tentang history. Perintah prefiks ls ini akan menghasilkan perintah yang sama yaitu perintah ls –l.
5. Prompt String (PS) a. Edit file .bash_profile, ganti prompt PS1 dengan ‘>’. Instruksi export diperlukan dengan parameter nama variabel tersebut, agar perubahan variabel PS1 dikenal oleh semua shell PS1=’>’ Export PS1 Eksperimen hasil PS1: $ PS1=”\! >” 69 > PS1=”\d >” Mon Sep 23 > PS1=”\t >” 10:10:20 > PS1=”Saya=\u >” Saya=stD02001 > PS1=”\w >” ~ > PS1=\h >”
V - 54
Gambar 5.69 Tampilan Latihan Nomer 5 Analisis Gambar di atas merupakan latihan nomer 5 yaitu tentang prompt string. Edit file .bash_profile, ganti prompt PS1 dengan ‘>’. Instruksi export diperlukan dengan parameter nama variabel tersebut, agar perubahan variabel PS1 dikenal oleh semua shell, maka akan muncul output seperti gambar di atas. Ada beberapa tampilan prompt PS1 yaitu dengan nomor perintah (\!), date (\d), time (\t), who=user(\u), working directory (\w).
V - 55
b. Ubahlah warna shell prompt dengan warna biru dan berkedip
Gambar 5.70 Tampilan Latihan Nomer 5 Analisis Gambar di atas merupakan latihan nomer 5 yaitu tentang prompt string. Mengubah warna shell prompt dengan warna biru dan berkedip menggunakan perintah seperti pada gambar di atas, maka output tulisan akan berkedip.
6. Bash script a. Buat 3 buah script p1.sh, p2.sh, p3.sh dengan isi masing-masing: P1.sh #!/bin/bash echo “Program p1” ls –l $ vi p1.sh #! /bin/bash echo “Program p1” ls –l $ vi p2.sh #! /bin/bash echo “Program p2” who $ vi p3.sh #! /bin/bash echo “Program p3” $ ps x
V - 56
Gambar 5.71 Tampilan Latihan Nomer 6 Analisis : Tampilan diatas merupakan jawaban nomor 6a, yaitu membuat program file menggunakan vi editor. Pada Program $ vi p1.sh diinputkan script dengan menekan i pada vi editor. Lalu isi script berikut : #! /bin/bash echo “Program p1” ls –l
V - 57
setelah selesai penginputan takan esc untuk berhenti dan tekan :wq untuk menyimpan dan keluar. Pada Program $ vi p2.sh diinputkan script dengan menekan i pada vi editor. Lalu isi script berikut : #! /bin/bash echo “Program p2” who setelah selesai penginputan takan esc untuk berhenti dan tekan :wq untuk menyimpan dan keluar. Pada Program $ vi p3.sh diinputkan script dengan menekan i pada vi editor. Lalu isi script berikut : #! /bin/bash echo “Program p3” ps x setelah selesai penginputan takan esc untuk berhenti dan tekan :wq untuk menyimpan dan keluar.
b. Jalankan script tersebut sebagai berikut dan perhatikan hasilnya: $ ./p1.sh ; ./p3.sh ; ./p2.sh
Gambar 5.72 Tampilan Latihan Nomer 6
V - 58
Analisis Gambar di atas merupakan latihan nomer 6 yaitu tentang bash script. Perintah ./p1.sh ; ./p3.sh ; ./p2.sh untuk menampilkan isi dari script tersebut, maka akan muncul output dari hasil eksekusi pada vi editor. Pada perintah ./p3.sh ; ./p2.sh izin di tolak(program tidak jalan), karena file tersebut belum di rubah menjadi excutable. Dengan menggunakan perintah chmod +x ./p3.sh ; ./p2.sh maka program tersebut bisa di jalankan. $ ./p1.sh &
Gambar 5.73 Tampilan Latihan Nomer 6 Analisis Gambar di atas merupakan latihan nomer 6 yaitu tentang bash script. Perintah ./p1.sh &, berfungsi untuk menampilkan file script p1.sh dengan proses background. $ ./p1.sh $ ./p2.sh & ./p3.sh &
V - 59
Gambar 5.74 Tampilan Latihan Nomer 6 Analisis Gambar di atas merupakan latihan nomer 6 yaitu tentang bash script. Perintah $ ./p1.sh $ ./p2.sh & ./p3.sh & berfungsi untuk menampilkan ketiga script secara bersamaan dengan proses background. $ (./p1.sh ; ./p3.sh) &
Gambar 5.75 Tampilan Latihan Nomer 6 Analisis Gambar di atas merupakan latihan nomer 6 yaitu tentang bash script. Perintah $ ( ./p1.sh ; ./p3.sh ) & berfungsi untuk menampilkan file script p1.sh dan p3.sh dengan proses background.
7. Jobs a. Buat shell- script yang melakukan loop dengan nama pwaktu.sh, setiap 10 detik, kemudian menyimpan tanggal dan jam pada file hasil. #!/bin/bash while [true] do
V - 60
date >> hasil sleep 10 done
Gambar 5.76 Tampilan Latihan Nomer 7 Analisis Gambar di atas merupakan latihan nomer 7 yaitu tentang jobs. Perintah vi pewaktu.sh berfungsi untuk membuat program dan akan masuk pada tampilan vi editor. Tekan i untuk insert script seperti berikut #!/bin/bash while [ true ]
V - 61
do date >> hasil sleep 10 done setelah selesai menyisipkan script tekan esc untuk mengakhiri penyisipan, dan tekan :wq untuk keluar dari vi editor dan menyimpannya. Perintah chmod +x pewaktu.sh berfungsi untuk mengubah file menjadi excutable, kemudian jalankan program dengan menggunakan perintah ./pewaktu.sh. takan ctrl+z untuk berhenti. Dikarenakan pada script program dibelokan pada file hasil. t shell- script yang melakukan loop dengan nama pwaktu.sh, setiap 10 detik, kemudian menyimpan tanggal dan jam pada file hasil. Kemudian tampilkan hasil dengan perintah cat hasil maka hasil dari pengulangan pada program ditampilkan.
b. Jalankan sebagai background; kemudian jalankan satu program (utilitas find) di background sebagai berikut: $ jobs $ find / -print > files 2>/dev/null & $ jobs
Gambar 5.77 Tampilan Latihan Nomer 7 Analisis Gambar di atas merupakan latihan nomer 7 yaitu tentang jobs. Perintah jobs pertama akan menampilkan jobs yaitu dari program ./pwaktu.sh dengan status terhenti. Kemudian ditambahkan lagi satu program utilitas
V - 62
find di bakground. Maka apabila di cek kembali hanya jobs find yang akan running. Sementara yang lainnya dalam keadaan terhenti.
c. Jadikan program ke 1 sebagai foreground, tekan ^Z dan kembalikan program tersebut ke background $ fg %1 $ bg
Gambar 5.80 Tampilan Latihan Nomer 7 Analisis Gambar di atas merupakan latihan nomer 7 yaitu tentang jobs. Jobs dengan nomor perintah 1 yaitu ./pwaktu.sh akan dijalankan sebagai program foregorund dengan menggunakan perintah fg %1. Kemudian dengan menekan ctrl + z maka program akan stopped. Kemudian program ./pwaktu.sh ini akan dijalankan di backgorund dengan perintah bg.
d. Stop program background dengan utilitas kill $ ps x $ kill [Nomor PID]
V - 63
Gambar 5.81 Tampilan Latihan Nomer 7 Analisis Gambar di atas merupakan latihan nomer 7 yaitu tentang jobs. Perintah perintah ps x berfungsi untuk melihat proses status foreground, kemudian untuk mengentikan atau stop program pada background dengan perintah kill 4332 maka proses bash dengan no PID 4332 terhenti.
VI - 1
MODUL 6 Pemrograman Shell
6.1 Tujuan Praktikum 1. Mengetahui dan memahami pemrograman shell pada sistem operasi Linux. 2. Mengetahui dan memahami cara penulisan shell script, variabel dan yang
lainnya. 3. Menggunakan perintah-perintah pemrograman shell. 4. Menerapkan pemrograman shell dalam program.
6.2 Resume 1. SHELL SCRIPT Shell script dibuat dengan editor teks (ASCII editor) dan umumnya diberikan ekstensi”.sh”. shell script selalu diawali dengan komentar, yang dimulai dengan tanda #, disambung dengan ! dan nama shell yang digunakan. Contoh: #!/bin/sh
(1)
# Program shell
(2)
# Var1=x
(3)
Var2=8 (1) Awal dari program shell, komentar awal ini akan dibaca oleh system, kemudian system mengaktifkan program shell (/bin/sh) yang tertera ditempat tersebut. Program shell dapat dipilih, misalnya /bin/csh, /bin/ksh dan lainnya. (2) Adalah komentar, sebagai dokumentasi, baris ini akan diabaikan oleh program shell. (3) Penggunaan variable (assignment), tidak boleh ada spasi diantara nama variable dan konstanta.
VI - 1
VI - 2
2. VARIABEL Dalam memproses data di komputer, kita menyimpan data tersebut dalam memori komputer. Memori tersebut dibagi dalam lokasi-lokasi dengan alamat tertentu. Programmer harus memberi nama lokasi tersebut dengan nama variabel. Ada 2 macam variabel dalam Linux, variabel sistem biasanya dituliskan dengan huruf besar semua dan variabel user. Cara mendeklarasikan variabel juga hampir sama: variablename=value Harap diperhatikan, tidak boleh ada spasi! Contoh: $ x=10 artinya mengisikan angka 10 ke dalam variabel x Contoh variabel sistem:
Variabel User Aturan penamaan variabel memiliki aturan yang hampir sama dengan penamaan dalam pemrograman komputer bahasa lain:
Nama variabel harus dimulai dengan huruf atau underscore (_), diikuti dengan huruf lain atau angka;
Jangan menggunakan spasi, seperti sudah dicontohkan di atas;
Variabel adalah case-sensitive, huruf besar dan huruf kecil berbeda;
Variabel kosong (NULL) tidak akan menghasilkan nilai;
Jangan menggunakan karakter khusus seperti: ?, *, dll untuk nama variabel.
VI - 3
3. MEMBACA KEYBOARD Nilai variable dapat diisi melalui keyboard (stdin) dengan intruksi read. Program yang selama ini kita buat, nilainya telah ditentukan sebelumnya, program- program tersebut tidak mendapatkan input dari user. Program program tersebut hanya melakukan hal yang sama setiap waktu.
4. PARAMETER Sebuah program shell dapat mempunyai parameter sebanyak 9 buah dan direpresentasikan melalui variable khusus yaitu variable $!, $2, $3, $4, $5, $6, $7, $8, $9. Nama program shell || (nama script) direpresentasikan melalui variable $0. Jumlah parameter dinyatakan sebagai$#. Bila tidak memberikan parameter maka nilai $#adalah 0. Shell variable $* menyatakan seluruh string yang menjadi parameter / argument sebuah script ($@ mempunyai arti sama). $$ menyatakan nomor proses id/pid dari script yang dijalankan. Pid ini akan terus berubah (umumnya) menaik, setiap kali proses berjalan.
5. STATUS EXIT Setiap program setelah selesai dieksekusi akan memberikan informasi melalui variable special $?. Indikasi yang diberikan adalah : Bila program berakhir denga sukses, $?=0 Bila program berakhir dengan error, $?tidak samadengan 0. nilai dari status exit dapat dilihat melalui instruksi echo $?
6. KONSTRUKSI IF if instruksi-awal then instruksi1 instruksi2 ............... fi
VI - 4
If akan mengeksekusi instruksi awal, dan exit status dari instruksi tersebut akan menjadi kondisi. Bila 0, maka instruksi selanjutnya masuk ke dalam blok then. Bila tidak 0, maka alur program diteruskan setelah kata kunci fi.
7. KONSTRUKSI IF THEN ELSE Statement builtin if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu. Secara umum ada dua bentuk umum sintak perintah if , seperti ditunjukkan dibawah ini if instruksi1 then instruksi1.1 instruksi1.2 ........ else instruksi2.1 instruksi2.2 ........ fi
Kalau diperhatikan, perintah if ini hampir sama dengan perintah if pada bahasa-bahasa tingkat tinggi, seperti Pascal, C, dan juga hampir sama dengan perintah if pada batch file-nya DOS. Pada bentuk pertama maupun bentuk kedua dari sintak diatas adalah statement dalam blok if...fi akan dieksekusi apabila kondisi if terpenuhi. Dari kedua bentuk diatas dapat pula ditambahkan perintah untuk pengecekan kondisi dengan elif (else if).
8. INSTRUKSI TEST Instruksi test digunakan untuk memeriksa kondisi dari sebuah ekspresi. Ekspresi terdiri dari factori dan operator yang dipisahkan oleh spasi. Hasil test akan memberikan nilai berupa status exit, yaitu 0 bila ekspresi sesuai, bila tidak maka hasilnya adalah tidak sama dengan nol.
VI - 5
Operator untuk test Operator
0 atau TRUE, jika
string1 = string2
Identical
string1!= string2
Not identical
-n string
String is not null
-z string
String is null
Test untuk files dan direktori Operator
0 atau TRUE, jika
-f namafile
File ada, file biasa
-d namafile
File
ada,
file
adalah
direktori -r namafile
File dapat dibaca
-w namafile
File dapat ditulis
-x namafile
File adalah executable
-s namafile
File ada dan tidak kosong
-w namafile
File dapat ditulis
Untuk memudahkan pembacaan (readability), test dapat ditulis dengan : [ ekspresi ] Tanda [ sebenarnya adalah nama lain dari test,bedanya [ akan mencari kurung penutup ] pada akhir ekspresi yang harus dipisahkan oleh spasi.
9. LOGICAL && DAN || (SHELL LEVEL) Notasi && dan || digunakan untuk menggabungkan instruksi shell sebagai alternative dari if then else. Notasi && dan || sering ditemukan pada shell script system administrator untuk menjalankan routine dari system operasi. instruksi1 && instruksi2 shell akan mengeksekusi instruksi1, dan bila exit status instruksi1 adalah false, maka hasil dari AND tersebut sudah pasti sama dengan FALSE, sehingga instruksi2 tidak mempunyai pengaruh lagi. Oleh karna itu
VI - 6
instruksi2 tidak dijalankan. Sebaliknya bila hasil instruksi1 adalah true/0, maka instruksi2 dijalankan. instruksi1 || instruksi2 shell akan mengeksekusi instruksi1, dan bila exit status adalah TRUE(0), hasil dari operasi OR tersebut sudah pasti menghasilkan TRUE, terlepas dari hasil eksekusi instruksi2. Oleh karena itu instruksi2 tidak perlu dijalankan. Bila hasil instruksi1 adalah FALSE, maka instruksi2 akan dijalankan.
10. OPERATOR BILANGAN BULAT UNTUK TEST Untuk membandingkan 2 buah bilangan, test memerlukan operator yang berbeda dengan string. Operator
0 atau TRUE, jika
il –eq i2
Bilangan sama
il –ge i2
Lebih besar atau sama dengan
il –gt i2
Lebih besar
il –le i2
Lebih kecil atau sama dengan
il –lt i2
Lebih kecil
il –ne i2
Bilangan tidak sama
11. OPERATOR LOGICAL (TEST LEVEL) Logical operator terdiri dari AND(-a), OR(-o), dan NOT(!). Operator ini menggabungkan hasil ekspresi sebagai berikut : A
B
!A
A -a B
A -o B
False
False
True
False
False
False
True
True
False
True
True
False
False
False
True
true
true
false
true
true
VI - 7
12. KONSTRUKSI IF THEN ELSE IF Bila status exit tidak sama dengan 0, maka kondisi menjadi FALSE dan instruksi setelah else akan dijalankan.
13. HITUNGAN ARITMATIKA Untuk melakukan perhitungan aritmatik, shell tidak memiliki kemampuan built-in, tetapi meminta bantuan program lain yaitu `expr`. Program expr berfungsi untuk mengevaluasi suatu expresi baik itu perbandingan string atau operasi aritmatik sederhana. Operator aritmatik yang disediakan expr antaran lain:
Selain digunakan untuk perhitungan aritmatik, perintah `expr` juga cukup handal untuk melakukan manipulasi string, untuk lebih jelas silahkan lihat halaman manual dari expr dengan mengetikkan `man expr`.
14. INSTRUKSI EXIT Program dapat dihentikan (terminated/selesai) dengan intruksi exit. Sebagai nilai default program tersebut akan memberikan status exit 0.
15. KONSTRUKSI CASE Pernyataan case memiliki fungsi yang sama dengan pernyataan if yaitu memeriksa suatu ekspresi dan melakukan suatu proses bila ekspresi tersebut bernilai benar, hanya saja pernyataan case memiliki kelebihan yaitu dapat menggunakan
wildcards
dalam
ekspresi
yang
akan
diperiksa.
Perintah case hampir sama dengan if-then-elif-else-fi karena dapat memilih
VI - 8
dari banyak kondisi. Sebagian orang lebih suka menggunakan case...esac dibanding multi level-if karena lebih mudah dibaca.Case digunakan untuk menyederhanakan pemakaian if yang berantai, sehingga dengan case kondisi dapat dikelompokan lebih jelas dan mudah untuk ditulis. case variable in match1) instruksi1.1 instruksi1.2 ........ ;; match2 ) instruksi2.1 instruksi2.2 ....... ;; *) instruksi3.1 instruksi3.2 ....... ;; esac Case diakhiri dengan esac dan pada setiap kelompok instruksi diakhiri dengan ;;. Pada akhir pilihan yaitu *) yang berarti adalah “default”, bila kondisi tidak memenuhi pola sebelumnya.
16. KONSTRUKSI FOR For digunakan untuk perulangan dengan menggunakan variable yang ada pada setiap perulangan akan diganti dengan nilai yang berada pada daftar (list). for var in str1 str2 .... strn
VI - 9
do instruksi1 instruksi2 ............ done
17. KONSTRUKSI WHILE Pernyataan perulangan ini umumnya digunakan untuk melakukan perulangan
dengan
kondisi tertentu, di mana perulangan akan terus
dilakukan dalam blok while selama ekspresi yang menjadi syarat masih dipenuhi (bernilai benar). Untuk ilustrasi, dapat dilihat pada gambar Sedangkan mengenai bentuk dari pernyataan ini adalah:
While digunakan untuk perulangan instruksi, yang umumnya dibatasi dengan sustu kondisi. Selama kondisi tersebut true, maka pengulangan akan terus dilakukan. Loop akan berhenti, bila kondisi false, atau program keluar dari blok while melalui exit atau break. while kondisi do instruksi1 instruksi2 ........ done
VI - 10
18. INSTRUKSI DUMMY Instruksi dummy adalah instruksi yang tidak melakukan apa-apa, namun isntruksi ini memberikan status exit 0 (TRUE). Oleh karna itu, instruksi dummy dapat digunakan sebagai kondisi forever pada loop (misalnya while). Symbol instruksi dummy adalah :
19. FUNGSI Hampir sama dengan bahasa pemrograman tingkat tinggi, pada shell script juga dikenal istilah fungsi. Dimana dengan adanya fungsi kita dapat membagi kode kita ke dalam sub-sub yang lebih kecil. Hal ini sangat berguna jika kita membangun sebuah program shell script yang cukup kompleks. Fungsi adalah program yang dapat dipanggil oleh program lainnya dengan menggunakan notasi NamaFungsi(). Fungsi memberikan exit status ($?) yang dinyatakan dengan return nr, atau nilai 0 sebagai default. Membuat fungsi diawali dengan nama fungsi, parameter, kemudian blok program yang dinyatakan dalam {…….}. Contoh : F1 (
)
{ ................. ................. return 1 } Variabel dapat di definisikan dalam fungsi sebagai variabel local atau global. Hal yang perlu diperhatikan, nama variable yang digunakan dalam sebuah fungsi, jangan sampai bentrok dengan nama variable yang sama di luar fungssi, sehingga tidak terjadi isi variable berubah. Login sebagai user, bukalah Console Terminal dan lakukan percobaan-percobaan dibawah ini kemudian selesaikan soal-soal latihan !
VI - 11
6.3 Hasil dan Pembahasan Percobaan 1 : Membuat Shell Script 1. Buatlah file prog01.sh dengan editor vi $ vi prog01.sh #!/bin/sh # Program shell # var1=x var2=8
Gambar 6.1 Tampilan Membuat Shell Script Analisis Gambar di atas merupakan perintah untuk membuat shell script dengan membuat file prog01.sh menggunakan editor vi. Perintah $ vi prog01.sh berfungsi untuk mengedit file konfigurasi sistem dan membuat script. Kemudian tekan i intuk insert script. Script berikut #!/bin/sh # Program shell # var1=x var2=8 berfungsi untuk mendifinisikan var1 sama dengan x dan var2 sama dengan 8. tekan esc pada keyboard lalu setelah tulisan INSERTnya hilang ketikan :wq berfungsi untuk menyimpan dan keluar dari file tersebut.
VI - 12
2. Untuk menjalankan shell, gunakan notasi TITIK di depan nama program $ . prog01.sh
Gambar 6.2 Tampilan Membuat Shell Script Analisis
Gambar di atas merupakan perintah untuk menjalankan shell, gunakan notasi TITIK di depan nama program. Ketikkan perintah di atas, tapi prog01.sh ini tidak menampilkan teks/string seperti menggunakan perintah echo, maka pada saat prog01.sh dijalankan tidak akan ditampilkan apa-apa.
3. Untuk menjalankan shell, dapat juga membuat executable file dan dieksekusi dari current directory $ chmod +x prog01.sh
Gambar 6.3 Tampilan Membuat Shell Script Analisis Gambar di atas merupakan perintah untuk menjalankan shell, dapat juga membuat executable file dan dieksekusi dari current directory. Setelah mengetikkan perintah di atas, prog01.sh tidak akan menampilkan apa-apa karena isi dari script prog01.sh hanya mendefiniskan var1 dan var2 tanpa ada proses menampilkan.
VI - 13
Percobaan 2 : Variable 1. Contoh menggunakan variable pada shell interaktif $ VPT=poltek $ echo $VPT
Gambar 6.4 Tampilan Variable Analisis Gambar di atas merupakan contoh menggunakan variable pada shell interaktif. Pada shell aktif untuk menampilkan variabel pertama definiskan nama variabel tersebut, misalnya variabel VPT berisi poltek. Dan untuk menampilkan atau memanggil variabel tersebut dapat menggunakan echo $VPT maka setelah dienter isi dari variabel VPT akan tampil yaitu output dengan tulisan poltek.
2. Pemisahan 2 kata dengan spasi menandakan eksekusi 2 buah intruksi. Karakter $ harus ada pada awal nama variable untuk melihat isi variable tersebut, jika tidak, maka echo akan mengambil parameter tersebut sebagai string. $ VPT2=poltek elektronika (terdapat pesan error) $ VPT2=”poltek elektronika” $ echo $VPT2
Gambar 6.5 Tampilan Variable
VI - 14
Analisis Gambar di atas merupakan pemisah 2 kata dengan spasi menandakan eksekusi 2 buah intruksi. Terdapat beberapa perbedaan utnuk program di atas. Untuk isi dari sebuah variabel apabila terdiri dari dua buah kata maka tidak bisa secara langsung dipisahkan dengan spasi jadi terdapat pesan error. Untuk membuat variabel dengan 2 kata harus diaapit oleh tanda kutip dua (“). Kemudian pada perintah selanjutnya untuk menampilkan variabel VPT2 ini harus diawali dengan tanda $ jika tidak, maka echo akan mengambil parameter tersebut sebagai string.
3. Menggabungkan dua variable atau lebih $ V1=poltek $ V2=’:‘ $ V3=elektronika $ V4=$VIV2$V3 $ echo $V4
Gambar 6.6 Tampilan Variable Analisis Gambar di atas merupakan penggabungan dua variable atau lebih. Untuk menggabungkan dua variabel atau lebih selain dapat ditulis secara langsung bisa juga didefinisikan lagi kedalam variabel lain contohnya pada gambar diatas tiga buah variabel didefiniskan di variabel V4 maka untuk menampilkan variabel V1 V2 V3 cukup memanggil variabel V4 saja.
VI - 15
4. Menggabungkan isi variable dengan string yang lain. Jika digabungkan dengan nama variable yang belum didefinisikan (kosong) maka instruksi echo menghasilkan string kosong. Untuk menghindari kekeliruan, nama variable perlu diproteksi dengan { } dan kemudian isi variable tersebut digabung dengan string. $ echo $V3 $ echo $V3ITS $ echo ${V3}ITS
Gambar 6.7 Tampilan Variable Analisis Gambar di atas merupakan penggabungan isi variable dengan string yang lain. Untuk menggabungkan sebuah variabel dengan string lain tidak dapat secara langsung seperi pada perintah 2 diatas. Jika penulisan nya seperti $V3ITS maka instruksi echo akan menampilkan sting kosong karena variabel tersebut dianggap sebagai variabel yang belum terdefinisikan. Untuk menggabungkan isi variabel dengan string lain digunakan tanda {} untuk memisahkan variabel dengan string lain tersebut.
5. Variable dapat berisi instruksi, yang kemudian bila dijadikan instruksi tersebut akan dieksekusi $ CMD=who $ $CMD $ CMD=”1s -1” $ $CMD
VI - 16
Gambar 6.8 Tampilan Variable Analisis Gambar di atas merupakan variabel berisi instruksi, yang kemudian bila dijadikan instruksi tersebut akan dieksekusi. Variabel dapat berisi isntruksi. Seperti pada contoh diatas variabel CMD diisi oleh instruksi who, maka apabila variabel CMD dipanggil isntruksi who yang tedapat dalam variabel CMD akan dieksekusi. Begitu juga dengan variabel CMD yang disi dengan perintah ls –l, dan tampil dengan output menampilkan file dile pada direktori.
6. Membuat shell script, contoh prog01.sh sebagai berikut : $ vi prog01.sh #!/bin/sh V1=poltek V2=’:‘ V3=elektronika echo “Pemrograman shell” echo $V1$V2$V3 V3=ITS echo $V1$2 di $V3
VI - 17
Gambar 6.9 Tampilan Variable Analisis Gambar di atas merupakan pengeditan shell script pada percobaan pertama. Shell script dari modifikasi prog01.sh ini berisi 3 buah variabel yaitu V1 V2 V3. Pada awalnya variabel V3 berisi dengan string elektronika namun kemudian variabel V3 diubah dengan isi ITS. Maka apabila ditampilkan echo pertama akan menampilkan pemrograman shell, kemudian echo kedua akan menampilkan poltek:elektronika sedangkan echo ketiga akan menampilkan poltek: di ITS karena V3 sebelumnya telah mengalami perubahan isi.
7. Menjalankan prog01.sh $ . prog01.sh $ prog01.sh (TERDAPAT PESAN ERROR) $ ./prog01.sh (TERDAPAT PESAN ERROR) $ chmod +x prog01.sh $ ./prog01.sh
Gambar 6.10 Tampilan Variable Analisis
VI - 18
Gambar di atas merupakan cara untuk menjalankan prog01.sh. Untuk memanggil prog01.sh ini dapat dilakukan dengan beberapa cara seperti diatas. Pemanggilan kedua dan ketiga gagal, karena pemanggilan tersebut hanya untuk file executable.
Percobaan 3 : Membaca Keyboard 1. Menggunakan intruksi read $ read nama Pebri $ echo
$nama
Gambar 6.11 Tampilan Membaca Keyboard Analisis Gambar di atas merupakan cara untuk membaca keyboard. Untuk membaca input dari keyboard dapat menggunakan instruksi read. Program diatas variabel nama akan dinput melalui keyboard yaitu Pebri, pada saat dipanggil maka variabel nama tersebut kan menampilkan Pebri.
2. Membaca nama dan alamat dari keyboard. $ vi prog02.sh #!/bin/sh # prog02.sh # membaca nama dan alamat echo “Nama Anda :” read nama echo “Alamat : “ read alamat
VI - 19
echo “Kota : “ read kota echo echo “Hasil adalah : $nama, $alamat di $kota”
Gambar 6.12 Tampilan Membaca Keyboard Analisis Gambar di atas merupakan pembuatan file prog02.sh. Sama halnya dengan percobaan pada point sebelumnya, namun percobaan membaca variabel dari keyboard ini dilakukan melalui shell script prog02.sh. 3 buah variabel nama alamat dan kota merupakan input dari keyboard menggunkan perintah read dan akan di eksekusi pada percobaan berikutnya.
3. Eksekusi program prog02.sh $ . prog02.sh Nama Anda : Pebri Alamat : Jl Benda Kota : Tasikmalaya Hasil adalah : Pebri, Jl benda di tasikmalaya
VI - 20
Gambar 6.13 Tampilan Membaca Keyboard Analisis Gambar di atas merupakan perintah untuk menjalankan proses membaca keyboard. Pada saat prog02.sh dieksekusi akan tampil tulisan nama anda : kemudian diikuti dengan perintah memasukan input dari variabel nama dengan posisi satu enter. Begitu juga untuk variabel alamat dan kota. Kemudian setelah menginputkan variabel kota maka akan tampil Hasil adalah : dengan variabel nama, varibael alamat dan diikuti di dengan variabel kota.
4. Instruksi echo secara otomatis memberikan baris baru, untuk menghindari hal tesebut gunakan opsi –n, untuk menghilangkan baris baru. Modifikasi program prog02.sh kemudian eksekusi! $ vi prog02.sh #!/bin/sh # prog02.sh # membaca nama dan alamat echo -n “Nama Anda : ” read nama echo
-n “Alamat : “
read alamat echo
-n “Kota : “
read kota
VI - 21
echo echo “Hasil adalah : $nama, $alamat di $kota”
Gambar 6.14 Tampilan Membaca Keyboard Analisis Gambar di atas merupakan perintah untuk memodifikasi prog02.sh. Pada prog02.sh yang baru ini perintah echo diikuti –n untuk mengilangkan baris baru untuk melakukan input keyboard dari masing masing variabel dan akan di eksekusi pada percobaan berikutnya.
5. Eksekusi program prog02.sh $ . prog02.sh Nama Anda : Pebri Alamat : Jl benda Kota : Tasikmalaya Hasil adalah : Pebri, Jl benda di Tasikmalaya
Gambar 6.15 Tampilan Membaca Keyboard Analisis
VI - 22
Gambar di atas merupakan perintah untuk membaca keyboard. Prog02.sh tersebut di eksekusi sehingga tampil dan terlihat perbedaan dengan percobaan 3 nomer 3 untuk input keyboard tidak dilakukan pada baris baru namun meneruskan dari perintah echo.
6. Variable kosong adalah varabel yang tidak mempunyai nilai. $ read nama $ echo $nama $ A= $ B=”” $ C=$A$B $ echo $c
Gambar 6.16 Tampilan Membaca Keyboard Analisis Gambar di atas merupakan perintah untuk membaca keyboard. Seluruh perintah dari variabel diatas merupakan variabel kosong atau tidak mempunyai nilai. Maka pada saat variabel dipanggil tidak akan menamilkan apapun.
VI - 23
7. Variable dapat didistribusikan dengan hasil eksekusi dari sebuah instruksi. $ pwd $DIR=’pwd’ $echo $DIR
Gambar 6.17 Tampilan Membaca Keyboard Analisis Gambar di atas merupakan perintah untuk membaca keyboard. Untuk mengisi variabel dengan subtitusi hasil eksekusi dari sebuah eksekusi instruksi harus menggunakan sepasang back quate (`). Misalnya pada contoh diatas variabel DIR didistribusikan dengan hasil eksekusi dari peirntah pwd. Maka saat variabel DIR dipanggil akan tampil hasil dari pwd tersebut.
8. Buatlah shell script prog03.sh kemudian eksekusi! $ vi prog03.sh #!/bin/sh # prog03.sh # NAMA=’whoami’ echo Nama pengguna Aktif adalah $NAMA tanggal=’date | cut –c1-10’ echo
hari ini anggal $tanggal
Gambar 6.18 Tampilan Membaca Keyboard Analisis
VI - 24
Gambar di atas merupakan perintah untuk membuat file Prog03.sh untuk menampilkan variabel dari hasil eksekusi perintah whoami dan date. Variabel whoami didefiniskan dalam variable NAMA sedangkan date didefinisikan dengan variabel tanggal dan akan di eksekusi pada percobaan berikutnya
9. Eksekusi prog03.sh $ . prog03.sh
Gambar 6.19 Tampilan Membaca Keyboard Analisis Gambar di atas merupakan hasil dari eksekusi shell script prog03.sh. nama pengguna aktif berisi variabel NAMA yaitu hasil eksekusi dari perintah whoami. Kemudian Hari ini tanggal akan diikuti dengan variabel tanggal dengan isi hasil dari instruksi date.
Percobaan 4 : Parameter 1. Membuat shell script prog04.sh $ vi prog04.sh #!/bin/sh # prog04.sh versi 1 # Parameter passing # echo “Nama program adalah $0” echo “Parameter 1 adalah $1” echo “Parameter 2 adalah $2” echo “Parameter 3 adalah $3”
VI - 25
Gambar 6.20 Tampilan Parameter Analisis Gambar di atas merupakan perintah untuk membaca parameter. Perintah $ vi prog04.sh berfungsi untuk membuat shell script prog04.sh. script berikut : # prog04.sh versi 1 # Parameter passing # echo “Nama program adalah $0” echo “Parameter 1 adalah $1” echo “Parameter 2 adalah $2” echo “Parameter 3 adalah $3” merupakan contoh dari pembuatan parameter dengan 4 buah parameter $0 hingga $3 dan akan di eksekusi pada percobaan berikutnya.
2. Eksekusi prog04.sh tanpa parameter, dengan 2 parameter dan dengan 4 parameter! $ . prog04.sh $ . prog04.sh pebri ramdani $ . prog04.sh pebri ramdani coba lagi
VI - 26
Gambar 6.21 Tampilan Parameter Analisis Gambar di atas merupakan perintah membaca parameter. Apabila prog04.sh hanya di eksekusi tanpa diikuti dengan parameter maka akan menampilkan nama program dengan $0 adalah bash sedangkan parameter 1 2 dan 3 tidak akan berisi parameter. Eksekusi prog04.sh kedua dan ketiga diikuti dengan beberapa parameter. Pertama hanya ada dua parameter yaitu pebri dan ramdani maka parameter yang akan diisi hanya parameter 1 dan 2. Sedangkan selanjutnya diiktui dengan 4 buah parameter. Sehingga nama tanid tidak akan dimasukan kedalam parameter secara merurutan. 3. Membuat shell script prog04.sh versi 2 dengan memberikan jumlah parameter $ vi prog04.sh #!/bin/sh # prog04.sh versi 2 # Parameter passing # echo “Jumlah parameter yang diberikan adalah $#” echo “Nama program adalah $0” echo “Parameter 1 adalah $1”
VI - 27
echo “Parameter 2 adalah $2” echo “Parameter 3 adalah $3”
Gambar 6.22 Tampilan Parameter Analisis Gambar di atas merupakan perintah memodifikasi shell script pada program parameter prog04.sh. pada texr editor vi diisikan script berikut #!/bin/sh # prog04.sh versi 2 # Parameter passing # echo “Jumlah parameter yang diberikan adalah $#” echo “Nama program adalah $0” echo “Parameter 1 adalah $1” echo “Parameter 2 adalah $2” echo “Parameter 3 adalah $3” sehingga parameter yang diberikan didefiniskan dengan simbol $#, dan akan di eksekusi pada percobaan berikutnya.
VI - 28
4. Eksekusi prog04.sh tanpa parameter dan dengan 4 parameter $ . prog04.sh $ . prog04.sh pebri tanib tanic tanid
Gambar 6.23 Tampilan Parameter Analisis Gambar di atas merupakan perintah membaca parameter. Eksekusi pertama prog04.sh tidak diisi dengan parameter maka $# akan menampilkan 0, sedangkan eksekusi porg04.sh diikuti dengan pebri ramdani coba lagi dihitung sebgai 4 parameter, dan tampil dengan jumlah parameternya ditampilkan.
5. Membuat shell script prog04.sh versi 3 dengan menambahkan total parameter dan nomor proses id $ vi prog04.sh #!/bin/sh # prog04. Sh versi 3 # Parameter passing # echo “Jumlah parameter yang diberikan adalah $#” echo “Nama program adalah $0” echo “Parameter 1 adalah $1” echo “Parameter 2 adalah $2” echo “Parameter 3 adalah $3” echo “Total parameter adalah $*”
VI - 29
echo “PID proses shell ini adalah $$”
Gambar 6.24 Tampilan Parameter Analisis Gambar di atas merupakan perintah membaca parameter. Pada prog04.sh versi 3 ini diberikan dengan nomor proses id yang didefiniskan dengan $$. Sedangkan untuk menampilkan seluruh parameter yang diinputkan menggunakan instruksi $*, dan akan di eksekusi pada percobaanberikutnya.
6. Eksekusi prog04.sh dengan 4 parameter $ . prog04.sh pebri ramdani coba lagi
Gambar 6.25 Tampilan Parameter Analisis Gambar di atas merupakan perintah membaca parameter. Total parameter adalah merupakah hasil untuk menampilkan pebri ramdani coba lagi dari instruksi $*. Sedangakn PID proses shell ini adalah 9072 dengan instruksi $$, dan
VI - 30
menampilkan program sebelumnya dengan menampilkan juga no PID yang digunakan.
Percobaan 5 : Status Exit 1. String tidak ditemukan, maka status exit adalah 1 $ grep xyz / etc/ passwd $ echo $?
Gambar 6.26 Tampilan Status Exit Analisis Gambar di atas merupakan perintah status exit. Apabila string yang tidak ditemukan pada instruksi grep seperti diatas, akan ditampilkan status exit dengan perintah echo $? adalah 1, artinya tidak ditemukan.
2. String ditemukan, maka status exit adalah 0 $ grep /etc/passwd $ echo $2?
Gambar 6.27 Tampilan Status Exit Analisis Gambar di atas merupakan perintah status exit. Pada contoh diatas ini string pebri.ramdani ditemukan dalam directory /etc/passwd maka apabila echo $? dipanggil akan menampilkan status exit 0, dan artinya string ditemukan.
VI - 31
Percobaan 6 : Konstruksi if 1. Instruksi dengan exit status 0 $ who $ who | grep $ echo $?
Gambar 6.28 Tampilan Konstruksi If Analisis Gambar di atas merupakan perintah konstruksi if. Masih merupakan bahasan status exit dari string pebri.ramdani dari instruksi who, maka status exitnya adalah 0 dan tampil dengan menampilkan hasil yang berkaitan dengan perintah who. 2. If membandingkan exit status dengan 0, bila sama, maka blok program masuk ke dalam blok then-fi $ if [ $? = 0 ] > then > echo “Pemakai tersebut sedang aktif” > fi
Gambar 6.29 Tampilan Konstruksi If Analisis
VI - 32
Gambar di atas merupakan perintah konstruksi if. Perintah if ini adalah untuk membandingkan status exit dengan 0, bila sama, maka program masuk ke dalam blok then if yaitu Pemakai tersebut sedang aktif, karena perintah sebelumnya user pebri ramdani sedang aktif hasilnya 0, apabila dengan if $? = 1 artinya user tidak aktif.
3. Nomor (1) dan (2) diatas dapat disederhanakan dengan $ if who | grep >/dev/nu11 > then > echo okay > fi
Gambar 6.30 Tampilan Konstruksi If Analisis Gambar di atas merupakan perintah konstruksi if. Pada percobaan ini merupakan penyederhanaan dari nomor 1 dan 2. Dengan instruksi if who dengan grep pebri.ramdani akan dibelokan ke /dev/null maka apabila perintahnya berstatus exit 0 akan ditampilkan okay.
Percobaan 7 : Konstruksi if then else 1. Membuat shell script prog05.sh $ vi prog05.sh #! /bin/sh # prog05.sh # Program akan memberikan konfirmasi apakah nma
VI - 33
# user sedang aktif atau tidak # echo –n “Berikan nama pemakai : “ read nama if who | grep $nama > /dev/null then echo “$nama sedang aktif” else echo “$nama tidak aktif” fi
Gambar 6.31 Tampilan Konstruksi If Then Else Analisis Gambar di atas merupakan perintah konstruksi if then else. Perintah vi prog05.sh digunakan untuk membuat shell script prog05.sh. isi dari program ini yaitu lanjutan dari percobaan sebelumnya tentang memberi konfirmasi apakah user sedang aktif atau tidak. Konsturksi if then else ini digunakan pada script shell prog05.sh grep dari variabel $nama akan dibelokan ke /dev/null. Kemudian then apabila aktif atau else jika nama tidak aktif dan ditutup dengan fi dan akan di eksekusi pada percobaan berikutnya.
VI - 34
1. Jalankan prog05.sh, masukan nama pemakai aktif yang tampil pada instruksi who dan coba juga untuk nama pemakai yang tidak aktif $ who $ . prog05.sh [nama=] $ . prog05.sh [nma=studentOS]
Gambar 6.32 Tampilan Konstruksi If Then Else Analisis Gambar di atas merupakan perintah menampilkan konstruksi if then else. Perintah who ini menampilkan user aktif yaitu pebri.ramdani dan user yang tidak aktif yaitu student. Jika prog05.sh diisi dengan pebri.ramdani, maka akan ditampilkan pebri.ramdani sebagai variabel nama yaitu pebri.ramdani sedang aktif. Sedangkan jika prog05.sh diisi dengan nama pemakai student maka instruksi ini dinyatakan tidak aktif karena user yang aktif adalah pebri.ramdani.
VI - 35
Percobaan 8 : Instruksi Test 1. Menggunakan instruksi test, perhatikan spasi antara $ NAMA=pebri $ test $NAMA = pebri $ echo $? $ test $ NAMA = boris $ echo $?
Gambar 6.33 Tampilan Instruksi Test Analisis Gambar di atas merupakan perintah instruksi test. Variabel NAMA diisi dengan pebri. Kemudian untuk memanggil variabel NAMA dengan perintah test dengan $NAMA didfiniskan pebri maka status exit bernilai 0. Sedangkan apabila berisi boris status exit berisi 1 artinya nama boris belum diinputkan, maka apabila dipanggil nama boris tidak ditemukan.
2. Aplikasi test dengan konstruksi if $ vi prog06.sh #! /bin/sh # prog06.sh echo –n “NAMA = “ read NAMA if test “$NAMA” = pebri then echo “Selamat Datang $NAMA” else
VI - 36
echo “Anda bukan pebri, sorry!” fi
Gambar 6.34 Tampilan Instruksi Test Analisis Gambar di atas merupakan perintah instruksi test. Perintah vi prog06.sh berfungsi untuk membuat program dengan script shell berikut #! /bin/sh # prog06.sh echo –n “NAMA = “ read NAMA if test “$NAMA” = pebri then echo “Selamat Datang $NAMA” else echo “Anda bukan pebri, sorry!” fi Sama halnya dengan point sebelumnya, yaitu aplikasi test, namun pada shell script prog06.sh. Variabel nama didefinisikan sebagai pebri. Dengan perintah if apabila variabel nama berisi pebri maka akan ditampilkan Selamat datang pebri sedangkan apabila bukan (else) maka akan ditampilkan Anda bukan pebri, sorry !! script fi untuk mengakhiri program.
VI - 37
3. Jalankan program prog06.sh dengan memasukan NAMA = amir dan NAMA = perhatikan hasil tampilannya $ prog06.sh [NAMA = pebri] $ prog06.sh [NAMA = ] (Terdapat pesan error)
Gambar 6.35 Tampilan Instruksi Test Analisis Gambar di atas merupakan perintah instruksi test. Perintah ini merupakan eksekusi dari prog06.sh apabila nama diisi dengan pebri maka seperti pada perintah 1 yaitu Selamat datang pebri, sedangkan pada contoh kedua variabel nama diisi dengan maka ditampilkan pesan error karena tidak ada di direktori.
4. Modifikasi prog06.sh dengan menggunakan notasi untuk test $ vi prog06.sh #! /bin/sh # prog06.sh echo –n “NAMA = “Read NAMA if [ “$NAMA” = pebri ] then echo “Selamat Datang $NAMA” else echo “Anda bukan pebri, sorry!” fi
VI - 38
Gambar 6.36 Tampilan Instruksi Test Analisis Gambar di atas merupakan perintah instruksi test. Sama halnya dengan point 2 namun pada modifikasi ini perintah test diganti dengan perintah [ ], dan akan di eksekusi pada percobaan berikutnya
5. Jalankan program prog06.sh dengan memasukan NAMA = amir $ . prog06.sh [NAMA= pebri]
Gambar 6.37 Tampilan Instruksi Test Analisis Gambar di atas merupakan perintah instruksi test. Meskipun perintah if didefiniskan dengan perintah [ ] tapi hasil eksekusi prog06.sh akan menampilkan hasil yang sama dengan perintah test sebelumnya.
VI - 39
Percobaan 9 : Notasi && dan || 1. Bila file prog01.sh ada (TRUE), maka jalankan program berikutnya. File prog01.sh ada, karena itu exit status adalah TRUE, hasil operasi AND masih tergantung pada hasil eksekusi instruksi ke 2, dan dengan demikian instruksi echo akan dijalankan $ [ -f prog01.sh ] && echo “prog01.sh ada”
Gambar 6.38 Tampilan Notasi && dan || Analisis Gambar diatas merupakan perintah notasi && dan ||. Bila file prog01.sh ada (TRUE), maka jalankan program berikutnya. File prog01.sh ada, karena itu exit status adalah TRUE, hasil operasi AND masih tergantung pada hasil eksekusi instruksi ke 2, dan dengan demikian instruksi echo akan dijalankan.
2. File prog99.sh tidak ada, karena itu exit status adalah FALSE dan instruksi echo tidak dijalankan $ [ -f prog99.sh ] && echo “prog99.sh ada”
Gambar 6.39 Tampilan Notasi && dan || Analisis Gambar di atas merupakan perintah notasi && dan ||. File prog99.sh tidak ada, karena itu exit status adalah FALSE dan instruksi echo tidak dijalankan.
3. Bila prog01.sh ada maka jalankan shell script tersebut $ [ -f prog01.sh ] && . prog01.sh
Gambar 6.40 Tampilan Notasi && dan ||
VI - 40
Analisis Gambar di atas merupakan peritnah notasi && dan ||. Pada perintah ini adalah untuk menjalankan shell script dari prog01.sh. sama halnya dengan fungsi instrusi dari . prog01.sh.
4. Bila prog01.sh ada maka jalankan program berikutnya. File prog01.sh memang ada, karena itu exit status adalah TRUE, dank arena sudah TRUE maka instruksi echo tidak lagi dijalankan $ [ -f prog01.sh ] || echo “Dieksekusi tidak ?”
Gambar 6.41 Tampilan Notasi && dan || Analisis Gambar di atas merupakan perintah notasi && dan ||. Bila prog01.sh ada maka jalankan program berikutnya. File prog01.sh memang ada, karena itu exit status adalah TRUE, dank arena sudah TRUE maka instruksi echo tidak lagi dijalankan.
5. File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil masih tergantung atas exit status instruksi ke dua, karena itu instruksi echo dijalankan $ [-f prog99.sh ] || echo “Dieksekusi tidak ?”
Gambar 6.42 Tampilan Notasi && dan || Analisis Gambar di atas merupakan perintah notasi && dan ||. File prog99.sh tidak ada, karena itu exit status adalah FALSE, hasil masih tergantung atas exit status instruksi ke dua, karena itu instruksi echo dijalankan (dieksekusi).
VI - 41
6. File prog99.sh tidak ada, maka tampilkan pesan error $ [ -f prog99.sh ] || echo “Sorry, prog99.sh tidak ada”
Gambar 6.43 Tampilan Notasi && dan || Analisis Gambar di atas merupakan perintah notasi && dan ||. File prog99.sh tidak ada, maka tampilkan pesan error seperti perintah di atas.
Percobaan 10 : Operator Bilangan Bulat Untuk Test 1. Menggunakan operator dengan notasi test $ i=5 $ test “$i” -eq 5 $ echo $?
Gambar 6.44 Tampilan Operator Bilangan Bulat Untuk Test Analisis Gambar di atas merupakan perintah operator bilangan bulat untuk test. Variabel i berisi 5 maka dengan notasi test, variabel i –eq (sama dengan) 5 dan apabila dijalankan instruksi echo $? status exit bernilai 0 karena i memang berisi dengan nilai 5.
2. Menggunakan operator dengan notasi [] (pengganti notasi test) $ [ “$i” –eq 5] $ echo $?
VI - 42
Gambar 6.45 Tampilan Operator Bilangan Bulat Untuk Test Analisis Gambar di atas merupakan perintah operator bilangan bulat untuk test. Sama halnya dengan yang nomer 1, namun diganti dengan notasi [ ] maka status exit tetap akan bernilai 0.
Percobaan 11 : Operator Logika dan Konstruksi Elif 1. Buatlah file prog07.sh $ vi prog07.sh #!/bin/sh # prog07.sh echo –n “INCOME = “ read INCOME if [ $INCOME –ge 0 –a $INCOME -1e 10000 ] then Biaya=10 elif [ $INCOME –gt 10000 –a $INCOME -1e 25000 ] then BIAYA=25 else BIAYA=35 fi echo “Biaya = $BIAYA”
VI - 43
Gambar 6.46 Tampilan Operator Logika dan Konstruksi Elif Analisis Gambar di atas merupakan perintah operator logika dan konstruksi elif. Perintah $ vi prog07.sh berfungsi untuk membuat Shell script prog07.sh yang berisi perintah if dengan variabel income. Ada 3 perintah yaitu BIAYA=10 BIAYA=25 dan BIAYA=35 dan akan dieksekusi pada berikutnya.
2. Jalankan file prog07.sh dan masukan untuk INCOME=5000, 20000, 28000 $ . prog07.sh [INCOME=5000 ] $ . prog07.sh [INCOME=20000 ] $ . prog07.sh [INCOME=28000]
Gambar 6.47 Tampilan Operator Logika dan Konstruksi Elif Analisis
VI - 44
Gambar di atas merupakan perintah operator logika dan konstruksi elif. Apabila variabel income diisi dengan INCOME antara 0 sampai dengan 10000 maka biaya yang akan ditampilkan adalah 10, sedangkan apabila income berisi nilai antara 10000 sampai dengan 25000 maka biaya yang akan ditampilkan adalah 25 dan jika INCOME berisi lebih dari 25000 maka ditampilkan BIAYA 35 dan tampil seperti gambar di atas.
Percobaan 12 : Hitungan aritmatika 1. Menggunakan utilitas expr $ expr 5 + 1 $ A=5 $ expr $A + 2 $ expr $A – 4 $ expr $A * 2
(Ada pesan error)
$ expr $A \* 2 $ expr $A / 6 + 10 $ expr 17 % 5
VI - 45
Gambar 6.48 Tampilan Hitungan Aritmatika Analisis Gambar di atas merupakan perintah hitungan aritmatika. Untuk perhitungan aritmatika dapat menggunakan utilitas expr. Untuk simbol dari penjumlahan adalah +, pengurangan -, namun untuk perkalian bukan menggunakan perintah * tetapi expr dari perkalian adalah \* dan untuk pembagian menggunakan / dan % digunakan untuk expr mod atau sisa hasil bagi dan tampil seperti gambar di atas.
2. Subtitusi isi variable denga hasil utilitas expr $ A=5 $ B=’expr $A + 1’ $ echo $B
Gambar 6.49 Tampilan Hitungan Aritmatika Analisis Gambar di atas merupakan peritnah hitungan aritmatika. Variabel A diisi dengan 5 kemudian variabel 5 berisi subtitusi dari perintah expr $A + 1 maka apabila variabel B dipanggil akan berisi hasil dari aritmatika tersebut.
Percobaan 13 : Instruksi exit 1. Buat shell script prog08.sh $ vi prog08.sh #!/bin/sh if [ -f prog01.sh ] then exit 3 else
VI - 46
exit -1 fi
Gambar 6.50 Tampilan Instruksi Exit Analisis Gambar di atas merupakan peritntah instruksi exit. Shell script prog08.sh ini berisi instruksi if untuk notasi [ ] prog01.sh berisi instruksi exit dan akan dieksekusi pada percobaan berikutnya.
2. Jalankan Prog08.sh $ . prog08.sh $ echo $?
Gambar 6.51 Tampilan Instruksi Exit Analisis Gambar di atas merupakan perintah instruksi exit. Apabila prog08.sh dieksekusi dengan . prog08.sh kemudian status exit di tampilkan akan menampilkan nilai 0 dan tampil seperti gambar di atas.
VI - 47
Percobaan 14 : Konstruksi case – esac 1. Buatlah file prog09.sh dengan editor vi $ vi prog09.sh #!/bin/sh # Prog: prog09.sh echo “1. Siapa yang aktif” echo “2. Tanggal hari ini” echo “3. Kalender bulan ini” echo –n “Pilihan : “ read PILIH case $PILIH in 1) echo “Yang aktif saat ini” who ;; 2) echo “”Tanggal hari ini” date ;; 3) echo “Kalender bulan ini” cal ;; *) echo “Salah pilih !!” ;; esac
VI - 48
Gambar 6.52 Tampilan Konstruksi Case-Esac Analisis Gambar di atas merupakan perintah Konstruksi Case-Esac. Dengan variabel pemilihan PILIH melalui keyboard. Format penulisan case ini pertama diawali dengan case kemudian variabel pilih diikuti dengan in. Kemudian definiskan untuk nomor 1 hingga 3 setiap nomor ditutup dengan simbol ;;. Untuk pemilihan terakhir apabila memilih selain nomor 1 2 3 digunkan perintah *). Kemudian ditutup dengan esac dan akan dieksekusi pada percobaan berikutnya
VI - 49
2. Jalankan perintah prog09.sh $ . prog09.sh
Gambar 6.53 Tampilan Konstruksi Case-Esac Analisis Gambar di atas merupakan perintah Konstruksi Case-Esac. Apabila memilih nomor 1 maka akan ditampilkan siapa user yang sedang aktif, sedangkan apabila memilih nomor 2 akan ditampilkan tanggal hari ini, apabila memilih nomer 3 akan tampil kalender bulan inid an apabila memilih selai nomor 1 2 atau 3 maka akan ditampilkan echo Salah pilih !!. Kemudian ditutup dengan esac.
VI - 50
3. Buatlah file prog10.sh yang merupakan bentuk lain dari case $ vi prog10.sh #!/bin/sh # Prog: prog10.sh echo –n “Jawab (Y/T) : “ read JWB case $JWB in Y | Y | ya | Ya | YA ) JWB=y ;; T | T | tidak | Tidak | TIDAK ) JWB=t ;;
Gambar 6.54 Tampilan Konstruksi Case-Esac Analisis Gambar di atas merupakan perintah Konstruksi Case-Esac. Shell script prog10.sh ini merupakan bentuk lain dari perintah case. Variabel JWB dapat dijawab dengan perintah y/Y/ya?Ya/YA untuk y, sedangkan untuk JWB=t dapat ditulis dengan t/T/tidak/Tidak/TIDAK dan akan dieksekusi pada percobaan berikutnya.
VI - 51
4. Jalankan program prog10.sh $ . prog10.sh
Gambar 6.55 Tampilan Konstruksi Case-Esac Analisis Gambar di atas merupakan perintah Konstruksi Case-Esac. Ini merupakan eksekusi dari prog10.sh. saya menggunakan 3 buah contoh untuk nilai JWB yaitu y, T dan YA.
5. Modifikasi file prog10.sh yang merupakan bentuk lain dari case $ vi prog10.sh #!/bin/sh #Prog: prog10.sh echo –n “jawab (Y/T) : \c” read JWB case $JWB in [yY] | [yY] [aA] ) JWB=y ;; [tT] | [tT]idak ) JWB=t ;; esac
VI - 52
Gambar 6.56 Tampilan Konstruksi Case-Esac Analisis Gambar di atas merupakan perintah Konstruksi Case-Esac. Selain pada percobaan 14 nomer 3 diatas, perintah case untuk jawaban juga dapat ditulis seperti diatas. Berarti y dapat ditulis huruf kecil atau besar, kemudian untuk “ya” bisa y nya bisa huruf besar/kecil begitupula dengan a nya. Sama halnya dengan ya tidak juga demikian dan akan dieksekusi pada berikutnya.
6. Jalankan program prog10.sh $ . prog10.sh
Gambar 6.57 Tampilan Konstruksi Case-Esac Analisis Gambar di atas merupakan perintah Konstruksi Case-Esac. Ini merupakan eksekusi dari program shell script prog10.sh untuk modifikasi nya dan tampil seperti gambar di atas.
VI - 53
Percobaan 15 : Konstruksi for-do-done 1. Buatlah file prog11.sh $ vi prog11.sh #!/bin/sh # Prog: prog11.Sh for NAMA in pebri messi neymar suarez do echo “Nama adalah : $NAMA” done
Gambar 6.58 Tampilan Konstruksi For-Do-Done Analisis Gambar di atas merupakan perintah konstruksi for-do-done. Shell script ini berisi konstruksi for-do-done dimana for untuk variabel nama ada pebri messi neymar suarez. Kemudian dijalankan dengan perintah do dan ditutup dengan done dan akan dieksekusi pada percobaan berikutnya.
2. Jalankan program prog11.sh $ . prog11.sh
Gambar 6.59 Tampilan Konstruksi For-Do-Done
VI - 54
Analisis Gambar di atas merupakan perintah konstruksi for-do-done. Apabila prog11.sh ini dijalankan perintah echo akan ditampilkan untuk setiap NAMA karena menggunakan pengulangan for dan tampil seperti tampilan di atas.
3. Buatlah file prog12.sh yang berisi konstruksi for dan wildcard $ vi prog12.sh #!/bin/sh # Prog: prog12.sh for F in * do echo $F done
Gambar 6.60 Tampilan Konstruksi For-Do-Done Analisis Gambar di atas merupakan perintah konstruksi for-do-done. Shell script prog12.sh ini berisi konstrusi for dan wild card. Program ini akan menampilkan nama file yang berada pada current directory dan akan dieksekusi pada percobaan berikutnya
VI - 55
4. Jalankan program prog12.sh $ . prog12.sh
Gambar 6.61 Tampilan Konstruksi For-Do-Done Analisis Gambar di atas merupakan perintah konstruksi for-do-done. Apabila prog12.sh ini dijalankan maka sleuruh nama directory pada current directory akan ditampilkan dan tampil seperti gambar.
5. Modifikasi file prog12.sh. $ vi prog12.sh #!/bin/sh # prog: prog 12. Sh for F in *.1st do 1s -1 $F done
VI - 56
Gambar 6.62 Tampilan Konstruksi For-Do-Done Analisis Gambar di atas merupakan perintah yaitu konstruksi for-do-done. Modifikasi prog12.sh ini akan menampilkan long list dari file yang mempunyai ekstensi file .lst dan akan dieksekusi pada percobaan berikutnya
6. Jalankan prog12.sh $ . prog12.sh
Gambar 6.63 Tampilan Konstruksi For-Do-Done Analisis Gambar di atas merupakan perintah konstruksi for-do-done. Tidak ditemukan file/direktori dengan ekstensi .lst pada current directory ini sehingga ditampilkan pesan error dan tampil seperti gambar.
Percobaan 16 : Konstruksi while-do-done 1. Buatlah program prog13.sh $ vi prog13.sh #!/bin/sh # Prog: prog13.sh PILIH=1 While [ $PILIH –ne 4 ] do echo “1. Siapa yang aktif” echo “2. Tanggal hari ini” echo “3. Kalender bulan ini” echo “4. Keluar”
VI - 57
echo “Pilihan : \c” read PILIH if [ $PILIH –eq 4 ] then break fi clear done echo “Program berlanjut di sini setelah break”
Gambar 6.64 Tampilan Konstruksi While-Do-Done Analisis Gambar di atas merupakan perintah yaitu konstruksi while-do-done. Program shell script untuk prog13.sh ini berisi perintah pengulangan serta terdapat 4 pilihan. Variabelnya adalah PILIH –ne 4 dan akan dieksekusi pada percobaan berikutnya.
VI - 58
2. Jalankan prog13.sh $ . prog13.sh
Gambar 6.65 Tampilan Konstruksi While-Do-Done Analisis Gambar di atas merupakan perintah konstruksi while-do-done. Ketika prog13.sh ini dijalankan apabila memilih nomor 1 2 atau 3 maka akan diulangi atau ditampilkan lagi pilihan tersebut karena perintahnya tidak berisi. Sedangkan apabila memilih nomor 4 maka pengulangan akan berhenti kemudian tampil tulisan dan tampil seperti gambar.
Percobaan 17 : Instruksi dummy 1. Modifikasi file prog13.sh, kemudian jalankan! $ vi prog13 . sh #!/bin/sh #prog: prog13 . sh PILIH=1 while : do echo “1. Siapa yang akif”
VI - 59
echo “2. Tanggal hari ini” echo “3. Kalender bulan ini” echo “4 keluar” echo “ pilihan : \c” read PILIH if [ $PILIH –eq 4 ] then break fi clear done echo “Program berlanjut di sini setelah break”
Gambar 6.66 Tampilan Instruksi Dummy Analisis Gambar di atas merupakan perintah yaitu instruksi dummy. Modifikasi ini terlihat pada penulisan while : sebelumnya ditambahkan dengan notasi [ $PILIH –ne 4] sedangkan pada prog14.sh sekarang tidak ada dan akan dieksekusi pada percobaan berikutnya
VI - 60
2. Jalankan prog13.sh $ . prog13.sh
Gambar 6.67 Tampilan Instruksi Dummy Analisis Gambar di atas merupakan perintah instruksi dummy. Hasil dari eksekusi modifikasi prog13.sh ini akan sama dengan perintah sebelumnya yaitu pada percobaan 17 dan tampil seperti gambar.
3. Buatlah file prog14.sh yang berisi instruksi dummy untuk konstruksi if, kemudian jalankan! $ vi prog14.sh #!/bin/sh # Prog : prog14.sh echo –n “masukan nilai : “ read A if [ $A –gt 100 ] then : else echo “ ok !” fi
VI - 61
Gambar 6.68 Tampilan Instruksi Dummy Analisis Gambar di atas merupakan perintah instruksi dummy. Masih pada shell script, pada program prog14.sh ini berisi instruksi dummy untuk konstruksi if. Variabel A dinyatakan dengan nilai –ne 100. Then echo OK dan akan dieksekusi pada percobaan berikutnya
4. Jalankan prog14.sh $ . prog14.sh
Gambar 6.69 Tampilan Instruksi Dummy Analisis Gambar di atas merupakan perintah instruksi dummy. Apabila dijalankan jika nilai yang dimasukan masih kurang dari 100 maka ditampilkan OK !, sedangkan apabila nilai lebih dari 100 maka tidak akan ada pesan OK ! dan tampil seperti gambar.
VI - 62
Percobaan 18 : Fungsi 1. Buatlah file fungsi.sh, kemudian jalankan! $ vi fungsi.sh #!/bin/sh # Prog : fungsi.sh F1 ( ) { echo “Fungsi F1” return 1 } echo “Menggunakan fungsi” F1 F1 echo $?
Gambar 6.70 Tampilan Fungsi Analisis Gambar di atas merupakan perintah fungsi. File fungsi.sh pada shell script ini berisi perintah fungsi untuk return 1 dan status exit setalah menjalankan fungsi dan akan dieksekusi pada percobaan berikutnya
VI - 63
2. Jalankan fungsi.sh $ . fungsi.sh
Gambar 6.71 Tampilan Fungsi Analisis Gambar di atas merupakan perintah fungsi. File fungsi.sh ini apabila dijalankan akan berstatus exit 1 karena bernilai false dan tampil seperti gambar.
3. Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh, kemudian jalankan! $ vi fungsi.sh #!/bin/sh # Prog : fungsi.sh F1 (
)
{ Honor=10000 echo “Fungsi F1” return 1 } echo “Menggunakan fungsi” F1 F1 echo “Nilai balik adalah $?” echo “Honor = $Honor”
VI - 64
Gambar 6.72 Tampilan Fungsi Analisis Gambar di atas merupakan perintah fungsi. Modifikasi file fungsi.sh ini hanya ditambah variabel Honor dengan 10000 dan echo Nilai balik adalah $? dan akan dieksekusi pada percobaan berikutnya
4. Jalankan fungsi.sh $ . fungsi.sh
Gambar 6.73 Tampilan Fungsi Analisis Gambar di atas merupakan perintah yaitu fungsi. Tidak ada perbedaan fungsi dalam file.sh hasil modifikasi ini hanya penambahan nilai dari variabel Honor saja dan tampil seperti gambar.
VI - 65
5. Menggunakan variable pada fungsi dengan memodifikasi file fungsi.sh, kemudian jalankan! $ vi fungsi.sh #!/bin/sh # Prog : fungsi.sh F1 (
)
{ local Honor=10000 echo “Fungsi F1” return 1 } echo “Menggunakan fungsi” F1 F1 echo “Nilai balik adalah $?” echo “Honor = $Honor”
Gambar 6.74 Tampilan Fungsi Analisis Gambar di atas merupakan perintah yaitu fungsi. Percobaan ini juga masih merupakan modifikasi dari file fungsi.sh dengan penambahan local sebelum
VI - 66
pendefinisian variabel Honor=10000 dan akan dieksekusi pada percobaan berikutnya
6. Jalankan fungsi.sh $ . fungsi.sh
Gambar 6.75 Tampilan Fungsi Analisis Gambar di atas merupakan perintah fungsi. Dan untuk hasilnya pun tidak ada perubahan dari modifikasi file fungsi.sh sebelumnya. Sama saja dengan percobaan 18 nomer 3 dan tampil seperti gambar.
LATIHAN 1. Buatlah program salin.sh yang menyalin file (copy) sebagai berikut : Salin.sh file –asal file-tujuan Dengan ketentuan : a. Bila file asal tidak ada, berikan pesan, salin gagal. b. Bila file tujuan ada tersebut directory, beri pesan bahwa file tidak bisa disalin ke direktori c. Bila file tujuan ada dan file biasa, beri pesan apakah file tersebut akan dihapus, bila dijawab dengan “Y”, maka copy file tersebut d. Bila file tujuan belum ada, lakukan copy Untuk mengambil nama file, gunakan parameter $1 dan $2. Bila jumlah parameter tidak sama ($#) dengan 2, maka beri pesan exit=-1
VI - 67
Gambar 6.76 Tampilan Latihan Nomer 1 Analisis Gambar di atas merupakan program copy file, dimana pada gambar di atas jika file tidak berhasil ditemukan maka nantinya akan langsung di close. Untuk pilihan digunakan perintah if else then, tetapi karena perintah pertama pada shell script salin.sh menyatakan jika file tidak ada maka akan di close, dan memang si file ini tidak ada, sehingga perintah yang dikerjakannya pada saat shell script dieksekusi menggunakan perintah . Salin.sh adalah perintah pilihan nomor 1 yaitu “keluar” karena tidak ada filenya dan tampil seperti gambar di atas.
VI - 68
2. Buat program yang memeriksa nama direktori, jika parameter tersebut adalah direktori, maka jalankan instruksi ls –ld pada direktori tersebut. Namakan program tersebut checkdir.sh. gunakan notasi [ -d namadirektori ] dan pilih logical && atau || pada level shell
Gambar 6.77 Tampilan Latihan Nomer 2 Analisis Gambar di atas merupakan program memeriksa nama direktori. Seperti yang terjadi pada latihan no. 1 tadi, ketika dijalankan program checkdir.sh ini tidak menemukan directory yang di cari sehingga secara otomatis akan di “closed” atau exit dan tampil seperti gambar di atas.
3. Dengan shell script pph.sh, hitung PPH per tahun dengan ketentuan sebagai berikut : 10 juta pertama PPH 15%, 25 juta berikutnya (sisa) PPH 25% Bila masih ada sisa, maka sisa tersebut PPH 35%. Contoh : Gaji 8 juta PPH = 15% * 8 juta Gaji 12 juta PPH = 15% * 10 juta + 25% (12-10) juta Gaji 60 juta PPH = 15% * 10 juta + 25% * 25 juta + 25% * (60-10-25) juta
VI - 69
Debugging : untuk melakukan tracing (debug) gunakan opsi –x pada eksekusi shell.
Gambar 6.78 Tampilan Latihan Nomer 3
Gambar 6.79 Tampilan Latihan Nomer 3 Analisis Gambar di atas merupakan shell script pph.sh, menghitung PPH per tahun dengan ketentuan 10 juta pertama PPH 15%, 25 juta berikutnya (sisa) PPH 25%, bila masih ada sisa, maka sisa tersebut PPH 35%. Untuk membuat sebuah file pph.sh gunakan perintah vi pph.sh. masuk ke shell dan buat sebuah perintah dalam vi
VI - 70
pph.sh dengan memasukan perintah yang ada pada gambar di atas. Gunaka tombol Esc ‘:’ dan wq untuk keluar dari shell dan menyimpan. Kemudian jalankan pph.sh dengan perintah bash pph.sh dan untuk debugging untuk melakukan tracing (debug) gunakan opsi –x pada eksekusi shell, maka hasilnya tampil seperti gambar di atas.
4. Buatlah program myprog.sh yang memproses parameter $1, nilai parameter harus berupa string : start stop status restart reload Bila buka dari string tersebut, maka berikan pesan error. Sempurnakan program dibawah ini!
VI - 71
Gambar 6.80 Tampilan Latihan Nomer 4 Analisis Gambar di atas merupakan tahapan membuat program myprog.sh yang memproses parameter $1, nilai parameter harus berupa string start, stop, status, restart, dan reload. Isi dari file myprog.sh dengan perintah untuk melakukan seleksi terhadap inputan yang dimasukan. Jika inputan yang dimasukan start, stop, status, restart, atau reload maka akan muncul output seperti gambar di atas dan jika tidak, akan muncul informasi kesalahan dan tampil seperti gambar di atas.
VI - 72
5. Buat sebuah fungsi pada script confirm.sh yang memberikan konfirmasi jawaban Yes, No atau Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan continue = 2. Modifikasi program!
Gambar 6.82 Tampilan Latihan Nomer 5
Gambar 6.83 Tampilan Latihan Nomer 5
VI - 73
Gambar 6.84 Tampilan Latihan Nomer 5 Analisis Gambar di atas merupakan latihan nomer 5 yaitu membuat sebuah fungsi pada script confirm.sh yang memberikan konfirmasi jawaban Yes, No atau Continue. Jika jawaban Yes, maka beri nilai balik 0, No = 1 dan continue = 2 serta memodifikasi program tersebut. Pada perintah yang terdapat di modul tidak bisa dijalankan, sehingga digunakan modifikasi terhadap isi perintah. Lalu digunakan perintah elif seperti yang terlihat pada gambar di atas, dan ketika dijalankan hasilnya akan tampil seperti di atas dengan output tulisan “Jawaban YES OK”.
BUATLAH LAPORAN PRAKTIKUM 1. Analisa semua hasil percobaan yang anda lakukan [sudah dikerjakan] 2. Kerjakan latihan diatas dan analisa hasil tampilannya [sudah dikerjakan]
VII - 1
MODUL7 UNIX SYSTEM CALL DAN MANAJEMEN MEMORY
7.1.
Tujuan Praktikum Setelah mempelajari materi ini, peserta praktikum diharapkan mampu : a. Menggunakan system call fork, wait dan execl pada linux b. Menggunakan perintah-perintah untuk manajemen memory
7.2. Resume Pada kenyataannya tidak semua sistem operasi mempunyai struktur yang sama. Namun menurut Avi Silberschatz, Peter Galvin, dan Greg Gagne, umumnya sebuah sistem operasi modern mempunyai komponen sebagai berikut: ·
Managemen Proses.
·
Managemen Memori Utama.
·
Managemen Secondary-Storage.
·
Managemen Sistem I/O.
·
Managemen Berkas.
·
Sistem Proteksi.
·
Jaringan.
·
Command-Interpreter system.
System Calls menyediakan interface program yaitu: System call menyediakan interface antara program (program pengguna yang berjalan) dan bagian OS. System call menjadi jembatan antara proses dan sistem operasi. System call ditulis dalam bahasa assembly atau bahasa tingkat tinggi
yang
dapat
mengendalikan
mesin
(C).
Contoh:
UNIX
menyediakansystem call: read, write => operasi I/O untuk berkas. Sering pengguna program harus memberikan data (parameter) ke OS yang akan dipanggil. Contoh pada UNIX: read(buffer, max_size, file_id); Tiga cara memberikan parameter dari program ke sistem operasi:
VII - 1
VII - 2
Melalui registers (sumber daya di CPU). Menyimpan parameter pada data struktur (table) di memori, dan alamat table tsb ditunjuk oleh pointer yang disimpan di register. Push (store) melalui "stack" pada memori dan OS mengambilnya melalui pop pada stack tsb. System Calls. Komputer digunakan untuk melakukan suatu proses yang dikehendaki user. Oleh karena itu harus ada suatu bentuk komunikasi antara user dan hardware. Komunikasi itu terjadi dalam bentuk system calls. SO melalui shell-nya akan menangkap perintah dari user yang kemudian akan dikomunikasikan melalui system calls. Disinilah peran SO sebagai jembatan komunikasi antara user dan hardware itu terjadi. System calls itu sendiri umumnya ditulis dalam bahasa C dan C++. Mengenai shell, shell itu sendiri secara umum adalah layer yang berfungsi sebagai interface antara user dan inti dalam sistem operasi (kernel). Melalui shell, user dapat memberi perintah-perintah yang akan dikirim ke sistem operasi, sehingga shell ini merupakan layer yang menerima interaksi dari user secara langsung. Shell dalam SO secara umum dibagi menjadi 2, Command Line(CLI) dan Graphical(GUI). Jadi dengan kata lain, system calls berperan sebagai interface dalam layanan-layanan yang disediakan oleh sistem operasi.
Untuk lebih jelasnya lihat gambar berikut. Contoh di atas adalah sytem calls di dalam program yang membaca data dari satu file lalu meng- copy-nya ke file lain. Biasanya tersedia sebagai instruksi bahasa rakitan. Beberapa sistem mengizinkan system calls dibuat langsung dari program bahasa tingkat tinggi. Beberapa bahasa pemrograman (contoh : C, C++) telah didefenisikan untuk menggantikan
bahasa
rakitan
untuk
sistem
pemrograman.
Tiga metode umum yang digunakan dalam memberikan parameter kepada sistem operasi • Melalui register
VII - 3
• Menyimpan parameter dalam blok atau tabel pada memori dan alamat blok tersebut
diberikan
sebagai
parameter
dalam
register
• Menyimpan parameter (push) ke dalam stack (oleh program), dan melakukan pop off pada stack (oleh sistem operasi) Memberikan parameter melalui tabel
Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York: John Wiley & Son.Inc , halaman 65
Jenis System Calls Kontrol Proses System calls yang berhubungan dengan kontrol proses antara lain ketika penghentian pengeksekusian program. Baik secara normal (end) maupun tidak normal (abort). Selama proses dieksekusi kadang kala diperlukan untuk meload atau mengeksekusi program lain, disini diperlukan lagi suatu system calls. Juga ketika membuat suatu proses baru dan menghentikan sebuah proses. Ada juga system calls yang dipanggil ketika kita ingin meminta dan merubah atribut dari suatu proses. MS-DOS adalah contoh dari sistem single-tasking. MS-DOS menggunakan metode yang sederhana dalam menjalankan program dan tidak menciptakan proses baru. Program di-load ke dalam memori, kemudian program dijalankan. Eksekusi MS-Dos
VII - 4
Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York:John Wiley & Son.Inc , halaman 68
Barkeley Unix adalah contoh dari sistem multi-tasking. Command interpereter masih tetap bisa dijalankan ketika program lain dieksekusi. Multi program pada Unix
Sumber: Silberschatz,et.al, Operating System Concepts, 6th ed, .2003, New York:John Wiley & Son.Inc , halaman 69
1.
Manajemen Berkas
System calls yang berhubungan dengan berkas sangat diperlukan. Seperti ketika kita ingin membuat atau menghapus suatu berkas. Atau ketika ingin membuka atau menutup suatu berkas yang telah ada, membaca berkas tersebut, dan menulis berkas itu.System calls juga diperlukan ketika kita ingin mengetahui atribut dari suatu berkas atau ketika kita juga ingin merubah
VII - 5
atribut tersebut. Yang termasuk atribut berkas adalah nama berkas, jenis berkas, dan lain-lain Ada juga system calls yang menyediakan mekanisme lain yang berhubungan dengan direktori atau sistim berkas secara keseluruhan. Jadi bukan hanya berhubungan dengan satu spesifik berkas. Contohnya membuat atau menghapus suatu direktori, dan lain-lain 2.
Manajemen Peranti
Program yang sedang dijalankan kadang kala memerlukan tambahan sumber daya. Jika banyak pengguna yang menggunakan sistem dan jika diperlukan tambahan sumber daya maka harus meminta peranti terlebih dahulu. Dan setelah selesai penggunakannnya harus dilepaskan kembali. Ketika sebuah peranti telah diminta dan dialokasikan maka peranti tersebut bisa dibaca, ditulis, atau direposisi. 3.
Informasi Maintenance
Beberapa system calls disediakan untuk membantu pertukaran informasi antara pengguna dan sistem operasi. Contohnya system calls untuk meminta dan mengatur waktu dan tanggal. Atau meminta informasi tentang sistem itu sendiri, seperti jumlah pengguna, jumlah memori dan disk yang masih bisa digunakan, dan lain-lain. Ada juga system calls untuk meminta informasi tentang proses yang disimpan oleh sistem dan system calls untuk merubah (reset ) informasi tersebut. 4.
Komunikasi
Dua model komunikasi message-passing pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh sistem operasi. shared-memory Proses menggunakan memori yang bisa digunakan oleh berbagai proses untuk pertukaran informasi dengan membaca dan menulis data pada memori tersebut. Mekanisme komunikasi
VII - 6
Sumber: Silberschatz,et.al, Operating System Concepts,6th e, .2003, New York:John Wiley & Son.Inc, halaman 72
Dalam message-passing, sebelum komunikasi dapat dilakukan harus dibangun dulu sebuah koneksi.Untuk itu diperlukan suatu system calls dalam pengaturan koneksi tersebut, baik dalam menghubungkan koneksi tersebut maupun dalam memutuskan koneksi tersebut ketika komunikasi sudah selesai dilakukan. Juga diperlukan suatu system calls untuk membaca dan menulis pesan( message ) agar pertukaran informasi dapat dilakukan.
VIII - 1
MODUL 8 SISTEM FILE
8.1.
Tujuan Praktikum Setelah mempelajari materi ini, peserta praktikum diharapkan mampu
8.2.
a.
Memahami atribut file dan ijin akses
b.
Memahami perintah untuk mengubah ijin akses suatu file
c.
Menggunakan perintah-perintah untuk mengubah ijin akses
Resume A.
Atribut File Atribut file adalah dimana sebuah file atau directori bisa eksis atau
sebuah file mempunyai atribut yang berbeda antara sistem operasi satu dengan yang lainnya. Atribut file digunakan oleh sistem operasi untuk memisahkan tipe-tipe file. Setiap file di windows mempunyai atribut tersendiri sesuai dengan kepentingan file tersebut terhadap sistem. Misalnya, tipe file yang tidak boleh dihapus oleh user diberi attribut system, jadi ketika file manager (windows explorer) akan menampilkannya, file beratribut sistem tersebut tidak akan ditampilkan. Beberapa atribut file : o Tipe File
: Menentukan Tipe File
o Jumlah link
: Jumlah link untuk file tersebut.
o Pemilik (Owner) : Menentukan siapa pemilik file tersebut. o Group
: Menentukan group yang memiliki file
tersebut. o Jumlah Karakter : Menentukan ukuran file dalam byte. o Waktu
Pembuatan:
Menentukan
kapan
file
dimodifikasi. o Nama File : Menentukan nama file yang dimaksud.
terakhir
VIII - 2
File memiliki beberapa atribut antara lain :
Tipe File
Ijin Akses
: Menentukan hak user terhadap file.
Jumlah Link
: Jumlah link untuk file.
Pemilik (owner)
: Menentukan siapa pemilik file.
Group
: Menentukan group yang memiliki file.
Jumlah Karakter
: Menentikan ukuran file dalam byte.
Waktu Pembuatan
:Menentukan
: Menentukan tipe dari file, yaitu :
kapan
file
terakhir
dimodifikasi.
Nama File
Contoh:
: Menentukan nama file yang dimaksud.
VIII - 3
B.
Ijin Akses ( Hak akses ) Hak akses bisa dibilang sebuah hak yang diberikan pada seluruh User atau file untuk melakukan sesuatu akses. Jadi Hak akses ini dapat diatur sedemikian rupa supaya file atau direktori itu hanya bisa di read, atau write, dan execute. Selain itu kita juga bisa mengatur bagaimana hak akses dari setiap user pada suatu file, atau direktori. Hal yang harus dikuasai dalam konfigurasi Hak Akses pada Linux: 1.
Mengetahui Fungsi CHMOD
2.
Mengetahui Fungsi setiap atribut tambahan dalam perintah CHMOD
3.
Dapat mengatur hak akses bagi setiap user
4.
Dapat mengatur hak akses bagi setiap group
5.
Dapat merencanakan hak akses yang diaplikasikan di kehidupan sehari-hari atau Industri
Sesuai dengan semua yang harus kita kuasai kita harus memahami fungsi dari perintah "CHMOD" dan atribut tambahan pada perintah CHMOD tersebut,
CHMOD Chmod merupakan salah satu perintah pada Linux yang berfungsi untuk mengurangi atau memberikan izin ( Hak Akses ) pada suatu file atau direktori dan User serta Group. Dalam Linux ada 3 Hak Akses atau perizinan File dan Direktori, yaitu 1. r untuk read 2. w untuk write 3. x untuk execute |—|—|—| |rwx|rwx|rwx| Pada dasarnya struktur dari chmod seperti diatas, kolom pertama untuk user kolom yang kedua untuk group kolom yang ketiga anynomos atau other.
VIII - 4
1.
Dengan menggunakan letter coding, Anda dapat merubah permission diatas untuk masing-masing u (user), g (group), o (other) dan a (all) dengan hanya memberi tanda plus (+) untuk menambah ijin dan tanda minus (-) untuk mencabut ijin.
2.
Dengan menggunakan sitem numeric coding, permission untuk user, group dan other ditentukan dengan menggunakan kombinasi angka-angka, 4, 2 dan 1 dimana 4 (read),2 (write) dan 1 (execute).
C.
User Mask User mask adalah kemampuan sistem operasi berbasis Linux untuk menambahkan pengaturan hak akses default untuk file-file baru (termasuk folder). Untuk tujuan edukasional, berikut adalah nilai-nilai oktal yang dapat digunakan untuk mengatur hak akses atas file: 0 – Read, Write, Execute (rwx) 1 – Read and Write (rw-) 2 – Read and Execute (r-x) 3 – Read only (r -) 4 – Write and Execute (wx) 5 – Write only (-w-) 6 – Execute only (- x) 7 – No permissions (—)
VIII - 5
Diagram Umask Value – kredit: tanukisoftware.com
Nilai default Umask di hampir semua distribusi Linux adalah 0022 (022) dan dapat dilihat dari terminal emulator dengan menjalankan perintah umask. Nilai ini dapat diubah untuk sementara dengan menjalankan perintah “umask octal_value”, misalnya: umask 027. Seperti yang mungkin sudah diketahui, pengaturan hak akses default untuk file-file yang baru dibuat adalah 0666, dan untuk direktori yang baru dibuat adalah 0777. Menerapkan nilai Umask seperti di atas akan menghasilkan hak akses 644 dan 755. Banyak orang yang menganggap nilai 022 sebagai persoalan privasi. Ini berarti bahwa semua file yang kamu buat pada sistemmu akan bisa dibaca oleh para pengguna lain, yang kurang baik jika kamu memikirkan efek potensialnya. Di dalam praktiknya, seseorang dapat mengubah nilai default Umask seberapa pun yang diinginkannya, asalkan nilai itu didukung, tentu saja. Untuk melakukannya, ketikkan nilai Umask baru ke dalam file konfigurasi shell (~ /. bashrc untuk Bash) atau dalam file/etc/profile. Begitulah. Mulai sekarang, setiap file atau folder yang baru kamu buat pada sistem Linux-mu akan memiliki set hak akses yang tepat.
VIII - 6
Meskipun demikian, harap diingat bahwa hak akses dari file dan folder yang telah ada sebelumnya tidak akan berubah oleh tindakan di atas. Jika kamu terbiasa dengan command-line, kamu bisa melihat hak akses file saat ini dengan menjalankan perintah ls -lah dalam direktori manapun yang kamu inginkan. Di sisi lain, para pemula dapat dengan mudah melihat hak akses file dengan klik kanan pada file tersebut dan membuka tab Properties > Permissions (dalam desktop environment GNOME).
IX - 1
MODUL 9 MANAJEMEN PERANGKAT KERAS
9.1.
Tujuan Praktikum Setelah mempelajari materi ini, peserta diharapkan mampu: a.
Mengetahui bagaimana melihat perangkat keras yang terpasang pada system computer
9.2.
b.
Menggunakan perintah mount dan unmounts pada system file
c.
Menggunakan perintah-perintah untuk manajemen perangkat keras
Resume A.
File Perngkat Keras
IX - 2
Gambar diatas merupakan sistem tata letak File pada RedHat, tata letak file diatas bisa berubah tergantung pada sistem administrasi dan sistem operasi yang dipakai. Level tertinggi dari tata letak file di Linux yaitu /root, directory ini berisi semua file dan partisi yang ada
Dibawah ini Penjelasan dari directory yang ada pada gambar diatas Nama
Informasi Directory
Directory /bin
Directory ini berisi program umum, dibagi oleh system, administrator system dan pengguna
/boot
Directory ini berisi file startup dan kernel
/dev
Directory ini berisi refrensi untuk semua perangkat keras pada CPU
/etc
Directory ini berisi sistem file konfigurasi sedangkan pada windows terletak pada control panel
/home
Directory ini berisi file pengguna
/initrd
Directori ini berisi file informasi untuk boot pada beberapa distribusi Linux
/lib
Directory ini berisi perpustakaan File, file ini untuk semua jenis program yang dibutuhkan oleh sistem dan pengguna
/lost
+
Setiap partisi memiliki lost + Found diatasnya. Directory ini
Found
berisi file yang disimpan selama kegagalan
/Misc
Directory ini berisi directory lain - lain
/Mnt
Directory ini berisi standard mount point untuk file system eksternal seperti CD Room
/Net
Directory ini berisi standard mount point untuk seluruh system file jarak jauh
/opt
Directory ini berisi aplikasi tambahan
/proc
Directory ini berisi informasi tentang sumber daya system.
IX - 3
Mengecek Hardware Device Di Linux Melalui Terminal Beberapa yang lalu kawan saya Deanet iseng2 browsing, dia sedang melihat2 tutorial injeksi paket. (wah udah inject inject aja nih :p). Di Web yang sedang Ia baca menyebutkan bahwa Hardware Wireless network yang bisa di gunakan salah satunya adalah Intel 2200BG. Wah sontak saja aku bilang, wah punyamu support tuh cak. :D. Kata dia, ah mosok sih bisa. langsung saja aku suruh cek Hardware nya.
Ada beberapa cara untuk mengetahui Hardware apa saja yang tertanam pada Box kita. Command ini semuanya di lakukan di atas Terminal : Untuk Melihat Informasi CPU : $cat /proc/cpuinfo Untuk Melihat Info Mengenai Memori : $cat /proc/meminfo Untuk Melihat Informasi Hardisk: cat /proc/partitions
Beberapa command di bawah ini untuk melihat lebih detail spesifikasi hardware yang tertanam : $ dmesg (melhat pesan debugging langsung dari kernel) lshw (di beberapa distro, untuk menjalankan command ini harus di install terlebih dahulu) beberapa Opsi untuk men-dump hasil dari lsh bisa ke dalam sebuah file text atau dalam sebuah file html agar lebih mudah membaca informasi hardware
lshw lshw -html > lshw.html ( fungsinya sama seperti diatas hanya saja file yang diinginkan dalam bentuk file html ) $lspci ( menampilkan perangkat PCI, untuk lebih detail bisa tambahkan -vv ) scanpci ( untuk menscan bus PCI dan melaporkan informasi tentang setingan konfigurasi untuk tiap perangkat PCI.) dmidecode ( table komputer DMI ( SMBIOS ) dalam format yang bisa dibaca )
IX - 4
lsusb ( menampilkan perangkat USB yang terpasang, untuk lebih detail bisa ditambahkan -vv ) $lshal ( menampilkan semua perangkat lengkap dengan propertiesnya, contoh “lshal –monitor” untuk memonitoring perubahan ) $cat /proc/devices ( menampilkan perangkat hardware yang dimuat ) $cat /proc/meminfo ( info tentang penggunaan memori ) $cat /proc/modules ( memuat modul kernel ) $cat /proc/cpuinfo ( info tentang prosesor ) $cat /proc/scsi/scsi ( menampilkan perangkat SCSI ) $cat /proc/buddyinfo ( mengecek fragmentasi memori )
B.
Perintah Mount dan Unmount filesystem biasanya ditandai dengan apa yang dinamakan drive yang masing-masing mendapat satu karakter tersendiri. Drive A dan B lumrahnya untuk disket (floppy disk) sementara drive C, D, E, dan seterusnya adalah untuk hard disk. Ada pula penamaan seperti drive H untuk direktori home atau huruf-huruf drive seperti P, Q, R untuk drive yang dipetakan ke jaringan (network drive). Konsep drive, sebagai salah satu dari karakteristik khas DOS yang masih terpaksa masih diwarisi Windows, tidak dikenal di Linux maupun sistem operasi Unix lainnya. Untuk menjelaskan hal ini, marilah kita sebentar menengok secara lebih rinci bagaimana Linux mengelola file dan mengatur disk.File-file yang jumlahnya bisa segerobak diatur melalui apa yang disebut sebagai filesystem. Tidak lain tidak bukan, filesystem ini mengorganisasi isi dari media penyimpan, apakah itu disket, hard disk, ataupun CD-ROM. Filesystem juga memungkinkan user melakukan manajemen file, antara lain membuat file baru, mengganti nama file, memindah file dari satu tempat ke tempat lain, dan juga menghapus file yang sudah tidak diinginkan (jelas bahwa tanpa fungsi-fungsi seperti ini, tentu saja filesystem tidak menjadi terlalu berguna).
IX - 5
Ada berbagai ragam filesystem. Linux umumnya menggunakan filesystem yang dinamakanext2. DOS selalu memakai filesystem FAT. Untuk Windows, yang sering didukung adalah filesystem FAT (guna kompatibilitas dengan DOS) atau FAT32, yaitu FAT yang diperluas untuk menangani long-filename sekaligus mengatasi ukuran disk yang cukup besar. Windows NT menggunakan filesystem NTFS yang khusus diciptakan untuk mengakomodasi berbagai fitur Windows NT. Satu jenis filesystem tidak kompatibel dengan yang lainnya. Hal ini berarti tanpa prosedur tertentu sebuah partisi FAT dari DOS tidak akan dikenali begitu saja di Linux. Demikian juga sebaliknya. Di sistem operasi semacam DOS atau Windows, filesystem dikenali dan diakses melalui drive tertentu. Sebagai contoh, biasanya hard disk yang berisi partisi sistem Windows akan selalui dinamai sebagai drive C. Kemudian bila ada partisi kedua yang berfungsi untuk menyimpan data, maka partisi ini bisa saja menjadi drive D. Demikian seterusnya. Disket, karena diakses melalui floppy-drive, biasanya mendapat drive A atau drive B (tergantung jumlah floppy-drive yang ada). Dalam istilah sistem operasi, membuat filesystem agar dapat diakses merupakan tindakan yang disebut sebagai mounting. Prosesnya sendiri relatif singkat: memeriksa secara cepat apakah filesystem tersebut valid atau tidak dan selanjutnya mencatat keterangan penting tentang filesystem ini di memori. Catatan ini akan dipergunakan segera setelah filesystem ini mulai digunakan. DOS dan Windows dapat dikatakan melakukan proses mount ini secara otomatis dan transparan terhadap user. Tanpa angin dan hujan, tiba-tiba saja partisi data muncul sebagai drive D. Juga ketika ingin mendaftar file-file di disket, cukup eksekusi perintah dir a: karena dari awal drive A dianggap sebagai floppy. Linux mengidentifikasi filesystem dengan cara yang berbeda dibandingkan DOS atau Windows. Jika di Windows sebuah filesystem diasosiasikan dengan huruf drive, maka di Linux satu filesystem dipetakan ke direktori tertentu. Yang demikian ini menjadikan Linux
IX - 6
lebih fleksibel dibandingkan Windows. Tentu saja hal ini dengan konsekuensi bahwa user mendapat sedikit tambahan beban karenanya. Bagaimana hingga sebuah filesystem terkait dengan satu direktori ? Di sinilah dibutuhkan perintah mount. Bisa diterka bahwa fungsi dari mount adalah untuk melakukan mountingfilesystem yang diinginkan. Sebagai ilustrasi, disket pada floppy-drive bisa saja dipetakan sebagai direktori /floppy, partisi Windows dipetakan ke /windows sementara CD-ROM
sebagai
/cdrom.
Per
istilah,
nama-nama
direktori /floppy, /windows, dan /cdrom disebut sebagai mount point. Bagaimana nama dari mount point ini sendiri sepenuhnya tergantung user. Namakan saja sesukanya, misalnya /disket alih-alih /floppy. Melakukan mount adalah semudah mengetikkan perintah mount yang diikuti argumen yang tepat. Sebagai contoh, perintah berikut adalah untuk melakukan mount agar disket bisa diakses di /floppy: mount /dev/fd0 /floppy Di sini /dev/fd0 menunjuk ke floppy-drive yang pertama (/dev/fd1 untuk yang kedua, demikian seterusnya). Bagaimana jika partisi Windows yang merupakan partisi pertama di hard disk ingin juga diakses ? Berikut perintahnya: mount -t vfat /dev/hda0 /windows Segera setelah perintah mount ini sukses dijalankan, maka file-file yang mulanya hanya ada di partisi Windows sekarang bisa ditengok dari Linux. Perhatikan bahwa /dev/hda0adalah untuk partisi pertama hard disk utama (primary). Jika Windows yang Anda miliki tidak berada di sini, tentu saja perintah di atas harus disesuaikan dahulu. Catatan: kalau Windows yang digunakan adalah Windows NT, maka vfat harus diganti dengan ntfs. Sekarang, bagaimana untuk CD-ROM ? Mudah. Simak yang berikut ini: mount -t iso9660 /dev/cdrom /cdrom -o ro
IX - 7
Sama saja seperti yang sebelumnya, bukan ? Tambahan option -o ro adalah untuk menyatakan bahwa filesystem akan diakses dalam modus readonly. Sebuah catatan penting: sebelum melakukan mount, pastikan bahwa mount-point sudah dibuat sebelumnya. Misalnya, sebelum memount disket ke /floppy, buat dahulu direktori/floppy (gampang saja yakni dengan mkdir /floppy). Jika direktori ini tidak ada, mount tidak akan berhasil. Penggunaan umum dari perintah mount adalah: mount [-t type] device directory [-o option] Jangan bingung dahulu karena berikut akan dijelaskan lebih detil maksud dari sintaks di atas. Parameter type menentukan jenis filesystem yang hendak dimount. Beberapa yang dikenal di Linux antara lain ext2 (untuk filesystem ext2), msdos (untuk partisi FAT), vfat (untuk partisi Windows), dan
iso9660
(untuk
CD-ROM).
Bisa
juga
type
ini
diisi
sebagai auto yang berarti ragam filesystem akan ditentukan secara otomatis. Perhatikan bahwa parameter type ini diapit oleh kurung siku. Sekedar menyegarkan ingatan, hal ini bermakna bahwa type adalah opsional – boleh digunakan boleh juga tidak. Manakala terdapat ketidakpastian, maka gunakanlah perintah ini. Parameter device menentukan filesystem yang hendak dimount. Biasanya ini adalah/dev/fd untuk disket, /dev/hd untuk hard disk, /dev/cdrom untuk CD-ROM, dan seterusnya. Parameter directory menunjukkan mount point dari filesystem yang dimount. Sekali lagi, jangan lupa pastikan bahwa direktori ini memang sudah ada dan bisa diakses sebelum perintah mount dijalankan. Parameter option menspesifikasi option untuk mounting. Seperti sudah diilustrasikan sebelumnya, option ro akan menyebabkan filesystem menjadi read-only. Sebenarnya ada juga option rw (yaitu
IX - 8
untuk read-and-write) tetapi karena option ini adalah default, maka tidak perlu ditulis secara eksplisit. Lagi-lagi berbeda dengan Windows, filesystem yang sudah dimount di Linux harus di-unmount begitu selesai digunakan. Proses unmount adalah kebalikan dari mount. Kini terjadi pelepasan akses terhadap filesystem tersebut. Data-data yang belum tertulis alias masih dalam buffer juga akan permanen dituliskan ke filesystem yang bersangkutan. Perintah untuk melakukan unmount adalah umount (perhatikan, tanpa huruf ‘n’ setelah huruf pertama ‘u’). Adapun sintaksnya relatif sederhana: umount mount-point Misalnya Anda usai mengakses disket yang sebelumnya dimount ke /floppy/, maka perintah yang tepat untuk unmount adalah: umount /floppy/ Ketika mencoba contoh-contoh di atas, mungkin Anda perlu login sebagai root. Namun demikian, pada dasarnya mount dan unmount dapat dilakukan oleh user biasa. Hal ini sepenuhnya diatur melalui file konfigurasi /etc/fstab. Untuk menerangkan isi file ini, baiklah kita ambil contoh /etc/fstab sebagai berikut: /dev/hda1 /windows/C ntfs rw,noauto,user
00
/dev/hda5 /windows/D vfat noauto,user /dev/hda6 /
ext2 defaults
/dev/hda7 swap /dev/cdrom /cdrom /dev/fd0
00
11
swap defaults
02
auto ro,noauto,user,exec 0 0
/floppy auto noauto,user
00
Masing-masing baris tersusun atas enam buah entri, dipisahkan oleh spasi kosong. Kolom pertama menyatakan device atau filesystem, kolom kedua untuk mount-point dari filesystem tersebut, kolom ketiga tidak lain adalah jenis filesystemnya. Ketiga entri ini tentunya sudah jelas dari deskripsi perintah mount sebelumnya. Kolom keempat adalah option:
auto
berarti
filesystem
akan
dimount
pada
saat
IX - 9
startup, rw berarti read-and-write, rountuk read-only, user bermakna user biasa (tidak harus root) juga diijinkan melakukan mount dan unmount filesystem ini. Angka pada kolom ke-5 dan ke-6 masingmasing untuk menspesifikasi apakah filesystem perlu dibackup ketika dilakukan system backup dan apakah harus dilakukan pemeriksaan filesystem saat startup. Supaya suatu device dapat dimount oleh user biasa, cukup tuliskan user pada kolom ke-4 (option). Jadi langkah-langkahnya adalah: login dahulu sebagai root, buka file /etc/fstabdengan editor favorit Anda, edit sehingga terdapat option user pada device yang diinginkan, dan terakhir jangan lupa simpan filenya. Sekarang loginlah sebagai user biasa dan Anda akan mendapatkan bahwa device yang dimodifikasi sudah bisa dimount (dan juga unmount).
X - 1
MODUL 10 LINUX BOOTING PROCESS
10.1. Tujuan Praktikum Setelah mempelajari materi ini, Peserta praktikum diharapkan mampu: a.
Mengetahui inisialisasi booting proses pada sistem operasi Linux
b.
Melakukan perubahan inisia lisasi booting proses
10.2. Resume A.
PC Boot dan Linux Init Process Pada praktikum ini membahas PC boot process dan inisialisasi sistem operasi Linux pada aplikasi background (daemons/service). 1.
BIOS : Basic Input/Output System adalah antar muka level terendah antara komputer dan peripheral. Bios melakukan pemeriksaan pada memori dan mencari instruksi pada Master Boot Record (MBR) pada floppy atau hard drive.
2.
MBR menunjuk ke boot loader (LILO : Linux boot loader)
3.
LILO akan menanyakan label sistem oper asi yang akan mengidentifikasi
kernel
yang
dijalankan.
Kernel
akan
menjalankan sistem operasi Linux . 4.
Yang pertama kali dikerjakan oleh kernel adalah menjalankan program init. Init adalah root/parent dari semua proses yang dijalankan pada Linux.
5.
Proses per tama yang memulai init adalah skrip /etc/rc.d/rc/sysinit .
6.
Berdasarkan run - level yang ditentukan, skrip dieksekusi untuk memulai proses tertentu untuk menjalankan sistem dan membuat sistem lebih fungsional.
X - 1
X - 2
B. Linux Init Process SysV init atau systemd: Linux dan Unix SysV warisan dimulai dengan proses "sysvinit" yang menggunakan / etc / file konfigurasi inittab untuk mendorong pelaksanaan
skrip
init
dan
konfigurasi
terminal
dan
GUI
interface. SysV init meluncurkan skrip dan "daemon" proses satu per satu, agar run level yang diberikan ditemukan di /etc/rc.#/ (Dimana # adalah nomor run level 0-6). Systemd digunakan di versi Linux (Fedora 15 +, RHEL 7, OpenSUSE 12.1+, ...) yang kompatibel dengan Unix SysV dan Linux Standard Base (LSB) skrip init. Systemd mendukung paralelisasi (boot lebih cepat), manajemen soket, proses pelacakan, pemasangan sistem berkas dan kontrol layanan berbasis ketergantungan. proses daemon dikategorikan menjadi "cgroups" yang telah dikategorikan batas sumber daya. Ubuntu 12.04+, 14,04 menggunakan sistem hybrid yang disebut kaya baru
yang
mencakup
SysV
runlevel
skrip
mulai
spesifik
di /etc/rc.#/ tetapi script juga systemd untuk layanan-layanan yang sudah dikirimkan dalam / lib / systemd / sistem /. Lihat "man 7 kaya baru-peristiwa" untuk rincian. Peluncuran proses: Proses init adalah langkah terakhir pada prosedur boot dan diidentifikasi sebagai process "1". Init bertanggung jawab untuk memulai proses sistem seperti yang didefinisikan di:
Sistem SysV seperti RHEL 1-6, Fedora 1-14: / etc / inittab
Systemd Fedora 15 +: /lib/systemd/system/default.target (ini adalah
link simbolik) Dan file di / etc / systemd / sistem / dan / lib / systemd / sistem /Init biasanya memulai beberapa contoh dari "getty" yang menunggu layar login yang menandakan proses shell seorang user. Setelah shutdown, init mengontrol urutan dan proses untuk shutdown. Proses init tidak pernah ditutup. Ini adalah proses pengguna dan bukan proses sistem kernel meskipun dijalankan sebagai root.
X - 3
Proses sistem: proses ID
Deskripsi
0
Scheduler
1
Proses init
2
kflushd
3
kupdate
4
kpiod
5
kswapd
6
mdrecoveryd
init systemd: Systemd menjadi default sistem init untuk Linux dan telah membawa perubahan berikut:
Boot script di / etc / systemd / sistem / dan / lib / systemd / sistem /
Perintah layanan kontrol:
o
Fedora 15 +: systemctl
o
Ubuntu 12.04+, 14,04: initctl
Daftar initctl: Daftar semua layanan sistem dan negara
mereka saat ini.
initctl
stop
service-nama:
Menghentikan
layanan
tertentu. Lihat "daftar" di atas untuk daftar nama.
Memerlukan dukungan kernel: (Kernel opsi kompilasi config)
o
CONFIG_DEVTMPFS = y
o
CONFIG_CGROUPS = y
o
CONFIG_AUTOFS4_FS = [y | m]
Baris perintah kernel di GRUB akan mencakup "init = / bin /
systemd"
Gnome Desktop D-Bus ketergantungan pada systemd
SysV init: Init file konfigurasi (Red Hat EL6): / etc / inittab id: 3: initdefault:
X - 4
Init file konfigurasi (Red Hat 7,3-9,0, Fedora 1-14, RHEL5): / etc / inittab id: 3: initdefault:
# Sistem inisialisasi. si :: sysinit: /etc/rc.d/rc.sysinit l0: 0: menunggu: /etc/rc.d/rc 0 l1: 1: menunggu: /etc/rc.d/rc 1 l2: 2: menunggu: /etc/rc.d/rc 2 l3: 3: menunggu: /etc/rc.d/rc 3 l4: 4: menunggu: /etc/rc.d/rc 4 l5: 5: menunggu: /etc/rc.d/rc 5 l6: 6: menunggu: /etc/rc.d/rc 6
# Hal yang berjalan di setiap runlevel. Baris ini hanya di Red Hat 7.X Digunakan untuk flush buffer disk. ud :: sekali: / sbin / update
# Perangkap CTRL-ALT-DELETE ca :: ctrlaltdel: / sbin / shutdown -T3 r now
# Ketika UPS kita mengatakan kekuasaan telah gagal, jadwal shutdown selama 2 menit dari sekarang. pf :: powerfail: / sbin / shutdown -f -h +2 "Power Kegagalan; Sistem Dimatikan"
#
Jika
daya
dipulihkan
sebelum
shutdown
menendang,
membatalkannya. pr: 12345: powerokwait: / sbin / shutdown -c "Power Restored; Shutdown Dibatalkan"
X - 5
# Jalankan Gettys di runlevel standar 1: 2345: respawn: / sbin / mingetty tty1 2: 2345: respawn: / sbin / mingetty tty2 3: 2345: respawn: / sbin / mingetty tty3 4: 2345: respawn: / sbin / mingetty tty4 5: 2345: respawn: / sbin / mingetty tty5 6: 2345: respawn: / sbin / mingetty tty6
# Run xdm di runlevel 5 x: 5: respawn: / etc / X11 / prefdm -nodaemon Perhatikan bahwa file konfigurasi ini mengarahkan proses init untuk menjalankan /etc/rc.d/rc.sysinit shell script. Script ini harus digunakan sebagai adalah dan tidak berubah. Memperpanjang rc.local dan TIDAK script ini. Ini akan (tidak dalam urutan yang tepat):
Jalankan / sbin / initlog (depricated setelah RHEL5)
devfs dijalankan untuk menghasilkan / mengelola perangkat sistem
Menjalankan script jaringan: / etc / sysconfig / network
Mulai boot grafis (Jika demikian dikonfigurasi): rhgb (RHEL5)
rhgb dimulai oleh initscripts yang mendorong proses boot, hanya setelah deteksi perangkat (diperlukan misalnya untuk mendapatkan setidaknya perangkat input yang diperlukan untuk X diakui) tapi sebelum filesystem diperiksa atau dipasang. Rhgb dimulai dari /etc/rc.sysinit secepat deteksi perangkat dilakukan, dan jika biner ditemukan. Pada saat itu hanya filesystem root mount, read-only dan kita akan menjalankan pemeriksaan fsck pada filesystem. Jika / usr tidak hadir dari jika rhgb tidak dapat memulai X awal adalah retryed kemudian setelah filesystem telah dipasang. Untuk memastikan X dimulai pada lingkungan di mana ia sedang dikonfigurasi dengan benar kita periksa bahwa init bawaan dari / etc / inittab adalah 5 atau tingkat init disahkan pada baris perintah. X dan rhgb membutuhkan filesystem ditulis untuk mengekspor saluran komunikasi dengan proses
X - 6
boot. Untuk melakukan memori kecil filesystem sementara ini dipasang di bawah / etc / rhgb / temp pertama. Juga memungkinkan komunikasi di tingkat X, jaringan loopback perangkat lo0 juga dimulai dan diinisialisasi sebelum menjalankan X. Setelah kedua filesystem dan lo0 siap / usr / bin / X11 / X mulai menggunakan vt8 dan display: 1 (tidak : 0 untuk memungkinkan menghaluskan transisi dari X server sementara untuk satu mulai ketika akan multiuser). Setelah X berhasil dimulai, kode grafis instanciates tampilan sederhana dengan progress bar dan tampilan rinci menggunakan widget vte. Jika file konfigurasi /etc/rhgb/xorg.conf khusus untuk X di bawah rhgb disediakan maka akan diteruskan ke baris perintah X untuk memungkinkan konfigurasi spesifik untuk booting X.
Mulai konsol terminal, beban keymap, font sistem dan cetak konsol
ucapan:
mingetty
,
setsysfonts
Berbagai sesi konsol virtual dapat dilihat dengan kunci-stroke: o
RHEL6: ctrl-alt-F2 melalui F7. F1 dicadangkan untuk layar GUI
dipanggil di run level 5. o
Sistem yang lebih tua: ctrl-alt-F1 melalui F6. F7 dicadangkan untuk
layar GUI dipanggil di run level 5.
Mount / proc dan mulai pengendali perangkat.
Dilakukan dengan konfigurasi boot untuk root drive. ( Initrd )
Unmount root drive.
Re-mount sistem file root baca / tulis
Kernel
langsung
ke
parameter
kernel
beban
dan
modul: sysctl , depmod , modprobe
Mengatur Jam: / etc / sysconfig / jam
Lakukan operasi disk berdasarkan konfigurasi fsck
Periksa / mount / cek / mengaktifkan kuota non-root sistem
file: fsck , gunung , quotacheck , quotaon
Menginisialisasi manajemen volume logis: vgscan , / etc / lvmtab
Aktifkan syslog, menulis ke file log: dmesg
X - 7
Aktifkan PAM
Aktifkan swapping: swapon
Proses boot sistem lokal dapat ditempatkan dalam file: /etc/rc.d/rc.local Sistem
kemudian
akan
boot
ke
runlevel
yang
ditetapkan
oleh initdefault direktif. Juga lihat:
C.
init halaman manual
inittab halaman manual
Prosedur Boot Linux mempunyai 6 state operasi dimana “0” adalah shutdown state dan “3” keatas adalah operasional penuh dengan semua proses yang esensial
dijalankan untuk interaksi user . Berdasarkan sistem boot,
Linux sistem akan melakukan :
Mengeksekusi program /sbin/init yang memulai semua proses proses lain. Program ini akan diberikan ke mesin oleh proses awal yang didefinisikan pada file /etc/inittab
Komputer akan di -booting ke runlevel yang didefinisikan oleh baris initdefault pada file /etc/inittab .id:5:initdefault: Pada contoh diatas, runlevel ”5” dipilih.
Runlevel “5” akan
melakukan booting sistem pada mode GUI menggunakan XDM dan X -Windows. Booting ke runlevel ”3” (biasanya disebut mode console) biasanya digunakan oleh server yang tidak memerlukan GUI. File inittab mengijinkan menggunakan kunci (Ctrl-Alt-Del), memulai dial ke koneksi internet dll.
Satu
dari
proses-
proses
yang
dimulai
oleh
initadalah /sbin/rc. Skrip ini menjalankan sekumpulan skrip pada direktory seterusnya.
/etc/rc.d/rc0.d/, /etc/rc.d/rc1.d, /etc/rc.d/rc2.d dan
X - 8
Skrip pada direktory tersebut dieksekusi pada setiap boot state dari operasi sampai menjadi operasi yang lengkap. S krip mulai dengan S yang merupakan skrip startup sedangkan skrip yang dimulai dengan K menandakan skrip shutdown (kill). Angka yang mengikuti huruf tersebut merupakan urutan eksekusi (terendah ke tertinggi).
Jika Anda menginstall semua daemons (proses bac kground), Linux akan menjalankan semua , menyebabkan mesin lebih lambar. Kita bisa memulai (start) / menghentikan (stop) daemon secara individual dengan mengubah direktory : /etc/rc.d/init.d (Redhat) dan diikuti perintah pilihan start, stop, status, restar t atau reload, misalnya untuk stop web server : cd/etc/rc.d/init.d httpd stop Gunakan perintah ps – aux untuk melihat semua proses pada mesin Anda.
D.
Linux Run Level Runlevel adalah modus operasi di salah satu komputer sistem operasi
yang
mengimplementasikan
Unix
System
V
-
gaya inisialisasi . Konvensional, tujuh runlevel ada, nomor dari nol sampai sembilan
enam;
meskipun
[ rujukan? ],
hingga
sepuluh,
dari
nol
sampai
dapat digunakan. S kadang-kadang digunakan
sebagai sinonim untuk salah satu tingkat.Hanya satu runlevel dijalankan pada startup; menjalankan tingkat tidak dieksekusi satu demi satu, yaitu baik runlevel 2, 3 atau 4 dieksekusi, tidak lebih dari mereka berurutan atau dalam urutan lainnya. Sebuah
runlevel
mendefinisikan
keadaan
mesin
setelah
boot. Runlevel yang berbeda biasanya ditugaskan (tidak harus dalam
X - 9
urutan tertentu) dengan mode single-user , multi-user modus tanpa layanan jaringan mulai, modus multi-user dengan layanan jaringan mulai, sistem shutdown, dan sistem restart sistem negara. Setup yang tepat dari konfigurasi ini bervariasi antara sistem operasi dan distribusi Linux . Misalnya, runlevel 4 mungkin multi-user GUI ada-server konfigurasi pada satu distribusi, dan tidak ada yang lain. Runlevel umumnya mengikuti pola umum yang diuraikan dalam artikel ini; Namun, beberapa distribusi mempekerjakan konfigurasi spesifik tertentu. Dalam praktek standar, ketika komputer memasuki runlevel nol, berhenti, dan ketika memasuki runlevel enam, reboot. Runlevel menengah (1-5) berbeda dalam hal yang drive sudah terpasang, dan yang layanan jaringan dimulai. runlevel default biasanya 3, 4, atau 5. run level rendah yang berguna untuk pemeliharaan atau darurat perbaikan, karena mereka biasanya tidak menawarkan layanan jaringan sama sekali. Rincian tertentu konfigurasi runlevel sangat berbeda antara sistem operasi, dan juga di antara administrator sistem. Dalam berbagai distribusi Linux, tradisional / etc / rc script yang digunakan dalam Versi 7 Unix pertama kali digantikan oleh runlevel lalu oleh systemd negara di sebagian besar distribusi utama. Linux Standard Base spesifikasi Sistem sesuai dengan Standard Base Linux (LSB) tidak perlu memberikan tingkat run yang tepat diberikan di sini atau memberikan mereka makna yang dijelaskan di sini, dan mungkin memetakan tingkat manapun dijelaskan di sini ke tingkat yang berbeda yang menyediakan fungsi setara. LSB 4.1.0 ID Nama
Deskripsi
0
Menutup sistem.
Berhenti
X - 10
1
Mode
mode single-user
tugas-tugas
administrasi. [2] [b] Tidak
2
untuk
mode multi-pengguna
mengkonfigurasi
antarmuka
jaringan dan tidak mengekspor layanan jaringan. [C]
3
4
mode multi-pengguna dengan jaringan Tidak
digunakan
/
user-
didefinisikan Mulai sistem normal dengan
5
display manager yang sesuai (dengan GUI)
6
E.
Reboot
Mulai sistem normal. [1]
Untuk tujuan khusus.
Sama seperti runlevel 3 + display manager . Reboot sistem.
Aktivasi Skrip Init Menambah suatu skrip ke direktory /etc/rc.d/rc#.d/ baik prefik S atau K, menambah skrip ke proses boot atau shutdown. Skrip berjalan dengan urutan numerik. S20abc dijalankan sebelum S30xyz. Keberadaan prosedur boot dan shutdown ini merupakan kekuatan sistem operasi UNIX. Inisialisasi proses dengan urutan tertentu dapat dikoordinasikan untuk proses dependent. Shutdown dari proses biasanya dibutuhkan untuk program yang kompleks misalnya database. Proses individual dapatkemunginan dimonitore, shutdown dan start pada
sembarang
waktu
menggunakan
skrip
tersebut.
Misalnya /etc/rc.d/rc2.d/httpd start. Mofidikasi start, stop atau status kemungkinan digunakan. Skrip start / stop /status berada pada direktory /etc/rc.d/init.d/ adalah suatu link ke direktory sebenarnya. Link tersebut kemungkinan dibuat
X - 11
atau dihapus menggunakan perintah chkconfig, misalnya chkconfig – del httpd akan menghapus web server dari proses startup dan shutdown. Sebaliknnya chkconfig – add httpd akan menambahke ke proses startup/shutdown
dengan
membangkitkan
link
dari
skrip
pada /etc/rc.d/init.d/ ke direktory /etc/rc.d/rc#.d/yang sebenarnya. Untuk informasi lebih lanjut gunakan halaman manual LINUX untuk init. Pada Red Hat 9.0, GUI tool /usr/bin/redhat-config-services dapat membantu untuk mengkonfigurasi service untuk start dan menyediakan deskripsi untuk setiap service yang tersedia. Service dasar meliputi : anacron Run jobs which were scheduled for execution while computer was turned off. Catch up with system duties.arpwatch Keeps track of IP address to MAC address pairings atd Run scheduled batch jobs. autofs automounts file systems on demand. crond Job sheduler for periodic tasks gpm Allows console terminal cut and paste. (Non X-window consoles) https Apache web server. iptables Firewall rules interface to kernel keytable Loads se lected keyboard map as set in /etc/sysconfig/keyboard kudzu New harware probe/detection during system boot. lpd Network printer services microcode_ctl Uploads microcode to kernel and ultimately to the Intle Pentium processor. (Hardware specific.) mysqld Database services named DNS name services (Bind) network Active network services during system boot. nfs Network file system. Unix file sharing services. nscd Password and group lookup services for use with network authentication (NIS, LDAP,...). ntpd Network Time Protocol time synchronization services. random Random number generation tool used for encryprion
X - 12
rawdevices Enables raw IO. Useful for Oracle and software which utilizes this for high speed disk access. smb SAMBA: MS/Windows PC file s haring services syslog System log file facility. ypbind NIS file sharing/authentication infrastructure service. yppasswd NIS file sharing/authentication infrastructure service. xfs X-Windows font server. Service utama yang direkomendasikan adalah : anacron, ard, autofs, crond, gpm, iptables, keytable, kudzu, microcode_ctl(Intel32 hardware only), network, random. syslog Graphics Workstation - add: xfs File Server for PC clients - add: smb Print Server - add: lpd ataucups File server Linux/Unix clients - add: nfs, netfs, nfslock, portmap, ypbind, yppasswd, ypserv Web Server - add: httpd, tux, xinetdi, sshd
F. SKRIP SKRIP SKRIP SKRIP SKRIP INIT Skrip init berada pada direktory /etc/rc.d/script-name. Gunakan perintah chkconfig untuk membangkitkan soft link ke direktory yang sebenarnya untuk beberapa run level. #!/bin/sh # # Startup script for program # # chkconfig: 345 85 15 - This statement tells the chkconfig command how to add or delete this process to the boot process # description: Description of program # processname: process-name
X - 13
# pidfile: /var/run/process-name.pid # Source function library. This creates the operating environment for the process to be started . /etc/rc.d/init.d/functions case "$1" in start) echo -n "Starting process-name: " daemon process-name -Starts only one process of a given name. echo touch /var/lock/subsys/process-name ;; stop) echo -n "Shutting down process-name: " killproc process-name echo rm -f /var/lock/subsys/process-name rm -f /var/run/process-name.pid - Only if process generates this file ;; status) status process-name ;; restart) $0 stop $0 start ;; reload) echo -n "Reloading process-name: " killproc process-name -HUP echo
X - 14
;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit 0 Fungsi skrip bash daemon, killproc dan status dapat ditemukan dalam skrip /etc/rc.d/functions. Skrip harus dieksekusi untuk menjalankannya (chmod +x script-name) Misalnya skrip digunakan untuk memulai dan menghentikan proses seperti /etc/rc.d/init.d/httpd restart /etc/rc.d/init.d/httpd stop /etc/rc.d/init.d/httpd start atau menggunakan perintah service : service httpd restart service httpd stop service httpd start Dua
baris
dalam
skrip
yang
memungkinkan
perintah chkconfig mengontrol skrip untuk proses boot dan shutdown adalah # chkconfig: 345 85 15 # description: Description of program Bila menambahkan ke proses booting menggunakan perintah "chkconfig -add script-name" awal order/priority akan diset 80 sedangkan stop/shutdown diset 15. Proses akan ditambahkan ke runlevel 3, 4, dan 5. Hal ini dapat dilakukan dengan membangkitkan link dari lokasi skrip (/etc/rc.d/init.d/) ke direktori run level :
X - 15
/etc/rc.d/rc#.d/. Nama file dalam direktory run level akan menunjukkan apa yang digunakan untuk boot (mulai dengan “S”) atau shutdown (mulai dengan “K”).
G.
CHKCONFIG Perintah chkconfig membangkitkan dan memutuskan link antara direktori /etc/rc.d/init.d/ dan direktori run level /etc/rc.d/rc[0-6].d/untuk mengontrol inisialisasi proses boot dan proses shutdown. chkconfig [--level ] on | off | reset > chkconfig --list chkconfig --list chkconfig --add chkconfig --del chkconfig --level 0123456 off Contoh : chkconfig --level 345 httpd on - apache diberikan 3, 4 dan 5. chkconfig --add httpd - memulai web server daemon pada system boot. chkconfig --del sendmail - Tidak memulai sendmail daemon pada system boot. chkconfig --list ] - Daftar semua servis dan level init. chkconfig --list | grep on - Daftar semua service yang dimulai pada sistem boot
XI - 1
MODUL 11 MANAJEMEN USER DAN GROUP
11.1. Tujuan Praktikum Setelah mempelajari materi ini, peserta praktikum diharapkan mampu : a.
Menambah, Memodifikasi dan Menghapus User
b.
Menambah dan Menghapus Group
11.2. Resume A.
Manajemen User Untuk melihat daftar user bisa dilihat didalam file /etc/passwd, didalamnya
terdapat
beberapa
informasi
mengenai
username,
password, user ID, group ID, deskripsi, direktori home, dan shell yang digunakan user tersebut, yang dipisahkan dengan tanda “:” (titik dua) pada setiap barisnya. Berikut contoh dengan username root yang ada dalam file /etc/passwd. root:x:0:0:root:/root:/bin/bash
username = nama user yang digunakan untuk login kedalam sistem
password = berisi password yang dienkripsi (huruf x menunjukan bila menggunakan shadow password yang dalam file /etc/shadow)
user ID = angka unik yang dimiliki oleh setiap user
group ID = angka unik yang dimilik oleh setiap grup, dimana tiap user bisa masuk dalam salah satu – grup tersebut
direktori home = path absolut untuk direktori home dari setiap user
shell = program yang otomatis dijalankan setiap user login kedalam sistem (command interpreter)
Membuat user Untuk membuat user di linux kita bisa menggunakan perintah useradd dan adduser. Bedanya dari kedua perintah tersebut adalah useradd itu
XI - 1
XI - 2
manual sedangkan adduser itu otomatis dalam membuat user. Untuk lebih jelasnya lihat dibawah ini: 1. useradd # useradd john -m -d /home/john -s /bin/bash disini password untuk user john belom diatur, untuk mengaturnya jalankan perintah dibawah ini lalu ketik password untuk user john. # passwd john output : Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 2. adduser # adduser billy output: Adding user `billy' ... Adding new group `billy' (1003) ... Adding new user `billy' (1003) with group `billy' ... Creating home directory `/home/billy' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for billy Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y Bisa dilihatkan perbedaan dari kedua perintah tersebut.
XI - 3
Modifikasi user Untuk memodfikasi user kita bisa menggunakan perintah usermod. Berikut contohnya: # usermod john -a -G mysql # usermod billy -a -G ftp Perintah diatas maksudnya adalah memasukan user john kedalam grup mysql dan user billy kedalam grup ftp. Menghapus user Ada 2 perintah untuk menghapus user di linux, yaitu userdel dan deluser. 1. userdel # userdel -f john file konfigurasi untuk userdel terletak didalam /etc/login.defs , dengan opsi -f perintah diatas akan menghapus user meskipun user dalam keadaan terkoneksi kedalam sistem. 2. deluser # deluser billy file konfigurasi untuk deluser terletak didalam /etc/deluser.conf , perintah diatas akan menghapus user tetapi direktori home, mail, dan file lainnya tidak terhapus. Ada beberapa opsi untuk perintah ini diantaranya: –backup = melakukan backup untuk semua file yang dimiliki user tersebut –backup-to = melakukan backup dengan spesifikasi tempat menyimpannya,
default
–remove-home
=
penyimpanan remove
di
direktori
the
user
home home
–remove-all-file = menghapus semua file yang dimilik oleh semua user –group
tersebut =
menghapus
user
dari
dalam
suatu
grup
–system = mengahapus user dan grup yang ada dalam sistem
XI - 4
–conf = digunakan dengan file konfigurasi yang terletak di /etc/deluser.conf dan /etc/adduser.conf
B.
Manajemen Grup Daftar grup yang terdapat di linux bisa dilihat dalam /etc/group , didalamnya terdapat informasi ada grup apa saja yang terdapat pada sistem. Membuat grup Untuk membuat grup menggunakan perintah addgroup. # addgroup marketing Menghapus grup Untuk menghapus grup menggunakan perintah delgroup. # delgroup marketing
XII - 1
MODUL 12 MANAJEMEN APLIKASI
12.1. Tujuan Praktikum Setelah mempelajari materi ini, peserta praktikum diharapkan mampu : a.
Mengerti konsep RPM, TAR dan GZIP.
b.
Menggunakan RPM
c.
Menggunakan TAR dan GZIP untuk instalasi software
12.2. Resume A.
Manajemen Paket pada GNU/Linux Ada
beberapa
sistem
manajemen
paket
yang
tersedia
di GNU/Linux. Sebagian besar distribusi yang beredar memiliki sistem tersendiri dalam manajemen paketnya, beberapa diantaranya adalah yang sudah sangat populer sebagai berikut: Debian Package Management System, paketnya berformat .deb (paket debian). Sistem toolnya adalah dpkg dan dikembangkan pula sistem managemen paket yang sangat memudahkan end user yakni APT (Advanced Packaging Tool). Teknologi sistem APT ini banyak di adopsi ke distribusi GNU/Linux lain, karena kemudahan dan kemampuannya yang teruji powerfull. Redhat Package Manager (RPM). Format rpm ini dikembangkan oleh distribusi Redhat Linux. Umumnya rpm ini digunakan di distribusi linux turunan Redhat, didistribusi turunan Redhat yang menggunakan rpm sebagai format paketnya semacam Fedora, Centos, Mandriva dan masih banyak lainnya. Teknologi APT juga sudah diterapkan, walaupun ada perbedaan. Di Fedora ada yum, di OpenSuse ada zypper dan di Mandriva ada urpmi. Kemudian di Slackware dan turunannya biasanya menggunakan format tar.gz untuk paket-paketnya dan menggunakan tool pkgtool
XII - 1
XII - 2
untuk manajemen paketnya. Pkgtool merupakan salah satu sistem managemen paket tertua yang masih ada dan dipertahankan. Pada saat ini, di slackware telah disertakan sistem manajemen paket slackpkg memiliki kemampuan seperti APT, bahkan di Vector Linux telah mengadopsi APT dengan toolnya slapt-get. Tentunya masih banyak lagi semacam Pacman, PISI di Pardus linux, Portage di Gentoo Linux dan lainnya. Distribusi GNU/Linux itu terdapat 2 macam model distribusi packages, yaitu : Binary Packages, model ini dibuat untuk tujuan penggunaan secara umum, maksudnya penggunaan secara umum disini adalah agar dapat dijalankan di semua tipe dan arsitektur komputer. Biasanya distribusi ini juga tidak menggunakan opsi-opsi khusus yang terdapat di salah satu tipe atau arsitektur komputer tertentu. Sedangkan yang bisa dikategorikan dengan Binary Packages ini adalah semua packages yang ber-ekstensi *.deb, *.rpm, *.tgz dan *.txz, jadi jika menginstall sebuah aplikasi menggunakan repository maka itu berarti kita menginstall dari Binary Packages yang memang sudah disediakan untuk kebutuhan komputer kita. Source
Packages,
seperti
pada
namanya
distribusi
ini
menyertakan file source code asli dari aplikasi-nya. Biasanya pihak pengembang pasti menyertakan atau menyediakan distribusi model ini untuk
di
download.
Sedangkan
untukend-user,
bisa
menggunakan source code ini jika para pengembang tidak menyertakan Binary Packages untuk distribusi GNU/Linux yang digunakan .Coba bayangkan jika kita membuat sebuah aplikasi yang targetnya adalah Sistem Operasi GNU/Linux, installer model seperti apa yang akan kita pilih dengan banyak-ya distribusi GNU/Linux? Mau buat satu-persatu untuk tiap distribusi? Ya pasti capek kan, cara yang paling mudah yaitu, sediakan-lahsource code dari aplikasi kita dan kemudian
biarkan
komunitas
GNU/Linux
sendiri
yang
XII - 3
membuatkan binary packages untuk aplikasi kita. Lebih gampang kan? Salah satu contoh dari source code adalah *tar.gz, *tar.bz, *tar.bz2, dll. TAR merupakan utiliti yang dikembangkan untuk mempermudah pengguna
Linux
membackup
dan
mengarsipkan
files,
serta
memadatkannya untuk kebutuhan penyimpanan lebih lanjut. Utiliti ini ada di hampir semua distribusi Linux dan sering dimanfaatkan untuk memaketkan software yang berupa source code. Hasil dari utiliti ini disebut tarball. tar.gz adalah salah satu file tarball yang proses kompresi datanya menggunakan tar dan gzip. tar.bz adalah arsip yang kompresi datanya menggunakan tar dan bzip. tar.bz2 adalah salah satu jenis file tarball yang proses kompresi datanya menggunakan tar dan bunzip2.
B.
Fungsi Manajer Paket Software
Menghitung besar paketyang disesuaikan dengan kapasitas penyimpanan disk yang masih tersedia, apakah cukup atau tidak.
Memeriksa apakah ada library atau file- file lain yang dibutuhkan untuk software tersebut.
Menghindari konflik dengan software yang telah terpasang di system.
Proses instalasi tidak mengacaukan system (membuat system file menjadi terganggu / korup).
Upgrade ke versi yang baru tanpa mengganggu konfigurasi yang sudah ada.
Verifikasi files dalam paket tersebut.
XII - 4
C.
PAKET SOFTWARE Terdiri dari 2 jenis : 1.
Paket binary (biner), terdiri atas kumpulan program executable. Paket ini berekstensi *.rpm.
2.
Paket source, Berisi teks dari program yang kemudian dapat dikompilasi menjadi executable. Paket ini mempunyai ekstensi *.src.rpm.
D.
NAMA PAKET Penamaan paket diatur dengan konven si sebagai berikut :
Nama
Versi
Release
Platform arsitektur (Intel, Alpha, Risc, …)
XII - 5
E.
RPM QUERY RPM dengan opsi –qmemberikan informasi tentang paket sebagai berikut : # rpm –q samba samba –2.0.5 -1S # Informasi tentang versi paket samba adalah versi 2.0.5. Beberapa sub – opsi dapat diberikan, antara lain : menampilkan
informasi
i
lebih rinci
l
list (daftar) se mua file(s)
yang
tampilkan hanya file dokumentasi d
saja
c
tampilkan hanya konfigurasi file info tentang paket memiliki file
f
apa saja berfungsi pada paket yang belum
p
diinstalasi
–
menampilkan
scripts
instalasi
script
untuk
XII - 6
F.
TAR Tar singkatan dari Tape A Rchive. Tar mula- mula didesain untuk backup tape, tetapi digunakan untuk membuat file tar pada semua sistem file. tar membuat satu “tar nama versi release platform file” (yang disebut dengan “tarball”) pada beberapa file dan direktori. File tar tidak dikompresi, hanya sebuah file heap yang dibentuk bersama dalam satu kontainer.Sehingga file tar akan mempunyai jumlah byte yang sama dengan semua file individu yang dikombinasikan ditambah sedikit file ekstra. File tar dapat dikompresi dengan menggunakan gzip atau bzip2. Contoh :
tar –xvf example.tar mengekstraksi isi dari example.tar dan menunjukkan file yang akan diekstraksi
tar
–cf
backup.tar
/home/ftp/pub
membuat
file
tar
bernama backup.tar dari isi direktori home/ftp/pub
G.
tar –tvf example.tar menampilkan isi dari example.tarpada screen.
GZIP Gzip merupakan format ZIP UNIX yang asli. Biasanya membentuk file tar terlebih dahulu dan kemudian mengkompresi dengan menggunakan gzip. File -file ini mempunyai ekstensi .tar.gz yang menunjukkan file tar yang di – zip dengan gzip. Selain itu juga terdapat file berekstensi .tgz. File ini merupakan file kompresi dengan gzip yang kompatibel dengan WinZip dan PkZip. Sehingga file zip pada UNIX dapat di unzip pada Windows. Contoh :
Untuk kompresi file menggunakan gzip, eksekusi perintah berikut : gzip filename.tar (dimana filename.taradalah nama file yang dikompres).
Hasil
bernama filename.tar.gz. file filename.tar
dari
operasi
ini
adalah
file
yang
Defaultnya, gzip akan menghapus
XII - 7
Untuk dekompresi file menggunakan gzip, eksekusi perintah beriku t : gzip bernama
– d filename.tar.gz. Hasil dari operasi ini adalah file filename.tar.
file filename.tar.gz
Defaultnya,
gzip
akan
menghapus
PENUTUP
A. SIMPULAN Pada dasarnya,
Linux merupakan sistem operasi
yang berbasiskan
pada text (Text Bases) dalam sistem kerjanya. Bila ingin melakukan sesuatu terhadap komputer user bisa mengetikkan perintah-perintah yang kemudian dieksekusi oleh komputer. Sehingga mode teks terus melekat dengan Linux sampai saat ini, walaupun sekarang tampilan GUI (Graphic User Interface) Linux sudah semakin bagus dan memudahkan user. Perintah-perintah yang diketikkan itu biasa disebut Command Line. Untuk perintah-perintah dasar, biasa disebut Basic Command Line.
B. SARAN Sejalan dengan simpulan di atas penulis merumuskan saran sebagai berikut. 1. Pembaca hendaknya mampu menguasai bahasa shell, umumnya bahasa Pemrograman shell pada linux. 2. Pembaca hendaknya mampu menerapkan teknik pengoprasian berbasis text, atau menggunakan pada kehidupan sehari-hari.
1
DAFTAR PUSTAKA
Anjalikartu. (2014). “SISTEM MANAJEMEN PAKET PADA GNU LINUX”. Tersedia
:
https://anjalikaratu.wordpress.com/2014/06/23/sistem-
manajemen-paket-pada-linux-fedora-suse-dan-knoppix/. [16 Juni 2016]. Astamal, Rio. (2008). “TUTORIAL MINI - SHELL SCRIPT”. [online]. Tersedia : http://lug.stikom.edu/wp-content/uploads/ebook/tutorial-mini-shell.txt. [10 Juni 2016]. Daymand. (2012). “Linux Booting Process”. Tersedia : http://dymandinformatika.blogspot.co.id/2012/03/linux-praktikum10-linux-bootingprocess.html. [16 Juni 2016 Duwi, Haryanto. “Praktikum IV Shell Programming Shell Developer Lokasi Keterangan BASH (Bourne-Again Shell)”. Yogyakarta Ekajogja. ( - ). “Pengertian Umask Value Linux dan Cara Mengaturnya secara Permanen”.
Tersedia
:
http://ekajogja.com/tips-linux-cara-mengubah-
umask-value-di-linux-secara-permanen/. [16 Juni 2016]. Hanif, Tajuddin.(2015). “MANAJEMEN PROSES PADA LINUX”.[Online]. Tersedia
:
http://hi-techno1st.blogspot.co.id/2015/03/manajemen-proses-
pada-linux.html . [31 Mei 2016].
Hazmi.
(2014).
“Manajemen
user
dan
group
linux”.
Tersedia
http://cubnetwork.com/manajemen-user-dan-grup-di-linux/. [16 Juni 2016].
Katreina, Flory. https://pemula.linux.or.id/pengguna/command.html#grep.
:
Medyes.
“Mounting
(2007).
di
Linux”.
Tersedia
https://medyes.wordpress.com/2007/01/06/mounting-di-linux/.
[16
: Juni
2016]. Maikel.(2015). “Operasi File Dan Struktur Direktori Linuxoprasi File Dan Struktur
Direktori
Linux”.[Online].
Tersedia
:
http://brainly.co.id/tugas/2302097. [31 Mei 2016].
Mashudi,
Sudonym.
(2015).
“Sistem
File
Linux”.
Tersedia
:
http://mashudisudonym.github.io/tugas/linux/open/source/2015/04/17/siste m-file-linux/. [16 Juni 2016]. Mohammad, Dhairul Adam. (2012). “Tata Letak File Pada Linux”. Tersedia : http://mohammadhairuladam.blogspot.co.id/2012/01/tata-letak-file-padalinux.html.[16 Juni 2016].
Nurrachman, Andi. Modul Sistem Operasi. Tasikmalaya : Universitas Siliwangi. Oktavianto, Digit. (2009). “Mengcek hardwere device di linux melalui terminal”. Tersedia
:
http://digitoktavianto.web.id/mengecek-hardware-device-di-
linux-melalui-terminal.html. [16 Juni 2016].
Perkom.
(2013).
“
ATRIBUT
FILE”.
[online].
Tersedia
:
https://perkom187.wordpress.com/atribut-file/. [16 Juni 2016].
Prasetyo,
Adam.
(
-
).
“Hak
Akses
Pada
LINUX”.
Tersedia
https://prassetyoadam14.wordpress.com/linux/hak-akses-pada-linux/. Juni 2016].
: [16
Rio,
Andika
Putra.
(2012).
“Tugas
so
system
call”.
Tersedia
:
http://rioandikaputera.blogspot.co.id/2012/04/tugasii-so-system-call.html. [16 Juni 2016] Sappadheni.
“Shell”.
11
Desember
2012.
http://sappadheni.blogspot.co.id/2012/12/shell.html. Wajatmaka. (2013). “E-book Revisi : Command Line Interface GNU/LINUX”. [Online]. Tersedia : blog.wajatmaka.com. [02 Juni 2016]. Wibowo, Arie Setio. “E-Book Tutorial Perintah Dasar Linux”. November 2008. http://bukutux.rumahlinux.web.id.
Yulianti, Yanti. (2014). “Belajar Pemrograman Shell Script: Script sederhana”. [online]. Tersedia : http://staff.unila.ac.id/yantiyulianti/2014/04/07/belajarpemrograman-shell-script-script-sederhana.[10 Juni 2016].
https://ugos.ugm.ac.id/wiki/panduan:panduan_perintah_dasar_linux. Wikipedia, Run Level, https://en.wikipedia.org/wiki/Runlevel
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS SILIWANGI LEMBAR ASISTENSI PRAKTIKUM Nama NPM Ke las Kelompok Nama Praktikum Tahun Akademik A.SISt en Dosen
No 1.
2.
3. 4. 5.
· f>ebn \hrnda.rn
: lLtrOObO 12 : A 2014 : 1
: Sistem Operasi : 2016 Yum. Eltyaru
; Tanggal
d-t{ f D~ u; 2>1 (t)~/L~ bf I 01:, /th
t1
!
f)' !u~
Hasil Pemeriksaan
il\~-tlui\ \ rr-2-
~I ~
f\!Leolul
3 +4 S°"
e
ACC
Perbaikan Yang Diperlukan
(Paraf Asisten) /?
~
p 9 'j
6.
7. 8.
9. 10. 11. 12.
Tasikmalaya, [,~ Dosen Pembina,
cfuJU
1
qpUJ