Anda di halaman 1dari 255

LAPORAN PRAKTIKUM

SISTEM OPERASI

Oleh

Nama : Dika Andra Joni

No BP : 1811081002

PRODI TEKNOLOGI REKAYASA PERANGKAT LUNAK

JURUSAN TEKNOLOGI INFORMASI

POLITEKNIK NEGERI PADANG

TA 2019/2020
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. Teori Dasar


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.
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.
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

✗ 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.

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.
Setiap pemakai LINUX harus mempunyai nama login (user account) yang
didaftarkan pada administrator system. Prompt dari shell bash pada LINUX
menggunakan tanda “$”.
Sebuah sesi LINUX terdiri dari :
1. Login
2. Bekerja dengan shell / menjalankan aplikasi
3. Logout

Format Instruksi LINUX :


Instruksi Linux standar mempunyai format sebagai berikut :
$ NamaInstruksi [pilihan] [argument]
Pilihan adalah option yang dimulai dengan tanda – (minus)

1.3 Hasil dan Pembahasan


Percobaan 1 : Melihat identitas diri (nomor id, group id)
$ id

Gambar 1.1 Tampilan Identitas Diri

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 2 Tahun 1996

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.

$ 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

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
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.
$ 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.
$ finger <user>

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 <user>. Gambar diatas merupakan gambar yang gagal
(tidak bias diakses).

3. Mengubah informasi finger


$ chfn <user>
Change finger information for student.
Password:
Nama[user wks] : <Nama Anda>
Office[] : Lab TI
Office Phone [] : 0313013
Home Phone [] :3203344904920
Finger information changed
$ chfn <user>

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 <user>.
Apabila berhasil maka akan muncul tampilan untuk mengisikan password
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

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.

$ 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.

$ 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.
$ 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


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.
$ 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.
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.
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.

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
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.
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.
$ 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
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.
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


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.
$ 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.
$ 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


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
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
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.
$ 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.
$ 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..

Perintah Deskripsi Format


id Melihat identitas diri (nomor id dan $ id
grup id)
date melihat tanggal saat ini $ date
cal 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 $w
aktif
II - 2
who Mengetahui siapa saja yang sedang $ who
dan $ cp
aktif
mydir/f2 f2
whoami Mengetahui siapa saja yang sedang $ whoami
mkdir Membuat direktori $ mkdir backup,
aktif
dan $ mkdir
finger Melihat informasi finger $ finger dan $
mydir
finger <user>
cd Pindah direktori $ cd backup
chfn Mengubah informasi finger $ chfn <user>
cat Melihat isi file $ cat f1
man Menggunakan manual $ man ls, $ man
more Menampilkan file per satu layar penuh $ more f1
man, $ man –k
pg Menampilkan file per satu layar penuh $ pg f1
file, dan $ man 5
mv Mengubah nama file $ mv f1 prog.txt,
passwd
dan $ mv f1 f2 f3
clear Menghapus layar $ clear
mydir
apropos Mencari perintah yang deskripsinya $ apropos date, $
rm Menghapus file $ rm fl, dan $ rm
mengandung kata kunci yang dicari apropos mail,
–i f2
dan $ apropos
grep Mencari kata atau kalimat dalam file $ grep root
telnet
/etc/passwd, $
whatis Mencari perintah yang tepat sama $ whatis date
grep “:0:”
dengan kunci yang dicari
/etc/passwd, dan
ls Manipulasi berkas (file) dan direktori $ ls, $ ls –l, $ ls
$ grep student
–a, $ ls –f, $ ls
/etc/passwd
/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,
II - 3

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 Teori Dasar


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)

2. FILE DESCRIPTOR
II - 4
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
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
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 baris-
baris ,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.
2.3 Hasil dan Pembahasan
Login sebagai user, bukalah Console Terminal dan lakukan percobaan-
percobaan dibawah ini .
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]
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 admin@yahoo.com
contoh surat elektrik yang langsung dibuat pada standar input (keyboard)
[ctrl-d]

Gambar 2.3 Tampilan Email yang Langsung Input Keyboard


Analisis
Gambar di atas merupakan perintah menginputkan dari keyboard dan
mengoutputkan ke alamat internet $ mail admin@yahoo.com 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
$ 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
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).
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).
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).
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
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.
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
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 (Proses tidak berhenti )
{ctrl –c}
$ cat out
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.
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 )


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 | <User>
$ grep <user> /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
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.
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 Teori Dasar


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
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
lain- lain. 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
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.
Peralatan Direktori
Floppy /dev/fd0
Harddisk IDE : /dev/hd, /dev/hdb, /dev/hdc,
/dev/hdd
SCSI : /dev/sda, /dev/sdh, /dev/sdc
CDROM 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 LPT1 : /dep/lp0
LPT2 : /dep/lp1
Serial Port 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).
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
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.
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.
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 percobaan-
percobaan dibawah ini .
Percobaan 1 : Direktori
1. Melihat direktori HOME
$ pwd
$ echo $HOME

Gambar 3.1 Tampilan Direktori Home


Analisis
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.
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
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.
5. Navigasi direktori dengan instruksi cd untuk pindah dari satu direktori ke
direktori lain
$ pwd
$ ls -l
$ cd A
$ pwd
$ cd ..
$ pwd
$ cd /home/<user>/C
$ pwd
$ cd /<user>/C (Terdapat pesan error, mengapa ?)
$ pwd

Gambar 3.5 Tampilan Direktori Home


Analisis
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
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.
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
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
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
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.
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
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.
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
Percobaan 6 Mencari text pada file
$ grep Hallo *.txt

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.
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 Teori Dasar


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 (Teori Dasar 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 <user> : 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 %<nomor job>: Menghentikan suatu proses/job
renice <prioritas> <PID> : Mengubah prioritas suatu proses
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.
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
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
terus- menerus 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
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
Analisis $ ps
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
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.
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.
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.
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.
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.
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.
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.
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 %<nomor job> 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.
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
Analisis job gunakan Ctrl-Z.
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.

Untuk restart job pada foreground, gunakan perintah fg. $ fg


2. Analisis
Percobaan diatas merupakan cara untuk menghentikan dan memulai
kembali job. Untuk restart job pada foreground, gunakan perintah fg.

Shell akan menampilkan nama perintah yang diletakan di foreground. Stop


3. job lagi dengan Ctrl-Z. Kemudian gunakan perintah bg untuk meletakan
job pada background. $ bg

Job tidak bisa dihentikan


background. dengan
Untuk Ctrl-Z karena
menghentikanya jobjobberada
letakan pada
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
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
Analisis
sementara.
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.
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 <nomor PID>


Analisis
Percobaan diatas merupakan cara untuk menghentikan dan memulai
kembali job. Perintah $ kill -9 <nomor PID> 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.
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 Teori Dasar


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
$ bash --login
Tue Nov 13 20:55:13 WIT 2019
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
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 :
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 Keterangan Kunci Keterangan
Pindah Kursor ke kiri Ctrl
H Mundur satu layar
satu karakter -b
Pindah Kursor ke kanan Ctrl
J Maju satu layar
satu karakter -f
Ctrl
K Pindah Kursor ke atas Maju setengah layar
-d
Menggerakan kursor ke
L Pindah Kursor ke bawah B
kiri satu kata
Menyisipkan teks (satu
Menggerakan kursosr ke
O baris setelah posisi W
kanan satu kata
kursor)
Menyisipkan teks (di
I ^ Pergi ke awal baris
sebelah kiri posisi kursor
Menyisipkan teks (di
A sebelah kanan posisi $ Pergi ke akhir baris
kursor)
I
(shi Menyisipkan teks (di Membatalkan perintah
U
ft posisi awal baris) yang terakhir kali
i)
A
Membatalkan seluruh
(shi Menyisipkan teks (di
U
ft posisi akhir baris) perubahan teks pada baris
tempat kursor berada
a)
Keluar untuk sementara
Menghapus 1 huruf (di
dari editor vi dan
X sebelah kanan posisi :!
menjalankan perintah yang
kursor)
lain
Menghapus 1 kata (di Write dan quite, simpan
Dw sebelah kanan posisi :wq berkas dan keluarkeluar vi
kursor) tanpa menyimpan
Menghapus 1 baris (di
keluarkeluar vi tanpa
Dd sebelah kanan posisi :q!
menyimpan
kursor)
:se Menampilkan semua
Yy Mengkopi 1 baris
all pilihan set status
:se Menampilkan nomor baris
2yy Mengkopi 2 baris
nu pada kiri layar
(Paste) Menampilkan
baris kalimat yang sudah /str Mencari string ke arah
P
ada dikopi dengan kunci ing depan
yy
Mengganti 1 kata yang
telah ditulis di sebelah ?str Mencari string ke arah
Cw
kanan posisi kursor ing belakang
dengan kata lain
Mengganti 1 baris
kalimat yang telah ditulis
meneruskan pencarian
Cc disebelah kanan posisi N
untuk arah yang sama
kursor dengan kalimat
lain

Login sebagai user, bukalah Console Terminal dan lakukan percobaan-


percobaan 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.
$ 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.
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


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
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.
$ !<Nomor Perintah> Contoh : !431
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.
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.
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
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
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.
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
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
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.
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

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.
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.
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.
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:,
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


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.
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:’.
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.
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.
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.
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
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.
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.
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
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”
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
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


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.
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
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.
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.
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
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
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
menggunakan perintah rm –i. Dan del files tidak berfungsi karena
perintah alias del sudah dihapus.
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 Teori Dasar


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.
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
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.
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
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
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
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
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
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 !
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.
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.
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


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.
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
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
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
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
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 :
Dika
Alamat :
Kampung
dalam
Kota :
padang
Hasil adalah : Dika, Kampung dalam di padang
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
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 : Dika
Alamat : Jl Kampung Dalam
Kota : Padang
Hasil adalah : Dika, Jl Kampung Dalam di Padang

Gambar 6.15 Tampilan Membaca Keyboard


Analisis
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
<CR>
$ 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.
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
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”
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 dika andrajoni
$ . prog04.sh dika andrajoni coba lagi
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”
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.
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 $*”
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
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 <user> /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.
Percobaan 6 : Konstruksi if
1. Instruksi dengan exit status 0
$ who
$ who | grep <user>
$ 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
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 <user> >/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
# 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.
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=<user>]
$ . 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.
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
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.
3. Jalankan program prog06.sh dengan memasukan NAMA = amir dan
NAMA = <CR> perhatikan hasil tampilannya
$ prog06.sh [NAMA = pebri]
$ prog06.sh [NAMA = <CR>] (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 <CR> 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
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.
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 ||


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).
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 $?
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”
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
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
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
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.
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
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
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.
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.
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
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.
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


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
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
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”
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.
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”
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
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
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.
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
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=100
00
echo “Fungsi F1”
return 1
}
echo “Menggunakan fungsi”
F1
F1
echo “Nilai balik adalah $?”
echo “Honor = $Honor”
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.
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
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.
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. Teori Dasar


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
• 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
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
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
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
a. Memahami atribut file dan ijin akses
b. Memahami perintah untuk mengubah ijin akses suatu file
c. Menggunakan perintah-perintah untuk mengubah ijin akses

8.2. Teori Dasar


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 terakhir
dimodifikasi.
o Nama File : Menentukan nama file yang dimaksud.
VIII - 2

File memiliki beberapa atribut antara lain :


Tipe File : Menentukan tipe dari file, yaitu :

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 kapan file terakhir
dimodifikasi.
Nama File : Menentukan nama file yang dimaksud.

Contoh:
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.
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 (—)
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.
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
b. Menggunakan perintah mount dan unmounts pada system file
c. Menggunakan perintah-perintah untuk manajemen perangkat keras

9.2. Teori Dasar


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.
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
)
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).
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
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
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
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 00
/dev/hda6 / ext2 defaults 11
/dev/hda7 swap swap defaults 02
/dev/cdrom /cdrom auto ro,noauto,user,exec 0 0
/dev/fd0 /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
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 masing-
masing 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. Teori Dasar


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.
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:
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"
# 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
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
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:
init halaman manual
inittab halaman manual

C. 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 /etc/rc.d/rc0.d/, /etc/rc.d/rc1.d, /etc/rc.d/rc2.d
dan seterusnya.
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 enam; meskipun hingga sepuluh, dari nol sampai
[ rujukan? ],
sembilan 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
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 Berhenti Menutup sistem.


Mode untuk tugas-tugas
1 mode single-user [2] [b]
administrasi.

Tidak mengkonfigurasi antarmuka


2 mode multi-pengguna jaringan dan tidak mengekspor layanan
jaringan. [C]

mode multi-pengguna dengan Mulai sistem normal. [1]


3
jaringan

Tidak digunakan / user- Untuk tujuan khusus.


4
didefinisikan

Mulai sistem normal dengan Sama seperti runlevel 3 + display


5 display manager yang sesuai manager .
(dengan GUI)

6 Reboot Reboot sistem.

E. 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
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
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
# 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
;;
*)
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 :
/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 <levels>] <name> on | off | reset >
chkconfig --list
chkconfig --list
chkconfig --add <name>
chkconfig --del <name>
chkconfig --level 0123456 <name> 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. Teori Dasar


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.
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 penyimpanan di direktori home
–remove-home = remove the user home
–remove-all-file = menghapus semua file yang dimilik oleh semua
user tersebut
–group = menghapus user dari dalam suatu grup
–system = mengahapus user dan grup yang ada dalam sistem
–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. Teori Dasar


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
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.
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, …)
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 yang


i lebih rinci

l list (daftar) se mua file(s)

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 script untuk


scripts instalasi
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
tar –tvf example.tar menampilkan isi dari example.tarpada screen.

G. 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 dari operasi ini adalah file yang
bernama filename.tar.gz. Defaultnya, gzip akan menghapus
file filename.tar
Untuk dekompresi file menggunakan gzip, eksekusi perintah beriku t :
gzip – d filename.tar.gz. Hasil dari operasi ini adalah file
bernama filename.tar. Defaultnya, gzip akan menghapus
file filename.tar.gz
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.
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://dymand-


informatika.blogspot.co.id/2012/03/linux-praktikum10-linux-booting-
process.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. (2007). “Mounting 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-pada-
linux.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/. [16
Juni 2016].
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/belajar-
pemrograman-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

Anda mungkin juga menyukai