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:
stringek -d a saját nevét
karakterláncok --adatfilmet
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:
karakterláncok -a sajátfilename
Kimenet formázása
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:
karakterláncok -f a saját nevét
karakterláncok --print-file-name yourfilename
A kimenet most úgy néz ki, mint ez:
Yourfilename: egy szövegdarab
yourfilename: egy másik szöveg
A kimenet részeként megjelenítheti azt is, hogy melyik szöveg jelenjen meg egy fájlban. Ehhez futtassa a következő parancsot:
karakterláncok - a sajátfilename
A kimenet így fog kinézni:
16573 a te
17024 szöveg
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:
karakterláncok -td
karakterláncok - a saját nevéhez
karakterláncok - a saját nevét
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:
stringek -s "|" yourfilename
Állítsa be a string határt
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:
karakterláncok -n 8 a saját nevét
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:
karakterláncok --bytes = 8 a teendőid neve
Beleértve a fehéreket
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:
karakterláncok -w a teendőneve
A kódolás módosítása
A karakterláncokhoz 5 kódolási lehetőség áll rendelkezésre:
- s = 7 bit byte (ASCII, ISO 8859)
- S = 8 bit byte
- b = 16 bit bigendian
- l = 16 bites kislány
Az alapértelmezés 7 bites byte.
A kódolás futtatásához módosítsa a következő parancsot:
karakterláncok - a saját nevét
karakterláncok --encoding = s a teendőid neve
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.
A bináris fájl leírása név megváltoztatása
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:
stringek -T bfdname
Olvasási beállítások fájlból
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:
nano stringsopts
A fájlban adja meg a következő szöveget:
-f-o-n3-s "|"
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:
a strings @stringsopts a teendőid nevét
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ó.
Súgó beszerzése
Ha többet szeretne olvasni a húrokról, akkor a következő parancsot futtathatja segítségért.
sztringek --help
Alternatív megoldásként elolvashatja a manuális oldalt is:
férfi szálak
Megtudhatja, milyen verziókban fut a húrok
A futó karakterek verziójának megkereséséhez futtassa az alábbi parancsok valamelyikét:
vonósok -v
stringek -V
stringek --verzió