當前位置: 首頁>>技術教程>>正文


如何真正清除終端?

, ,

問題描述

我可以發出clear命令或按Ctrl + L清除當前的Ubuntu終端,但這隻是向上移動以前的輸出,如果使用鼠標滾動或PgUPPgDown鍵,很難區分前一個命令的輸出結束和輸出當前命令開始。

有沒有辦法真正清除終端,所以我不會看到以前的命令結果?

最佳解決方法

是的,你正在尋找的命令是

reset

clearCtrl + L相反,reset實際上完全是re-initialise terminal,而不是僅僅清除屏幕。但是,它不會re-instantiate shell(bash)。這意味著bash的狀態與以前一樣,就好像你隻是清理屏幕一樣。

正如@Wallacoloo在評論中提到的那樣,這個命令應該更快地做同樣的事情:

tput reset

從其他答案:

  • 正如towolf所解釋的那樣,您可以將終端的鍵盤快捷鍵設置為reset

  • 如果您運行的是Kubuntu,並且您的終端是Konsole,則需要轉到編輯→清除曆史記錄,因為reset在那裏的工作方式與as UncleZeiv notes不同。

次佳解決方法

我正在尋找這一段時間,我發現一些天才發布了這個:

clear && printf '\e[3J'

清除整個屏幕緩衝區,非常幹淨。在OSX上工作,並認為它在大多數* nix終端上工作正常。

我希望有人發現像我一樣有用:)

第三種解決方法

您也可以通過編輯→鍵盤快捷鍵在gnome-terminal中分配快捷鍵。我使用Shift + Ctrl + Alt + C

command-line,xterm,ubuntu

第四種方法

運行這個命令:

reset

這與啟動新終端的效果相同。

第五種方法

交叉發布我的答案stackoverflow

使用下麵的命令來做一個清晰的屏幕,而不是僅僅添加新行……

printf "\033c"

是的,這是在bash提示符下的’printf’。

你可能想要定義一個別名,盡管…

alias cls='printf "\033c"'

Explanation

\033 == \x1B == 27 == ESC

所以這成為<ESC>c這是用於重置終端的VT100轉義碼。 Here是關於終端轉義碼的更多信息。

Edit

這裏有一些其他的做法…

printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

KDE

以上不適用於KDE控製台(稱為Konsole),但有希望!使用以下命令序列清除屏幕和scroll-back緩衝區…

clear && echo -en "\e[3J"

或者也許在KDE上使用以下別名…

alias cls='clear && echo -en "\e[3J"'

我從here獲得了scroll-back清除命令。

第六種方法

那麽這取決於你是否使用Konsole,即使reset也不會阻止你滾動到第一行。在這種情況下,您必須使用您正在使用的特定終端的某些功能。對於Konsole,它是Edit > Clear History

第七種方法

我最喜歡的是printf "\ec"。這也可以是printf "\033c"printf "\x1bc"。這是一個ansi轉義序列,它奇跡般地清除了終端輸出的屏幕和緩衝區(對於大多數標準終端,我似乎已經工作了 – 我知道它適用於Ubuntu-like Linuxes中的gnome-terminal,終止符,xterm等)

我知道這可以在Linux Mint和Ubuntu 14.04上運行,所以我不知道人們為什麽要追加和預先配置clear && echo -ne "\033cprintf "\ec"一直為我工作。

另外,在我的.bashrc中,我有這樣的綁定:

bind -x '"\C-t": printf "\ec"';

現在我一直按ctrl t

第八種方法

或者對於reset,您可以執行echo -e "\033c",或者在您的.bashrc中執行alias cls="echo -ne '\033c'"

UNIX /Linux StackExchange上有一個線程:How to clear terminal completely? (unix.stackexchange.com),以及超級用戶:Clear terminal using keyboard shortcut (superuser.com)

第九種方法

Hibou57答案的另一種選擇:

# The Octal Way
alias clear="echo -e '\033c\c'"

要麽

# The Hex Way
alias clear="echo -e '\x1b\c'"

基本上這將具有完全相同的效果,它將打印^[字符(清除您的終端)並且不輸出尾隨的新行。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/93.html,未經允許,請勿轉載。