โฮมเพจ » ทำอย่างไร » คู่มือผู้เริ่มต้นสู่การเขียนสคริปต์เชลล์ 3 คำสั่งพื้นฐานและโซ่เพิ่มเติม

    คู่มือผู้เริ่มต้นสู่การเขียนสคริปต์เชลล์ 3 คำสั่งพื้นฐานและโซ่เพิ่มเติม

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

    คำสั่งที่มีประโยชน์พื้นฐานบางอย่าง

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

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

    ก่อนที่เราจะไปต่อไปเราจะครอบคลุมคำสั่งพื้นฐานบางอย่างที่สามารถใช้ได้ในหลาย ๆ ที่.

    เสียงสะท้อน - คำสั่งนี้จะพิมพ์ (แสดง) อาร์กิวเมนต์ทั้งหมดของมันบนบรรทัดคำสั่งเป็นเอาต์พุต

    อาร์กิวเมนต์ echo มีช่องว่าง

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

    อย่างที่คุณเห็นราคาคำพูดเดียวและสองคำพูดต่างกัน สำหรับข้อมูลเพิ่มเติมให้ตรวจสอบความแตกต่างระหว่างคำพูดเดี่ยวและคู่ใน Bash Shell?

    แมว - คำสั่งนี้แสดงเนื้อหาของไฟล์ข้อความเป็นเอาต์พุต.

    cat file_to_be_read

    สมมติว่าเราสร้างไฟล์ข้อความนี้ใน nano:

    เมื่อเราใช้คำสั่ง cat กับไฟล์เราจะเห็นผลลัพธ์ของมัน.

    grep - นี่เป็นหนึ่งในคำสั่งที่ทรงพลังและมีประโยชน์ที่สุดสำหรับคุณใน Linux มันย่อมาจาก Global / Regular Expression Print มองผ่านไฟล์และพิมพ์บรรทัดใด ๆ ที่ตรงกับรูปแบบเฉพาะ เนื่องจากรูปแบบนี้มีพื้นฐานมาจาก "การแสดงออกปกติ" เส้นที่กระชับสามารถให้รูปแบบมากมายที่จะจับคู่ แม้ว่าจะไม่ใช่คุณสามารถป้อนนกนางนวลเพื่อการค้นหา.

    ไฟล์รูปแบบ grep

    ฉันรับรองว่าคุณ grep สามารถทำอะไรได้มากกว่า แต่สำหรับตอนนี้เรามาดูสิ่งที่ง่ายกว่ากัน.

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

    ในการเปลี่ยนเส้นทางเอาต์พุตของคำสั่งไปยังไฟล์เราใช้ประโยชน์จากอักขระพิเศษสัญลักษณ์มากกว่า (>).

    มาเปลี่ยนรายการกันเถอะ ป้อนคำสั่งต่อไปนี้:

    echo pepperoni> รายการ

    คุณจะเห็นว่าเสียงก้องไม่แสดงเส้นอีกต่อไปและเมื่อเราดูเนื้อหาของไฟล์ "รายการ" เราจะเห็นสิ่งที่เราก้องอยู่ในนั้น.

    โปรดทราบว่าเนื้อหาก่อนหน้าของ "รายการ" ถูกลบออก ลองอีกครั้ง:

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

    รายการพริกสีเหลืองสะท้อน

    ง่าย! ลองใช้คำสั่งนี้เพื่อสร้างรายการที่ใหญ่ขึ้น?

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

    ลองเอาท์พุทของคำสั่งและใส่ลงในไฟล์:

    ls -al /> ~ / rootlist

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

    ระบบท่อหรือสายโซ่

    ไปป์นั้นมีชื่อดังนั้นเนื่องจากใช้ไปป์ (|; ที่ใช้ร่วมกันกับ \ คีย์บนแป้นพิมพ์ส่วนใหญ่) โดยพื้นฐานแล้วมันจะเอาท์พุทของคำสั่งหนึ่งและฟีดมันโดยตรงไปยังอีก คุณสามารถสร้างกลุ่มคำสั่งแบบยาวเพื่อรับเอาต์พุตที่ต้องการโดยเฉพาะและสะดวกมากสำหรับคำสั่งเช่น grep.

    มันทำหน้าที่เหมือน“>” มากยกเว้นมันสามารถถูกล่ามโซ่ได้หลายครั้งและเอฟเฟกต์ของมันจะกว้างกว่าซึ่งไม่จำเป็นต้องผ่านไฟล์ข้อความ.

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

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

    คุณยังสามารถรับอินพุตจากไฟล์สำหรับคำสั่งโดยใช้สัญลักษณ์ที่น้อยกว่า (<).

    แมว < list

    “ นั่นไม่แตกต่างจากการใช้ข้อโต้แย้ง!” คุณอาจพูดว่า คุณจะถูกต้องในกรณีนี้ เมื่อการเปลี่ยนเส้นทางของอินพุตเข้ามามีประโยชน์จริงๆอยู่ในการโยงคำสั่งเข้าด้วยกัน.

    สมมติว่าเราต้องการกรองคำใด ๆ ที่มี“ pep” อยู่ในนั้นจากไฟล์“ รายการ” ปัจจุบันของเราเป็นไฟล์ใหม่ที่เรียกว่า“ การแก้ไข”.

    การแก้ไข grep pep

    ลองทำซ้ำคำสั่งนี้และเพิ่มการเรียงลำดับ.

    การแก้ไข grep pep

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

    เพื่อแสดงคำสั่ง sort ลองดูตัวอย่างต่อไปนี้:

    อย่างที่คุณเห็นการเพิ่มแฟล็ก“ -f” ในคำสั่ง sort ช่วยให้คุณไม่ต้องสนใจขนาดตัวพิมพ์ สิ่งนี้ทำให้ง่ายสำหรับเราที่จะเรียงบรรทัดตามตัวอักษรในไฟล์ข้อความและละเว้นการใช้อักษรตัวพิมพ์ใหญ่เมื่อไม่สำคัญ.

    สคริปต์ง่าย ๆ

    มาสร้างสคริปต์ที่มีแบบฟอร์มต่อไปนี้:

    listterm สคริปต์ searchfilem

    มันจะใช้คำและใช้ grep เพื่อค้นหาไฟล์รายการเรียงลำดับผลลัพธ์แล้วส่งออกไปยังไฟล์อื่น.

    นี่คือไดเรกทอรีที่เราจะทดสอบสคริปต์ใน:

    และเราสามารถสร้างรายการสิ่งที่อยู่ที่นี่แล้วเรียกใช้สคริปต์.

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

    คุณสามารถทำได้มากกว่าเรียงตามลำดับตัวอักษร ดูหน้า man สำหรับคำสั่งต่อไปนี้:

    • tsort - ฟังก์ชันการเรียงลำดับโทโพโลยีขั้นสูง
    • tr - ให้คุณแมปอักขระเฉพาะกับอักขระอื่นและคัดลอกระหว่างอักขระเหล่านั้น.
    • uniq - ลบที่ไม่ซ้ำกันใด ๆ (อ่าน: ซ้ำกัน)
    • awk - ภาษา / ฟังก์ชั่นการประมวลผลข้อความขั้นสูงจริงๆที่สามารถใช้เพื่อแยกฟิลด์ในชื่อไฟล์
    • cut, paste / join - คำสั่งที่มีประโยชน์สำหรับการแยกฟิลด์จากไฟล์ข้อความและเพิ่มข้อมูลใหม่ลงในคอลัมน์
    • look - การค้นหาเช่น grep ทำ แต่ใช้ไฟล์พจนานุกรม (ซึ่งสามารถระบุได้โดยผู้ใช้) สำหรับการค้นหา
    • wc - ให้คุณได้จำนวนการนับจำนวนบรรทัดจำนวนตัวอักษรและอื่น ๆ

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

    สคริปต์โปรดของคุณคืออะไร? มีสคริปต์การใช้งานพิเศษสำหรับไฟล์ที่เป็นข้อความหรือไม่? แบ่งปันสิ่งที่คุณรู้ในความคิดเห็น!