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!
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