Bayu Widodo
2021/08/12 (updated: 2021-10-27)
Daftar Isi
2 PIPE 16
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)
$ ls -l operasi.txt
-rw-rw-r-- 1 kimins kimins 7 Mar 12 21:56 operasi.txt
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
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 :
$ 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
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
4
Kegiatan Belajar 8 (Redirection)
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 :
$ 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 :
$ df /dev/sda3
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 3055616 227799 2827817 8% /
$ df -i
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.
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)
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)
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 :
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)
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.
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 :
$date
Sel Nov 10 08:21:57 WIB 2020
#membelokkan ke file
$date > dataTanggal.txt
$cat dataTanggal.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
Analisis:
Perintah di atas akan menciptakan file dengan nama catatan.txt, yang isinya diinputkan melalui
keyboard dan diakhiri dengan ctrl+d
Tugas Lab-6 :
$ mkdir berkas1
$ cd berkas1
$ touch file1.txt file2.txt file3.txt
$ cd ..
$ ls -l
$ ls -l > isiDirektori-berkas1
$ 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
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 :
$ wc
paling mudah untuk memahami
adalah dengan mencoba tidak memahami
ctrl+d
2 9 65
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 :
$ 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.
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 :
$ 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 :
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.
Shell Linux memungkinkan untuk menggabungkan standard error ke standard output dengan opsi
perintah “2>&1”
14
Kegiatan Belajar 8 (Redirection)
Tugas Lab-11 :
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
Tugas Lab-12 :
$ 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 :
15
Kegiatan Belajar 8 (Redirection)
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
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 :
16