ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

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


5.1.2. ตัวดำเนินการเปลี่ยนเส้นทาง


5.1.2.1. การเปลี่ยนเส้นทางเอาต์พุตด้วย > และ |


บางครั้ง คุณอาจต้องการใส่ผลลัพธ์ของคำสั่งในไฟล์ หรือคุณอาจต้องการออกคำสั่งอื่นบนผลลัพธ์ของคำสั่งหนึ่ง สิ่งนี้เรียกว่าการเปลี่ยนเส้นทางเอาต์พุต การเปลี่ยนเส้นทางทำได้โดยใช้ ">" (มากกว่าสัญลักษณ์) หรือใช้ "|" (ไปป์) ตัวดำเนินการที่ส่งเอาต์พุตมาตรฐานของคำสั่งหนึ่งไปยังคำสั่งอื่นเป็นอินพุตมาตรฐาน


ดังที่เราเห็นก่อนหน้านี้ แมว คำสั่งเชื่อมไฟล์และรวมเข้าด้วยกันเป็นเอาต์พุตมาตรฐาน โดยการเปลี่ยนเส้นทางเอาต์พุตนี้ไปยังไฟล์ ชื่อไฟล์นี้จะถูกสร้างขึ้น - หรือเขียนทับหากมีอยู่แล้ว ดังนั้นโปรดใช้ความระมัดระวัง


แนนซี่:~> การทดสอบแมว1

บางคำ


แนนซี่:~> การทดสอบแมว2

บางคำ


แนนซี่:~> แมว test1 test2 > test3


แนนซี่:~> การทดสอบแมว3

บางคำ

แนนซี่:~> การทดสอบแมว1

บางคำ


แนนซี่:~> การทดสอบแมว2

บางคำ


แนนซี่:~> แมว test1 test2 > test3


แนนซี่:~> การทดสอบแมว3

บางคำ


บาง อื่น ๆ คำ


อย่าเขียนทับ!

ระวังอย่าเขียนทับไฟล์ที่มีอยู่ (สำคัญ) เมื่อเปลี่ยนเส้นทางเอาต์พุต เชลล์จำนวนมาก รวมถึง Bash มีคุณสมบัติในตัวเพื่อปกป้องคุณจากความเสี่ยงนั้น: โนคลอบเบอร์. ดูหน้าข้อมูลสำหรับข้อมูลเพิ่มเติม ใน Bash คุณต้องการเพิ่ม เซ็ต -o โนคลอบเบอร์ คำสั่งของคุณ .bashrc ไฟล์การกำหนดค่าเพื่อป้องกันการเขียนทับไฟล์โดยไม่ได้ตั้งใจ

การเปลี่ยนเส้นทาง "ไม่มีอะไร" ไปยังไฟล์ที่มีอยู่จะเท่ากับการล้างไฟล์:


แนนซี่:~> ls -l รายการ

-rw-rw-r-- 1 แนนซี่


แนนซี่


117 2 เม.ย. 18:09 รายการ

แนนซี่:~> > รายการ

แนนซี่:~> ls -l รายการ

-rw-rw-r-- 1 แนนซี่


แนนซี่


0 4 เม.ย. 12:01 รายการ

กระบวนการนี้เรียกว่า ตัดทอน.


การเปลี่ยนเส้นทางเดียวกันไปยังไฟล์ที่ไม่มีอยู่จะสร้างไฟล์เปล่าใหม่ด้วยชื่อที่กำหนด:


แนนซี่:~> ls -l รายการใหม่

ls: รายการใหม่: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


แนนซี่:~> > รายการใหม่

แนนซี่:~> ls -l รายการใหม่

ls: รายการใหม่: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว


แนนซี่:~> > รายการใหม่


แนนซี่:~> ls -l รายการใหม่

-rw-rw-r-- 1 แนนซี่ แนนซี่

0 เม.ย. 4:12 น. รายการใหม่

แนนซี่:~> ls -l รายการใหม่

-rw-rw-r-- 1 แนนซี่ แนนซี่

บทที่ 7 ให้ตัวอย่างเพิ่มเติมเกี่ยวกับการใช้การเปลี่ยนเส้นทางประเภทนี้ ตัวอย่างการใช้ไพพ์ของคำสั่ง:

หากต้องการค้นหาคำภายในข้อความ ให้แสดงบรรทัดทั้งหมดที่ตรงกับ "pattern1" และยกเว้นบรรทัดที่ตรงกับ "pattern2" ไม่ให้แสดง:


grep pattern1 ไฟล์ | เกรป -v pattern2


ในการแสดงผลลัพธ์ของไดเร็กทอรีที่แสดงรายการทีละหน้า:


ls - | น้อย


ในการค้นหาไฟล์ในไดเร็กทอรี:


ls -l | เกรป part_of_file_name


5.1.2.2. การเปลี่ยนเส้นทางอินพุต


ในอีกกรณีหนึ่ง คุณอาจต้องการให้ไฟล์เป็นอินพุตสำหรับคำสั่งที่ปกติแล้วจะไม่ยอมรับไฟล์เป็นตัวเลือก การเปลี่ยนเส้นทางอินพุตนี้ทำได้โดยใช้ตัวดำเนินการ "<" (น้อยกว่าสัญลักษณ์)


ด้านล่างนี้คือตัวอย่างการส่งไฟล์ให้ผู้อื่นโดยใช้การเปลี่ยนเส้นทางอินพุต


แอนดี้:~> อีเมล ไมค์@somewhere.org < ทำ


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


อ่านยากกว่าแมวมือใหม่นิดหน่อย ไฟล์ | จดหมาย บางคนแต่แน่นอนว่าเป็นวิธีที่หรูหรากว่ามากในการใช้เครื่องมือที่มี


5.1.2.3. รวมการเปลี่ยนเส้นทาง


ตัวอย่างต่อไปนี้รวมการเปลี่ยนเส้นทางอินพุตและเอาต์พุต ไฟล์ ข้อความ.txt จะถูกตรวจสอบก่อนการสะกดผิด และผลลัพธ์จะถูกเปลี่ยนเส้นทางไปยังไฟล์บันทึกข้อผิดพลาด:


สะกด ข้อความ.txt > error.log


คำสั่งต่อไปนี้แสดงรายการคำสั่งทั้งหมดที่คุณสามารถออกเพื่อตรวจสอบไฟล์อื่นเมื่อใช้ น้อยลง:


ไมค์:~> น้อย --help | grep -i ตรวจสอบ

:e [file] ตรวจสอบไฟล์ใหม่

:n * ตรวจสอบไฟล์ถัดไป (N-th) จากบรรทัดคำสั่ง

:p * ตรวจสอบไฟล์ก่อนหน้า (N-th) จากบรรทัดคำสั่ง

:x * ตรวจสอบไฟล์แรก (หรือ N-th) จากบรรทัดคำสั่ง

ไมค์:~> น้อย --help | grep -i ตรวจสอบ

:e [file] ตรวจสอบไฟล์ใหม่

:n * ตรวจสอบไฟล์ถัดไป (N-th) จากบรรทัดคำสั่ง

:p * ตรวจสอบไฟล์ก่อนหน้า (N-th) จากบรรทัดคำสั่ง

:x * ตรวจสอบไฟล์แรก (หรือ N-th) จากบรรทัดคำสั่ง

การขอ -i ตัวเลือกใช้สำหรับการค้นหาที่ไม่คำนึงถึงขนาดตัวพิมพ์ - โปรดจำไว้ว่าระบบ UNIX จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ หากคุณต้องการบันทึกเอาต์พุตของคำสั่งนี้เพื่อใช้อ้างอิงในอนาคต ให้เปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์:

ไมค์:~> น้อย --help | grep -i ตรวจสอบ > ตรวจสอบไฟล์ในน้อย


ไมค์:~> cat ตรวจสอบไฟล์ในน้อย

:e [file] ตรวจสอบไฟล์ใหม่

:n * ตรวจสอบไฟล์ถัดไป (N-th) จากบรรทัดคำสั่ง

:p * ตรวจสอบไฟล์ก่อนหน้า (N-th) จากบรรทัดคำสั่ง

:x * ตรวจสอบไฟล์แรก (หรือ N-th) จากบรรทัดคำสั่ง

ไมค์:~> น้อย --help | grep -i ตรวจสอบ > ตรวจสอบไฟล์ในน้อย


ไมค์:~> cat ตรวจสอบไฟล์ในน้อย

:e [file] ตรวจสอบไฟล์ใหม่

:n * ตรวจสอบไฟล์ถัดไป (N-th) จากบรรทัดคำสั่ง

:p * ตรวจสอบไฟล์ก่อนหน้า (N-th) จากบรรทัดคำสั่ง

:x * ตรวจสอบไฟล์แรก (หรือ N-th) จากบรรทัดคำสั่ง

เอาต์พุตของคำสั่งหนึ่งสามารถไพพ์ไปยังคำสั่งอื่นได้แทบหลายครั้งตามที่คุณต้องการ ตราบใดที่คำสั่งเหล่านี้โดยปกติจะอ่านอินพุตจากอินพุตมาตรฐานและเอาต์พุตการเขียนไปยังเอาต์พุตมาตรฐาน

บางครั้งก็ไม่เป็นเช่นนั้น แต่อาจมีอ็อพชันพิเศษที่สั่งให้คำสั่งเหล่านี้ทำงานตามคำจำกัดความมาตรฐาน ดังนั้นโปรดอ่านเอกสาร (หน้าคนและหน้าข้อมูล) ของคำสั่งที่คุณใช้หากคุณพบข้อผิดพลาด


ตรวจสอบให้แน่ใจว่าคุณไม่ได้ใช้ชื่อไฟล์ที่มีอยู่ซึ่งคุณยังต้องการอยู่ การเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ที่มีอยู่จะแทนที่เนื้อหาของไฟล์เหล่านั้น


5.1.2.4. >> โอเปอเรเตอร์


แทนที่จะเขียนทับข้อมูลไฟล์ คุณยังสามารถเพิ่มข้อความต่อท้ายไฟล์ที่มีอยู่โดยใช้เครื่องหมายมากกว่าสองอันที่ตามมา:


ตัวอย่าง:


ไมค์:~> รายการที่อยากได้ของแมว

เงินมากขึ้นทำงานน้อยลง


ไมค์:~> วันที่ >> รายการสิ่งที่อยากได้

ไมค์:~> รายการที่อยากได้ของแมว

เงินมากขึ้นทำงานน้อยลง


ไมค์:~> วันที่ >> รายการสิ่งที่อยากได้


ไมค์:~> รายการที่อยากได้ของแมว

เงินมากขึ้นทำงานน้อยลง

พฤ 28 ก.พ. 20:23:07 น. CET 2002

ไมค์:~> รายการที่อยากได้ของแมว

ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: