วิธีการแสดงอักขระที่พิมพ์ได้ของไฟล์ด้วยคำสั่ง Strings

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

คำสั่ง "สตริง" ของ ลินุกซ์ ทำให้สามารถดูอักขระที่มนุษย์สามารถอ่านได้ภายในไฟล์ใดก็ได้

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

ตัวอย่างการใช้คำสั่ง 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 เหตุผล:

  1. เราสร้างไฟล์แล้ว
  2. ส่วนขยายคือ

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

การกู้คืนของ Windows มักจะกู้คืนไฟล์ที่มีชื่อเช่น 0001, 0002, 0003 เป็นต้นข้อเท็จจริงที่ว่าไฟล์ถูกกู้คืนได้ดีมาก แต่พยายามค้นหาว่าไฟล์ประเภทใดที่เป็นฝันร้าย

โดยใช้สตริงคุณมีโอกาสในการต่อสู้ในการทำงานประเภทไฟล์ รู้ว่าไฟล์เป็นไฟล์ opendocument.text หมายความว่าคุณสามารถบันทึกไฟล์ด้วยส่วนขยาย ODT และเปิดในโปรแกรม LibreOffice

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

พฤติกรรมทางเลือก

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

หมายความว่าอะไร? ดูเหมือนไม่มีใครรู้

คุณควรใช้สตริงเพื่อลองหาประเภทไฟล์หรือมองหาข้อความเฉพาะในไฟล์

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

สตริง -d ชื่อของคุณ

สตริง - ระบุชื่อไฟล์ของคุณ

หน้าคู่มือระบุว่าคำสั่งดังกล่าวอาจช่วยลดปริมาณขยะที่ส่งคืนจากสตริง

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

สตริง - ชื่อของคุณ

การฟอร์แมตเอาท์พุท

คุณสามารถรับข้อความภายในเอาต์พุตเพื่อแสดงชื่อของไฟล์ข้างบรรทัดข้อความแต่ละบรรทัด

เมื่อต้องการทำเช่นนี้ให้ใช้คำสั่งต่อไปนี้:

สตริง --f ชื่อของคุณ

สตริง - พิมพ์ชื่อไฟล์ yourfilename

เอาต์พุตจะมีลักษณะดังนี้:

yourfilename: ชิ้นส่วนของข้อความ

yourfilename: อีกชิ้นหนึ่งของข้อความ

เป็นส่วนหนึ่งของผลผลิตที่คุณสามารถแสดงออฟเซตของที่ข้อความที่ปรากฏในไฟล์ เมื่อต้องการทำเช่นนี้ให้เรียกใช้คำสั่งต่อไปนี้:

สตริง - ชื่อของคุณ

ผลลัพธ์จะมีลักษณะดังนี้:

16573 ของคุณ

ข้อความ 17024

ชดเชยเป็นจริงชดเชย octal แต่ขึ้นอยู่กับวิธีสตริงได้รับการเรียบเรียงสำหรับระบบของคุณได้อย่างง่ายดายอาจเป็นฐานสิบหกหรือทศนิยมชดเชยเช่นกัน

วิธีที่ถูกต้องมากขึ้นในการรับชดเชยที่คุณต้องการคือการใช้คำสั่งต่อไปนี้:

strings - ชื่อไฟล์ของคุณ

สตริง - ไปยังชื่อไฟล์ของคุณ

สตริง - th ชื่อไฟล์ของคุณ

เครื่องหมายลบหมายถึงการส่งกลับค่าชดเชยและอักขระที่กำหนดต่อไปนี้จะกำหนดประเภทออฟเซต (เช่น d = ทศนิยม, o = octal, h = hex)

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

สตริง -s "|" yourfilename

ปรับวงเงินสตริง

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

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

ในการปรับขีด จำกัด ของสตริงให้รันคำสั่งต่อไปนี้:

สตริง -n 8 ชื่อไฟล์ของคุณ

ในตัวอย่างข้างต้นฉันได้เปลี่ยนขีด จำกัด เป็น 8

คุณสามารถแทนที่ 8 ด้วยจำนวนที่คุณต้องการ

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

สตริง - ไบต์ = 8 ชื่อไฟล์ของคุณ

รวมช่องว่าง

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

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

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

สตริง --wfilm ชื่อของคุณ

เปลี่ยนการเข้ารหัส

มีตัวเลือกการเข้ารหัส 5 ตัวสำหรับการใช้งานกับสตริง:

ค่าดีฟอลต์คือไบต์ 7 ไบต์

เมื่อต้องการเปลี่ยนการเข้ารหัสให้ใช้คำสั่งต่อไปนี้:

สตริง - ชื่อไฟล์ของคุณ

สตริง --encoding = s ชื่อไฟล์ของคุณ

ในคำสั่งข้างต้นฉันได้ระบุค่าเริ่มต้น "s" ซึ่งหมายถึงไบต์ 7 ไบต์ เพียงแค่ใส่ "s" ด้วยตัวอักษรที่คุณต้องการ

เปลี่ยนชื่อคำอธิบายไฟล์ไบนารี

คุณสามารถเปลี่ยนลักษณะการทำงานของสายอักขระเพื่อให้ใช้ไลบรารี descriptor แฟ้มไบนารีอื่นนอกเหนือจากที่มีให้สำหรับระบบของคุณ

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

สตริง - T bfdname

ตัวเลือกการอ่านจากไฟล์

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

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

ในการทดลองใช้คำสั่งต่อไปนี้ใน terminal terminal:

nano stringsopts

ในไฟล์ป้อนข้อความต่อไปนี้:

-f -o-n 3-s "|"

บันทึกไฟล์โดยการกด CTRL และ O แล้วออกโดยการกด CTRL และ X.

เมื่อต้องการเรียกใช้คำสั่งสตริงที่มีอ็อพชันเหล่านี้เรียกใช้คำสั่งต่อไปนี้:

สตริง @stringsopts ชื่อไฟล์ของคุณ

คุณจะเห็นตัวเลือกต่างๆจากสตริงไฟล์และคุณจะเห็นชื่อไฟล์ก่อนแต่ละสตริงการชดเชยและ "|" เป็นตัวคั่น

ขอความช่วยเหลือ

ถ้าคุณต้องการอ่านเพิ่มเติมเกี่ยวกับสตริงคุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อขอความช่วยเหลือ

สตริง - ช่วย

หรือคุณสามารถอ่านหน้าคู่มือได้เช่นกัน:

สตริงคน

หารุ่นของสายที่คุณกำลังทำงานอยู่

เมื่อต้องการค้นหารุ่นของสตริงที่คุณใช้อยู่ให้เรียกใช้คำสั่งต่อไปนี้:

สตริง -v

สตริง - V

สตริง - เวอร์ชัน