Friday, October 13, 2023

Pengoperasian Input dan Output pada Linux

Pengoperasian Input dan Output pada Linux


Pokok Bahasan

  • Pipeline
  • Redirection


Tujuan Belajar

Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:

  • Memahami konsep proses I/O dan redirection
  • Memahami standar input, output dan error
  • Menggunakan notasi output, append dan here document
  • Memahami konsep PIPE dan filter

Dasar Teori

Proses I/O

Sebuah proses memerlukan Input dan Output.

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 Identity). Proses dalam Linux selalu membutuhkan Input dan menghasilkan suatu Output.
Dalam konteks Linux input/output adalah:
  • Keyboard (input)
  • Layar (output)
  • Files
  • Struktur data kernel
  • Peralatan I/O lainnya

File Descriptor

Linux berkomunikasi dengan file melalui file descriptor yang direpresentasikan melalui 
angka yang dimulai dari 0, 1, 2 dan seterusnya.
    Tiga buah file descriptor standar yang lalu diciptakan oleh proses adalah :
  • 0 = keyboard (standar input)
  • 1 = layar (standar output)
  • 2 = layar (standar error)
Linux tidak membedakan antara peralatan hardware dan file, Linux memanipulasi peralatan 
hardware sama dengan file.

Pembelokan (Redirection)

Pembelokan dilakukan untuk standard input, output dan error, yaitu untuk mengalihkan file 
descriptor dari 0, 1 dan 2. Simbol untuk pembelokan adalah :
  • 0< atau < pengganti standard input
  • 1> atau > pengganti standard output
  • 2>

Pipa (Pipeline)

Mekanisme pipa digunakan sebagai alat komunikasi antar proses.

    Input > Proses 1 > Output = Input > Proses 2 > Output

Proses 1 menghasilkan output yang selanjutnya digunakan sebagai input oleh Proses 2. 
Hubungan output input ini dinamakan pipa, yang menghubungkan Proses 1 dengan Proses2 
dan dinyatakan dengan symbol “|”.
    Proses1 | Proses2

Filter

Filter adalah utilitas Linux yang dapat memproses standard input (dari keyboard) dan 
menampilkan hasilnya pada standard output (layar). Contoh filter adalah cat, sort, grep, pr, 
head, tail, paste dan lainnya.
Pada sebuah rangkaian pipa:
P1 | P2 | P3 ……. | Pn-1 | Pn

Maka P2 sampai dengan Pn-1 mutlak harus utilitas Linux yang berfungsi sebagai filter. 
P1 (awal) dan Pn (terakhir) boleh tidak filter. Utilitas yang bukan filter misalnya who, ls, ps, 
lp, lpr, mail dan lainnya.

Beberapa perintah Linux yang digunakan untuk proses penyaringan antara lain :
  • Perintah grep
    Digunakan untuk menyaring masukannya dan menampilkan baris-baris yang hanya mengandung pola yang ditentukan. Pola ini disebut regular expression.

  • Perintah wc
    Digunakan untuk menghitung jumlah baris, kata dan karakter dari baris-baris masukan yang diberikan kepadanya. Untuk mengetahui berapa baris gunakan option – l, untuk mengetahui berapa kata, gunakan option –w dan untuk mengetahui berapa karakter, gunakan option –c. Jika salah satu option tidak digunakan, maka tampilannya adalah jumlah baris, jumlah kata dan jumlah karakter.

  • Perintah sort
    Digunakan untuk mengurutkan masukannya berdasarkan urutan nomor ASCII dari karakter.

  • Perintah cut
    Digunakan untuk mengambil kolom tertentu dari baris-baris masukannya, yang ditentukan pada option –c.

  • Perintah uniq
    Digunakan untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, biasanya digabungkan dalam pipeline dengan sort.

Pendahuluan

Redirection adalah pembelokan yang dilakukan untuk standar input, output, dan error dan untuk mengalihkan file descriptor dari 0, 1, dan 2.

Pipeline adalah suatu mekanisme pipa yang digunakan sebagai alat komunikasi antar proses.

Berikut saya tampilkan beberapa command beserta fungsinya.
echo : untuk menampilkan output ke layar.
cat : untuk menghasilkan output ke layar dan merupakan berasal dari input sebuah keyboard.
more : untuk mem-paging halaman.
sort : untuk mengurutkan masukannya berdasarkan urutan nomor ASCII dari karakter.
grep : untuk menyaring masukannya dan menampilkan baris-baris yang hanya mengandung pola yang ditentukan.
wc : untuk menghitung jumlah baris, kata dan karakter dari baris-baris masukan yang diberikan kepadanya.
cut : untuk mengambil kolom tertentu dari baris-baris masukannya, yang ditentukan pada option –c.
uniq : untuk menghilangkan baris-baris berurutan yang mengalami duplikasi, biasanya digabungkan dalam pipeline dengan sort.

Percobaan

File descriptor

$ps
Perintah untuk menampilkan proses yang sedang berjalan pada sistem (kernel) diperlihatkan pada layar atau proses status.

$cat
Perintah untuk menghasilkan output ke layar dan merupakan berasal dari input sebuah keyboard

$mail rifai656.ar@gmail.com
Perintah untuk menulis email dari keyboard pada terminal dan mengrimnya kealamat yang ditentukan.

$mkdir dirmail
Perintah untuk membuat direktori/ folder dari consule terminal dengan nama direktori mydir. Pada percobaan diatas dirktori mydir tidak dapat dibuat karena file exists yang berarti file tersebut sudah dibuat sebelumnya dengan nama yang sama.



Pembelokan (Redirection)


$cat 1> myfile.txt
Digunakan untuk membelokkan standar input kedalam satu file bernama myfile.txt.

$cat 0< myfile.txt
$cat myfile.txt
Digunakan untuk membelokkan standar input, dari keyboard menjadi file.

$mkdir dirmail
$mkdir dirmail 2> myerror.txt$cat myerror.txt
Perintah pembelokan standar output error yang disimpan dalam file. Dan jika membuat sebuah direktori baru dengan nama yang sama maka akan tampil pesan error, dan kemudian akan menyimpan file myerror.txt. $ cat myerror.txt perintah untuk melihat isi dari file myerror.txt


$ls filebaru
$ls filebaru 2> out.txt
$cat out.txt
$ls filebaru 2> out.txt 2>&1
$cat out.txt
Notasi 2>&1 adalah Pembelokan standar error (2>) adalah identik dengan file descriptor 1.


$echo "mencoba menulus file" 1> baru
$cat filebaru 2> baru 1>&2
$cat baru
Pembelokan standar out adalah sama dengan file deskriptor 2 yaitu standar error .$ echo “mencoba menulis file” 1> baru : perintah untuk menginput teks “mencoba menulis file”   yang disimpan dalam file baru

$echo "kata pertama" > surat
$echo "kata kedua" >> surat
$echo "kata ketiga" >> surat
$cat surat
$echo "kata keempat" > surat
$cat surat
notasi >>(append) merupakan penambahan isi dari file tanpa menghapus yang sudah didalamnya.

$cat <<++
$cat <<%%%
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 myfile.txt - surat
Notasi – (input keyboard) adalah representan input dari keyboard. Artinya menampilkan file 1, kemudian menampilkan input dari keyboard dan menampilkan file 2. Perhatikan bahwa notasi “-“ berarti menyelipkan input dari keyboard.

$echo hello
$echo hello > output
$cat output
Untuk membelokkan standart output ke file, digunakan operator > 

$echo bye >> output
$cat output
Untuk menambahkan output ke file digunakan operator >>

$cat < output
Untuk membelokkan standart input digunakan operator < 


$cat < output > out
$cat out
$cat < output >> out
$cat out
$cat < output > output
$cat output
$cat < out >> out
$cat out
$cat < out >> out

Pembelokan standart input dan standart output dapat dikombinasikan tetapi tidak boleh menggunakan nama file yang sama sebagai standart input dan output. 


Pipa (Pipeline)

Operator pipa (|) digunakan untuk membuat eksekusi proses dengan melewati data langsung ke data lainnya.

$who
perintah untuk mengetahui daftar pemakai yang sedang aktif (login). 

$who | sort
perintah yang fungsinya untuk mengurutkan aplikasi yang aktif secara ascending dari yang terkecil ke yang terbesar. 

$who | sort -r
perintah operator pipa yang berfungsi untuk mengurutkan aplikasi yang aktif secara descending dari yang terbesar ke yang terkecil. 

$who > tmp

$sort tmp
$rm tmp
perintah yang digunakan untuk menampilkan isi dari file tmp dan diurut berdasarkan abjad.

$ls -l /etc | more
perintah yang digunakan untuk menampilkan nama direktori etc secara lengkap yang terdiri dari nama file, atau menampilkan isi direktori dengan list yang panjang. 

$ls -l /etc | sort | more
perintah untuk menampilkan nama direktori etc secara lengkap yang terdiri dari nama file, atau menampilkan isi direktori dengan secara berurut dari yang terkecil ke yang terbesar (ascending) dengan list yang panjang.


Filter

Pipa juga digunakan untuk mengkombinasikan utilitas sistem untuk membentuk fungsi yang lebih kompleks.

$w -h | grep rifai(user)
$grep rifai(user) /etc/passwd
$ls /etc | wc
$ls /etc | wc -l
$cat > kelas1.txt
$cat > kelas2.txt
$cat kelas1.txt kelas2.txt | sort
$cat kelas1.txt kelas2.txt > kelas.txt
$cat kelas.txt | sort | uniq



Kesimpulan

Sistem file pada Linux menyerupai tree (pohon) yang dimulai dari root kemudian
direktori dan ada sub direktori.
Pada sistem operasi Linux ini, user dapat mengatur atau memanipulasi struktur file dan direktori yang ada pada sistem sesuai dengan kebutuhan. Terdapat perintah - perintah yang digunakan untuk memindahkan, menghapus atau mengcopy file dari satu direktori ke direktori lain.
User tidak dapat menghapus suatu direktori apabila dalam direktori tersebut terdapat isi.
Terdapat dua sistem symbolic link atau membuat shortcut (file link) yaitu hardlink dan softlink. Hardlink digunakan untuk membuat link pada sebuah file, dan hasil link dari file tersebut sama persis dengan yang aslinya, sedangkan Softlink digunakan untuk membuat link namun dalam bentuk shortcut.

0 comments:

Post a Comment