0Pricing
DevOps Bootcamp · บทเรียน

การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)

เชี่ยวชาญการเปลี่ยนเส้นทางผลลัพธ์ของคำสั่งไปยังไฟล์ และใช้ไฟล์เป็นข้อมูลนำเข้าสำหรับคำสั่ง เพื่อเพิ่มความยืดหยุ่นให้สคริปต์

การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)”

เชี่ยวชาญการเปลี่ยนเส้นทางผลลัพธ์ของคำสั่งไปยังไฟล์ และใช้ไฟล์เป็นข้อมูลนำเข้าสำหรับคำสั่ง เพื่อเพิ่มความยืดหยุ่นให้สคริปต์ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การจัดการกระบวนการ (ps, top, kill)
  2. การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)
  3. การต่อคำสั่งด้วยไพป์ (|)
  4. งานเบื้องหลังและการควบคุมงาน
← กลับไปที่ DevOps Bootcamp