Unix / Linux - Redireksi Input/Output Shell
Hai sana, para ahli perintah masa depan! Hari ini, kita akan melangkah ke dunia yang menarik 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 saya lakukan bagi banyak murid selama tahun-tahun mengajar saya. Jadi, sandarkan topi keras maya Anda, dan mari kita masuk ke dalam!
Memahami Dasar-dasar
Sebelum kita melompat ke hal yang rumit, mari kita mulai dengan analogi sederhana. Bayangkan shell sebagai 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 bila kita ingin mengubah perilaku default ini? Itu di mana redireksi I/O berguna!
Redireksi Output
Keajaiban '>'
Mari kita mulai dengan redireksi output. Simbol '>' adalah tongkat ajaib pertamanya. Itu memungkinkan kita mengirimkan output perintah ke sebuah berkas instead of layar.
echo "Hello, World!" > greeting.txt
Jika Anda menjalankan perintah ini, itu tidak akan menunjukkan apa-apa di layar. Sebaliknya, itu menciptakan berkas 'greeting.txt' yang berisi "Hello, World!". Jika berkas ini sudah ada, itu akan ditimpa. Hatikan kekuatan ini!
Menambahkan dengan '>>'
Sekarang, apa bila Anda ingin menambahkan lebih banyak ke berkas yang sudah ada tanpa menimpanya? Itu di mana '>>' datang untuk menyelamatkan.
echo "How are you?" >> greeting.txt
Perintah ini menambahkan "How are you?" ke berkas 'greeting.txt' kita. Jika Anda membuka berkas ini sekarang, Anda akan melihat kedua baris.
Redireksi Input
Membaca dari Berkas dengan '<'
Seperti yang kita lakukan dengan output, kita juga dapat mengarahkan input. Simbol '<' memungkinkan kita menggunakan berkas 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!"
Dokumen Disini
Keajaiban '<<'
kadang-kadang, kita ingin mengirimkan beberapa baris input ke perintah. Itu di mana 'here document' datang, menggunakan '<<'.
cat << EOF
This is line 1
This is line 2
EOF
Trik ini menarik memungkinkan Anda menginputkan beberapa baris sampai shell menemukan 'EOF' (yang berarti End Of File, tetapi Anda dapat menggunakan kata apa pun).
Mengabaikan Output
'/dev/null' yang Tenang
Ada waktu kita menjalankan perintah tetapi tidak peduli tentang outputnya. Masukkan '/dev/null', lubang digital Unix/Linux.
ls non_existent_file 2> /dev/null
Perintah ini mencoba untuk mencantumkan berkas yang tidak ada, tetapi instead of menunjukkan kesalahan, itu diam-diam mengabaikannya. Itu seperti memiliki tombol "mute" untuk perintah Anda!
Perintah Redireksi
Mari rangkum perintah redireksi yang kita pelajari dalam tabel yang mudah digunakan:
Perintah | Deskripsi |
---|---|
> | Mengarahkan output ke berkas (menimpa) |
>> | Menambahkan output ke berkas |
< | Mengarahkan input dari berkas |
<< | Dokumen disini (input multi-baris) |
2> | Mengarahkan output kesalahan |
&> | Mengarahkan output standar dan kesalahan |
Contoh Praktis
Sekarang kita telah menutupi 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 berkas Anda!
Mengarahkan Output dan Kesalahan
ls /home /nonexistent 1> output.txt 2> error.txt
Di sini, kita mencantumkan dua direktori. Output standar (daftar yang sukses /home) diarahkan ke 'output.txt', sedangkan setiap kesalahan (seperti mencoba mencantumkan direktori yang tidak ada) diarahkan ke 'error.txt'.
Menggunakan Dokumen Disini untuk Input Skrip
mysql -u username -p << EOF
USE mydatabase;
SELECT * FROM users;
EXIT
EOF
Contoh ini menggunakan dokumen disini untuk menjalankan beberapa perintah MySQL tanpa masuk ke mode interaktif. Itu seperti memberikan daftar tugas kepada basis data Anda!
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia yang kuat redireksi I/O di Unix/Linux. Ingat, seperti keterampilan apa pun, menguasai konsep ini memerlukan latihan. Jangan khawatir untuk mencoba - itu adalah bagaimana kita semua belajar!
Dalam tahun-tahun mengajar saya, saya telah melihat murid-murid berubah dari kesulitan dengan konsep ini menjadi ahli perintah. Salah satu murid saya bahkan menegur bahwa setelah belajar redireksi I/O, dia merasa seperti "file whisperer" - mampu membuat data mengalir tepat ke tempat yang diinginkannya.
Jadi, terus eksplorasi, terus latihan, dan segera Anda akan mengarahkan input dan output seperti seorang pro. Siapa tahu? Mungkin Anda akan menjadi "file whisperer" berikutnya dalam perjalanan coding Anda!
Credits: Image by storyset