Monday, October 16, 2023

PRAKTIKUM 5A: Bekerja dengan Bash Shell Bagian I

 


PRAKTIKUM 5

BEKERJA DENGAN BASH SHELL

BAGIAN I


SISTEM OPERASI

DOSEN PENGAMPU: MUHAMMAD FATHURRAHMAN S.T., M.T.




FACHMA OKTAFIANI

2103421016

BM 5A


PROGRAM STUDI 

BROADBAND MULTIMEDIA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI JAKARTA

2023


POKOK BAHASAN

  • History pada Bash Shell
  • Membuat Bash Shell Script

TUJUAN BELAJAR

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
  • Memahami shell pada sistem operasi Linux.
  • Menggunakan feature history pada Bash Shell.
  • Mengubah feature history pada Bash Shell.
  • Mengubah prompt shell.
  • Melakukan konfigurasi Bash Shell untuk menjalankan skrip secara otomatis.
  • Membuat dan mengeksekusi shell script sederhana melalui editor vi.
  • Memahami job control.
  • Memahami stack.
  • Menggunakan alias.

DASAR TEORI

1. SHELL

        Shell adalah Command executive, artinya program yang menunggu instruksi dari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut. Shell ditandai dengan prompt. Untuk pemakai menggunakan prompt
$ dan untuk superuser menggunakan promp #.
            Beberapa macam shell :
            • /bin/sh
                Bourne shell, dirancang oleh Steve Bourne dari AT&T 
            • /bin/csh
                Dikembangkan oleh UNIX Berkeley yang dikenal dengan C -Shell
            • /bin/bash
                Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell.
Perbedaan mendasar antara Shell diatasi hampir tidak ada, kecuali pada fasilitas pemrograman dan editing.

2. PROFILE

Pada saat login, program akan menjalankan beberapa program yaitu :
    1. /etc/profile
        Berisi shell script yang berlaku untuk seluruh pengguna Linux.
    2. Profil untuk setiap pemakai
       Pada home directory, login pertama kali akan memeriksa file .bash_profile. Bila tidak ada, maka file .bash_login akan dicari. Bila .bash_login tidak ada, maka dicari file bernama .profile .
    3. .bashrc
        File ini akan dieksekusi untuk perpindahan dari satu shell ke shell yang lain melalui instruksi su.
    4. .bash_logout
        Pada saat logout, maka bash akan mencari file .bash_logout. Bila ada, file tersebut akan dieksekusi sebe lum logout

Isi dari /etc/profile:
# System wide environment and startup programs # Functions and aliases go in /etc/bashrc

PATH=”$PATH:/usr/X11R6/bin” PS1=”[\u@\h \W]\\$ “
umask 022

USER=’id –un’ LOGNAME=$USER
MAIL=”/var/spool/mail/$USER”

HOSTNAME=’/bi n/hostname’ 
HISTSIZE=1000 
HISTFILESIZE=1000

3. HISTORY

   History di adaptasi dari C-Shell, yaitu catatan dari semua instruksi yang sejauh ini telah dilakukan. Catatan ini dapat dilihat sebagai history, kemudian dapat dipilih kembali, diedit dan dieksekusi. History memudahkan pemakai untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter. Navigasi pada daftar history menggunakan karakter kontrool sebagai berikut :
  • ^P (Ctrl-P)    melihat instruksi sebelumnya
  • ^N (Ctrl-N    melihat instruksi berikutnya
  • !!              eksekusi kembali instruksi sebelumnya
  • !! –3      3 instruksi sebelumnya akan diulang
  • !!88              ulangi instruksi no 88

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

5. JOB CONTROL

 Job adalah sebuah eksekusi program yang diberikan kepada kernel. 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

     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 dimasukkan ke dalam 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 teks editor vi dapat dilihat pada tabel sebagai berikut :


Kunci

Keterangan

H

Pindah kursor ke kiri satu karakter

J

Pindah kursor ke kanan satu karakter

K

Pinda h kursor ke atas

L

Pindah kursor ke bawah

O

Menyisipkan teks (satu baris

setelah posisi kursor)

 

 

Untuk keluar dari 5 model kunci insert di samping ini dan mengaktifkan kunci- kunci lain, maka kita harus menekan tombol Esc terlebih dahulu.

I

Menyisip kan teks (di sebelah kiri

posisi kursor)

A

Menyisipkan teks (di sebelah kanan posisi kursor)

I

(shift i)

Menyisipkan teks (di posisi awal

baris)

A

(shift a)

Menyisipkan teks (di posisi akhir

baris)

X

Menghapus 1 huruf (di sebelah kanan posisi k ursor)

Dw

Manghapus 1 kata (di sebelah kanan posisi kursor)

Dd

Menghapus 1 baris (di sebelah kanan posisi kursor)

Yy

Mengkopi 1 baris

2yy

Mengkopi 2 baris

P

(Paste) Menampilkan baris kalimat yang sudah dikopi dengan kunci yy

Cw

Mengganti 1 kata yang telah ditulis di sebelah kanan posisi kursor

dengan kata lain

Cc

Mengganti 1 baris kalimat yang telah ditulis di sebelah kanan posisi kursor dengan kalimat lain

ctrl-b

Mundur satu layar

ctrl- f

Maju satu layar

ctrl-d

Maju setengah layar

B

Menggerakkan kursor ke kiri satu kata

W

Manggerakkan kursor ke kanan satu kata

^

Pergi ke awal baris

$

Pergi ke akhir baris

U

Membatalkan perintah yang terakhir kali

U

Membatalkan seluruh perubahan teks pada baris tempat kursor

berada

:!

Keluar untuk sementara dari editor vi dan menjalankan perintah

yang lain

:wq

Write dan quite, simpan berkas dan keluar

:q!

Keluar vi tanpa menyimpan

:se all

Menampilkan semua pilihan set status

:se nu

Menampilkan nomor baris pada kiri layar

/string

Mencari string ke arah depan

?string

Mencari string ke arah belakang

N

Meneruskan pencarian untuk arah yang sama

N

Meneruskan pencarian untuk arah yang berbeda


TUGAS PENDAHULUAN

Jawablah pertanyaan - pertanyaan dibawah ini:
1. Apa yang dimaksud dengan shell dan sebuatkan shell yang ada di system operasi Linux.
    Jawab :
    Shell adalah Command executive, artinya program yang menunggu intruksidari pemakai, memeriksa sintak dari instruksi yang diberikan, kemudian mengeksekusi perintah tersebut.
      /bin/sh 
     Bourne shell, dirancang oleh Steve Bourne dari AT&T
       /bin/csh 
     Dikembangkan oleh UNIX Berkeley yang dikenal dengan C -Shell
      /bin/bash 
      Kompatibel dengan Bourne Shell dan juga mengadaptasi kemampuan Korn-Shell. Perbedaanmendasar antara Shell diatasi hampir tidak ada, kecuali pada fasilitas pemrograman dan editing.
 

2. Apa yang dimaksud dengan profile pada Bash Shell.
    Jawab:
    Pada Bash Shell, "profile" mengacu pada file yang berisi konfigurasi dan pengaturan untuk pengguna shell tertentu. File-file ini digunakan untuk menentukan variabel lingkungan, alias, dan perilaku default dari shell ketika pengguna masuk atau membuka sesi shell. Ada beberapa jenis file "profile" yang umumnya digunakan dalam lingkungan Bash:
  • /.bashrc: Ini adalah file profile untuk pengguna individu. Ketika Anda masuk ke sistem atau membuka shell, file ini akan dieksekusi. Biasanya digunakan untuk mengatur variabel lingkungan, alias, dan fungsi shell yang spesifik untuk pengguna.
  •  /etc/profile: Ini adalah file profile global yang berlaku untuk semua pengguna pada sistem. File ini digunakan untuk mengatur variabel lingkungan global dan pengaturan yang berlaku untuk seluruh sistem.
  • /etc/bash.bashrc: File ini biasanya digunakan pada beberapa distribusi Linux untuk mengatur konfigurasi global untuk Bash. Ini dapat digunakan untuk pengaturan yang berlaku untuk semua pengguna, serupa dengan ~/.bashrc, tetapi dengan lingkup global.
  • /.bash_profile atau ~/.bash_login atau ~/.profile: Ini adalah file profile alternatif yang digunakan oleh beberapa sistem atau pengguna. Jika salah satu dari file ini ada di direktori pengguna, maka itu akan digunakan sebagai file profile untuk pengguna tersebut.
3. Apa yang Anda ketahui mengenai file .bashrc.
    Jawab:
    .bashrc. adalah file profile untuk mengeksekusi perpindahan dari satu shell ke shell yang lain melalui intruksi 

4. Apa yang dimaksud dengan history pada Bash Shell. Apa kegunaan perintah history, sebutkan cara-cara untuk mengetahui history perintah-perintah yang pernah digunakan oleh user!
    Jawab:
    History diadaptasi dari C-Shell, yaitu catatan dari semua instruksi yang sejauh ini telah dilakukan. Catatan ini dapat dilihat sebagai history, kemudian dapat dipilih kembali, diedit dan dieksekusi. History memudahkan pemakai untuk mengedit kembali instruksi kompleks dan panjang, terutama bila terjadi kesalahan pada penulisan instruksi maupun parameter. Navigasi pada daftar history menggunakan karakter kontrool sebagai berikut :
  • ^P (Ctrl-P)    melihat instruksi sebelumnya
  • ^N (Ctrl-N    melihat instruksi berikutnya
  • !!              eksekusi kembali instruksi sebelumnya
  • !! –3      3 instruksi sebelumnya akan diulang
  • !!88              ulangi instruksi no 88

5. Cobalah menggunakan editor vi untuk mengetik dan pahami perintah-perintah yang ada seperti yang terdapat pada dasar teori (untuk dilakukan, tidak perlu dijawab sebagai tugas pendahuluan). Perintah-perintah yang penting : insert huruf(kalimat), delete (per huruf, per kata dan per baris), simpan file dan keluar dari editori vi.
    Jawab:
    Penggunaan editor vi adalah suatu keterampilan yang berguna dalam mengelola dan mengedit file teks di lingkungan terminal Linux atau Unix. Editor vi memiliki dua mode utama: mode normal (Command Mode) dan mode insert (Insert Mode). Dalam mode normal, kita dapat menggunakan perintah-perintah seperti 'i' untuk memasuki mode insert sebelum posisi kursor, 'x' untuk menghapus karakter di bawah kursor, 'dd' untuk menghapus baris tempat kursor berada, dan 'w' untuk menghapus kata di bawah kursor.
    Ketika kita ingin menyimpan perubahan yang telah kita buat, kita dapat menggunakan perintah ':w'. Untuk keluar dari editor vi, perintah ':q' digunakan jika tidak ada perubahan yang perlu disimpan, sedangkan ':q!' digunakan untuk keluar tanpa menyimpan perubahan. Jika perubahan perlu disimpan saat keluar, kita dapat menggunakan ':wq' atau ':x'.
    Penggunaan editor vi memerlukan latihan untuk menjadi terampil, tetapi dengan pemahaman mengenai perintah-perintah dasar ini, kita dapat mengedit dan mengelola file teks dengan efisien di lingkungan shell Linux atau Unix.

PERCOBAAN

Percobaan 1 : Profile

1. File .bash_profile dijalankan pada home direktori pemakai yang login.  File .bash_profile adalah hidden file, sehingga untuk melihatnya gunakan opsi a pada instruksi ls.
    $ ls –a
  $ more .bash_profile

    Analisa:
    Perintah ls adalah perintah untuk melihat isi  dari file atau directory. Karena file bash adalah file yang hidden maka untuk melihat gunakan ls –a. Pada perintah $ more .bash_profile terdapat comment error karena pada home directory tidak terdapat file atau directory yang namanya bash_profile.

2. File .bash_logout akan diekseksi 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

    Analisa
    Perintah bash_logout berfungsi untuk house clearing jobs, artinya membersihkan semuanya misalnya menghapus temporary file atau job lainnya.

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 Panah Atas. Maka perintah sebelumnya akan ditampilkan.

    Analisa:
    Panah atas adalah perintah untuk mengetahui history perintah yang digunakan sebelumnya.


2. Berikutnya, berikan Bash shell beberapa perintah untuk diingat. Masukkan perintah berikut dan tekan Enter pada setiap baris.
$ cd
$ ls –l /etc
$ ls –l
$ whoami
$ who

3. Untuk memeriksa apakah perintah ini ditambahkan pada history, dapat menggunakan perintah history untuk melihat semua perintah yang pernah dimasukkan.
$ history

Analisa:
Ketikkan perintah yang ada pada no 2 untuk di ingat ole bash shell dan klik Enter disetiap perintahnya. Kemudian ketik history Enter maka akan terlihat semua perintah yang pernah dimasukkan sebelumnya.

4. Anda dapat memilih perintah sebelumnya dengan menggunakan Panah Atas , tetapi hal ini tidak efisien untuk perintah yang semakin bertambah banyak. Cara yang mudah menggunkaan nomor pada perintah history atau mencarinya. Untuk memilih dan mengeksekusi perintah dengan nomor, masukkan kunci ! diikuti nomor perintah.
    $ !<Nomor Perintah>                         Contoh : !780

    Analisa :

5.  Anda dapat mencari perintah dengan menyertakan perintah yang diinginkan. Misalnya !?etc?! akan menjalankan perintah ls –l /etc yang sebelumnya digunakan.
    $ !?etc?
    
    Analisa :

6. Kemudian gunakan perintah history, maka akan terlihat perintah ls –l  /etc yang kedua dan bukan !?etc?
    $ history

  Analisa :

7.  Apabila string tidka ditemukan pada perintha history maka akan terdapat pesan error.
     $ !?wombat99?

    Analisa :

8.  Jika diketikkan !who maka yang dijalankan adalah perintah who. Tetapi bila Anda ketikkan !whoa maka yang dijalankan adalah perintah whoami.
    $ !who
  $ !whoa

    Analisa :

9. Anda bisa menggantikant string pada perintah history, terutama pada perintah yang panjang. Misalnya ketik cat /bin/bash | strings | grep 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

Sunday, October 15, 2023

Praktikum 4: Manajemen Proses Linux


PRAKTIKUM 4

MANAJEMEN PROSES LINUX


SISTEM OPERASI

DOSEN PENGAMPU: MUHAMMAD FATHURRAHMAN S.T., M.T.




FACHMA OKTAFIANI

2103421016

BM 5A


PROGRAM STUDI 

BROADBAND MULTIMEDIA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI JAKARTA

2023



TUJUAN BELAJAR:

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:

  1. Memahami konsep proses pada sistem operasi Linux

  2. Menampilkan beberapa cara menampilkan hubungan proses parent dan child

  3. Menampilkan status proses dengan beberapa format berbeda

  4. Melakukan pengontrolan proses pada shell

  5. Memahami penjadwalan prioritas


DASAR TEORI:

KONSEP PROSES PADA SISTEM OPERASI LINUX

Proses adalah program yang sedang dieksekusi. Setiap kali menggunakan utilitas sistem atau program aplikasi dari shell, satu atau lebih proses “child” akan dibuat oleh shell sesuai perintah yang diberikan. Setiap kali instruksi diberikan pada Linux shell, maka kernel akan menciptakan sebuah proses-id. Proses ini disebut juga dengan INIT, kemudian diikuti oleh proses berikutnya (terdaftar pada /etc/inittab).

Beberapa tipe proses:

1. Foreground:

Proses yang diciptakan oleh pemakai langsung pada terminal (interaktif, dialog).


2. Batch:

Proses yang dikumpulkan dan dijalankan secara sekuensial (satu persatu). Proses Batch tidak diasosiasikan (berinteraksi) dengan terminal.


3. Daemon:

Proses yang menunggu permintaan (request) dari proses lainnya dan menjalankan tugas sesuai dengan permintaan tersebut. Bila tidak ada request, maka program ini akan berada dalam kondisi “idle” dan tidak menggunakan waktu hitung CPU. Umumnya nama proses daemon di UNIX berakhiran d, misalnya inetd, named, propd dll.


SINYAL

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

kill [-nomor sinyal] PID

Nomor sinyal : 1s/d maksimum nomor sinyal yang didefinisikan system Standar nomor sinyal yang terpenting adalah


No. Sinyal

Nama

Deskripsi

1

SIGHUP

Hangup, 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

Sinyall terminasi software


MENGIRIM SINYAL

Mengirim sinyal adalah satu alat komunikasi antar proses, yaitu memberitahukan proses yang sedang berjalan bahwa ada sesuatu yang harus dikendalikan. Berdasarkan sinyal yang dikirim ini maka proses dapat bereaksi dan administrator/programmer dapat menentukan reaksi tersebut. Mengirim sinyal menggunakan instruksi 

kill [-nomor sinyal] PID

Sebelum mengirim sinyal PID proses yang akan dikirim harus diketahui terlebih dahulu.


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 lainnya. Bila selesai, dapat kembali (switch) ke editor dan melakukan pengeditan file teks kembali. Job bekerja pada foreground atau background. Pada foreground hanya diperuntukkan 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.


MENGONTROL PROSES LAIN

Perintah ps dapat digunakan untuk menunjukkan 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 ditampilkan secara terurut dari utilitas CPU. Kunci yang berguna pada top adalah

s - set update frequency

u - display proses dari satu user 

k - kill proses (dengan PID)

q - quit

Utilitas untuk melakukan pengontrolan proses dapat ditemukan pada system UNIX adalah perintah killall. Perintah ini akan menghentikan proses sesuai PID atau job number proses.


PERCOBAAN:

PERCOBAAN 1: STATUS PROSES

a. ps


b. ps -u


c. Mencari proses yang spesifik pemakai: ps -u fachma


d. Mencari proses lainnya gunakan opsi a (all) dan au (all user)


PERCOBAAN 2: MENAMPILKAN HUBUNGAN PROSES PARENT DAN CHILD

a. ps -eH


b. ps -e f


c. pstree


pstree | grep mingetty


d. pstree -p


e. pstree -h


PERCOBAAN 3: MENAMPILKAN STATUS PROSES DENGAN BERBAGAI FORMAT

a. ps -e | more


b. ps ax | more


c. ps ef | more


d. ps -eo pid,cmd | more


e. ps -eo pid,ppid,%mem,cmd | more


PERCOBAAN 4: MENGONTROL PROSES PADA SHELL

a. yes

Untuk berhenti mengirim pesan, tekan “ctrl + C”


b. yes > /dev/null


c. yes > /dev/null &


d. jobs


e. kill %<nomor job> 

contoh:


d. jobs

 

PERCOBAAN 5: MENGHENTIKAN DAN MEMULAI KEMBALI JOB

a. yes > /dev/null


b. fg


c. bg dan fg


d. yes &


e. fg %2 atau %2

bg %2


f. ps -fae


g. kill -9 (NomorPID)


PERCOBAAN 6: PERCOBAAN DENGAN PENJADWALAN PRIORITAS

a. membuka 3 terminal, pada screen yang sama

b. Pada setiap terminal, ketik PS1 = ” \w:” diikuti Enter.


c. Buat terminal lagi (keempat), ketik “top” kemudian enter


d. Pada terminal 1, ketik “yes” kemudian enter. 

Untuk memberhentikannya ketik “ctrl + c


e. lakukan hal yang sama pada terminal 2. Tuliskan “renice 19 2385”

 



KESIMPULAN:

Kesimpulan:

Proses dalam konteks sistem operasi adalah eksekusi aktif dari program atau perintah yang sedang

berjalan. Setiap instruksi yang diberikan melalui shell Linux akan menciptakan proses baru dengan

identitas unik yang disebut PID (Process ID). Informasi terkait proses seperti nomor identitas proses,

terminal tempat proses berjalan, waktu yang diperlukan untuk menjalankan perintah, dan perintah itu

sendiri ditampilkan. Terdapat berbagai perintah untuk mengelola proses, dan untuk menghentikan

proses, perintah "kill" dapat digunakan. Proses dapat membentuk hirarki atau pohon, dimana proses

tertentu dapat memiliki proses anak yang berkaitan dengannya. Pemahaman yang baik tentang proses

adalah kunci untuk mengoptimalkan kinerja sistem dan melakukan manajemen yang efektif dalam

sistem operasi.


PRAKTIKUM 10: MANAJEMEN APLIKASI

PRAKTIKUM 10 MANAJEMEN APLIKASI SISTEM OPERASI Dosen Pengampu : Mohammad Fathurahman, S.T.,M.T. Fachma Oktafiani 2103421016 BM-5A Program St...