Unix / Linux - Redireksi Input/Output Shell

Hai teman-teman, para ahli perintah masa depan! Hari ini, kita akan mengemban perjalanan yang menarik ke dunia redireksi input/output shell Unix/Linux. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan memandu Anda melalui petualangan ini langkah demi langkah, seperti yang telah saya lakukan bagi banyak murid selama tahun-tahun mengajar saya. Jadi, siapkan topi keras virtual Anda, dan mari kita masuk ke dalam!

Unix / Linux - IO Redirections

Memahami dasar-dasar

Sebelum kita masuk ke detailnya, mari kita mulai dengan analogi sederhana. Bayangkan shell seperti seorang asisten yang membantu. Biasanya, asisten ini membaca perintah Anda dari papan ketik (input standar), menampilkan hasil di layar (output standar), dan menampilkan kesalahan di layar juga (kesalahan standar). Tetapi apa kalau kita ingin mengubah perilaku bawaan ini? Itu adalah tempat redireksi I/O berguna!

Redireksi Output

Magic of '>'

Mari kita mulai dengan redireksi output. Simbol '>' adalah tongkat ajaib pertamanya. Itu memungkinkan kita mengirimkan output perintah ke sebuah file bukannya ke layar.

echo "Hello, World!" > greeting.txt

Jika Anda menjalankan perintah ini, tidak akan ada apa-apa yang ditampilkan di layar. Sebaliknya, itu akan menciptakan file 'greeting.txt' yang berisi "Hello, World!". Jika file itu sudah ada, itu akan ditimpa. Hatikan kekuatan ini!

Menambahkan dengan '>>'

Sekarang, apa kalau Anda ingin menambahkan lebih banyak ke file yang sudah ada tanpa menimpa itu? Itu tempat '>>' datang untuk menyelamatkan.

echo "How are you?" >> greeting.txt

Perintah ini menambahkan "How are you?" ke file 'greeting.txt' kita. Jika Anda membuka file sekarang, Anda akan melihat kedua baris.

Redireksi Input

Membaca dari File dengan '<'

Sama seperti kita dapat meredireksi output, kita juga dapat meredireksi input. Simbol '<' memungkinkan kita menggunakan file sebagai input untuk perintah.

sort < names.txt

Perintah ini membaca konten 'names.txt' dan mengurutkannya secara abjad. Itu seperti mengatakan ke perintah 'sort', "Hey, instead of waiting for me to type names, read them from this file!"

Here Document

Magic of '<<'

kadang-kadang, kita ingin mempasskan beberapa baris input ke perintah. Itu tempat 'here document' datang, menggunakan '<<'.

cat << EOF
This is line 1
This is line 2
EOF

Trik ini menarik memungkinkan Anda memasukkan beberapa baris sampai shell menemukan 'EOF' (yang berarti End Of File, tapi Anda dapat menggunakan kata apa pun).

Menghapus Output

The Quiet '/dev/null'

Ada waktu-waktu saat kita menjalankan perintah tapi tidak peduli tentang outputnya. Masuk '/dev/null', lubang digital Unix/Linux.

ls non_existent_file 2> /dev/null

Perintah ini mencoba untuk mencantumkan file yang tidak ada, tapi bukannya menunjukkan kesalahan, itu diam-diam menghapusnya. Itu seperti memiliki tombol "mute" untuk perintah Anda!

Perintah Redireksi

Mari rangkum perintah redireksi yang kita pelajari dalam tabel praktis:

Perintah Deskripsi
> Redirects output to a file (overwrites)
>> Appends output to a file
< Redirects input from a file
<< Here document (multi-line input)
2> Redirects error output
&> Redirects both standard output and error

Contoh Praktis

Sekarang kita telah melihat dasar-dasar, mari kita lihat beberapa contoh praktis untuk mengukuhkan pemahaman kita.

Mengkombinasikan Redireksi Input dan Output

sort < unsorted_names.txt > sorted_names.txt

Perintah ini membaca nama dari 'unsorted_names.txt', mengurutkannya, dan menulis daftar yang diurutkan ke 'sorted_names.txt'. Itu seperti memiliki pengorganisasi pribadi untuk file Anda!

Meredireksi Output dan Kesalahan

ls /home /nonexistent 1> output.txt 2> error.txt

Di sini, kita mencantumkan dua direktori. Output standar (daftar berhasil /home) ditujukan ke 'output.txt', sedangkan kesalahan apa pun (seperti mencoba mencantumkan direktori yang tidak ada) ditujukan ke 'error.txt'.

Menggunakan Here Document untuk Input Script

mysql -u username -p << EOF
USE mydatabase;
SELECT * FROM users;
EXIT
EOF

Contoh ini menggunakan here document untuk menjalankan beberapa perintah MySQL tanpa masuk ke mode interaktif. Itu seperti memberikan daftar tugas ke basis data Anda!

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dunia yang kuat redireksi I/O di Unix/Linux. Ingat, seperti keterampilan apa pun, menguasai konsep ini memerlukan latihan. Jangan takut untuk mencoba - itu adalah bagaimana kita semua belajar!

Dalam tahun-tahun mengajar saya, saya telah melihat murid-murid menjadi ahli perintah dari kesulitan dengan konsep ini. Salah satu murid saya bahkan bergurau bahwa setelah belajar redireksi I/O, dia merasa seperti "file whisperer" - mampu membuat data mengalir ke tempat yang dia inginkan.

Jadi, terus eksplorasi, terus latihan, dan segera Anda akan meredireksi input dan output seperti seorang pro. Siapa tahu? Mungkin Anda akan menjadi "file whisperer" berikutnya dalam perjalanan pemrograman Anda!

Credits: Image by storyset