Anda di halaman 1dari 16

Kegiatan Belajar 8 (Redirection)

Bayu Widodo
2021/08/12 (updated: 2021-10-27)

Daftar Isi

1 Pengalihan Arah (Redirection) 1


1.1 Pengantar Sistem File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Inode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Proses I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 File Deskriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 PIPE 16

1 Pengalihan Arah (Redirection)

1.1 Pengantar Sistem File

Linux dan Unix-like OS mempertahankan konsistensi dengan memperlakukan semuanya


sebagai file (termasuk hardware)
Struktur dasar yang digunakan untuk menyimpan informasi di dalam sistem komputer biasa disebut
file (berkas). Di Linux, suatu file secara internal ditandai dengan sebuah bilangan yang unik.
Bilangan ini disebut sebagai inode. Bagi user mengingat bilangan atau nomor tentunya akan lebih
sulit, maka Linux memberikan alternatif berupa nama untuk setiap file. Nama file ditentukan
sendiri oleh pengguna.
Linux membedakan file dalam tiga kategori utama, yaitu:
1. File biasa (Ordinary File/ Regular File)
2. Direktori
3. File Special

1.1.1 File Biasa

File biasa (regular file, ordinary file) adalah file yang digunakan untuk menyim-pan data, kode
sumber, dokumen, grafik, program objek dan lain lain. Jenis-jenis file biasa dapat dilihat pada
tabel 1.
Jenis file merupakan salah satu atribut file yang cukup penting. Saat mendesain sebuah sistem
file, perlu mempertimbangkan bagaimana sistem operasi akan mengenali file-file dengan jenis yang
berbeda. Dalam listing berkas pada perintah ls -l, normal file memiliki simbol dash (“-”) yang
ditaruh di ujung paling kiri. Sebagai contoh:

1
Kegiatan Belajar 8 (Redirection)

Gambar 1: Kategori File di Linux


File/Berkas

File Biasa Direktori File Spesial

File Teks-txt Block Device


Skrip Shell Character Device
Source Code Named Pipe
Library
objek
Pengolah Kata

$ ls -l operasi.txt
-rw-rw-r-- 1 kimins kimins 7 Mar 12 21:56 operasi.txt

Simbol-simbol tipe file lainya adalah:


Info: Simbol Tipe File:
- : File biasa
d : Direktori
l : Symbolic link
b : Block special file
c : Character special file
s : Socket link
p : Pipe

Tabel 1: Jenis file dan Ekstensi File

Jenis Akhiran Fungsi


executable exe, com, bat, bin program yang siap dijalankan
objek obj obj, o bahasa mesin, kode terkompilasi
source code c, cc, pas, java, asm, pass kode asal dari berbagai bahasa
batch bat bat, sh perintah pada shell
text txt txt, doc data text, document
pengolah kata wpd wp, tex, rtf, doc format jenis pengolah data
library lib lib, a, DLL library untuk rutin program
print, gambar ps, dvi, gif format ASCII atau biner untuk dicetak
archive arc, zip, tar beberapa file yang dikumpulkan
menjadi satu file terkadang dimampatkan
Multimedia mpeg, mov, rm file binary yang berisi informasi
audio atau A/V

Cara yang paling umum untuk mengimplementasikan jenis file (berkas) tersebut adalah dengan
memasukkan jenis file ke dalam nama file. Nama file dibagi menjadi dua bagian. Bagian pertama
adalah nama dari jenis file, dan yang kedua biasa disebut extension adalah jenis dari file tersebut.
Kedua nama ini biasanya dipisahkan dengan tanda ‘.’, contoh: “file.txt”. 1
2

1.1.2 Direktori
Kegiatan Belajar 8 (Redirection)

$ ls -l
drwxrwxr-x 2 kimins kimins 4096 Mar 13 13:31 daftar_mhs_tek_57
$ ls -i
2752718 daftar_mhs_tek_57 // 2752718 adalah inode

Sebuah direktori sebenarnya hanya berisi nama-nama file dan inode. Bilangan inode ini menunjuk
ke suatu inode, yaitu bagian dari sistem file yang berisi informasi: jenis file, ukuran file, lokasi
data, nomor identitas pemilik, nomor grup, tanggal terakhir berkas dimodifikasi, tangga; terakhir
berkas di akses, tanggal terakhir inode dimodifikasi dan jumlah link terhadap file. Pada inode
inilah terdapat pointer yang menunjuk lokasi data yang sesungguhnya. Perintah stat digunakan
untuk mendapatkan informasi ini.
$ stat daftar_mhs_tek_57
File: daftar_mhs_tek_57/
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 804h/2052d Inode: 2752718 Links: 2
Access: (0775/drwxrwxr-x) Uid: ( 1000/ kimins) Gid: ( 1000/ kimins)
Access: 2021-03-13 13:31:59.123322527 +0700
Modify: 2021-03-13 13:31:31.986545930 +0700
Change: 2021-03-13 13:31:54.115179117 +0700

1.1.3 File Spesial (Perangkat File)

File spesial (khusus) adalah file yang umumnya menyatakan suatu device fisik. Namun dapat
juga berupa file-file yang berhubungan dengan komunikasi antar proses. Semua device dalam
linux direpresentasikan dengan file. Baik CDROM, Hardisk, Paralel port, Network Card
dll di representasikan dengan file. File file tersebut disebut dengan special file dan terletak pada
direktori /dev.
Sistem operasi menggunakan file khusus, terkadang disebut file perangkat, untuk memberikan akses
I/O file ke karakter tertentu dan memblokir driver perangkat. File biasa adalah pengelompokan
logis dari data yang direkam pada disk. File khusus, di sisi lain, sesuai dengan entitas perangkat.
File spesial dikategorikan ke dalam 3 kelompok, yakni:
1. File device blok (block device)
2. File device karakter (character device)
3. File pipa (named pipe)
Block device adalah file yang beroperasi berdasarkan blok (sejumlah karakter). Block device me-
nyimpan informasi dan menukarkan (menerima/ mengirim) informasi sebagai blok-blok berukuran
tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat beragam antara 128 byte hing-
ga 1024 byte. Ciri utama block device adalah dimungkinkan membaca/ menulis blok-blok secara
independent, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok
lain. Contohnya : disk, tape, CD ROM, Optical disk.
File devaice karakter adalah file yang beroperasi beradasarkan karakter (karakter demi karakter).
Mengirim atau menerima karakter dan tanpa peduli membentuk suatu struktur blok, not addre-
sable dan tidak mempunyai operasi seek. Contohnya: terminals, line printer, punch card, network
interfaces, pita kertas, mouse.

3
Kegiatan Belajar 8 (Redirection)

Berkas pipa sebenarnya bukan device, melainkan jenis file di Linux yang memungkinkan penyam-
paian informasi antar proses. Salah satu kekuatan dari sistem berkas UNIX adalah mekanisme
Inter-Process Communication (IPC) yang digunakannya. Di antara fasilitas IPC yang disediakan-
nya adalah pipa (pipe). Pipa-pipa tersebut dapat membuat output-output dari satu proses UNIX
menjadi input bagi proses lainnya.
Named Pipe merupakan berkas khusus (special file) yang dapat diletakkan di mana saja dalam
sistem berkas. Berkas ini dapat dibuat dengan menggunakan perintah mkfifo. Dalam listing
berkas pada perintah ls -l, Named Pipe memiliki simbol huruf “P” kecil (“p”) yang ditaruh di
ujung paling kiri.

Tugas Lab-1 :

Info: Informasi Jenis File


Syntax : file [opsi] <nama_file>
Kategori : Utilitas Linux
Hasil : menampilkan jenis file di layar

$ file /etc/passwd
/etc/passwd: ASCII text
$ file /etc/group
/etc/group: ASCII text
$ file -b /etc/group
ASCII text
opsi -b (brief) hanya menampilkan tipe file
$ file *
mengetahui seluruh file di direktori kerja

1.1.4 Sistem File

Seluruh koleksi file di dalam Linux disebut sebagai sistem file. Sistem berkas mempunyai bentuk
seperti pohon terbalik. Puncak dari sistem disebut sebagai root. Root mempunyai cabang-cabang
yang masing-masing disebut direktori. Selanjutnya setiap cabang dapat mempunyai cabang-cabang
yang lain. Contoh sistem file dapat dilihat pada gambar 2

1.2 Inode

Linux dan Unix-like OS mempertahankan konsistensi dengan memperlakukan semuanya sebagai


file (termasuk hardware). Keyboard, mouse, printer, monitor, hard disk, proses, bahkan direktori
diperlakukan sebagai file di Linux.
File biasa berisi data seperti teks, musik, video, dll. Selain isi data, terdapat beberapa data lainnya
atau data selain konten (metadata) seperti ukuran, kepemilikan, izin, waktu modifikasi, dll.
Metadata atau data tentang file tersebut dikelola dengan struktur data yang dikenal sebagai inode
(index node). inode tidak berisi nama file, hanya file metadata.

4
Kegiatan Belajar 8 (Redirection)

Gambar 2: Struktur File di Linux

File dan Direktori pada Linux (secara teknis tidak ada perbedaan nyata di antara mereka) pasti
memiliki inode, jadi bisa dikatakan 1 file/direktori = 1 inode. File dikenali oleh komputer bukan
dari namanya, melainkan oleh nomor inode (nomor-i). Artinya, setiap file atau direktori yang ada
di Sistem Linux mewakili setiap inode.
Sebagai contoh, di direktori home terdapat 1 direktori, 5 File TXT, 6 File Gambar, dan 4 File
Videos. Maka di dalam direltori home tersebut terdapat 16 inode (dihitung dari total files dan
direktori). Misalnya lagi di dalam folder /etc/ ada 250 Files dan 6 direktori yang masing-masing
direktori berisi 15 files, maka total inode di dalam folder /etc/ kita ada 346 (250 Files + 6 direktori
+ 90 Files).
Inode adalah struktur data pada file-system unix yang mendeskripsikan suatu objek
seperti file atau direktori.
File system adalah kumpulan dari inode-inode dengan satu inode pembeda yaitu root.
Inode lainnya diakses mulai dari root inode dan pencarian nama file untuk menuju ke
inode lainnya.
Cara menampilkan inode pada file linux dapat menggunakan ls -i, atau juga dengan perintah stat.
Berikut contohnya:

5
Kegiatan Belajar 8 (Redirection)

Tugas Lab-2 :

Info: Informasi inode dan stat


Syntax : ls -i <nama_file>
Syntax : stat <nama_file>
Kategori : Utilitas Linux
Hasil : menampilkan inode file di layar

$ ls -i 3_review.md
4063312 3_review.md

$ stat 3_review.md
File: 3_review.md
Size: 8398 Blocks: 24 IO Block: 4096 regular file
Device: 808h/2056d Inode: 4063312 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ kimins) Gid: ( 1000/ kimins)
Access: 2021-03-10 19:49:31.301189866 +0700
Modify: 2021-03-05 11:34:15.200633057 +0700
Change: 2021-03-11 19:12:56.806000789 +0700

Lalu apakah inode di Linux memiliki Limit dan bagaimana cara mengeceknya? Banyaknya inode
dalam sebuah sistem linux memiliki limit yang berbeda-beda. Cara mengecek penggunaan inode
dan Limitasi nya menggunakan command berikut:

Tugas Lab-3 :

Info: Informasi inode


Syntax : df [-i] <nama_file>
Kategori : Utilitas Linux
Hasil : menampilkan inode file di layar

$ df /dev/sda3
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 3055616 227799 2827817 8% /

$ df -i

/dev/sda4 3055616 15745 3039871 1% /home


/dev/sda8 9158656 4662 9153994 1% /datas4
/dev/sda7 9158656 222722 8935934 3% /datas3
/dev/sda5 12214272 27 12214245 1% /datas1
/dev/sda9 14983168 33437 14949731 1% /datas5

Analisa:
Dari contoh di atas, total inode yang ada di /dev/sda4 tersebut adalah 3.055.616 dan baru terpakai
15.745. Masih ada sisa free sekitar 91% atau 3.039.871 inodes. Jika inode nya penuh tapi disk

6
Kegiatan Belajar 8 (Redirection)

space masih kosong, sistem Linux akan tetap mendeteksi bahwa disk space penuh. Jadi inode ini
berpengaruh juga terhadap system linux meskipun jarang sekali kejadian inode nya penuh hingga
100%.
Jika inode sistem linux penuh, satu-satu nya jalan adalah menghapus file-file atau direktori yang
tidak terpakai. Biasanya file-file yang dapat dihapus yaitu file-file logs, cache, atau pun data-data
lama kita yang sudah tidak terpakai.

1.3 Proses I/O

Apa yang kita ketik di terminal keyboard termasuk input, dan yang keluar dari terminal
namanya output Input tidak harus dari terminal keyboard, begitu juga output tidak harus
ke terminal layar. Input dan output bisa berupa file.
Instruksi (command) yang diberikan pada Linux melalui shell disebut juga sebagai eksekusi pro-
gram yang selanjutnya disebut proses. Setiap instruksi yang diberikan maka Linux kernel akan
menciptakan sebuah proses dengan memberikan nomor PID (process indentity). Proses dalam
Linux selalu membutuhkan input dan menghasilkan output.
1. Proses adalah program yang sedang dieksekusi. Instruksi atau command yang diberikan pada
linux melalui Shell disebut sebagai eksekusi
2. Setiap kali instruksi diberikan, maka Linux kernel akan menciptakan sebuah proses dengan
memberikan nomor PID (Process Identity).
3. Proses dalam Linux selalu membutuhkan Input dan menghasilkan suatu Output.
Linux punya special device untuk I/O yaitu standard input atau stdin standard output
disebut stdout, dan standard error stderr. Apa yang diketik di terminal termasuk input, dan
yang keluar dari terminal disebut output. Input tidak harus ada di terminal, begitu juga output
tidak harus ditampilkan di layar. Input dan output bisa berupa file.
Sebagai contoh ketika mengetikkan perintah di terminal:
$ cat /etc/passwd

“cat” adalah perintah (programmnya) dan file “/etc/passwd” adalah filenya. Ketika menekan tom-
bol “Enter” outputnya ditampilkan di layar.
Input ke program dan output dari program di Linux dikenal sebagai stream (aliran). Input
biasanya berasal dari keyboard dan outputnya masuk ke layar. Linux shell menggunakan 3 standard
stream, yaitu:
Info: Standard Stream:
stdin
: Biasanya input dari keyboard
stdout
: Menampilkan keluaran dari perintah, biasanya ke terminal
stderr
: menampilkan keluaran kesalahan dari perintah
Biasanya dikirim ke keluaran yang sama dengan keluaran standar,
tetapi dapat dialihkan

Jadi jenis input di Linux ada dua, file dan terminal (stdin). Sedangkan jenis output ada tiga, yakni:
file, output di terminal (stdout), dan output terminal kalau error (stderr).

7
Kegiatan Belajar 8 (Redirection)

Gambar 3: stdr input, output dan error

1.4 File Deskriptor

File descriptor adalah sebuah abstraksi yang digunakan dalam pengaksesan file. Di dalam Linux, fi-
le descriptor ini dilambangkan dalam sebuah integer. Untuk setiap proses, terdapat 3 file descriptor
yang telah dimiliki, yaitu:
1. 0 = keyboard (standar input)
2. 1 = layar (standar output)
3. 2 = layar (standar error)

Gambar 4: File Deskriptor Input, Ouput dan Error

File descriptor ini merupakan index pada tabel yang dimiliki kernel untuk menunjukkan file yang
dibuka pada proses-proses yang berjalan. Untuk melihat apa saja file-file yang dibuka oleh kernel,
dapat digunakan command lsof. Selain itu juga dapat dilihat pada procfs (/proc/), sebuah file sys-
tem khusus yang menyimpan seluruh informasi mengenai proses-proses yang berjalan pada sistem
operasi.
$ lsof
$ lsof -u peserta1
$ lsof -i

Penjelasan:
1. Perintah diatas adalah untuk melihat seluruh file yang terbuka berdasarkan proses aktif yang
berjalan di sistem.
2. FD sendiri adalah singkatan dari File descriptor. Beberapa value dari FD: r mewakili read,
w mewakili write, dan u (universal) mewakili read and write.

8
Kegiatan Belajar 8 (Redirection)

3. kolom Type, beberapa value yang tersedia: REG - Regular file, DIR - Directory, CHR -
Character special file, FIFO - First in first out
4. Perintah lsof -u untuk melihat daftar open file dari user tertentu
5. Perintah lsof -i Untuk melihat koneksi jaringan

1.5 Redirection

Pengalihan arah (Redirection) adalah fasilitas shell yang memungkinkan hasil (output) suatu per-
intah yang normalnya ke layar dipindahkan ke disk (menjadi sebuah file) atau masukan (input)
yang normalnya berasal dari keyboard dialihkan ke file. Linux punya special device untuk I/O,
yaitu standard input atau stdin, standard ouput disebut stdout, dan standard error atau stderr.
1. Shell mengambil input dari stdin (stream0) dan mengirimkan output ke stdout (stream 1)
dan pesan error ke stderr (stream 2)
2. Keyboard berfungsi sebagai stdin.Display (monitor) berfungsi sebagai stdout dan stderr
Secara umum ada tiga jenis pengalihan arah, yaitu:
1. Pengalihan arah keluaran (output redirection).
2. Pengalihan arah masukan (input redirection).
3. Pengalihan arah pesan kesalahan (error redirection).
Pembelokan dilakukan untuk standard input, proses, output dan error, yaitu untuk mengalihkan
file descriptor dari 0,1,2. Simbol pembelokan yang digunakan adalah:
1. 0< atau < Pengganti Standar Input
2. 1> atau > Pengganti Standar Output
3. 2> Standar Error

Tugas Lab-4 :

Info: Contoh Redirection Output


Hasil : Membelokkan std output ke file

$ cat > redirektion1.txt


saya mahasiswa Vokasi IPB
#akhir dengan ctrl+d
$ ls -l redirektion1.txt
-rw-rw-r-- 1 sikimin sikimin 27 Nov 10 06:58 redirektion1.txt
$ wc redirektion1.txt
1 3 27 redirektion1.txt
$ ls -l redirektion1.txt salah.txt
ls: cannot access 'salah.txt': No such file or directory
-rw-rw-r-- 1 sikimin sikimin 27 Nov 10 06:58 redirektion1.txt

1. penulisan text “saya mahasiswa Vokasi IPB” melalui keyboard adalah stdin
2. hasil perintah dari “wc redirection1.txt” : 1 3 27 redirektion1.txt yg ditampilkan di layar
adalah stdout
3. ls: cannot access ‘salah.txt’: No such file or directory adalah tampilan di layar sbg stderr

9
Kegiatan Belajar 8 (Redirection)

1.5.1 Pengalihan Arah Keluaran

Keluaran dari perintah Linux biasanya ke device yang disebut standard output dan normalnya ber-
upa layar. Sebagai contoh saat mengetikkan perintah date di konsole, hasilnya akan ditampilkan
di layar atau ke standard output.
$ date
Jum Mar 12 21:18:41 WIB 2021

Hasil tersbut dapat diarahkan (dibelokkan) ke file, sehingga akan terbentuk berkas baru yang
isinya hasil dari perintah date. Pengalihan (Pembelokan) disebut Pengalihan keluaran (output
redirection). Pengalihan arah keluaran dilakukan dengan menggunakan simbol > dan simbol »
atau 1>.
1. perintah > file
2. perintah » file
Kedua simbol di atas mempunyai makna yang berbeda.

Tabel 2: Perbedaan Simbol > dan »

perintah Keterangan
cat file1 > file2 file2 akan berisi (persis sama) dengan file1
cat file1 » file2 isi file2 akan di append dengan isi file1
cat f1 f2 f3 f4 > f5 isi f5 gabungan dari isi f1 f2 f3 f4
ls -l dataLatihan > data file data di create dan
isi file keluaran perintah ls -l

Tugas Lab-5 :

Info: Redirection Output


Hasil : Membelokkan std output ke file

$date
Sel Nov 10 08:21:57 WIB 2020
#membelokkan ke file
$date > dataTanggal.txt
$cat dataTanggal.txt

$cat /etc/passwd # output ke layar


$cat /etc/passwd > daftarUser.txt #redirect output
$cat daftarUser.txt

#ouput ke layar
$cat /etc/passwd | grep "nobody"
#redirect ouput
$cat /etc/passwd | grep "nobody" > daftarUser.txt

10
Kegiatan Belajar 8 (Redirection)

$cat daftarUser.txt

$ pwd
$ echo "Hallo mahasiswa IPB"
$ echo "Hallo mahasiswa IPB" > belokan.txt
$ echo "saat ini sedang kuliah apa...?" >> belokan.txt
$ ls
$ cat > belokan.txt
enter dan enter
ctrl+d
$ cat belokan.txt

$ cat 1> catatan.txt


ini adalah catatan per sesi
tugas matakuliah sistem oprtasi
ctrl+d
$ cat catatan.txt

Analisis:
Perintah di atas akan menciptakan file dengan nama catatan.txt, yang isinya diinputkan melalui
keyboard dan diakhiri dengan ctrl+d

Tugas Lab-6 :

Info: Contoh Redirection Output


Hasil : Membelokkan std output ke file

$ mkdir berkas1
$ cd berkas1
$ touch file1.txt file2.txt file3.txt
$ cd ..
$ ls -l
$ ls -l > isiDirektori-berkas1

$ cat 1> catatan.txt


ini adalah catatan per sesi
tugas matakuliah sistem operasi
ctrl+d
$ cat catatan.txt

$ mkdir berkas1
$ cd berkas1
$ touch file1.txt file2.txt file3.txt
$ cd ..
$ ls -l
$ ls -l > isiDirektori-berkas1

11
Kegiatan Belajar 8 (Redirection)

$ date
$ date > fileKeluaranDate.txt
$ date >> isiDirektori_berkas1

$cat > laguSatu


The Greatest of all
Penyanyi : George Benson
^D
$cat > laguDua
Kaulah Segalanya
Penyanyi: Ruth Sahanaya
^D

$cat laguSatu > laguDua


$cat laguDua > lagu.cat
$cat laguSatu >> lagu.cat

1.5.2 Pengalihan Arah Masukan

Pengalihan arah yang dikenakan terhadap standard input (stdin) biasa disebut pengalihan arah
masukan (input redirection). Perintah yang berjalan dengan standard input biasanya menerima
input dari keyboard
Syntax pengalihan arah masukan dapat berupa:
1. perintah < file atau
2. perintah 0< file

Tugas Lab-7 :

Info: Redirection Input


Hasil : Membelokkan std input dari file

$ wc
paling mudah untuk memahami
adalah dengan mencoba tidak memahami
ctrl+d
2 9 65

$ cat > motivasi.txt


Paling mudah untuk memahami
adalah dengan tidak memahami
ctrl+d
$ wc < motivasi.txt
2 8 57
$wc 0< motivasi.txt

12
Kegiatan Belajar 8 (Redirection)

Penjelasan:
1. Pemakaian “wc” yang membaca data dari standard input. Hasil di atas menunjukkan bahwa
ada 2 baris data dengan 9 kata dan jumlah karakter 65
2. Pemakaian “wc” untuk menghitung elemen file bernama mmotivasi.txt. Hasil di atas menya-
takan bahwa file denagn nama motivasi.txt terdiri dari 2 baris, 8 kata dan 57 karakter.
$ bc
325+12
337
CTRL+D

bc adalah program untuk melakukan perhitungan aritmetika, yang membaca data dari standard
input.
User dapat mengatur agar perintah bc tidak membaca (menerima inputan) dari keyboard, mela-
inkan membaca data dari file. perhatikan contoh berikut:

Tugas Lab-8 :

Info: Redirection Input


Hasil : Membelokkan std input dari file

$ cat operasi.txt
230+30
CTRL+D
$ bc < operasi.txt
260

Tampak bahwa, bc memproses data yang berasal dari file bukan dari keyboard sebagaimana nor-
malmya.

1.5.3 Pengalihan Error

Pada kebanyakan perintah Linux, jika terdapat kesalahan, pesan kesalahan tersebut akan ditam-
pilkan di layar monitor. Apakah pesan kesalahan tersebut dikirimkan ke standard output?
Jawabnya adalah tidak. Pesan kesalahan sebenarnya dikirimkan ke suatu piranti yang disebut
standard error berupa layar. Hampir tidak menyadari bahwa sebenarnya pesan kesalahan dan
keluaran perintah menggunakan peranti yang berbeda.
Seperti halnya standard output, standard error juga dapat dialihkan ke piranti lain. Pengalihan
standard error seperti ini biasa disebut pengalihan pesan kesalahan (error redirection).

13
Kegiatan Belajar 8 (Redirection)

Tugas Lab-9 :

Info: Redirection error


Hasil : Membelokkan stderr ke file

$ ls -l /etc/passwd none
cannot access 'none': No such file or directory
-rw-r--r-- 1 root root 2559 Sep 13 10:42 /etc/passwd

Analisa:
Perhatikan bahwa file hasil berisi /etc/passwd dan pesan kesalahan yang menyatakan berkas none
tidak ada dan tetap ditampilkan ke layar.
$ ls -l /etc/passwd none > keluaran.txt
cannot access 'none': No such file or directory
keluaran.txt

Analisa:
Perhatikan bahwa hasil output perintah ls dibelokkan ke file bernama keluaran.txt. Sedangkan
pesan kesalahan yang menyatakan file “none” tidak ada dan tetap ditampilkan ke layar. Artinya
standar output dan standard error merupakan device yang berbeda walupun sama sama ditampilk-
an di layar.
Bagaimana membelokkan pesan kealahan?

Tugas Lab-10 :

Info: Redirection error


Hasil : Membelokkan stderr ke file

$ ls -l /etc/passwd none > keluaran.txt 2> pesansalah.txt


$ls
keluaran.txt pesansalah.txt
$ cat keluaran.txt pesansalah.txt
-rw-r--r-- 1 root root 2559 Sep 13 10:42 /etc/passwd
ls: cannot access 'none': No such file or directory

Analisa:
Tampak bahwa file keluaran.txt berisi keluaran dari perintah “ls” dan file pesan kesalahan.txt
berisi pesan kesalahan dari perintah “ls”. Angka 2 didepan simbol “>” adalah kode deskriptor dari
standard error.

1.5.4 Menggabung stderr dengan stdout

Shell Linux memungkinkan untuk menggabungkan standard error ke standard output dengan opsi
perintah “2>&1”

14
Kegiatan Belajar 8 (Redirection)

Tugas Lab-11 :

Info: Redirection error


Hasil : Gabungan std ouput dan stderr

$ ls -l /etc/passwd none > pesansalah2.txt 2>&1


$ cat pesansalah2.txt
ls: cannot access 'none': No such file or directory
-rw-r--r-- 1 root root 2559 Sep 13 10:42 /etc/passwd

Analisa Standard error digabungkan ke standard ouput(dinyatakan dengan 2>&1) dan diarahkan
ke file bernama “pesansalah2.txt”

1.5.5 /dev/null

/dev/null adalah file khusus berguna untuk mengarahkan output yang tidak ditampilkan di layar.
/dev/null ibarat perangkat nol yang mengambil input apapun dan membuangnya. Ibarat lubang
hitam yang dapat dimasukkan apa saja, tetapi tidak akan bisa mendapatkannya kembali.
/dev/null adalah perangakat Linux standar tempat mengirim keluaran yang ingin diabaikan. Syn-
tax /dev/null adalah:
$command > /dev/null

Jika ingin melindungi stdout dan stderr, syntaxnya adalah:


$ command > /dev/null 2>&1

Tugas Lab-12 :

Info: Membelokkan ke /dev/null


Hasil : Membelokkan ke /dev/null

$ cat /etc/group
$ cat /etc/group >/dev/null
$ ls -l /etc/passwd none > pesansalah2.txt 2>&1
$ cat pesansalah2.txt
ls: cannot access 'none': No such file or directory
-rw-r--r-- 1 root root 2559 Sep 13 10:42 /etc/passwd
$ ls -l /etc/passwd none > /dev/null 2>&1

Tugas Lab-12 :

Apa maksud dari baris-baris berikut:


1. cat winter.txt > snow.txt 2> errors.txt
2. 2> errors.txt cat winter.txt > snow.txt

15
Kegiatan Belajar 8 (Redirection)

3. < winter.txt > snow.txt 2> errors.txt cat

2 PIPE

Ada fitur menarik di Unix dan Linux, output dari satu program bisa dijadikan input program
lain, caranya dengan memakai pipe. Disebut pipe mungkin karena cara kerjanya seperti pipa,
menghubungkan output dan input. Pipe dilambangkan dengan karakter “|”. Sebagai contoh:
$ ls /etc > etcfiles.txt
$ tail -4 etcfiles.txt

Dapat disingkat dengan perintah:


$ ls /etc | tail -4

1. Maksud dari command di atas, ls /etc/ untuk print isi direktori /etc bukan ke terminal tapi
dibelokkan (disimpan) ke sebuah file dengan nama etcfiles.txt, sedangkan perintah tail -4
untuk memfilter atau menampilkan 4 baris terakhir.
2. Ouput dari ls /etc tidak diprint ke terminal tapi diarahkan ke pipe. Pipe ini kemudian
mengambil output dari perintah pertama dan menjadikannya input untuk perintah ke dua
tail -4.

Tugas Lab-13 :

Jelaskan arti perintah berikut:


$ cat /etc/passwd > file_list.txt
$ cat /etc/group >> file_list.txt
$ sort < file_list.txt
$ sort < file_list.txt > sorted_file_list.txt
$ cd /etc
$ ls -l | less
$ ls -lt | head

16

Anda mungkin juga menyukai