Terminal * çıkış * geçmişi?


19

Terminalimdeki komut geçmişinde gezinmek için işlevleri kapsamlı olarak kullanıyorum; Komut çıktı geçmişinde de gezinmenin bir yolu var mı acaba? (büyük bir histsize tutmanın ve pgup tuşuna yaslamanın yanı sıra)

Özel durumumda komutların kaynağı değiştiği için sadece 'komutu yeniden çalıştıramıyorum'; Sık sık önceki bir değişikliğin çıktısına bakmam gerekiyor.

Hackler hoş geldiniz.

Teşekkürler!

2010'u düzenle:

'Tee' kredisini verdim; oturumunuzu başka bir yerde günlüğe kaydetmenin tüm yöntemleri arasında en yaygın şekilde uygulanabilir (yani gnu coreutils'in bir parçasıdır ve çalışmak için belirli bir kabuk veya yardımcı program gerektirmez). Aradığım şey gerçekten değildi, ama böyle bir şeyin gerçekten var olmadığını fark ettim.

Düşünebildiğim en yakın yaklaşım screen, dosyaya oturum açan (byobu / tmux) gibi bir şey kullanmak ve bu günlük dosyası aracılığıyla sayfa / arama yapmak için özel bir komut yazmak (ve tuş bağlama) ( lessekran yerine komut istemiyle düşünmeyi ). Herkese teşekkürler.

2012'yi düzenle:

@Dustin Kirkland'ın cevabı en azından genel olarak açıkça en iyisidir; terminalin geri kaydırma arabelleği, komut çıktı geçmişinde gezinmenin en az müdahaleci bir yoludur. Byobu'nun çok sayıda varsayılan geçmiş satır numarası kaydedilmiş gibi görünüyor (10K; tmux 2K, GNU ekran 100'e sahip) ve normal ifade aramalarına izin veriyor (cursory bir görünüm, GNU ekranının kaydırma araması olmadığını ve tmux'un yalnızca düz metin araması olduğunu gösteriyor).

Yanıtlar:


4

Byobu kullanarak bahsediyorsun ...

Bu kesinlikle bunu yapmanın bir yolu. Byobu, pencere veya bölünme (bölme) başına 10 bin satır geri kaydırma geçmişi depolar.

Alt- PageUp, Alt- PageDown, veya tuşlarına basarak kaydırma özelliğini kolayca girebilirsiniz F7. Kaydırma moduna girdikten sonra vi benzeri komutları kullanarak ileri ve geri arama yapabilirsiniz. /regexİleriye ve ?regexgeriye doğru arama yapmak için kullanın .


Kaydırma geçmişi nerede depolanır ve oturumlar arasında kalmasını sağlamanın bir yolu var mı? Yani: Terminali Byobu ile açın, bazı komutları çalıştırın, arayın exit, terminali kapatın, Byobu ile yeni bir terminal açın ve hala bir önceki oturuma sahip olun.
Darrel Holt

11

teeKomut çıktınızı aynı anda bir dosyaya ve terminale göndermek için kullanabilirsiniz .


8

scriptTerminal oturumunuzu bir dosyaya kaydetmek için kullanabilirsiniz . Bunun her zaman olmasını istiyorsanız, bilgisayarınıza uygun bir scriptkomut ekleyin .login.

$ man script


5

kullanım screen -L

kabuk oturumundan ( exitkomut) çıktıktan sonra , başlattığınız dizinde bir günlük dosyası alırsınızscreen

sonra çıktıyı moreveya ile görüntüleyebilirsinizless -R


5

screen günlük çıkışına ayarlanabilir.

Çalışan içinde, bunu başlatmak için bir yolu screenoturumuna, basına olan Ctrl- a, o zaman :, o zaman girin log.

Gönderen man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.

@SQB: Cevabımı genişlettim.
sonraki duyuruya kadar duraklatıldı.

3

bash, yaptıklarınızın geçmişini tutar, ancak komutlardan çıktıyı tutmaz. Potansiyel olarak büyük olabilir ve sıklıkla yararlı değildir.

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.