[Çözüldü] terminal çıktılarını kaydetmek

Başlatan Neof07, 15 Nisan 2017 - 01:39:06

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Neof07

Bazen terminalde çok uzun çıktılar alıyorum ve bunlar arasından kelime aratarak bulmak istediklerimi bulmak istiyorum. Bunları kopyalayıp bir txt atıp aratabilirim ancak bu uzun bir iş. Hepsini seç sonra arat. Direk çıktıyı bir texte kaydedebilme şansımız var mı ? Ya da eskiden hatırladığım kadarıyla girdiğimiz komutları kaydetme vardı sanırım o nasıl yapılıyor ?

Yani girdiğimiz komutlarla beraber çıktılarıda kaydedebilme şansımız var mı ? Yoksa bile ikisini ayrı ayrı yapabilme şansımız var mı ? Girilen komutlar sanırım kaydedilebiliyorda çıktılar nasıl oluyor.

script dosya.txt

Diyince oluyormuş. Ancak bu seferde terminaldeki yazıları gibi çıktıyı göremiyorum. Özel karakterleri göstermiyor. Hangi editör ile açsam gözükmüyor bazı karakterler. Bunu nasıl gözüktürebilirim ?

Şunun gibi:
Çıktının aslı
total 16
drwxr-xr-x  2 emir emir 4096 Nis 15 01:50 .
drwxr-xr-x 25 emir emir 4096 Nis 15 01:53 ..
-rw-r--r--  1 emir emir   51 Nis 15 00:35 d
-rw-r--r--  1 emir emir    0 Nis 15 01:44 kaydet.txt
-rw-r--r--  1 emir emir  487 Nis 15 01:44 kaydex.txt


Texte görmeye çalıştığım:


emir@BGTX ~/Masaüstü $ ls -all
total 12
drwxr-xr-x  2 emir emir 4096 Nis 15 01:44 .
drwxr-xr-x 24 emir emir 4096 Nis 15 00:34 ..
-rw-r--r--  1 emir emir   51 Nis 15 00:35 d
-rw-r--r--  1 emir emir    0 Nis 15 01:44 kaydet.txt
-rw-r--r--  1 emir emir    0 Nis 15 01:44 kaydex.txt
emir@BGTX ~/Masaüstü $ exit
exit


Aslında gösteriyor ama ek harfler daha eklemiş kendisi. Onlarda olmasa daha rahat olur temiz çıktı olur hiç değilse. Onlar neyin nesi ki ?

ata1

#1
komutu /home/kullanıcı adı/ altında systemd.svg adlı bir görüntü oluşturur buna benzer bir şey mıdır istediğin ??
systemd-analyze plot > ~/systemd.svg

şunu dene

systemd-analyze blame > ~/dosya adı.txt

Mitsukuni

Çıktıları kaydetmek için  script  komutunu kullanabilirsiniz.

Script komutu kullanımı

Neof07

@ ata1, dediğinizi pek anlamadım ama "script kaydet.txt" komutunun kaydet.txt içine kaydettiği komutlarım, çıktılarıma ek olarak kendide harfler ekliyor. Acaba bunu engelleyebilir miyiz tam olarak istediğim buydu.

Mitsukuni

#4
Gelişmeleri ilk iletinizi düzenlemek yerine yorum olarak eklerseniz daha iyi olur, bu şekilde karışıklığa sebebiyet veriyor.

Çıktıyı nano ya da vim ile görüntüleyince bir sorun çıkmıyor ancak herhangi bir grafik arayüze sahip metin düzenleyicisinde bende de aynı şekilde karakterler eklendiğini görüyorum. Sebebini şu an bilemiyorum ancak bir bakınayım.
Nano ya da vim'de de karakterler ekli görünüyor. Sadece cat ile bakarken sorun yok.

Neof07

@Mitsukuni, evet haklısınız sadece cat ile doğru düzgün gösteriyor.

Ayrıca uyarınız için teşekkürler. Bir daha ki konumda buna dikkat etmeye çalışıcam.

Mitsukuni

#6
[mention=622971]@Neof07[/mention] script komutuyla alakalı bir durum bir var sanırım. Çıktı içeriğini temizlemek için şu komutu kullanmanız gerekiyormuş:
cat çıktı_dosyasının_adı | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > çıktı_dosyasının_yeni_adı

Neof07

@Mitsukuni Komut_cıktısı kısmı bildiğimiz textin içeriğinimi yazıcaz :D
Dosya adıymış.
Anladım işe yaradı teşekkürler. Nasıl araştırdınız peki bunu sorabilir miyim ? :D

Mitsukuni

Şimdi daha anlaşılır olmuştur sanırım. :)

Google'da araştırma yaptım script komutunun çıktısındaki değişik karakterlerle ilgili, Türkçe değil tabii ki. :) Sonra da bu sitedeki konuşulanlardan işinize yarayacak olan kısmı seçip aldım o kadar.

Ayrıca, sorununuz çözüldüyse sizi böyle alalım: Çözülen başlıkların etiketlenmesi

Neof07

@Mitsukuni Anladım, komut uzunmuş bunun mantığını nasıl anlıcaz acaba merak ettim. Ezberlenmez bu yani.

Mitsukuni

Aslında komuttan ziyade programlama var biraz işin içinde, ondan dolayı ezberlenemeyecek durumda olması normal. :)

En iyi ihtimal çalıştırılabilir dosya yapabilirsiniz. Ancak dosya adları hep aynı olacak, o yüzden düzeltilmiş dosyanın içeriğini sürekli kaydetmeniz gerekecek. Yeterince makul bence. :)
Dosya yöneticisinde ev klasörünüzdeyken sağ tıkla yeni boş dosya oluşturup isim verin yalnız herhangi bir uzantısı olmasın. Benim örneğimde bu dosyanın ismi örnek olsun. Daha sonra metin düzenleyiciyle dosyayı açıp
#!/usr/bin/perl
yazdıktan sonra alt satıra daha önceki
cat çıktı_dosyasının_adı | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > çıktı_dosyasının_yeni_adı
komutunu ekleyin ve kaydedip kapatın. Sonra uçbirimde
chmod +x örnek komutuyla dosyaya çalıştırılabilmesi için gerekli hakları sağlayın.
Artık elimizde istediğinizi yapacak küçük bir perl programcığı var. Ama dediğim gibi düzeltilmiş dosyanın adı hep aynı olacak, dolayısıyla üzerine yazmasın diye her işlemden dosya adını değiştirmeniz yararınıza olacaktır.

Neof07

@Mitsukuni Anladım biraz programlama bilgim var C/C++ ve C# ile ama komut garip geldi yinede :D Linux dökümanlarında terminali kullanmayı gösterirken orada bir programlama olduğunu söylemişlerdi. Aynı bunun gibi. Ama orada daha çokçası bash tarzı ifadeler vardı. Perl, bash bunların heps birer dil mi peki ?

Sanırım bash bir shell idi ve buda yazılmış bir program gibi birşeydi. O halde perl dilse bash de dosya. Komutları biraz okuyabilsem öğrenmesi kolay olucak tabi ki. Sanırım konudan uzaklaştım. Uzatmayayım en iyisi. Teşekkürler.

ata1

#12
Demek iistediğim komut > kaydedileceği yer dosya adı.

> ~/
sonu svg olan resim şeklinde kaydeder txt ise metin belgesi ~/ ev konumunu anlatır.


Neof07

@ata1 hmm buda güzelmiş :D Hem bu yöntemle ek karakterlerde eklemiyor. Teşekkür ederim, farklı çözüm yolları bulmuş olduk yorumlarınız sayesinde.

ata1