คุณเคยพยายามเปิดไฟล์ในโปรแกรมแก้ไขเพียงเพื่อดูว่ามีเนื้อหาไบนารีที่ไม่สามารถอ่านได้หรือไม่?
คำสั่ง "สตริง" ของลินุกซ์ทำให้สามารถดูอักขระที่มนุษย์สามารถอ่านได้ภายในไฟล์ใดก็ได้
วัตถุประสงค์หลักของการใช้คำสั่ง "สตริง" คือการหาชนิดของไฟล์ที่คุณต้องการ แต่คุณยังสามารถใช้เพื่อแยกข้อความ ตัวอย่างเช่นถ้าคุณมีไฟล์จากโปรแกรมที่เป็นกรรมสิทธิ์ซึ่งจะบันทึกไฟล์ในรูปแบบไบนารีแปลก ๆ คุณสามารถใช้ "สตริง" เพื่อดึงข้อมูลที่คุณใส่ลงในไฟล์
ตัวอย่างการใช้คำสั่ง Strings
วิธีที่ยอดเยี่ยมในการแสดงพลังของคำสั่งสตริงคือการสร้างเอกสารโดยใช้โปรแกรม LibreOffice Writer
เพียงแค่เปิดโปรแกรม LibreOffice Writer แล้วป้อนข้อความจากนั้นบันทึกในรูปแบบ ODT มาตรฐาน
ตอนนี้เปิดหน้าต่างเทอร์มินัล (กด CTRL, ALT และ T ในเวลาเดียวกัน) จากนั้นให้ใช้คำสั่ง cat เพื่อแสดงไฟล์ดังนี้:
cat yourfilename.odt | มากกว่า
(แทนที่ yourfilename.odt ด้วยชื่อของไฟล์ที่คุณสร้างขึ้น)
สิ่งที่คุณจะเห็นคือทั้งข้อความที่อ่านไม่ออก
กด spacebar เพื่อเลื่อนดูไฟล์ เป็นระยะ ๆ ตลอดทั้งไฟล์คุณจะเห็นบางข้อความที่คุณป้อน
คำสั่งสตริงสามารถใช้เพื่อแสดงเฉพาะส่วนที่สามารถอ่านได้ของมนุษย์
ในรูปแบบที่ง่ายที่สุดคุณสามารถเรียกใช้คำสั่งต่อไปนี้:
สตริง yourfilename.odt | มากกว่า
เมื่อก่อนผนังข้อความจะปรากฏขึ้น แต่มีเฉพาะข้อความที่คุณสามารถอ่านเป็นมนุษย์เท่านั้น ถ้าคุณโชคดีคุณจะสามารถเห็นข้อความของคุณได้
สิ่งที่คุณจะสามารถเห็นว่าเป็นกุญแจสำคัญ แต่เป็นบรรทัดแรก:
mimetypeapplication / vnd.oasis.opendocument.text
เรารู้ว่าไฟล์ประเภทนี้เป็นไฟล์ ODT LibreOffice Writer สำหรับ 2 เหตุผล:
- เราสร้างไฟล์แล้ว
- ส่วนขยายคือ
ลองจินตนาการว่าคุณไม่ได้สร้างไฟล์หรือพบไฟล์ในดิสก์ที่กู้คืนแล้วและไฟล์ไม่มีนามสกุล
การกู้คืนของ Windows มักจะกู้คืนไฟล์ที่มีชื่อเช่น 0001, 0002, 0003 เป็นต้นข้อเท็จจริงที่ว่าไฟล์ถูกกู้คืนได้ดีมาก แต่พยายามค้นหาว่าไฟล์ประเภทใดที่เป็นฝันร้าย
โดยใช้สตริงคุณมีโอกาสในการต่อสู้ในการทำงานประเภทไฟล์ รู้ว่าไฟล์เป็นไฟล์ opendocument.text หมายความว่าคุณสามารถบันทึกไฟล์ด้วยส่วนขยาย ODT และเปิดในโปรแกรม LibreOffice
ในกรณีที่คุณไม่ทราบว่าไฟล์ ODT เป็นไฟล์บีบอัด หากคุณเปลี่ยนชื่อไฟล์ yourfilename.odt เป็น yourfilename.zip คุณสามารถเปิดไฟล์นี้ในเครื่องมือจัดเก็บข้อมูลและเปิดเครื่องรูดไฟล์
พฤติกรรมทางเลือก
โดยค่าเริ่มต้นคำสั่ง strings จะส่งกลับสตริงทั้งหมดภายในไฟล์ แต่คุณสามารถเปลี่ยนการทำงานเพื่อให้ส่งกลับสตริงจากส่วนที่โหลดข้อมูลที่โหลดไว้ในไฟล์
หมายความว่าอะไร? ดูเหมือนไม่มีใครรู้
คุณควรใช้สตริงเพื่อลองหาประเภทไฟล์หรือมองหาข้อความเฉพาะในไฟล์
ถ้าเมื่อใช้คำสั่ง strings โดยใช้พฤติกรรมเริ่มต้นคุณจะไม่ได้รับผลลัพธ์ที่คุณหวังไว้ให้ลองเรียกใช้คำสั่งต่อไปนี้เพื่อดูว่ามีความแตกต่าง:
หน้าคู่มือระบุว่าคำสั่งดังกล่าวอาจช่วยลดปริมาณขยะที่ส่งคืนจากสตริง คำสั่ง "strings" สามารถตั้งค่าให้ทำงานในแบบย้อนกลับเพื่อให้สวิทช์ลบ d เป็นลักษณะการทำงานเริ่มต้น หากเป็นเช่นนี้ในระบบของคุณคุณสามารถส่งคืนข้อมูลทั้งหมดได้โดยใช้คำสั่งต่อไปนี้: คุณสามารถรับข้อความภายในเอาต์พุตเพื่อแสดงชื่อของไฟล์ข้างบรรทัดข้อความแต่ละบรรทัด เมื่อต้องการทำเช่นนี้ให้ใช้คำสั่งต่อไปนี้: เอาต์พุตจะมีลักษณะดังนี้: เป็นส่วนหนึ่งของผลผลิตที่คุณสามารถแสดงออฟเซตของที่ข้อความที่ปรากฏในไฟล์ เมื่อต้องการทำเช่นนี้ให้เรียกใช้คำสั่งต่อไปนี้: ผลลัพธ์จะมีลักษณะดังนี้: ชดเชยเป็นจริงชดเชย octal แต่ขึ้นอยู่กับวิธีสตริงได้รับการเรียบเรียงสำหรับระบบของคุณได้อย่างง่ายดายอาจเป็นฐานสิบหกหรือทศนิยมชดเชยเช่นกัน วิธีที่ถูกต้องมากขึ้นในการรับชดเชยที่คุณต้องการคือการใช้คำสั่งต่อไปนี้: เครื่องหมายลบหมายถึงการส่งกลับค่าชดเชยและอักขระที่กำหนดต่อไปนี้จะกำหนดประเภทออฟเซต (เช่น d = ทศนิยม, o = octal, h = hex) โดยค่าเริ่มต้นคำสั่ง strings จะพิมพ์แต่ละสตริงใหม่ในบรรทัดใหม่ แต่คุณสามารถตั้งค่าตัวคั่นที่คุณเลือกได้ ตัวอย่างเช่นการใช้สัญลักษณ์ท่อ ("|") เป็นตัวคั่นเรียกใช้คำสั่งต่อไปนี้: สตริงคำสั่งโดยค่าเริ่มต้นจะค้นหาสตริงที่สามารถพิมพ์ได้ 4 ตัวในแถว คุณสามารถปรับค่าดีฟอลต์เพื่อส่งกลับค่าสตริงที่มี 8 อักขระที่พิมพ์ได้หรือ 12 อักขระที่สามารถพิมพ์ได้ โดยการปรับวงเงินนี้คุณสามารถปรับแต่งผลลัพธ์ให้ได้ผลลัพธ์ที่ดีที่สุด โดยการมองหาสายอักขระที่ยาวเกินไปคุณอาจเสี่ยงกับการละเว้นข้อความที่มีประโยชน์ แต่การทำให้สั้นเกินไปอาจทำให้คุณมีขยะมากขึ้น ในการปรับขีด จำกัด ของสตริงให้รันคำสั่งต่อไปนี้: ในตัวอย่างข้างต้นฉันได้เปลี่ยนขีด จำกัด เป็น 8คุณสามารถแทนที่ 8 ด้วยจำนวนที่คุณต้องการ นอกจากนี้คุณยังสามารถใช้คำสั่งต่อไปนี้เพื่อทำสิ่งเดียวกันได้: โดยค่าเริ่มต้นคำสั่งสตริงจะมีช่องว่างเช่นแท็บหรือช่องว่างเป็นอักขระที่สามารถพิมพ์ได้ ดังนั้นหากคุณมีสตริงที่อ่านว่า "แมวนั่งบนเสื่อ" คำสั่งสตริงจะส่งคืนข้อความทั้งหมด อักขระบรรทัดใหม่และการส่งคืนสินค้าจะไม่ถือว่าเป็นอักขระที่พิมพ์ได้โดยค่าเริ่มต้น เพื่อให้สายอักขระรู้จักอักขระบรรทัดใหม่และส่งกลับค่าขนส่งเป็นอักขระที่สามารถพิมพ์ได้ดำเนินการสตริงในลักษณะต่อไปนี้: มีตัวเลือกการเข้ารหัส 5 ตัวสำหรับการใช้งานกับสตริง: ค่าดีฟอลต์คือไบต์ 7 ไบต์ เมื่อต้องการเปลี่ยนการเข้ารหัสให้ใช้คำสั่งต่อไปนี้: ในคำสั่งข้างต้นฉันได้ระบุค่าเริ่มต้น "s" ซึ่งหมายถึงไบต์ 7 ไบต์ เพียงแค่ใส่ "s" ด้วยตัวอักษรที่คุณต้องการ คุณสามารถเปลี่ยนลักษณะการทำงานของสายอักขระเพื่อให้ใช้ไลบรารี descriptor แฟ้มไบนารีอื่นนอกเหนือจากที่มีให้สำหรับระบบของคุณ สวิตช์นี้เหมาะสำหรับผู้เชี่ยวชาญ ถ้าคุณมีไลบรารีอื่นใช้แล้วคุณสามารถทำได้โดยเรียกใช้คำสั่งสตริงต่อไปนี้: ถ้าคุณจะใช้ตัวเลือกเดียวกันในแต่ละครั้งคุณจะไม่ต้องการระบุสวิตช์ทั้งหมดในแต่ละครั้งที่คุณเรียกใช้คำสั่งเนื่องจากต้องใช้เวลา สิ่งที่คุณสามารถทำได้คือสร้างไฟล์ข้อความโดยใช้ nano และระบุตัวเลือกภายในไฟล์นั้น ในการทดลองใช้คำสั่งต่อไปนี้ใน terminal terminal: ในไฟล์ป้อนข้อความต่อไปนี้: บันทึกไฟล์โดยการกด CTRL และ O แล้วออกโดยการกด CTRL และ X. เมื่อต้องการเรียกใช้คำสั่งสตริงที่มีอ็อพชันเหล่านี้เรียกใช้คำสั่งต่อไปนี้: คุณจะเห็นตัวเลือกต่างๆจากสตริงไฟล์และคุณจะเห็นชื่อไฟล์ก่อนแต่ละสตริงการชดเชยและ "|" เป็นตัวคั่น ถ้าคุณต้องการอ่านเพิ่มเติมเกี่ยวกับสตริงคุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อขอความช่วยเหลือ หรือคุณสามารถอ่านหน้าคู่มือได้เช่นกัน: เมื่อต้องการค้นหารุ่นของสตริงที่คุณใช้อยู่ให้เรียกใช้คำสั่งต่อไปนี้:สตริง -d ชื่อของคุณ
สตริง - ระบุชื่อไฟล์ของคุณสตริง - ชื่อของคุณ
การฟอร์แมตเอาท์พุท
สตริง --f ชื่อของคุณ
สตริง - พิมพ์ชื่อไฟล์ yourfilenameyourfilename: ชิ้นส่วนของข้อความ
yourfilename: อีกชิ้นหนึ่งของข้อความสตริง - ชื่อของคุณ
16573 ของคุณ
ข้อความ 17024
สตริง -t d ชื่อไฟล์ของคุณ
สตริง -t o ชื่อไฟล์ของคุณสตริง - ชื่อไฟล์ yourfilenameสตริง -s "|" yourfilename
ปรับวงเงินสตริง
สตริง -n 8 ชื่อไฟล์ของคุณ
สตริง - ไบต์ = 8 ชื่อไฟล์ของคุณ
รวมช่องว่าง
สตริง --wfilm ชื่อของคุณ
เปลี่ยนการเข้ารหัส
strings -e s ชื่อไฟล์ของคุณ
สตริง --encoding = s ชื่อไฟล์ของคุณ เปลี่ยนชื่อคำอธิบายไฟล์ไบนารี
สตริง - T bfdname
ตัวเลือกการอ่านจากไฟล์
nano stringsopts
-f -o-n 3-s "|"
สตริง @stringsopts ชื่อไฟล์ของคุณ
ขอความช่วยเหลือ
สตริง - ช่วย
สตริงคน
หารุ่นของสายที่คุณกำลังทำงานอยู่
สตริง -v
สตริง - Vสตริง - เวอร์ชัน