Próbáltál-e már csak egy szerkesztőben megnyitni egy fájlt, hogy kiderítse, hogy tartalmaz unreadable bináris tartalmat?
A Linux "stringek" parancs lehetővé teszi az emberi által olvasható karakterek megtekintését bármely fájlban.
A "húrok" parancs fő célja annak meghatározása, hogy milyen típusú fájlt keres, de a szöveg kivonatolásához is használhatja. Például, ha egy olyan fájlból származik, amely fájlokat mentett el egy furcsa bináris formátumban, akkor a "stringek" segítségével kiválaszthatja a fájlba helyezett szöveget.
A karakterláncok parancsának használata
Egy nagyszerű módja annak, hogy bemutassuk a stringek parancsának erejét, létrehozzunk egy dokumentumot a LibreOffice Writer használatával.
Egyszerűen nyissa meg a LibreOffice Writert, és írjon be néhány szöveget, majd mentse el a szabványos ODT formátumban.
Most nyisson meg egy terminál ablakot (nyomja meg egyszerre a CTRL, ALT és T billentyűkombinációt), majd a cat parancs segítségével jelenítse meg a fájlt az alábbiak szerint:
macska afilmenéved.odt | több
(Cserélje ki a filename.odt-ot a létrehozott fájl nevével)
Amit látni fogsz, olvashatatlan szöveg egész falát.
A fájl mentéséhez nyomja meg a szóköz billentyűt. Az egész fájlban szórványosan láthatja a beírt szöveg néhány részét.
A karakterláncok parancsot csak az emberi olvashatóságú részek megjelenítésére lehet használni.
A legegyszerűbb formában a következő parancsot futtathatja:
stringek yourfilename.odt | több
Mint korábban, megjelenik egy szövegfal, de csak a szöveg, amit emberként olvashatsz. Ha szerencséd van akkor látni fogja a szöveget.
Amit látni fog, ez kulcsfontosságú azonban az első sorban:
mimetypeapplication / vnd.oasis.opendocument.text
Tudjuk, hogy a fájltípus LibreOffice Writer ODT fájl 2 okból:
- Készítettük a fájlt
- A kiterjesztés .ODT
Képzelje el, hogy nem hozta létre a fájlt, vagy megtalálta a fájlt egy helyreállított lemezen, és a fájlnak nem volt kiterjesztése.
A Windows helyreállítása gyakran a 0001, 0002, 0003 stb. Nevű fájlokat helyreállítja. A fájlok helyreállítása nagyszerű, de próbálta kitalálni, hogy milyen típusú fájlok voltak rémálmok.
A karakterláncok használatával küzdési esélye van a fájl típusának megmunkálására. Tudva, hogy egy fájl egy opendocument.text fájl, azt mentheti az ODT kiterjesztéssel, és megnyithatja a LibreOffice íróban.
Abban az esetben, ha nem tud róla, hogy egy ODT fájl alapvetően tömörített fájl. Ha átnevezed a filename.odt fájlt a filename.zip fájlba, megnyithatod azt egy archiváló eszközben, és kibonthatod a fájlt.
Alternatív viselkedések
Alapértelmezés szerint a stringek parancs egy fájlon belül minden stringet visszaad, de megváltoztathatja a viselkedést úgy, hogy a stringek egy fájlban lévő inicializált, betöltött adatszakaszokból térjenek vissza.
Mit jelent ez pontosan? Úgy tűnik, senki sem tudja.
Jól feltételezhető, hogy sztringeket használsz, hogy megpróbáljam megkeresni a fájltípust, vagy keresni egy adott szöveget egy fájlban.
Ha a sztringek parancsot az alapértelmezett viselkedéssel futtatja, akkor nem kapja meg a kívánt kimenetet, akkor próbálja meg a következő parancsok egyikét futtatni, hogy megnézze, hogy ez a különbség:
A manuális oldal azt állítja, hogy a fenti parancs segíthet a karakterláncokból visszavert szemét mennyiségének csökkentésében. A "stringek" parancsot úgy állíthatjuk be, hogy fordítottan működjön úgy, hogy a mínusz d kapcsoló az alapértelmezett viselkedés. Ha ez a helyzet a rendszeren, akkor az alábbi parancs segítségével visszaadhatja az összes adatot: A kimeneti szövegen belül megjelenik a szöveg neve a fájl minden egyes sorához. Ehhez futtassa az alábbi parancsok valamelyikét: A kimenet most úgy néz ki, mint ez: A kimenet részeként megjelenítheti azt is, hogy melyik szöveg jelenjen meg egy fájlban. Ehhez futtassa a következő parancsot: A kimenet így fog kinézni: Az offset valójában az oktális eltolás, bár attól függően, hogy a vonalakat összeállították a rendszeredhez, könnyen lehet a hex vagy a decimális eltolás is. Pontosabb módja annak, hogy megkapja a kívánt eltolást az alábbi parancsok használatával: A mínusz azt jelenti, hogy visszaadja az eltolást, és a következő karakter határozza meg az eltolás típusát. (azaz d = tizedes, o = oktális, h = hex). Alapértelmezés szerint a stringek parancs új sorokat nyomtat minden új karakterlánccal, de megadhatja a választó határt. Például, ha egy határolójelet ("|") használ a határoló, a következő parancsot futtatja: A stringek parancs alapértelmezés szerint egy sor 4 nyomtatható karaktert keres. Beállíthatja az alapértelmezett értéket úgy, hogy csak egy 8 karakterrel vagy 12 nyomtatható karakterrel rendelkező karakterláncot jelenítsen meg. Ezzel a korláttal állíthatja be a kimenetet, hogy a lehető legjobb eredményt kapja. Ha túl hosszú hosszú karaktersorozatot keresel, fennáll annak a kockázata, hogy elhagyod a hasznos szöveget, de túl rövidnek tűnik, akkor sokkal több rothadás érhető el. A string korlátozásának beállításához a következő parancsot kell futtatni: A fenti példában a korlátot 8-ra módosítottuk.A 8-at helyettesítheti a kívánt számmal. A következő parancsot is használhatja, hogy ugyanezt tegye: Alapértelmezés szerint a karakterláncok parancs nyomtatható karakterként tartalmaz egy fehérséget, például egy fület vagy helyet. Ezért ha van egy olyan karakterlánc, amely úgy szól, hogy "a macska ült a szőnyegen", akkor a stringek parancs visszaküldi az egész szöveget. Az új vonal karakterek és a kocsi visszaadása nem tekinthető nyomtatható karaktereknek. Ahhoz, hogy a vonalak jelezzék az új vonal karaktereket és a kocsi visszatérjen nyomtatható karakterként a következőképpen: A karakterláncokhoz 5 kódolási lehetőség áll rendelkezésre: Az alapértelmezés 7 bites byte. A kódolás futtatásához módosítsa a következő parancsot: A fenti parancsban megadtam az alapértelmezett "s" -t, ami 7 bit byte-ot jelent. Egyszerűen cserélje ki az "s" -et az Ön által kiválasztott kódolással. Megváltoztathatja a karakterláncok viselkedését úgy, hogy más, a rendszeréhez megadott bináris fájlleíró-könyvtárat használ. Ez a kapcsoló egy a szakértők számára. Ha másik könyvtárat szeretne használni, akkor a következő parancssorok futtatásával teheti meg ezt: Ha mindig ugyanazokat az opciókat fogja használni, akkor nem kell minden kapcsolót megadnia minden egyes parancs futtatásakor, mert időbe telik. Amit tehetünk, készítsünk egy szöveges fájlt a nano használatával, és megadjuk a fájlon belüli opciókat. A terminálon belüli kipróbáláshoz a következő parancsot kell futtatni: A fájlban adja meg a következő szöveget: Mentse a fájlt a CTRL és az O gomb megnyomásával, és a CTRL és az X gomb megnyomásával lépjen ki. A karakterláncok paranccsal történő futtatásához hajtsa végre a következő parancsot: Az opciókat a file stringsopts-ból olvassuk, és minden egyes karakterlánc előtt meg kell adnunk a fájlnevet, az offsetet és a "|" mint elválasztó. Ha többet szeretne olvasni a húrokról, akkor a következő parancsot futtathatja segítségért. Alternatív megoldásként elolvashatja a manuális oldalt is: A futó karakterek verziójának megkereséséhez futtassa az alábbi parancsok valamelyikét:stringek -d a saját nevétkarakterláncok --adatfilmetkarakterláncok -a sajátfilename Kimenet formázása
karakterláncok -f a saját nevétkarakterláncok --print-file-name yourfilenameYourfilename: egy szövegdarabyourfilename: egy másik szövegkarakterláncok - a sajátfilename16573 a te17024 szövegkarakterláncok - a saját nevétkarakterláncok - a saját nevétkarakterláncok -t h a filenamestringek -s "|" yourfilename Állítsa be a string határt
karakterláncok -n 8 a saját nevétkarakterláncok --bytes = 8 a teendőid neve Beleértve a fehéreket
karakterláncok -w a teendőneve A kódolás módosítása
karakterláncok - az Ön filenamekarakterláncok --encoding = s a teendőid neve A bináris fájl leírása név megváltoztatása
stringek -T bfdname Olvasási beállítások fájlból
nano stringsopts-f-o-n3-s "|"a strings @stringsopts a teendőid nevét Súgó beszerzése
sztringek --helpférfi szálak Megtudhatja, milyen verziókban fut a húrok
vonósok -vstringek -Vstringek --verzió




