簡體   English   中英

清除 Linux 虛擬控制台終端的回滾緩沖區

[英]clear scrollback buffer of Linux Virtual Console Terminals

我想以編程方式清除 Linux 控制台 VT 上的回滾緩沖區。 即不僅清除當前可見屏幕,還清除整個回滾緩沖區。 即在清除屏幕后仍然可以使用 Alt-PgUp 看到的所有內容也應該消失。 有人知道如何用漂亮的代碼實現這一點嗎?

我不認為這在主線中,但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' )

請記住,其他工具(例如通過 ssh)將具有不同的“回滾緩沖區”實現。 我非常懷疑您是否可以通過機器中的代碼清理膩子緩沖區。 另請參閱https://superuser.com/questions/122911/bash-reset-and-clear-commands

這會清除屏幕,但不會回滾。

echo -e '\\0033\\0143' #取決於您使用的終端模擬器,在 gnome 終端上測試

來自https://superuser.com/questions/122911/bash-reset-and-clear-commands

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM