EN: Read in English
Dunia L1: Rumah Kedai
Pipe dan redirect
Anda akan belajar: sambung arahan kecil dengan | dan simpan hasilnya ke dalam fail.
Teks BM belum disemak oleh penutur asli.
Disemak dengan Linux (Debian 13) pada 1 Nov 2026
Masalahnya
Bos mahu senarai: setiap hidangan terjual hari ini, paling laris dulu. Tiada satu arahan yang buat semua itu. Sekarang apa?
Pilih satu jawapan.
Tengok
Anda you di /home/you/kedai/counter. 1 benda di sini. Servis: cron berjalan, ssh berjalan, nginx berjalan.
you@kedai:~/kedai/counter$Folder ~/kedai/counter
- orders.log (fail)
-rw-r--r--
Servis
cronberjalanmula semasa bootsshberjalanmula semasa bootnginxberjalanmula semasa boot
pipe (|): Tali sawat antara dua arahan: keluaran arahan pertama jadi masukan arahan seterusnya. | ialah tali sawat. Baris dari grep bergerak ke wc -l, yang mengiranya. Jawapan: 3 belum bayar.
Cuba
Bina tali sawat paling laris. Susun empat stesen ini.
Stesen pertama di atas. Susun ikut turutan. Guna anak panah, atau seret.
- sort: susun hidangan yang sama bersebelahan
- sort -rn: nombor paling besar dulu
- uniq -c: kira setiap kumpulan
- cut -d" " -f3 orders.log: simpan lajur hidangan sahaja
Cuba
Sekarang jalankan seluruh tali sawat dalam satu baris:
cut -d" " -f3 orders.log | sort | uniq -c | sort -rn
Anda you di /home/you/kedai/counter. 1 benda di sini. Servis: cron berjalan, ssh berjalan, nginx berjalan.
you@kedai:~/kedai/counter$Folder ~/kedai/counter
- orders.log (fail)
-rw-r--r--
Servis
cronberjalanmula semasa bootsshberjalanmula semasa bootnginxberjalanmula semasa boot
Petunjuk
-d" " pecahkan ikut jarak. -f3 simpan bahagian ketiga.Teka
unpaid.txt ada 3 baris. Anda taip echo oops > unpaid.txt. Apa isi fail itu sekarang?
Pilih satu jawapan.
Cuba
Simpan setiap pesanan belum bayar ke fail baru, satu redirect (hala semula): grep -i unpaid orders.log > unpaid.txt.
Anda you di /home/you/kedai/counter. 1 benda di sini. Servis: cron berjalan, ssh berjalan, nginx berjalan.
you@kedai:~/kedai/counter$Folder ~/kedai/counter
- orders.log (fail)
-rw-r--r--
Servis
cronberjalanmula semasa bootsshberjalanmula semasa bootnginxberjalanmula semasa boot
Petunjuk
Tiada apa dicetak: baris itu masuk ke dalam fail.cat unpaid.txt tunjuk isinya.Semak
Tiga anak panah. Yang mana sesuai untuk setiap kerja?
Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.
Anda berjaya!
Kini anda boleh sambung arahan dengan pipe dan simpan hasil ke fail.
Nak tahu lebih (pilihan)
2> /dev/null buang baris ralat. cmd > all.txt 2>&1 simpan kedua-dua jenis. tee report.txt tunjuk baris dan simpan sekali. < suapkan fail masuk: sort < today.txt.
Latihan sebenar (pilihan), di mesin anda sendiri:
Misi sebenar
grep bash /etc/passwd | wc -lps aux > procs.txthead -n 5 procs.txt
0 daripada 3 langkah siap · Tanda anda disimpan.
English
The boss wants a list: each dish sold today, best seller first. No single command does that. What now?
The pipe | is a conveyor belt. grep’s lines ride along to wc -l, which counts them. Answer: 3 unpaid.
Build the best-seller belt. Put the four stations in order.
Now run the whole belt in one line:
cut -d" " -f3 orders.log | sort | uniq -c | sort -rn
-d" " splits on spaces. -f3 keeps the third piece.unpaid.txt holds 3 lines. You type echo oops > unpaid.txt. What is in the file now?
Save every unpaid order into a new file, a redirect: grep -i unpaid orders.log > unpaid.txt.
cat unpaid.txt shows them.Three arrows. Which one fits each job?
You can now chain commands with pipes and save output to files.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Bash manual: Pipelines · Bash manual: Redirections · sort (Debian 13 man page) · uniq (Debian 13 man page) · cut (Debian 13 man page)
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?