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!

Unix / Linux - IO Redirections

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