คุณเคยพยายามเปิดไฟล์ในโปรแกรมแก้ไขเพียงเพื่อดูว่ามีเนื้อหา ไบนารีที่ ไม่สามารถอ่านได้หรือไม่?
คำสั่ง "สตริง" ของ ลินุกซ์ ทำให้สามารถดูอักขระที่มนุษย์สามารถอ่านได้ภายในไฟล์ใดก็ได้
วัตถุประสงค์หลักของการใช้คำสั่ง "สตริง" คือการหาชนิดของไฟล์ที่คุณต้องการ แต่คุณยังสามารถใช้เพื่อแยกข้อความ ตัวอย่างเช่นถ้าคุณมีไฟล์จากโปรแกรมที่เป็นกรรมสิทธิ์ซึ่งจะบันทึกไฟล์ในรูปแบบไบนารีแปลก ๆ คุณสามารถใช้ "สตริง" เพื่อดึงข้อมูลที่คุณใส่ลงในไฟล์
ตัวอย่างการใช้คำสั่ง 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 โดยใช้พฤติกรรมเริ่มต้นคุณจะไม่ได้รับผลลัพธ์ที่คุณหวังไว้ให้ลองเรียกใช้คำสั่งต่อไปนี้เพื่อดูว่ามีความแตกต่าง:
สตริง -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 ตัวสำหรับการใช้งานกับสตริง:
- s = ไบต์ 7 ไบต์ (ใช้สำหรับ ASCII, ISO 8859)
- S = ไบต์ 8 บิต
- b = bigendian 16 บิต
- l = littleendian 16 bit
ค่าดีฟอลต์คือไบต์ 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
สตริง - เวอร์ชัน