Yalnızca klavyeyi kullanarak önceki bir terminal komutundan çıktı kaydedebilir miyim?


12

Sadece son iki saat bir GUI olmadan canlı bir CD'den bir ddkomut çalıştıran (ya da benzer "yeniden yapmak zor" senaryo resmi) geçirdi ; sahip olduğum tek şey benim güvenilir "çoklu pencere" ( CTRL+ALT+F#) Bash terminal.

Ne yazık ki, komut sırasında ddbirkaç kötü hata mesajı ve tutmak istediğim biraz daha fazla bilgi attı. Veri yazabileceğim bir USB sürücüm var, ancak komut zaten çalıştırıldıktan sonra önceki çıktıyı metin dosyası olarak nasıl kaydedebilirim?

Bu hoş bir GUI içinde bir terminal emülatörü olsaydı, metni seçmek, kopyalamak ve bir belgeye yapıştırmak için faremi kullanardım. Ve komutun hatalar üreteceğini bilseydim, başlamak için bir dosyaya gönderirdim, ama ne yazık ki, ek çıktı bir sürpriz olarak geldi.

Komutu yeniden çalıştırmadan metin çıktısını önceki komutumdan bir dosyaya nasıl kaydederim? Bu mümkün mü?


Ekranda metin seçmenin yollarını arıyordum, ancak şu ana kadar bunu yalnızca bilgi istemine girdiğiniz metni kullanarak yapmanın yollarını buluyorum.
IQAndreas

Çıktı yönlendirmesini kullanmayı denediniz mi ??
eyoung100

2
@ eyoung100 "Borulama" için başka bir kelime mi? Olduğu gibi dd if=/dev/sda of=/backups/sda.img > result.txt. Eğer öyleyse, sorun zaten ddkomutu çalıştırdım . Her ne pahasına olursa olsun, bazı durumlarda imkansız olan komutu tekrar çalıştırmaktan kaçınmak istiyorum.
IQAndreas

2
Bunun Linux olduğunu varsayarsak: install gpm . (Gerekirse başlatın, örn. service start gpm). Farenin sol düğmesini basılı tutarak bir bölgeyi süpürün. Yazın cat > outputfileve sadece seçili bölgeyi yapıştırmaya sağ fare butonuna tıklayın.
Mark Plotnick

1
Eğer amaç sadece "bilgiyi tutmak" ise, son çare bir kamera almak ve ekranın fotoğrafını çekmek. (Ve teorik olarak, daha sonra OCR'yi çalıştırabilirsiniz.)
Scott

Yanıtlar:


15

Bir linux çekirdeği, ilgili /dev/vcsa*[ttynum]cihazınızda oylarınız için bir ekran günlüğü depolamalıdır .

Bu yüzden aşağıdakiler işe yarıyor:

echo hey >/dev/tty2
dd bs=10 count=1 </dev/vcs2

... hangi baskı ...

hey       

Karşılık gelen /dev/vcsa[ttynum]cihaz, biçimlendirilmiş metnin kodlanmış bir sürümünü ekranda saklarken, /dev/vcs[ttynum]düz bir dökümü olacaktır. vcsa[ttynum]Cihazlar her ekrandaki kömürü ve özelliklerini, hem de başvurulan TTY en gösterir her mantıksal sayfanın başında bir dize tanımlayan bayt bir çift kodlar çizgiler, sütunlar sayılır.

@Kasperd'ün işaret ettiği gibi, aslında BEL'in \aher karakter arasında kodlandığını varsayarak yanlış yapmıştım : Aslında varsayılan renk kombinasyonu çan karakteriyle çakışıyor.

Amaçlarınız için kullanmak /dev/vcs[ttynum]muhtemelen en kolay. lFarklılıklara bir bakış:

echo hey >/dev/tty2
dd bs=10 count=1 </dev/vcs2 |
sed -n l

... baskılar ...

hey       $

...ve...

echo hey >/dev/tty2
dd bs=10 count=1 </dev/vcsa2 |
sed -n l

... baskılar ...

0\200\000\004h\ae\ay\a$

1
vcsatüm karakterler arasına aynı karakteri koymaz. Ekranda hangi karakterin olduğunu ve hangi rengin olduğunu gösteren bayt çiftleri verir. Varsayılan renk kombinasyonu zil karakteriyle çakışır.
kasperd

@kasperd - teşekkür ederim. Daha iyi mi?
mikeserv

Bu daha iyi. 👍
kasperd

2

(Üzerinde / log) başka bir terminal ve kaçak git sudo screendump N > screenoutput.txt, Nistediğiniz terminali sayısıdır.

İş yükü yok, korkuyorum. Eğer bu sanal konsollar bir tane tutarsa, onu hiç görmedim. Ama o terminalde görebileceğiniz her şeyi size getiriyor.


eğer işe yarıyorsa, muhtemelen - onu kaptığı için /dev/vcsa*[1-9]*- (süper kullanıcı izinlerinin ne olduğunu tahmin ediyorum) . Linux konsolları da çoğu 3. * serisi için bir biriktirme listesi desteklediğini düşünüyorum. Birinin onu nasıl alabileceğinden emin değilim ( /dev/vcsa*[1-9]*cihazları kullanmak yerine ) ama belki bir yolu var.
mikeserv

Farklı bir konsola geçmemek daha iyidir, çünkü geçiş işlemi biriktirme listesini siler ve yalnızca ekranda görünenleri korur.
Gilles 'SO- kötü olmayı kes'

@mikeserv Evet. Man sayfası hem /dev/vcs$i ve hem de kullandığını söylüyor /dev/vcsa$i. Yine de okunabilir bir sonuç verir. ;-)
Sidhekin

@Gilles Ah, yani birikmiş işler var mı? Ama screendumpaynı konsolda kalsam bile, anlaşamıyorum.
Sidhekin

1
Shift-PageUp öğesini bir veya daha fazla kez yazarak kaydırma işlemini görebilirsiniz. Fareyi gpm ile kullanmak dışında, geri kaydırma metnini kırpmak için bir yol bilmiyorum.
Mark Plotnick
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.