Terminal içeriğini bir dosyaya yazma


13

Benim durumum: Terminali açıyorum ve her saniyede neyin değiştiğini canlı terminalde görüntüleyen programı (metin) çalıştırıyorum. Bu program çalışırken sadece "Enter" tuşu kullanılabilir (bu programdan çıkar). Böylece konsola başka bir şey yazamazsınız.

Bu terminal içeriğini her saniyeden sonra olduğu gibi bir dosyaya yazmak istiyorum.

Nasıl yaparım? 2. konsolu açıp komut kullanarak? Setterm -dump komutu ile çalışamıyor.


1
Hm, bu hangi uygulama? İyi kontrol etmediyseniz, uygulamanın çıktıyı bir yere kaydetme seçeneğinin olup olmadığından emin olmalısınız.
Severo Raz

Bunu kontrol ettim. Öyle değil. Aksi takdirde bu problemi yaşamazdım. Program live-f1, launchpad.net/live-f1
Gustav

Yanıtlar:


16

Çıktınızı teeprograma aktarabilirsiniz ( açıklama ):

my_program ... | tee my_program.log

Bu terminaldeki çıkışları gösterecek, aynı zamanda dosyaya yazacaktır. my_program.log


1. cevap ile aynı sonuç. : /
Gustav

1
Gönderdiğiniz ekran görüntüsünde çok sayıda terminal kaçış dizisi var gibi görünüyor. Launchpad bilgisinden ncurses kullanır (kaynağı indirdim bzr branch lp:live-f1, sonra baktım README). TERMAptal ( export TERM=dumb) olarak ayarlayarak programı renksiz çalıştırabilir misiniz ? Kaynakta ayrıca TODOsürücülerin geçmişini tutma istek listesine dikkat çeken bir dosya vardır . Belki de planladıklarını görmek için geliştiricilere başvurabilir veya sonuçları kaydetmenin bir yolu olup olmadığını öğrenebilirsiniz.
steabert

12

Konsolunuzda çıktıyı görmek yerine komutunuzu terminalden yürütürken doğrudan bir dosyaya yönlendirebilirsiniz. Program çalışırken çıktı dosyaya yazılır. Bir örnek, l.t komutuyla klasörünüzün içeriğini list.txt adlı bir dosyaya yazmak istediğinizi varsayalım

ls > list.txt

>Operatör sizin ihtiyaçlarınıza göre çıkış yönlendirir.


Teşekkürler, bu işe yarıyor ama kısmen. İçerik HTML olmalı, ancak dosyayı açtığımda şöyle bir şey (dosyadan alıntı): VETTEL [21G (B [m [39; 49m. Programın adı “live-f1”. Live-f1> live_f1_dump. log
Gustav

@Gustav, konsolda html ve dosyada yukarıdaki satırları yazdırdığını mı söylüyorsunuz?
üstsüz

Evet. Önerilen komutunuzu çalıştırdığımda alacağım şey: upload.ee/image/1223166/ss_01.png . Amacım, Formula-1 sürücülerinin pozisyonlarını live-f1 feed'inden bir dosyaya almak. Geçen yıl, 1. terminalde live-f1 programını çalıştırarak, sonra 2. terminali ateşleyerek ve 1. terminal ekranını yakalayan ve bir dosyaya kaydettiği bir komutu kullanarak çalıştım (geçen yılın dosyasından kopyala: upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). Komut şöyle bir şeydi: tty "1. terminal işaretçisi" "dosya adı". Bunun için kullandığım şey "tty" başka bir şey olması muhtemeldir.
Gustav

2

scriptKomutu kullanmayı deneyin . Ne yazık ki, transkript gobbledegook kontrol karakteri bir sürü koyar. Ancak, bu bağlantıyı NCSSM CS Sitesinde görürseniz, soruna kusurlu ancak oldukça iyi bir çözüm bulacaksınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.