Pokok
Bahasan
Pipeline
Redirection
Tujuan
Praktikum
Setelah
mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami konsep proses I/) dan redirection
Memahami standar input, output dan error
Menggunakan notasi output, append dan here document
Memahami konsep pipe dan filter
Dasar
Teori
1.
Proses I/O
Sebuah
proses memerlukan input dan output.
Modul
Praktikum Sistem Operasi
Instruksi
(command) yang diberikan pada Linux melalui shell disebut sebagai
‘eksekusi program’ yang
selanjutnya
disebut ‘proses’. Setiap kali instruksi diberikan, maka Linux kernel akan
menciptakan
sebuah
proses dengan memberikan nomor PID (process ID). Proses dalam Linux
selalu
membutuhkan
input dan menghasilkan suatu output.
Dalam
konteks Linux, yang termasuk input dan/atau output antara lain:
Keyboard (input)
Layar monitor (output)
File (input/output)
Struktur data kernel
Peralatan I/O lainnya, misalnya network.
2. File
Descriptor
Linux
berkomunikasi dengan file melalui file descriptor yang diwakili oleh
angka yang dimulai dari 0,
1,
2 dan seterusnya.
INPUT
PROSES
OUTPUT
Tiga
buah file descriptor standar yang diciptakan oleh proses adalah:
0
Keyboard (standar input)
1
Layar monitor (standar output)
2
Layar monitor (standar error)
Modul
Praktikum Sistem Operasi
Linux
tidak membedakan antara peralatan hardware (device) dan file. Linux
memanipulasi peralatan
hardware
sama dengan file.
3.
Pembelokan (Redirection)
Pembelokan
dilakukan untuk mengalihkan standar input, standar output dan standar error ke
penggantinya.
Simbol untuk pembelokan adalah:
0< atau
< pengganti standar input
1> atau
> pengganti standar output
2> pengganti standar error
4. Pipa
(Pipeline)
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 antara proses 1 dengan proses 2 dan dinyatakan
menggunakan
simbol
“|”.
Proses 1 | Proses2
5.
Penyaring (Filter)
Penyaring
atau filter adalah utilitas Linux yang dapat memproses standar input
(keyboard) dan
menampilkan
hasilnya pada standar output (layar). Contoh filter adalah cat, sort,
grep,
pr, head, tail, paste dan lainnya.
Pada
sebuah rangkaian pipa
P1 | P2 | P3 | … |P
n-1
| P
maka
P2 sampai Pn-1 mutlak harus utilitas Linux yang berfungsi sebagai filter.
P1 (awal) dan Pn
n
(terakhir)
boleh bukan filter. Utilitas yang bukan filter misalnya who, ls,
ps, lp, lpr,
mail dan lainnya.
INPUT
(keyboard)
PROSES
1
OUTPUT
(layar
monitor)
0
2
Modul
Praktikum Sistem Operasi
Beberapa
perintah Linux yang digunakan untuk proses penyaringan adalah sebagai berikut.
grep
digunakan
untuk menyaring masukannya dan menampilkan baris-baris yang hanya
mengandung
pola yang ditentukan. Pola ini menggunakan aturan yang disebut regular
expression.
wc
digunakan
untuk menghitung jumlah baris, kata dan karakter dari masukannya. Untuk
mengetahui
jumlah baris digunakan option –l, untuk mengetahui jumlah
kata digunakan
option
–w dan untuk mengetahui jumlah
karakter digunakan option –c. Jika option tidak
digunakan
maka jumlah baris, kata, dan karakter akan ditampilkan semuanya.
sort
digunakan
untuk mengurutkan baris-baris masukan berdasarkan nomor urut kode ASCII dari
karakter.
cut
digunakan
untuk mengambil kolom tertentu dari baris-baris masukan yang ditentukan
melalui
option –c.
uniq
digunakan
untuk menghilangkan baris-baris masukan yang mengalami duplikasi, biasanya
perintah
ini digunakan bersama dengan perintah pipeline dan sort.
Tugas
Pendahuluan
Jawablah
pertanyaan-pertanyaan di bawah ini.
1. Apa yang dimaksud dengan redirection?
2. Apa yang dimaksud dengan pipeline?
3. Apa fungsi perintah-perintah berikut ini:
echo, cat, more, sort, grep,
wc, out, uniq
Percobaan
Petunjuk
umum:
1. Login sebagai user
Modul
Praktikum Sistem Operasi
2. Bukalah console terminal dan lakukan percobaan-percobaan
di bawah ini. Perhatikan hasil
setiap
percobaan.
3. Selesaikan soal-soal latihan.
Percobaan
1 : File decriptor
1. Output ke layar (standar output), input dari sistem (kernel)
$ ps
2. Output ke layar (standar output), input dari keyboard
(standar output)
$ cat
Halo, apa kabar?
<Ctrl+D>
keluar dari perintah dengan menekan tombol Ctrl dan tombol D bersamaan.
3. Input nama direktori, output tidak ada (membuat direktori
baru), bila terjadi error maka
tampil
pesan error pada layar (standar error)
$ mkdir mydir
$ mkdir mydir ( terdapat pesan error)
Percobaan
2 : Pembelokan (redirection)
1. Pembelokan standar output
$ cat 1> myfile.txt
Ini adalah teks yang saya
simpan
Ke file myfile.txt
2. Pembelokan standar input, yaitu input dibelokkan dari
keyboard menjadi dari file
$ cat 0< myfile.txt
$ cat myfile.txt
3. Pembelokan standar error untuk disimpan ke file
$ mkdir mydir ( terdapat pesan error)
$ mkdir mydir 2>
myerror.txt
$ cat myerror.txt
4. Notasi 2>&1 :
pembelokan standar error (2>) adalah identik dengan file
descriptor 1
$ ls filebaru ( terdapat pesan error)
$ ls filebaru 2> out.txt
$ cat out.txt
$ ls filebaru 2> out.txt
2>&1
$ cat out.txt
Modul
Praktikum Sistem Operasi
5. Notasi 1>&2 (atau
>&2) : pembelokan standar output
adalah sama dengan file descriptor
2,
yaitu standar error.
$ echo “mencoba menulis
file” 1> baru
$ cat filebaru 2> baru
1>&2
$ cat baru
6. Notasi >> (append)
$ echo “kata pertama” >
surat
$ echo “kata kedua”
>> surat
$ echo “kata ketiga”
>> surat
$ cat surat
$ echo “kata keempat” >
surat
$ cat surat
7. Notasi here document (<<++ … ++) digunakan sebagai pembatas
input dari keyboard.
Perhatikan
bahwa tanda pembatas dapat digantikan dengan tanda apa saja namun harus
sama
dan tanda penutup harus diberikan pada awal baris.
$ cat <<++
Halo, apa kabar?
Baik-baik saja?
Ok!
++
$ cat <<%%%
Halo, apa kabar?
Baik-baik saja?
Ok!
%%%
8. Notasi – (input keyboard) adalah
representasi input dari keyboard. Artinya, file 1
ditampilkan
lebih dulu kemudian menampilkan input dari keyboard dan menampilkan file 2.
Perhatikan
bahwa notasi - berarti menyelipkan input
dari keyboard.
$ cat myfile.txt – surat
9. Untuk membelokkan standar output ke file digunakan
operator >
$ echo hello
$ echo hello > output
$ cat output
10. Untuk menambahkan output ke file digunakan operator >>
$ echo bye >> output
$ cat output
11. Untuk membelokkan standar input digunakan operator <
$ cat < output
Modul
Praktikum Sistem Operasi
12. Pembelokan standar input dan standar output dapat
dikombinasikan tetapi tidak boleh
menggunakan
nama file yang sama sebagai standar input dan output.
$ cat < output > out
$ cat out
$ cat < output >>
out
$ cat out
$ cat < output >
output
$ cat output
$ cat < out >> out
( proses tidak berhasil)
<Ctrl+C> ( tekan tombol Ctrl dan tombol C bersamaan)
$ cat out
Percobaan
3 : Pipa (pipeline) dan Penyaring (filter)
1. Operator pipa (|) digunakan untuk membuat hasil eksekusi
proses menjadi input dari proses
lainnya,
yang umumnya adalah proses penyaringan.
$ who
$ who | sort
$ who | sort –r
$ who > tmp
$ sort tmp
$ rm tmp
$ ls –l /etc | more
$ ls –l /etc | sort | more
2. Pipa juga digunakan untuk mengkombinasikan utilitas sistem
untuk membentuk fungsi yang
lebih
kompleks
$ w –h | grep <user>
$ grep <user>
/etc/passwd
$ ls /etc | wc
$ ls /etc | wc –l
$ cat > kelas1.txt
Badu
Zulkifli
Diana
Yudi
Ade
<Ctrl+D>
$ cat > kelas2.txt
Budi
Gina
Asep
Muchlis
<Ctrl+D>
$ cat kelas1.txt kelas2.txt
| sort
$ cat kelas1.txt kelas2.txt
> kelas.txt
$ cat kelas.txt | sort |
uniq
Komentar
Posting Komentar