การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)
เชี่ยวชาญการเปลี่ยนเส้นทางผลลัพธ์ของคำสั่งไปยังไฟล์ และใช้ไฟล์เป็นข้อมูลนำเข้าสำหรับคำสั่ง เพื่อเพิ่มความยืดหยุ่นให้สคริปต์
การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <) เป็นบทเรียน Linux Command Line & Bash Scripting Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line & Bash Scripting Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
การเปลี่ยนเส้นทาง I/O คืออะไร
ใน Linux คำสั่งมักสร้างผลลัพธ์หรือต้องรับข้อมูลเข้า การเปลี่ยนเส้นทางอินพุต/เอาต์พุต (I/O) ช่วยให้คุณเปลี่ยนแหล่งที่คำสั่งรับอินพุต หรือปลายทางที่คำสั่งส่งเอาต์พุตไปได้
แทนที่จะแสดงเอาต์พุตบนหน้าจอ (เทอร์มินัล) เพียงอย่างเดียว คุณสามารถบันทึกเอาต์พุตลงในไฟล์ หรือส่งเนื้อหาของไฟล์เข้าไปยังคำสั่งอื่นโดยตรงก็ได้
ทำความเข้าใจกระแสข้อมูลมาตรฐาน
คำสั่ง Linux ทุกคำสั่งโต้ตอบกับกระแสข้อมูล "มาตรฐาน" สามกระแส:
- อินพุตมาตรฐาน (STDIN): แหล่งที่คำสั่งรอรับอินพุต โดยปกติคือแป้นพิมพ์ของคุณ
- เอาต์พุตมาตรฐาน (STDOUT): ปลายทางที่คำสั่งส่งเอาต์พุตปกติไป โดยปกติคือหน้าจอของคุณ
- ข้อผิดพลาดมาตรฐาน (STDERR): ปลายทางที่คำสั่งส่งข้อความข้อผิดพลาดไป ซึ่งโดยปกติก็คือหน้าจอของคุณเช่นกัน
การเปลี่ยนเส้นทางช่วยให้เราเปลี่ยนแหล่งหรือปลายทางเริ่มต้นเหล่านี้ได้
การบันทึกเอาต์พุตด้วย '>'
ตัวดำเนินการ > ใช้เปลี่ยนเส้นทาง เอาต์พุตมาตรฐาน (STDOUT) จากคำสั่งไปยังไฟล์ แทนที่จะแสดงบนหน้าจอ เอาต์พุตของคำสั่งจะถูกเขียนลงในไฟล์ที่ระบุ
สำคัญ: หากมีไฟล์นั้นอยู่แล้ว > จะ เขียนทับ เนื้อหาทั้งหมดด้วยเอาต์พุตใหม่ โปรดระวังอย่าลบข้อมูลสำคัญโดยไม่ตั้งใจ
ตัวอย่าง: การบันทึกเอาต์พุตของคำสั่ง
มาบันทึกเอาต์พุตของคำสั่ง ls -l ลงในไฟล์ชื่อ my_files.txt จากนั้นเราจะดูเนื้อหาของไฟล์ด้วย cat
ls -l > my_files.txt
cat my_files.txtการเพิ่มข้อมูลลงในไฟล์ด้วย '>>'
บางครั้งคุณไม่ต้องการเขียนทับไฟล์ แต่อยากเพิ่มเนื้อหาใหม่ต่อท้ายไฟล์ นั่นคือหน้าที่ของตัวดำเนินการ >>
>> จะเปลี่ยนเส้นทาง เอาต์พุตมาตรฐาน (STDOUT) ไปยังไฟล์ แต่หากมีไฟล์นั้นอยู่แล้ว ระบบจะ ต่อท้าย เอาต์พุตใหม่ที่ท้ายไฟล์ โดยคงเนื้อหาเดิมไว้
ตัวอย่าง: การต่อท้ายบันทึก
ขั้นแรก ให้สร้างไฟล์อย่างง่าย จากนั้นใช้ >> เพื่อเพิ่มอีกหนึ่งบรรทัดลงในไฟล์ สังเกตว่าเนื้อหาเดิมยังคงอยู่
echo "First line of log." > app_log.txt
echo "Second line added." >> app_log.txt
cat app_log.txtการจัดการข้อผิดพลาดด้วย '2>'
แล้วข้อความข้อผิดพลาดล่ะ ข้อความเหล่านั้นจะไปที่ ข้อผิดพลาดมาตรฐาน (STDERR) หากต้องการเปลี่ยนเส้นทาง STDERR ไปยังไฟล์ เราจะใช้ตัวระบุไฟล์ 2 ตามด้วยตัวดำเนินการ >: 2>
วิธีนี้มีประโยชน์อย่างมากสำหรับการบันทึกข้อผิดพลาดโดยไม่ทำให้เอาต์พุตหลักรกรุงรัง หรือสำหรับการดีบักสคริปต์
ตัวอย่าง: การบันทึกข้อความข้อผิดพลาด
ลองแสดงรายการไดเรกทอรีที่ไม่มีอยู่ ข้อความข้อผิดพลาดจะแสดงบนหน้าจอตามปกติ แต่เราจะเปลี่ยนเส้นทางไปยัง errors.log แทน
ls /this/path/does/not/exist 2> errors.log
echo "Command finished. Check errors.log."
cat errors.logการป้อนข้อมูลด้วย '<'
ตัวดำเนินการ < ใช้เปลี่ยนเส้นทาง อินพุตมาตรฐาน (STDIN) แทนที่คำสั่งจะรอให้คุณพิมพ์อินพุตจากแป้นพิมพ์ คำสั่งจะอ่านอินพุตโดยตรงจากไฟล์ที่ระบุ
วิธีนี้มีประสิทธิภาพสำหรับการทำงานอัตโนมัติที่คำสั่งต้องรับอินพุตจำนวนมาก หรือเมื่อคุณต้องการประมวลผลเนื้อหาของไฟล์โดยตรง
ตัวอย่าง: การเรียงลำดับจากไฟล์
เราจะสร้างไฟล์ที่มีชื่อซึ่งยังไม่ได้เรียงลำดับ จากนั้นใช้คำสั่ง sort อ่านอินพุตจากไฟล์นั้นด้วย <
echo -e "Charlie\nAlice\nBob" > names.txt
sort < names.txtตรวจสอบความเข้าใจอย่างรวดเร็ว: การเปลี่ยนเส้นทาง
คุณได้เรียนรู้การเปลี่ยนเส้นทางเอาต์พุตมาตรฐาน การต่อท้ายเอาต์พุต การจัดการข้อผิดพลาด และการรับอินพุตจากไฟล์แล้ว มาทดสอบความเข้าใจกัน
ทบทวน: พลังของการเปลี่ยนเส้นทาง I/O
ทำได้ดีมาก คุณเข้าใจพื้นฐานของการเปลี่ยนเส้นทาง I/O ใน Linux แล้ว
>เปลี่ยนเส้นทาง STDOUT และเขียนทับไฟล์>>เปลี่ยนเส้นทาง STDOUT และต่อท้ายไฟล์2>เปลี่ยนเส้นทาง STDERR และบันทึกข้อความข้อผิดพลาด<เปลี่ยนเส้นทาง STDIN เพื่อให้คำสั่งอ่านข้อมูลจากไฟล์ได้
ตัวดำเนินการเหล่านี้มีประสิทธิภาพอย่างมากสำหรับการเขียนสคริปต์ การบันทึกข้อมูล และการทำงานอัตโนมัติ ฝึกฝนต่อไป
คำถามที่พบบ่อย
บทเรียน “การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line & Bash Scripting Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)”
เชี่ยวชาญการเปลี่ยนเส้นทางผลลัพธ์ของคำสั่งไปยังไฟล์ และใช้ไฟล์เป็นข้อมูลนำเข้าสำหรับคำสั่ง เพื่อเพิ่มความยืดหยุ่นให้สคริปต์ คุณปฏิบัติ Linux Command Line & Bash Scripting Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line & Bash Scripting Mastery หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line & Bash Scripting Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line & Bash Scripting Mastery นี้ได้ไหม
ได้ บทเรียน Linux Command Line & Bash Scripting Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การจัดการกระบวนการ (ps, top, kill)
- การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)
- การต่อคำสั่งด้วยไพป์ (|)
- งานเบื้องหลังและการควบคุมงาน