it-swarm.dev

Jak opravdu vyčistit terminál?

Mohu vydat příkaz clear nebo stisknout Ctrl + L k vymazání aktuálního terminálu Ubuntu, ale to pouze posune předchozí výstup směrem nahoru a pokud používáte posun myši nebo PgUP a PgDown klíče je těžké rozlišit, kde končí výstup předchozího příkazu a začíná výstup aktuálního příkazu.

Existuje způsob, jak opravd vymazat terminál, takže se nezobrazí předchozí výsledky příkazu?

420
Stann

Ano, hledaný příkaz je

reset

Na rozdíl od clear, nebo Ctrl+L, reset skutečně inicializuje terminál , místo pouhého vymazání obrazovky. Shell (bash) však znovu nestimuluje. To znamená, že stav bash je stejný jako dříve, stejně jako kdybyste čistili pouze obrazovku.

Jak @Wallacoloo zmiňuje v komentářích, tento příkaz by měl udělat to samé rychleji:

tput reset

Z ostatních odpovědí:

  • Můžete nastavit klávesovou zkratku na reset terminál, jako vysvětleno ) towolf .

  • Pokud používáte Kubuntu a váš terminál je Konsole, musíte jít do Upravit → Vymazat historii , protože reset tam nefunguje stejným způsobem, jako poznámky UncleZeiv .

480
Stefano Palazzo

Chvíli jsem to hledal a našel jsem nějakého génia, který zveřejnil toto:

clear && printf '\e[3J'

Vymaže celý buffer obrazovky, velmi čistý. Pracuje na OS X a věří, že funguje dobře na většině * nix terminálů.

Pro zvědavost tato část '\e[3J' je příkaz k úniku z terminálu.

119
Goran

Zkratku v terminálu gnome můžete také přiřadit na Úpravy → Klávesové zkratky. používámShift+Ctrl+Alt+C.

reset and clear shortcut

46
towolf

Křížové zveřejnění mé odpovědi z stackoverflow .

Následující příkaz použijte k vytvoření jasné obrazovky místo pouze přidání nových řádků ...

printf "\033c"

ano, to je 'printf' na bash Prompt.

Pravděpodobně budete chtít definovat alias ...

alias cls='printf "\033c"'

Vysvětlení

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

Tím se stane <ESC>c což je únikový kód VT100 pro resetování terminálu. Zde je další informace o únikových kódech terminálu.

Upravit

Zde je několik dalších způsobů, jak toho dosáhnout ...

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

Výše uvedené nefunguje na konzole KDE (zvané Konsole), ale existuje naděje! Pomocí následující posloupnosti příkazů vymažte obrazovku a vyrovnávací paměť pro návrat zpět ...

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

Nebo možná použijte následující alias na KDE ...

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

Dostal jsem příkaz clear-back clearing from here .

23
Autodidact

spusťte tento příkaz:

reset

To má stejný účinek jako spuštění nového terminálu.

18
dv3500ea

Můj oblíbený je printf "\ec". Může to být také printf "\033c" nebo printf "\x1bc". Toto je ansi escape sekvence, která zázračně vyčistí obrazovku a vyrovnávací paměť pro výstup z terminálu (pro většinu standardních terminálů, na kterých jsem pracoval, se zdá - vím, že to funguje jako gnome-terminál, terminátor, xterm atd. Na Ubuntu-like Linuxes)

Vím, že to funguje v Linux Mint a Ubuntu 14.04, takže nevím, proč lidé připojují a zpracovávají věci jako clear && echo -ne "\033c. printf "\ec" pro mě vždy pracoval.

Navíc v mém .bashrc Mám vazbu jako je tato:

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

Teď stisknu ctrlt po celou dobu.

8
dylnmc

To opravdu záleží, pokud používáte Konsole například i reset vám nebrání posouvat se přes první řádek. V takovém případě musíte použít nějakou funkci konkrétního terminálu, který používáte. Pro Konsole je to Edit > Clear History.

5
UncleZeiv

S Kubuntu jsem zjistil, že je docela úspěšný:

alias clc="echo -en '\033c\033[3J'"

Můžete použít cls, abyste udrželi tradici Windows, použijte verzi Matlab clc, nebo jednu z vašich vlastních. Hodně štěstí!

3
Charles Bell

Další alternativa k odpovědi na @ Hibou57:

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

OR

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

V podstatě to bude mít úplně stejný efekt, vytiskne ^[ znak (který vymaže váš terminál) a nevytvoří koncovou novou linku.

2
TwystO

Alternativně k reset můžete udělat echo -e "\033c", nebo mít ve svém .bashrc, něco jako alias cls="echo -ne '\033c'"

UNIX/Linux StackExchange má téma: Jak vymazat terminál úplně? (Unix.stackexchange.com) , stejně jako SuperUser: Clear terminál pomocí klávesové zkratky (superuživatel). com) .

2
Hibou57

Zde jsou všechny způsoby, jak vymazat obrazovku terminálu v Unixu:

clear               # only clear visible screen
clear && clear      # clear buffer as well
tput clear          # same as clear but by sending escape seq
reset               # clear + reset internal terminal state + 1sec delay
tput reset          # same as reset but without 1sec delay
stty sane           # don't clear screen but reset some terminal options
echo -e "\033c"     # same as tput reset but hardcoded escape seq
printf "\033c"      # same as tput reset but hardcoded escape seq
setterm -reset      # same as tput reset, setterm has friendlier commands
1
Shital Shah

Pokud používáte yakuake nebo Konsole, zkuste to Ctrl+Shift+K.

Zdroj: https://bugs.kde.org/show_bug.cgi?id=309008

1
Wojciech Sidor