Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
2.1 Kebutuhan
CLI adalah antar muka yang tidak menyediakan grafik, baik berupa gambar-
gambar, jendela-jendela ataupun animasi-animasi yang bisa memanjakan pengguna,
melainkan hanya berupa teks yang harus diketikkan oleh pengguna. Pada bagian ini
akan dikenalkan beberapa perintah dasar Linux yang diperlukan dalam kehidupan
sehari-hari, bahkan untuk proses administratif. Materi yang disajikan juga untuk
mendukung kegiatan praktikum pada bab selanjutnya. Materi-materi tersebut meliputi:
Membuat User
Untuk membuat user dan group hanya dapat dilakukan oleh super user “root”.
Perintah untuk membuat user baru adalah :
#useradd nama_user
#adduser nama_user
#passwd nama_user
Menghapus User
#userdel nama_user
Atau
# userdel –r nama_user
Membuat Group
Group adalah gabungan dari beberapa user membentuk suatu kelompok. User-
user yang tergabung dalam satu group dapat saling berbagi file.
#groupadd nama_group
#gpasswd nama_group
#groupdel nama_group
File merupakan koleksi dari data yang disimpan di dalam disk dan dapat
dimanipulasi sebagai suatu unit sesuai dengan namanya. Sedangkan directories atau
direktori adalah sebuah file yang bertindak sebagai folder untuk file lain. Sebuah
direktori juga berisi direktori lain(subdirektori). Sebuah direktori yang berisi direktori
lain disebut direktori parent. Sebuah directory tree termasuk sebuah direktori dan
semua file di dalamnya. Sebuah karakter slash (‘/’) adalah nama dari root directory.
Sebuah file dapat terdiri dari huruf besar dan huruf kecil, nomor, titik (.), tanda
penghubung(-) dan tanda garis bawah (_). Sebuah nama dari file juga mengandung
case sensitive. ‘sisop’ , ‘Sisop’ dan ‘SISOP’ merupakan nama yang berbeda.
Linux juga tidak membatasi dalam ekstensi sebuah file, tapi akan sangat baik
dan berguna jika memberikan ekstensi yang sesuai untuk mengidentifikasi tipe file
dengan sekali lihat. Nama file sebelum ekstensi disebut dengan base file name.
sebagai contoh base file name dari ‘sisop.txt’ adalah sisop.
Membuat File
Syntax :
$ touch sisop
Syntax :
$ touch home/praktikum/sisop
Membuat Direktori
Gunakan perintah ‘mkdir’ untuk membuat sebuah direktori baru, berikan path
name untuk direktori baru sebagai argumen.
Syntax :
$ mkdir sisop
Untuk membuat folder ‘sisop’ di dalam direktori ‘/tmp’ subdirektori dari direktori
tersebut
Syntax :
$ mkdir/tmp/sisop
Berpindah Direktori
Syntax :
$ cd [alamat_direktori]
Contoh : $ cd /var/www
$ cd ..
Syntax :
$ pwd
List Directory
Perintah ini berfungsi untuk menampilkan isi dari suatu direktori beserta atribut
file-nya.
Syntax :
$ ls [option]
OPTION FUNGSI
bila Anda ingin menampilkan semua file dan folder, termasuk file dan
-a folder yang tersembunyi
Contoh : $ ls –l
Copy Berkas
Syntax :
Memindah Berkas
Syntax :
$ mv /etc/file1.txt file2.txt
Menghapus File
Syntax :
$ rm [nama_file]
Contoh : $ rm file1.txt
Menghapus Direktori
Syntax :
$ rmdir [nama_file]
Syntax :
$ rm –rf [nama_direktori]
Syntax :
$ more [nama_file]
Ketika sebuah file atau direktori dibuat, maka file atau direktori tersebut
kepemilikannya akan melekat pada suatu user dan group tertentu. Selain itu pada file
tersebut akan melekat juga tiga hak akses yang berbeda, yaitu baca (read), tulis
(write), dan eksekusi (execute), terhadap pemilik, grup, atau user lain. Hak akses
tersebut dapat diubah oleh root atau user yang memilikinya. Mekanisme kepemilikan
dan akses file tersebut sangat penting, karena Linux bersifat multiuser, sehingga
harus ada mekanisme untuk mencegah akses-akses ilegal terhadap file. Secara
umum pengaturan hak akses atas file atau direktori mempunyai prinsip sebagai
berikut:
Setiap file selalu dimiliki oleh seorang yang berhak mengatur hak akses terhadap
file tersebut.
Hak akses terbagi menjadi 3 bagian: Read, Write, dan Execute.
Hak akses dapat diberikan kepada 3 kelompok pemakai, yaitu pemilik file (Owner),
grup pemilik file (Group), dan pemakai lainnya (Other).
Hak akses
read :r
write :w
execute :x
Kelompok pemakai
Kemudian tanda (+) untuk menandakan pemberian hak akses, sedangkan tanda
(-) untuk menandakan penghapusan hak akses. Perhatikan perintah berikut ini:
Untuk mengubah hak akses sebuah file atau direktori hanya bisa dilakukan oleh
user root. Contoh berikut menunjukkan agar group (g) dan other (o) bisa menulis (w).
Selain menggunakan kombinasi huruf, hak akses file atau direktori dapat dilakukan
dengan kombinasi bilangan numerik, yaitu 0 sampai 7.
Untuk merubah kepemilikan file atau direktori baik user maupun grup gunakan
perintah chown dan chgrp, kepemilikan file ini terkadang perlu dilakukan dengan
alasan keamanan.
Begitu juga nama group pada sebuah file juga dapat kita ubah, untuk
mengubahnya kita bisa menggunakan chgrp.
Contoh :
other
group
user
Format untuk mengubah ijin akses :
Dimana:
u = user (pemilik)
g = group (kelompok)
o = other (lainnya)
a = all
Format lain dari chmod adalah menggunakan bilangan biner sebagai berikut
1 0 1 = 5
r w x
Note : angka 0 diberikan apabila kita tidak memberikan ijin sedangkan angka 1
diberikan apabila diberikan ijin.
Contoh :
Ada file dengan nama file.txt dimana untuk ijin aksesnya owner diberi seluruh
akses, group hanya baca, other tidak ada akses sama sekali. Bagaimanakah format
yang digunakan untuk mengubah ijin akses dari file.txt tersebut?
Jawab :
u =rwx=111 =7
g =rwx=100 =4
o =rwx=000 =0
# Apakah ada cara lain untuk mengganti hak ijin akses file selain dengan
menggunakan mode biner dan alfabet? jika ada jelaskan!
# Buatlah file dengan nama coba1 lalu ubahlah hak ijin aksesnya dengan
$chmod u-x,g+r,o=w coba1. Jelaskan proses perintah tersebut!
Pemilik sebuah file atau direktori dapat diganti menjadi user yang lain yang kita
inginkan. Untuk menggantinya digunakan perintah chown.
Syntax:
Begitu juga nama group pada sebuah file juga dapat kita ubah, untuk
mengubahnya kita bisa menggunakan perintah chgrp.
Syntax:
Kedua pendekatan di atas merupakan dua hal yang berbeda, dimana proses
(child) bisa diciptakan tanpa membuka program baru, dan secara sederhana akan
meneruskan program awal (parent) untuk mengeksekusi perintah yang sama pada
program awal.
Untuk membuat proses baru, bisa dengan mengetikan perintah langsung pada
shell Linux.
Tipe Proses
Terdapat beberapa tipe proses yang dikenal dalam OS berbasis Linux pada
umumnya, antara lain:
Interactive : proses yang dimulai (dan dikontrol oleh) shell. Bisa tampak di
luar (foreground) ataupun hanya di dalam (background).
Daemon : proses yang dimulai ketika Linux booting dan berjalan secara
background. Proses ini menunggu permintaan dari proses lainnya, bila tidak ada
request, maka berada dalam keadaan ‘idle’.
Process Environment
Pada sistem operasi Linux process environment terdiri dari dua komponen,
argumen dan environment. Argumen adalah daftar opsi tambahan pada CLI yang
berkaitan dengan perilaku program ketika dijalankan, sedangkan environment
adalah daftar parameter, baik berupa variabel, direktori home yang secara tekstual
dibutuhkan oleh program. Environment variable biasanya terdiri dari beberapa
informasi seperti:
# Apa perintah yang seharusnya Anda tulis agar menampilkan hasil output
seperti di atas?
# Pada poin ketiga ini, Anda dapat menggunakan perintah seperti di bawah ini :
ps -U root -u root -N
ps -u <user>
# Untuk menjalankan fungsi pada poin lima, Anda dapat menggunakan perintah
seperti di bawah ini :
pstree
Controlling Proses
Dalam sistem operasi Linux semua proses dikontrol oleh shell yaitu sebuah antar
muka antara sistem operasi dengan user.
Sebagai contohnya kita akan mengirim output yang tidak akan pernah selesai.
Dengan menggunakan sintak sebagai berikut :
$yes
Hasil output:
#Bagaimana cara agar perintah $yes tetap dijalankan tetapi shell tetap
digunakan untuk hal yang lain ?
Hasil output:
PERINTAH KILL
Perintah kill adalah salah satu perintah dasar Linux yang digunakan untuk
menghentikan atau mematikan proses yang sedang berjalan pada Sistem Operasi
Linux / UNIX. perintah ini sangat penting karena dengan memahami perintah ini kita
bisa mengetahui mana proses yang mengganggu performa, tidak dibutuhkan, dll.
# PID adalah nomor proses yang akan di hentikan. Tidak tahu PID proses mana
yang akan dihentikan? Cobalah bereksperimen dengan perintah:
Daemons
Daemons adalah sebuah proses yang bekerja pada background karena proses
ini tidak memiliki terminal pengontrol. Dalam sistem operasi Windows biasanya lebih
dikenal dengan sebutan service. Daemon adalah sebuah proses yang didesain
supaya proses tersebut tidak mendapatkan intervensi dari user. Daemon biasanya
bekerja dalam jangka waktu yang sangat lama dan bertugas menerima request dan
menjalankan responsnya.
# Contoh Script :
# Contoh Script:
Untuk mencegah terjadinya intervensi dari user serta untuk pengamanan, maka
standar I/O descriptor dan descriptor yang diwarisi dari proses induk harus ditutup.
Ada 3 jenis standar I/O descriptor : STDIN (standar input), STDOUT (standar output),
STDERR (standar error).
# Contoh Script:
# Contoh Script:
● Running Directory
Directory kerja daemon haruslah sebuah directory yang selalu hidup. Bisa saja
pada saat starting working directory-nya pada saat itu berada pada user home. Karena
daemon bekerja sampai sistem reboot, maka file sistem user directorynya tidak akan
pernah bisa di-unmount.
# Contoh Script :
● Mendengarkan signal
# Tulislah pada kolom di bawah ini, apakah maksud dari proses ini?
● Logging
Shell
Shell merupakan command executive, yaitu program yang menunggu instruksi
atau perintah dari pemakai, memeriksa sintaks dari perintah yang diberikan, dan
kemudian mengeksekusi perintah tersebut
Shell disebut juga dengan command interpreteur language, artinya shell adalah
bahasa yang menerjemahkan perintah yang menjadi penghubung secara langsung
atau antar muka antara user dengan utilitas & bahasa pemrograman dari sistem
operasi itu sendiri. Contohnya pada saat kita mengetikkan perintah “ ls” di terminal,
shell akan menjalankan perintah tersebut dengan mengeksekusi program “ ls” yang
ada pada sistem operasi. Jika kita mengetikkan perintah yang tidak memiliki program
di dalam sistem operasi, misal kita mengetikkan “hello” saja pada terminal, maka shell
tidak akan mengeksekusi program apapun, dan biasanya akan muncul pesan
“command not found”.
1. Macam-macam Shell
Shell sendiri terdiri dari berbagai macam dengan kelebihan dan kekurangan
masing-masing. Untuk melihat langsung shell apa saja yang ada di inux bisa dengan
menggunakan perintah $ls /etc/shells kemudian enter. Berikut adalah beberapa
contoh macam shell yang digunakan pada Linux:
California
(/bin/tcsh)
Korn Shell Bill Joy AT&T Labs Shell ini menggabungkan kelebihan
(/bin/ksh) Bourne Shell dan C Shell sehingga lebih
interaktif.
# Ketikkan perintah "bash" pada terminal Anda, apa yang akan muncul?
Mengapa muncul seperti itu?
/etc/passwd
.................................
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
.................................
Isi dari file tersebut tiap barisnya dibagi menjadi tujuh bagian, dan setiap
terakhir digunakan untuk mendefinisikan shell yang digunakan. Dalam contoh di atas
user root menggunakan shell Bash sedangkan daemon menggunakan shell bourne
shell.
Cara lain yang bisa digunakan untuk melihat shell adalah dengan melihat
environmet user dengan menjalankan perintah env. Environment user merupakan
lingkungan user yang berisi semua variabel atau ketentuan khusus untuk user
tersebut.
$env
...........
SHELL=/bin/bash
..............
● Mengganti Shell
Ada beberapa cara yang dapat digunakan untuk mengubah shell default, yaitu
dengan utilitas userconf, atau dapat juga dengan mengubah pada file /etc/passwd
tersebut tetapi harus sebagai root.
● Menjalankan Shell
Sebuah shell dapat dijalankan tanpa harus mengubah default shell-nya. Cara
yang digunakan adalah dengan memanggil nama shell pada command prompt.
Misalnya, user akan menggunakan shell sh, user tinggal menjalankan shell sh, user
tinggal menjalankan sh sehingga prompt akan berubah sesuai dengan promt Bourne
shell.
Untuk keluar dan kembali ke shell default, ketik exit atau tekan Ctrl + d.
Contoh :
bash@praktikum:~$ sh
$
$ exit
● Menjalankan Script Shell
Untuk menjalankan sebuah script shell, Ada dua cara yang digunakan untuk
menjalankan sebuah shell script, yaitu:
$ echo $PATH
Mengatur PATH di bash, ksh atau csh adalah satu dan sama.
Syntax:
$ PATH=$PATH:folder_baru_yang_mengandung_binari
Contoh : $ PATH=$PATH:/usr/share/java
export PATH=$PATH:/user/share/java
Setelah diset, kita perlu menambahkan perintah source di terminal agar PATH
menjadi tersedia dan dapat digunakan.
Sebuah sistem yang besar dan kompleks seperti sistem operasi modern harus
diatur dengan cara membagi tugas ke dalam beberapa komponen-komponen kecil
agar dapat berfungsi dengan baik dan mudah dimodifikasi. Ada beberapa jenis
struktur pembagian komponen sistem operasi antara lain :
a. Struktur Sederhana
b. Struktur Lapisan
c. Struktur Monolitik
d. Struktur Microkernel
e. Struktur Modular
A. Struktur Sederhana
Ada sejumlah sistem komersial yang tidak memiliki struktur yang cukup baik.
Sistem operasi tersebut sangat kecil, sederhana dan memiliki banyak keterbatasan.
Salah satu contoh sistem tersebut adalah MS-DOS. MS-DOS dirancang oleh orang-
orang yang tidak memikirkan akan kepopuleran software tersebut. Sistem operasi
tersebut terbatas pada perangkat keras sehingga tidak terbagi menjadi modul-modul.
Meskipun MS-DOS mempunyai beberapa struktur, antar muka dan tingkatan
fungsionalitas tidak terpisah secara baik.
B. Struktur Monolitik
C. Struktur Lapisan
Sistem operasi dibagi menjadi sejumlah lapisan yang masing-masing dibangun di
atas lapisan yang lebih rendah. Lapisan yang lebih rendah menyediakan layanan
untuk lapisan yang lebih tinggi. Lapisan yang paling bawah adalah perangkat keras,
dan yang paling tinggi adalah User-Interface.
D. Struktur Microkernel
E. Struktur Modular
Pada struktur modular, kernel hanya menyediakan layanan inti dari sistem operasi
sedangkan layanan lain diimplementasikan secara dinamis ketika kernel sedang
berjalan. Sebagai contoh, layanan inti seperti penjadwalan CPU dan manajemen
memori ditangani langsung oleh kernel, sedangkan layanan-layanan yang lain seperti
dukungan untuk beragam jenis file system dilakukan pada modul-modul yang dapat
dipasang dan dilepas saat kernel utama berjalan. Modul-modul tersebut dikenal
dengan istilah loadable kernel module.
Salah satu contoh sistem operasi yang memakai pendekatan struktur modular
adalah Linux. Salah satu contoh kernel module di Linux adalah modul ath3k, ath9k
yang berfungsi sebagai device driver untuk perangkat wifi dengan chipset Atheros.
Pada bagian selanjutnya, akan disajikan contoh kode kernel module sederhana dalam
bahasa C beserta cara kompilasi dan pemasangannya.
Pada bagian ini akan dijelaskan mengenai tahapan kompilasi dan pemasangan
sebuah kernel module sederhana.
2. Buat file hello.c dengan editor favorit Anda dengan isi sebagai berikut
hello.c
return 0;
module_init(hello_start);
module_exit(hello_end);
Pada kode hello.c tersebut terdapat dua fungsi callback yang dipanggil yaitu
module_init() dan module_exit(). Fungsi callback module_init() akan
dipanggil ketika kernel module dipasang. Selanjutnya, fungsi hello_start()
sebagai parameter dari module_init() akan dieksekusi. Pada hello_start()
dilakukan pencetakan string dengan fungsi printk(). Prosedur yang sama
berlaku untuk fungsi module_exit() yang dipanggil ketika sebuah kernel module
dilepas.
3. Buat sebuah file bernama Makefile di direktori yang sama dengan hello.c.
Makefile berisi informasi source code mana yang akan dikompilasi, lokasi library
yang dibutuhkan dan juga output dari proses kompilasi. Berikut isi Makefile:
Makefile
obj-m = hello.o
all:
clean:
5. Pada direktori tersebut akan muncul file baru yaitu hello.ko. File tersebut adalah
file executable dari kernel module yang kita buat.
7. Cek apakah kernel module berhasil dipasang dengan perintah lsmod. Jika sudah
terpasang dengan benar, maka nama kernel module hello akan ada pada daftar
modul yang terpasang.
8. Cek output dari kernel module setelah dipasang dengan perintah dmesg.
9. Untuk melepas kernel module hello yang sudah terpasang tadi, kita dapat
memakai perintah:
sudo rmmod hello
10. Cek output dari kernel module setelah dilepas dengan perintah dmesg.
Direktori Deskripsi
/
/bin
/dev
/etc
/home
/lib
/proc
/root
/sbin
/tmp
/usr
/var
2 Buatlah file dengan nama coba2.txt lalu ubahlah ijin aksesnya dengan 2 cara yaitu
biner & alfabet, dimana owner ijin hanya read, group hanya execute, dan other
tidak ada akses sama sekali. (Sertakan Screenshot)
4 Buatlah 2 groups dengan nama parent dan children dan buatlah user baru untuk
masing-masing groups lalu susunlah groups dan user tersebut sehingga
pengelompokannya menjadi seperti ini:
Parent Children
Joni Ana
Budi Ani
Sertakan Screenshot!
5. Hapuslah user yang telah kalian buat (min 2) beserta home directory-nya!
6. Buatlah perintah untuk menghitung perkalian aritmatika dengan menggunakan
variabel inputan!
7. Coba buatlah sebuah modul kemudian install dan kemudian remove
2.5 Kesimpulan
1. Jelaskan pengertian dari CLI beserta kelebihan dan kekurangannya!
3. Jelaskan kegunaan shell dan tunjukkan shell apa saja yang ada pada Linux!