Yalnızca son komutun terminal çıktısını temizle


13

Önceki komut geçmişini görmek için yüzlerce çıktı satırını kaydırmak yerine, son komutun çıktısı silinebilir mi? Örneğin ls, yürüttükten sonra çıktısını temizleyin, çünkü artık ihtiyacınız yok.

DÜZENLE:

Bu her zamanki clearveya ctrl+Lameliyatınız değil. Fikir, ama bir yük geçmiş kaydırma zorunda kalmadan geri önceki komutun ne arayan tarihinin olsa kaydırmak için ise ls, ya cat, ya sudo apt-get installben gerçekten istemedikçe çıktı. Bunun gibi bir şey olabilir:

cat fileIWantToRemember
ls directoryIWantToForget
# some command that wipes the output of ls
# scroll back to see the output of cat immediately

Çıkışı temizlemek mi yoksa komutu komut geçmişinizden kaldırmak mı istiyorsunuz? Komut geçmişinizi değiştirmek istiyorsanız, belki bu iş parçacığı aradığınızı ele alır mı?
ernie

Terminal sadece bir metin akışı görüntüler ve bazılarını kendi dahili arabelleğinde saklar. Komut çıktısını bilmenin veya ayırt etmenin bir yolu yoktur. Rxvt-unicode terminalinde böyle bir şey uygulayabilen bir perl yorumlayıcısı vardır. Ama bildiğim kadarıyla yapılmadı.
Keith

Uzun zaman önce, Mac OS X'te bu özelliğe sahip bir terminal emülatörü kullandım, ancak artık ne dendiğini hatırlayamıyorum. Yine de ücretsiz değildi. Ancak, hızlı bir google araması yaparken , bu özelliği uygulamaya çalışıyor gibi görünen finalterm.org'a girdim . Ancak, "Son Dönem ağır gelişme içinde ve ne istikrarlı ne de özellik tamamlandı!", Bu yüzden denemedim. Yine de ilginç görünüyor. Google arama, değerinde ne olduğunuterminal emulator output folding
rici

Son Terim, komutları (ve diğer birçok şaşırtıcı şeyi) katlamak için yeterince geliştirildi ve bunu yapmak için bir klavye kısayolu olduğunda sorun çözüldü. Deli olduğumu düşünmeye başladım ...
nacnudus

1
tam cevabınız değil, ancak büyük dosyaların içeriğini görüntülemek için 'cat' yerine 'less' komutunu kullanıyorum. Başka bir şey, herhangi bir komutun konsola çıktı olarak çok sayıda satır vermesi durumunda, "$ the-command | less" yazarak bundan kaçınabilirsiniz.
Devasish

Yanıtlar:


4

@Rici sayesinde, bu davranış "katlama" olarak adlandırılabilir. Komutların çıktıları unutulmaz, ancak tekrar gerekinceye kadar gizleyebilirsiniz. Metin editörlerinde katlama yaygındır, ancak terminal emülatörlerinde nadir görülür.

Final Term , diğer birçok süslü numara arasında katlanmayı içeren yeni bir terminal emülatörüdür. Dikkat: "Son Dönem ağır geliştirme aşamasında ve ne kararlı ne de tam özellikli!" Test ettiğimde komutlarımı katlamak için yeterince gelişmişti, ancak çökmemek için çok kararsızdı. İzlenecek biri.


0

Bence açık bir komut arıyorsun ...

clear

"clear", son komutunuzu görünümden siler. Gerekirse tekrar görmek için terminalde yukarı kaydırabilirsiniz.


Önemli olan, geçmişinizde başka bir şey ararken göz atmak zorunda kalmamaktır.
nacnudus

Yani komuttaki çıktıyı bastırmak mı istiyorsunuz? Evetse, bu size yardımcı olabilir: stackoverflow.com/questions/617182/…
phe0113

2
Çıktıyı hiç görmek istemezsem bu harika. Çıktıyı ilk kez görmek ve sonra unutmak istiyorum. Verdiğim örnekte, bir lsnedenden dolayı çıktısını incelemek istiyorum , ama sonra ondan kurtulmak istiyorum, böylece kedinin çıktısını bulmak için onu kaydırmaya devam etmem gerekmiyor. Açıkçası tekrar kedi yapabilirim, ama bir dizi komutu korumak istediğini hayal edebiliyorum ve hepsini tekrarlamak zorunda kalmamak güzel olurdu.
nacnudus

0

Bash'da, komuta Ctrl + Lbenzer şekilde ekranı temizlemek için kısayola basabilirsiniz clear. ( http://ss64.com/bash/syntax-keyboard.html )

Veya history | tail -3son üç komutu görmek için kullanabilirsiniz . ( http://www.howtogeek.com/howto/44997/how-to-use-bash-history-to-improve-your-command-line-productivity/ )


Aşağıdaki @ Justin'e yaptığım yoruma bakın, mesele, başka bir şey için geçmişe bakarken onu kaydırmak zorunda değilsiniz. Böyle bir şey HISTCONTROL=ignorespaceaslında sonra kullanabileceği ikinci bağlantıyı iyi olurdu.
nacnudus

Neyi başarmak istediğiniz konusunda biraz kayboldum. Başka bir düşünce, kullandığım birçok konsolda, genellikle bash'daki komut geçmişine göz atmak için ok tuşlarını kullanabilirsiniz, bu durumunuz için geçerli mi?
phe0113

Düzenlemem soruyu netleştiriyor mu?
nacnudus

@nacnudus, evet, şimdi
anladım

0

Geçmişinizden öğeleri kaldırmak istiyormuşsunuz gibi geliyor. Bunu yapmak için, önce ~ / .bashrc dosyanızı düzenleyerek ve şunları ekleyerek çıkıştan ziyade geçmişin yazılmasını etkinleştirmeniz gerekir:

shopt -s histappend; export PROMPT_COMMAND='history -a';'

Ardından, öğeleri silmek için şunları yapabilirsiniz:

history -d offset, burada uzaklık silmek istediğiniz geçmiş girdisidir

Bu forum dizisine dayanarak .


Bu, neredeyse doğru fikir olan geçmiş dosyasından siliniyor gibi görünüyor, ancak mevcut terminalden silebilir mi?
nacnudus
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.