我想以編程方式清除Linux控制檯VT上的回滾緩衝區。即不只是清除當前的可見屏幕,而是整個回滾緩衝區。即使用Alt-PgUp仍然可以看到清晰屏幕後的所有內容都應該消失。有人知道如何在漂亮的代碼中實現這一點?清除Linux虛擬控制檯終端的回滾緩衝區
回答
我不認爲這是主線還,但linux-next有一個補丁,以支持新的控制檯轉義序列是清除屏幕和滾動緩衝區:CSI 3 J
的東西,而無需升級你的內核工作,你可以使用:
chvt 42; chvt <current tty no>; echo -en "\e[1;1H\e[2J"
或者:
echo -e "\e[12;42]"; sleep .01; echo -en "\e[12;<current tty no>]\e[1;1H\e[2J"
你可以得到當前TTY號碼:
$(ls -l /proc/self/fd | sed -ne 's/.*tty//p')
謝謝,這就是我一直在尋找的! – user175104 2011-05-19 11:14:22
看來,只是'echo -en「\ e [3J」'現在起作用了。 – 2014-01-22 07:59:51
@ edA-qamort-ora-y:是,'\ e ['是7位'CSI'。 – ninjalj 2014-01-22 09:47:03
請記住,其他工具(例如ssh)將有不同的「回滾緩衝區」實現。我非常懷疑你可以用機器中的代碼清理膩子緩衝區。 另請參閱https://superuser.com/questions/122911/bash-reset-and-clear-commands
不錯的參考鏈接,thx – sehe 2011-05-17 20:44:31
我只關心Linux *控制檯虛擬終端*。沒有其他的。 – user175104 2011-05-17 20:47:08
@ user175104你沒有在問題中指定,但足夠公平 – Mr47 2014-01-28 07:34:27
這將清除屏幕,但不清除回滾。
echo -e '\0033\0143'
#depends您所使用的終端仿真器,GNOME終端上測試
從https://superuser.com/questions/122911/bash-reset-and-clear-commands
nope,清除屏幕,而不是回滾緩衝區。 – user175104 2011-05-17 20:48:43
- 1. 清除串行端口的緩衝區
- 2. 清除GPG緩存/在Linux終端
- 3. 完全禁用linux虛擬控制檯
- 4. 控制檯中的屏幕緩衝區
- 5. 使用鍵盤導航OS X終端回滾緩衝區
- 6. Vim,vimux,tmux,並清除一個回滾緩衝區面板
- 7. 如何清除緩衝區?
- 8. Arduino清除緩衝區
- 9. 清除bash「源緩衝區」
- 10. 清除stdin緩衝區?
- 11. 清除輸入緩衝區
- 12. PYTHONPATH錯誤Linux終端v控制檯
- 13. 如何清除C控制檯應用程序中的鍵盤緩衝區?
- 14. IDE控制檯和終端的區別
- 15. 「php控制檯緩存:清除」不起作用。在Symfony2的終端
- 16. C++ linux控制檯清除屏幕上的一個區域
- 17. 終止前清理緩衝區
- 18. 在虛擬控制檯
- 19. 如何清除(char *)中的緩衝區?
- 20. 如何清除protobuf的緩衝區?
- 21. 如何清除流串的緩衝區?
- 22. 在JavaScript的Websocket上清除緩衝區
- 23. 如何清除cin的緩衝區?
- 24. PhoneGap在終端中顯示緩衝區
- 25. Mac終端顯示緩衝區結束
- 26. 用C-d殺死*終端*緩衝區
- 27. 暫時清除Linux中的終端
- 28. 終端仿真器滾動緩衝區不保留ncurses屏幕
- 29. Python Webkit使用虛擬幀緩衝區製作網站截圖
- 30. 清除控制檯的Java
警告:此用戶是反對票快樂,回答這裏後果自負。 – 2011-05-17 20:53:44
@richard:我喜歡過着危險的生活。 – ninjalj 2011-05-18 00:03:10