Skúsili ste niekedy otvoriť súbor v editore len preto, aby zistil, že obsahuje nečitateľný binárny obsah?
Príkaz liniek "strings" umožňuje zobraziť v každom súbore znaky čitateľné pre človeka.
Hlavným účelom príkazu "reťazce" je zistiť, aký typ súboru hľadáte, ale môžete ho použiť aj na extrahovanie textu. Napríklad, ak máte súbor z vlastného programu, ktorý šetrí súbory v podivnom binárnom formáte, môžete použiť "reťazce" na extrahovanie textu vloženého do súboru.
Príklad Použitie príkazov reťazca
Skvelý spôsob, ako demonštrovať silu príkazov reťazcov, je vytvoriť dokument pomocou aplikácie LibreOffice Writer.
Jednoducho otvorte program LibreOffice Writer a zadajte nejaký text a uložte ho do štandardného formátu ODT.
Teraz otvorte okno terminálu (súčasne stlačte klávesy CTRL, ALT a T) a potom použite príkaz cat na zobrazenie súboru nasledovne:
cat yourfilename.odt | viac
(Nahraďte svojfilename.odt názvom súboru, ktorý ste vytvorili)
Čo uvidíte je celá stena nečitateľného textu.
Stlačte medzerník na prechádzanie súboru. Sporadicky v celom súbore uvidíte niektorý text, ktorý ste zadali.
Príkaz strings môže byť použitý na zobrazenie iba častí, ktoré sú čitateľné pre človeka.
Vo svojej najjednoduchšej forme môžete spustiť nasledujúci príkaz:
reťazca váš viac
Rovnako ako predtým sa zobrazí text steny, ale iba text, ktorý si môžete prečítať ako človeka. Ak máte šťastie, potom budete môcť vidieť váš text.
To, čo je kľúčové, je však na prvom riadku:
mimetypeapplication / vnd.oasis.opendocument.text
Vieme, že typ súboru je súbor ODT LibreOffice Writer zo 2 dôvodov:
- Tento súbor sme vytvorili
- Rozšírenie je .ODT
Predstavte si, že ste nevytvorili súbor alebo ste našli súbor na obnovenom disku a súbor nemal rozšírenie.
Obnova systému Windows by často obnovovala súbory s názvami ako 0001, 0002, 0003 atď. Skutočnosť, že súbory boli obnovené, je skvelé, ale snaží sa zistiť, aké typy týchto súborov boli nočnou moru.
Pomocou reťazcov máte možnosť bojovať s vyriešením typu súboru. Vedieť, že súbor je súbor opendocument.text znamená, že ho môžete uložiť s rozšírením ODT a otvoriť ho v zapisovači LibreOffice.
V prípade, že ste neboli vedomí, ODT súbor je v podstate komprimovaný súbor. Ak premenujete názov súboru.odt na svoj súbor.zip môžete ho otvoriť v archivačnom nástroji a dokonca aj rozbaliť súbor.
Alternatívne správanie
V predvolenom nastavení príkaz reťazcov vráti všetky reťazce v rámci súboru, ale môžete zmeniť správanie tak, aby vrátilo reťazce z inicializovaných, načítaných dátových sekcií v súbore.
Čo to presne znamená? Zdá sa, že to nikto nevie.
Je rozumné predpokladať, že používate reťazce, aby ste sa pokúsili nájsť typ súboru alebo vyhľadať konkrétny text v súbore.
Ak pri spustení príkazov reťazcov pomocou predvoleného správania nedostanete výstup, o ktorý ste dúfali, potom skúste spustiť jeden z nasledujúcich príkazov, aby ste zistili, či je to rozdiel:
Manuálna stránka uvádza, že uvedený príkaz môže pomôcť znížiť množstvo odpadu vráteného z reťazcov. Príkaz "reťazce" môže byť nastavený tak, aby pracoval opačne, takže prepínač mínus d je predvolené správanie. Ak je to vo vašom systéme, môžete vrátiť všetky údaje pomocou nasledujúceho príkazu: Môžete získať text v rámci výstupu, aby sa zobrazil názov súboru vedľa každého riadku textu. Ak to chcete urobiť, spustite jeden z nasledujúcich príkazov: Výstup bude teraz vyzerať takto: Ako súčasť výstupu môžete tiež zobraziť posun miesta, kde sa text nachádza v súbore. Postupujte takto: Výstup bude vyzerať takto: Posun je v skutočnosti osmičkový posun, aj keď v závislosti od spôsobu zostavovania reťazcov pre váš systém by mohol byť jednoducho hexadecimálny alebo desatinný posun. Presnejším spôsobom získania požadovaného posunu je použiť nasledujúce príkazy: Mínus t znamená vrátiť posun a nasledujúci znak určuje typ ofsetu. (t.j. d = desatinné, o = osičné, h = hex). V predvolenom nastavení príkaz strings vytlačí každý nový reťazec na novom riadku, ale môžete nastaviť oddeľovač podľa vlastného výberu. Ak napríklad použijete symbol odbočenia ("|") ako oddeľovač, spustite nasledujúci príkaz: Príkaz reťazcov predvolene hľadá reťazec po 4 tlačených znakoch za sebou. Predvolené nastavenie môžete upraviť tak, že vráti iba reťazec s 8 tlačiteľnými znakmi alebo 12 tlačiteľnými znakmi. Nastavením tohto limitu môžete prispôsobiť výstup tak, aby ste získali čo najlepší výsledok. Hľadaním reťazca, ktorý je príliš dlhý, riskujete vynechanie užitočného textu, ale tým, že je príliš krátky, môžete skončiť s oveľa väčším vrátením nevyžiadanej pošty. Ak chcete nastaviť limit reťazca, spustite nasledujúci príkaz: Vo vyššie uvedenom príklade som limit zmenil na 8.8 môžete nahradiť číslom podľa vášho výberu. Môžete tiež použiť nasledujúci príkaz, aby ste urobili to isté: V predvolenom nastavení príkaz reťazca obsahuje znaky ako napríklad tabuľku alebo medzeru ako tlačiteľný znak. Preto ak máte reťazec, ktorý číta ako "mačka sedela na podložke", potom príkaz reťazcov vráti celý text. Nové znaky riadkov a znaky vrátenia sa v predvolenom nastavení nepovažujú za znaky, ktoré je možné vytlačiť. Ak chcete, aby reťazce rozpoznali nové riadkové znaky a vozík sa vracia ako tlačiteľný znak, spustite reťazce nasledujúcim spôsobom: Na použitie s reťazcami je k dispozícii 5 možností kódovania: Predvolená hodnota je 7 bitový bajt. Ak chcete zmeniť kódovanie, spustite nasledujúci príkaz: Vo vyššie uvedenom príkaze som určil predvolené "s", čo znamená 7 bitový byte. Jednoducho nahraďte písmeno "s" písmenom podľa vášho výberu. Môžete zmeniť správanie reťazcov tak, aby používal inú knižnicu deskriptorov binárnych súborov, než je tá, ktorá je pre váš systém k dispozícii. Tento prepínač je určený pre odborníkov. Ak máte k dispozícii inú knižnicu, môžete tak urobiť spustením nasledujúceho reťazca: Ak budete používať vždy rovnaké možnosti, potom nechcete, aby ste museli zadávať všetky prepínače pri každom spustení príkazu, pretože to trvá dlhšie. Čo môžete urobiť, je vytvoriť textový súbor pomocou nano a určiť možnosti v tomto súbore. Ak to chcete vyskúšať v rámci terminálu, spustite nasledujúci príkaz: Do súboru zadajte nasledujúci text: Uložte súbor stlačením klávesov CTRL a O a opusťte stlačením kombinácie klávesov CTRL a X. Ak chcete spustiť príkazy reťazcov s týmito možnosťami, spustite nasledujúci príkaz: Možnosti budú čítané zo súboru stringsopts a pred každým reťazcom by ste mali vidieť názov súboru, offset a "|" ako oddeľovač. Ak sa chcete dozvedieť viac o reťazcoch, môžete získať pomoc pomocou nasledujúceho príkazu. Prípadne si môžete tiež prečítať manuálnu stránku: Ak chcete nájsť verziu reťazcov, ktoré používate, spustite jeden z nasledujúcich príkazov:reťazcov -d vášhofile
reťazce - zadajte meno súborureťazcov - vaše meno súboru
Formátovanie výstupu
reťazcov -f vášho súboru
reťazce - názov súboru -príbor-súboryourfilename: text
yourfilename: ďalší textreťazcov - vaše meno súboru
16573 váš
17024 text
reťazce -t d vášfilename
reťazce -t vaše menofilestrings -t h yourfilenamereťazca -s "|" " NázovSúboru
Upravte limit reťazca
reťazcov -n 8 vaše menofile
reťazca - bytes = 8 vaše menofile
Zahrňte medzery
reťazca -w yourfilename
Zmena kódovania
reťazce - je to vaše meno súboru
reťazce - enkoding = s vaše menofile Zmena názvu binárneho súboru
reťazcov -T bfdname
Možnosti čítania zo súboru
nano stringsopts
-f -o -n 3 -s "|" "
strings @ struny opisuje vaše meno
Získanie pomoci
reťazce --help
mužských reťazcov
Zistite, akú verziu reťazcov používate
reťazca -v
reťazcov -Vreťazce - verzia