Yalnız oxunmaz ikili məzmunun olduğunu öyrənmək üçün bir redaktorda bir fayl açmağa cəhd etdiniz mi?
Linux "strings" komutu hər hansı bir faylda insan oxunan simvolları görmək imkanı verir.
"Strings" komutunun istifadəsinin əsas məqsədi siz baxdığınız hansı faylın işlənib hazırlanmasıdır, lakin mətn çıxarmaq üçün də istifadə edə bilərsiniz. Məsələn, faylları qəribə ikili formatda saxlayan xüsusi proqramdan bir faylınız varsa, faylda qoyduğunuz mətni çıxarmaq üçün "strings" istifadə edə bilərsiniz.
Düsturlar Komandanlığının nümunə istifadəsi
Strings komutunun gücünü nümayiş etdirmək üçün böyük bir yoldur LibreOffice Writer istifadə edərək sənəd yaratmaqdır.
Sadəcə LibreOffice Writer-ı açın və bəzi mətnləri daxil edin və sonra standart ODT formatında saxlaya bilərsiniz.
İndi bir terminal pəncərəsini açın (eyni anda CTRL, ALT və T düymələrini basın) və sonra faylları aşağıdakı kimi göstərmək üçün pişik əmrini istifadə edin:
pişik yourfilename.odt | daha çox
(Yaratdığınız faylın adı ilə yourfilename.odt faylını dəyişdirin)
Görəcəksəniz, oxunmaz bir mətnin bütün divarıdır.
Dosye keçmək üçün boşluq düyməsini basın. Təsadüfi bir şəkildə fayl daxilində, daxil etdiyiniz mətnlərdən birini görəcəksiniz.
Şerlər əmri insan oxunaqlı olan hissələri göstərmək üçün istifadə edilə bilər.
Ən sadə formada aşağıdakı əmri çalıştıra bilərsiniz:
strings yourfilename.odt | daha çox
Daha əvvəl olduğu kimi bir mətn duvarı görünəcək, ancaq insan kimi oxuya bilən yalnız mətn. Şanslı olursanız, mətninizi görə biləcəksiniz.
Ancaq bunun əsas olduğunu görə biləcəyiniz ilk satırdadır:
mimetypeapplication / vnd.oasis.opendocument.text
Faylın növü 2 səbəbdən bir LibreOffice Writer ODT faylı olduğunu bilirik:
- Fayl yaratdıq
- Uzadılması .ODT
Təsəvvür edin ki, siz fayl yaratmırsınız və ya bərpa edilmiş diskdə fayl tapdınız və faylın uzantısı yox idi.
Windows bərpa tez-tez 0001, 0002, 0003 və s. Kimi adlarla faylları bərpa edərdi. Faylların bərpası çox böyükdür, lakin bu faylların növləri nə bir kabus idi.
Dizgiləri istifadə edərək, faylın tipini işləyən bir şansınız var. Bir faylın bir opendocument.text fayl olduğunu bildiyiniz, ODT uzantısı ilə saxlaya və LibreOffice yazıcısında aça bilərsiniz.
Bir ODT faylı bilmədən halda əsasən sıxılmış bir fayldır. Sizinfilename.odt faylını yourfilename.zip ünvanına adlandırdığınız təqdirdə onu arxivləşdirmə vasitəsi ilə aça və hətta faylın açılmasını edə bilərsiniz.
Alternativ Davranışlar
Sətirlər əmri bir dosyanın içərisində bütün strings qaytarır, ancaq bir faylda başlanğıclanmış, yüklənmiş məlumat bölmələrindən strinqləri qaytarmaq üçün davranışı dəyişə bilərsiniz.
Bu dəqiq nə deməkdir? Heç kim bilə bilməz.
Faylın tipini öyrənmək və ya faylda xüsusi mətni axtarmaq üçün strinqlərdən istifadə etdiyini fərz etməli olur.
Sətirlər əmrini default davranışdan istifadə edərkən, siz ümid etdiyiniz çıxışları ala bilmirsinizsə, onda aşağıdakı əmrlərdən birini işləməyə cəhd edin:
strings -d sizin fayl
strings - data yourfilename
Əl səhifəsində bildirilmişdir ki, yuxarıdakı əmr strings-dən geri qaytarılmış çöp miqdarını azaltmağa kömək edə bilər.
"Strings" əmri minus d keçidinin default davranış olması üçün tərs olaraq işləmək üçün qurula bilər. Sisteminizdə bu vəziyyət varsa, aşağıdakı əmrləri istifadə edərək bütün məlumatları geri ala bilərsiniz:
strings-yourfilename
Çıxışını Formatlaşdırır
Hər bir mətn xətti ilə yanaşı faylın adını göstərmək üçün çıxışı içərisində mətni əldə edə bilərsiniz.
Bunu etmək üçün aşağıdakı əmrlərdən birini işləyin:
strings -f faylınız
strings - print-fayl-adı yourfilename
Çıxış indi belə bir şeyə baxacaq:
Sizin faylınız: mətn parçası
Sizin faylınız: başqa bir mətn parçası
Çıxışın bir hissəsi olaraq, həmin mətnin bir faylda göründüyünü də göstərə bilərsiniz. Bunu etmək üçün aşağıdakı əmri çalıştırın:
strings-yourfilename
Çıxış belə bir şeyə bənzəyir:
16573 sizin
17024 mətn
Ofset əslində sekkisiz ofsetdir, baxmayaraq ki sisteminiz üçün tərtib edilmiş strings asanlıqla hex və ondalık ofset də ola bilər.
İstədiyiniz ofsetin daha dəqiq bir şəkildə alınması aşağıdakı əmrləri istifadə etməkdir:
strings-yourfilename
strings-yourfilename
strings-yourfilename
Eksi t - offseti qaytarır və aşağıdakı xarakterli ofset növünü təyin edir. (yəni, d = decimal, o = sekizlik, h = hex).
Standart olaraq strings komanda hər bir yeni simli yeni bir xəttə yazır, lakin seçdiyiniz məhdudiyyəti təyin edə bilərsiniz. Məsələn, boru sembolünü ("|") istifadə edərək, məhdudlaşdırıcı aşağıdakı əmrləri yerinə yetirir:
strings -s "|" Sizin faylınız
String Limitini Ayarla
Varsayılan olaraq strings əmri satırdakı 4 yazdırılabilir simvolu bir string axtarır. Yalnız 8 yazdırılabilir simvol və ya 12 yazdırılabilir simvolu olan bir simli qaytarır ki, u mənim ayarlayabilirsiniz.
Bu məhdudiyyəti düzəltməklə mümkün olan ən yaxşı nəticəni əldə etmək üçün məhsulu uyğunlaşdıra bilərsiniz. Uzun bir düsturu axtarırsınızsa, faydalı mətni atma riskini çəkirsiniz, ancaq çox qısa bir müddətdə qısa bir müddətdə geri qayıtdığınız daha çox junkla başa ola bilərsiniz.
Dəmir limitini tənzimləmək üçün aşağıdakı əmri çalıştırın:
strings -n 8 offilename
Yuxarıda göstərilən nümunədə mən limiti 8-ə dəyişmişdim.
Seçdiyiniz sayı ilə 8 əvəz edə bilərsiniz.
Eyni şeyi etmək üçün aşağıdakı əmrləri də istifadə edə bilərsiniz:
strings --bytes = 8 sizin fayl
Boş yerə daxil edin
Varsayılan olaraq, strings əmri bir nişan və ya boşluq kimi yazdırılabilir bir xarakter kimi boşluqları ehtiva edir. Ona görə də "pişik matda oturdu" deyən bir simli varsa, strings əmri bütün mətni qaytarırdı.
Yeni satır simvolları və satır dönüşleri, default olaraq yazdırılabilir simvol hesab edilmir.
Satırları yeni xətt simvollarını və satırbaşlarını yazdırılabilir xarakterli işləmə strings kimi qəbul etmək üçün aşağıdakı şəkildə tapın:
strings -w yourfilename
Şifrəni dəyişdirin
Dizələrlə istifadə üçün 5 kodlama variantları mövcuddur:
- s = 7 bit bayt (ASCII, ISO 8859 üçün istifadə olunur)
- S = 8 bit bayt
- b = 16 bit bigendian
- l = 16 bit kiçik
Varsayılan 7 bit baytdır.
Şifrelemeyi dəyişdirmək üçün aşağıdakı əmri çalıştırın:
strings - sizin fayl adınız
strings - kodlaşdırma = s yourfilename
Yuxarıdakı əmrdə 7 bit bayt deməkdir mənim default "s" bildirdim. Sadəcə "s" ə seçdiyiniz şifrələmə məktubu ilə əvəz edin.
İkili Fayl Təsviri Adı dəyişdirin
Sisteminiz üçün nəzərdə tutulanlardan fərqli olaraq, ikili fayl identifikasiyalı kitabxananı fərqli şəkildə istifadə edəcəyi üçün strings davranışını dəyişə bilərsiniz.
Bu keçid mütəxəssislər üçün birdir. Istifadə etmək üçün başqa bir kitabxananız varsa, aşağıdakı strings əmrini verərək bunu edə bilərsiniz:
strings -T bfdname
Fayldan Oxu Seçimləri
Hər dəfə eyni variantlardan istifadə edəcəyi təqdirdə, hər dəfə komanda çalıştırdığınız zaman bütün açarları göstərmək istəmirsiniz, çünki vaxt tələb olunur.
Nano edə bilən bir mətn faylı yaradın və bu fayl içərisində olan variantları müəyyən edə bilərsiniz.
Bir terminal içərisində bunu sınamaq üçün aşağıdakı əmri çalıştırın:
nano stringsopts
Faylda aşağıdakı mətni daxil edin:
-f -o -n 3 -s "|"
Faylı CTRL və O düymələrinə basaraq saxlaya bilərsiniz və CTRL və X-ə basın.
Bu variantlarla strings əmrlərini çalıştırmaq üçün aşağıdakı əmri çalıştırın:
strings @stringsopts sizin fayl
Seçimlər fayl stringsopts-dan oxunacaq və faylın hər simli, ofset və "|" bir ayırıcı kimi.
Kömək almaq
Şerlər haqqında daha çox oxumaq istəyirsinizsə, yardım almaq üçün aşağıdakı əmri çalıştırabilirsiniz.
strings - yardımçı
Alternativ olaraq əl səhifəsini oxuya bilərsiniz:
insan strings
Qatarın hansı versiyasını tapın
Çalıştığınız dizgilərin versiyasını tapmaq üçün aşağıdakı əmrlərdən birini yerinə yetirin:
strings -v
strings -V
strings - dönüşüm