Megpróbált már megnyitni egy fájlt egy szerkesztőben, hogy megtudja, olvashatatlan bináris tartalmat tartalmaz?
A Linux "string" parancs lehetővé teszi az ember által olvasható karakterek megtekintését bármely fájlban.
A "string" parancs használatának fő célja annak meghatározása, hogy milyen típusú fájlt néz, de felhasználhatja a szöveg kibontására is. Például, ha van egy saját programból származó fájl, amely furcsa bináris formátumban menti a fájlokat, akkor "húrok" segítségével kibonthatja a fájlba helyezett szöveget.
Példa a Strings parancs használatára
A stringek parancs erejének bemutatásának nagyszerű módja egy dokumentum létrehozása a LibreOffice Writer segítségével.
Egyszerűen nyissa meg a LibreOffice Writert, írjon be egy szöveget, majd mentse el a szabványos ODT formátumba.
Most nyissa meg a terminálablakot (nyomja meg a CTRL, ALT és T ugyanakkor), majd a cat paranccsal jelenítse meg a fájlt az alábbiak szerint:
cat yourfi
(Cserélje le a yourfilename.odt fájlt a létrehozott fájl nevére.)
Amit látni fog, az egy egész fal olvashatatlan szöveg.
A fájl végiggörgetéséhez nyomja meg a szóközt. Az egész fájlban szórványosan láthatja a beírt szöveg egy részét.
A karakterlánc paranccsal csak az ember által olvasható részek jeleníthetők meg.
A legegyszerűbb formájában a következő parancsot futtathatja:
húrok tefi
A korábbiakhoz hasonlóan egy szövegfal jelenik meg, de csak olyan szöveg, amelyet emberként olvashat. Ha szerencséd van, akkor láthatja a szövegét.
Amit azonban kulcsfontosságúnak fog látni, az az első sorban található:
mimetipepplication / vnd.oasis.
Két okból tudjuk, hogy a fájltípus LibreOffice Writer ODT fájl:
- Mi hoztuk létre a fájlt
- A kiterjesztés .ODT
Képzelje el, hogy nem Ön hozta létre a fájlt, vagy egy helyreállított lemezen találta meg a fájlt, és a fájlnak nem volt kiterjesztése.
A Windows helyreállítása gyakran helyreállította a fájlokat olyan nevekkel, mint 0001, 0002, 0003 stb. Az a tény, hogy a fájlokat helyreállították, nagyszerű, de rémálom volt az, hogy megpróbálják kideríteni, hogy milyen típusú fájlok voltak ezek.
A húrok használatával harci esélye van a fájltípus kidolgozására. Annak tudatában, hogy a fájl opendocument.text fájl, azt elmentheti az ODT kiterjesztéssel, és megnyithatja a LibreOffice íróban.
Abban az esetben, ha nem tudott róla, az ODT fájl alapvetően egy tömörített fájl. Ha átnevezi a yourfilename.odt fájlt yourfilename.zip fájljára, megnyithatja azt egy archiváló eszközben, és kibontsa a fájlt is.
Alternatív viselkedésmódok
Alapértelmezés szerint a string karakterlánc a fájl összes karakterláncát adja vissza, de a viselkedést úgy módosíthatja, hogy a karakterláncokat a fájl inicializált, betöltött adat szakaszaiból adja vissza.
Mit jelent ez pontosan? Úgy tűnik, senki sem tudja.
Ésszerű feltételezni, hogy karakterláncokat használ, hogy megtudja a fájltípust, vagy konkrét szöveget keres a fájlban.
Ha a karakterláncok parancsának alapértelmezett használatával történő futtatásakor nem kapja meg a remélt kimenetet, akkor próbálja meg futtatni az alábbi parancsok egyikét, hogy lássa, van-e különbség:
húr
or
karakterláncok - a fájlneved adata
A kézikönyv oldal kijelenti, hogy a fenti parancs segíthet csökkenteni a húrokból visszajuttatott szemét mennyiségét.
A "string" parancs beállítható úgy, hogy fordítva működjön, így a mínusz d kapcsoló lesz az alapértelmezett viselkedés. Ha a rendszerén ez a helyzet, akkor a következő paranccsal visszaadhatja az összes adatot:
húr
Kimenet formázása
Megkaphatja a kimeneten belüli szöveget, hogy a fájl neve megjelenjen az egyes szövegsorok mellett.
Ehhez futtassa az alábbi parancsok egyikét:
húr
or
húrok --print-fájlnév a fájlneved
A kimenet most így néz ki:
a te fájlneved: egy darab szöveg
or
a te fájlnév: egy másik szövegdarab
A kimenet részeként megjelenítheti azt az eltolást is, ahol a szöveg a fájlban megjelenik. Ehhez futtassa a következő parancsot:
húr
A kimenet így néz ki:
Az eltolás valójában oktális eltolás, bár attól függően, hogy a rendszeredhez hogyan állítottuk össze a karakterláncokat, könnyen lehet a hexa vagy a tizedes eltolás is.
A kívánt eltolás megszerzésének pontosabb módja a következő parancsok használata:
karakterláncok -td a fájlneved
karakterláncok - a fájlnevedhez
húrok - a te fájlneved
A mínusz t azt jelenti, hogy visszaadja az eltolást, és az utána következő karakter határozza meg az eltolás típusát. (azaz d = tizedes, o = oktális, h = hexa).
Alapértelmezés szerint a strings parancs minden új karakterláncot új sorra nyomtat, de beállíthatja a választott elválasztót. Például egy pip szimbólum ("|") használatához határolóként futtassa a következő parancsot:
húrok -s "| &
Állítsa be a húrkorlátot
A Strings parancs alapértelmezés szerint egy sorban 4 nyomtatható karakterből álló karakterláncot keres. Az alapértelmezett értéket úgy állíthatja be, hogy az csak 8 vagy 12 nyomtatható karakterből álló karakterláncot adjon vissza.
Ennek a korlátnak a beállításával testre szabhatja a kimenetet a lehető legjobb eredmény elérése érdekében. Ha túl hosszú karakterláncot keres, megkockáztatja a hasznos szöveg kihagyását, de ha túl rövid lesz, akkor sokkal több szemetet adhat vissza.
A karaktersorozat beállításához futtassa a következő parancsot:
húrok
A fenti példában megváltoztattam a határt 8-ra. A 8-ast helyettesítheti a választott számmal.
A következő paranccsal használhatja ugyanezt:
karakterláncok - bájt & #
Tartalmazza a Whitespace-t
Alapértelmezés szerint a string karakterparancs nyomtatható karakterként szóközt, például tabulátort vagy szóközt tartalmaz. Ezért, ha van egy karakterláncod, amely a következőt írja: "a macska ült a szőnyegen", akkor a string parancs a teljes szöveget visszaadja.
Az új sorok és a kocsivissza alapértelmezés szerint nem számít nyomtatható karakternek.
Ahhoz, hogy a karakterláncok felismerjék az új sor karaktereket és a kocsi visszatéréseket nyomtatható karakterként, a következő módon futtassa a karakterláncokat:
húr
Módosítsa a kódolást
A karakterláncokkal 5 kódolási lehetőség áll rendelkezésre:
- s = 7 bites bájt (ASCII, ISO 8859 esetén használható)
- S = 8 bites bájt
- b = 16 bites bigendian
- l = 16 bites kisendény
Az alapértelmezett egy 7 bites bájt.
A kódolás módosításához futtassa a következő parancsot:
húrok -es a fájlneved
karakterláncok - kódolás = s a fájlneved
A fenti parancsban megadtam az alapértelmezett "s" -t, ami 7 bites bájtot jelent. Egyszerűen cserélje ki az "s" -t az Ön által választott kódoló betűvel.
Módosítsa a bináris fájlleírás nevét
Megváltoztathatja a karakterláncok viselkedését úgy, hogy az a rendszer számára megadottaktól eltérő bináris fájlleíró könyvtárat használjon.
Ez a kapcsoló a szakértők számára készült. Ha másik könyvtárat kell használnia, akkor a következő string parancs futtatásával teheti meg:
st
Opciók olvasása fájlból
Ha ugyanazokat az opciókat fogja használni minden alkalommal, akkor nem akarja, hogy a parancs futtatásakor minden kapcsolót meg kell adnia, mert időbe telik.
Megteheti, hogy létrehoz egy szöveges fájlt a nano használatával, és meghatározza a fájl beállításait.
A terminálon belüli kipróbálásához futtassa a következő parancsot:
A fájlba írja be a következő szöveget:
-f -o -n
Mentse a fájlt a CTRL és O megnyomásával, majd a CTRL és X megnyomásával lépjen ki.
A string parancsok futtatásához ezekkel az opciókkal futtassa a következő parancsot:
húrok @ húrok
Az opciók a stringsopts fájlból lesznek olvashatók, és minden karakterlánc előtt látnia kell a fájlnevet, az eltolást és a "|" elválasztóként.
Segítséget kap
Ha többet szeretne megtudni a karakterláncokról, futtassa a következő parancsot a segítségért.
Alternatív megoldásként elolvashatja a kézi oldalt is:
Tudja meg, hogy a karakterláncok melyik verzióját futja
A futtatott karakterláncok verziójának megkereséséhez futtassa az alábbi parancsok egyikét:
húrok -v
húrok -V
húrok - verzió