Vraag Hoe de terminal echt te ontruimen?


Ik kan de clear commando of druk op Ctrl + L om de huidige Ubuntu-terminal te wissen, maar dit verschuift gewoon de vorige uitvoer naar boven en als u muisschuif of gebruikt PgUp en PgDown sleutels is het moeilijk om te onderscheiden waar de uitvoer van de vorige opdracht eindigt en de uitvoer van de huidige opdracht begint.

Is er een manier om werkelijk de terminal wissen, zodat ik de vorige opdrachtresultaten niet te zien krijg?


321
2018-02-06 21:51


oorsprong


Druk op Ctrl + L tweemaal en je wordt leeg! - Pandya


antwoorden:


Ja, het commando dat u zoekt is

reset

In contrast met clearof Ctrl+L, reset zal het. helemaal opnieuw initialiseren terminal, in plaats van alleen het scherm te wissen. Het zal de shell echter niet opnieuw instantiëren (bash). Dat betekent dat bash's staat is hetzelfde als voorheen, net alsof u alleen het scherm wist.

Zoals @Wallacoloo in de opmerkingen vermeldt, zou dit commando sneller hetzelfde moeten doen:

tput reset

Van de andere antwoorden:

  • U kunt een instellen Toetsenbord sneltoets naar reset de terminal, als verklaard door towolf.

  • Als je hardloopt Kubuntuen je terminal is Konsole, je moet gaan Bewerken → Geschiedenis wissen, sinds reset werkt daar niet op dezelfde manier, zoals UncleZeiv opmerkt.


391
2018-02-06 21:55



Waarschijnlijk niet van belang voor de meeste gebruikers, maar het gedrag van reset is afhankelijk van de terminal. - cthom06
Persoonlijk vind ik het niet erg dat er iets "links" staat langs de scroller wanneer ik raak ^L. Ik zie het niet (dat is wat ik wil!), Ik voel het niet, en als ik dat ineens zou doen nodig hebben om te herstellen wat er was - geen probleem. reset daarentegen is het een veel hardere tool - ik zal het gebruiken als er iets fout is gegaan met de terminal - zoals wanneer rare escape-sequenties per ongeluk het display helemaal verwoestten. - ulidtko
@ulidtko: het doet er toe wanneer je opeenvolgende sessies van programma's met tonnen uitvoer uitvoert. Als je terug scrolt, is het gemakkelijk om in de war te raken over welke uitvoering iets heeft afgedrukt. Ik weet heel goed dat in deze gevallen meer geavanceerde oplossingen kunnen worden gebruikt, maar het is niettemin een scenario dat vrij vaak tot stand komt in snelle en vuile foutopsporingssessies. - UncleZeiv
@UncleZeiv gekleurde promptankers helpen me meestal om snel de benodigde plek te vinden. Hoewel dit allemaal gewoon gewoonten zijn. - ulidtko
Er is ook tput reset die zichtbaar hetzelfde doet, maar onmiddellijk wordt voltooid (terwijl reset kan tot ongeveer 2 seconden duren voordat de prompt opnieuw verschijnt). - Ponkadoodle


Ik was hier al een tijdje naar op zoek en ik vond een genie die dit plaatste:

clear && printf '\e[3J'

Wist de hele schermbuffer, zeer schoon. Werkt op OS X en denkt dat het prima werkt op de meeste * nix-terminals.

Voor nieuwsgierig, dit deel '\e[3J' is een terminal escape-opdracht.


76
2018-05-29 05:51



Hmm, werkt in xterm, Konsole en Linux VT, maar niet in gnome-terminal ... - Ruslan
Bedankt, dat is super handig! Wat doet printf '\e[3J' gemiddelde? Hoe reinigt het de buffer? - Filip Spiridonov
Geweldige vondst! En voor degenen die de Bash-stijl opnieuw willen instellen op mac: nano ~/.bashrc en voeg toe alias reset="clear && printf '\e[3J'" - Michael Deal
wees voorzichtig met aliasing reset - het doet meer dan alleen de terminal opruimen. bijvoorbeeld, als u per ongeluk een binair bestand met willekeurige rommel afdrukt dat de terminal bederft (bijv. schakelt echo van getypte tekens uit), reset kan dat meestal oplossen. natuurlijk is aliasing prima zolang je weet hoe dat moet \override een opdracht met de opdracht alias-shadow. - RubyTuesdayDONO
Dit is het enige antwoord dat werkt om Putty-scrollback te wissen bij toegang tot sommige SSH via Winders. - dhaupin


Je kunt ook een snelkoppeling in gnome-terminal toewijzen door naar Bewerken → Sneltoetsen op het toetsenbord. ik gebruikVerschuiving+Ctrl+alt+C.

reset and clear shortcut


37
2018-02-08 22:46



1. Ik heb de menubalk altijd verborgen; dus zelfs na jaren en jaren van het gebruik van kabouter, heb ik nooit gedacht om dit te zoeken. Bedankt :-) - Stefano Palazzo♦
"Reset" doet niets voor mij, en "Reset en Clear" wist alles, maar geeft de prompt niet opnieuw weer. Geen van deze menu-items gedraagt ​​zich als het "reset" -commando vanaf een terminal. - Hibou57
Zoals @ Hibou57 zei, lijkt mijn sneltoets voor "Reset" niets te doen. Is deze functionaliteit verbroken in 14.04? - Michael Martin-Smucker
"Is deze functionaliteit verbroken in 14.04?": Dit is hetzelfde met 12.04. - Hibou57
@ Hibou57 "Opnieuw instellen en wissen" zal de prompt waarschijnlijk niet opnieuw weergeven, maar als u daarna op Enter drukt, wordt de prompt opnieuw weergegeven. Werkt dat voor jou? - Don Hatch


voer deze opdracht uit:

reset

Dit heeft hetzelfde effect als het lanceren van een nieuwe terminal.


15
2018-02-06 21:55



Bij gebruik van stopverf, na het hardlopen reset, Ik kan nog steeds omhoog scrollen en eerdere dingen zien. Is dit een probleem met PuTTY in plaats van reset? - Svish
@svish - dat is gewoon een putty-implementatieprobleem of beslissing. - belacqua
@jgbelacqua, Deal :) - Svish


Cross plaatsen van mijn antwoord van stackoverflow.

Gebruik de volgende opdracht om een ​​duidelijk scherm te maken in plaats van alleen maar nieuwe regels toe te voegen ...

printf "\033c"

ja dat is een 'printf' op de bash-prompt.

U wilt waarschijnlijk wel een alias definiëren ...

alias cls='printf "\033c"'

Uitleg

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

Dus dit wordt <ESC>c dat is de VT100-escape-code voor het resetten van de terminal. Hier is wat meer informatie over terminal escape-codes.

Bewerk

Hier zijn een paar andere manieren om het te doen ...

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

Het bovenstaande werkt niet op de KDE-console (genaamd Konsole) maar er is hoop! Gebruik de volgende reeks opdrachten om het scherm en de scrollbackbuffer te wissen ...

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

Of gebruik misschien de volgende alias op KDE ...

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

Ik heb de opdracht voor het terugdraaien van scrollen gekregen van hier.


8
2017-10-13 08:08





Het hangt er echt van af, als je gebruikt Konsole bijvoorbeeld zelfs reset voorkomt niet dat u voorbij de eerste regel bladert. In dat geval moet u een functie gebruiken van de specifieke terminal die u gebruikt. Voor Konsole, het is Edit > Clear History.


5
2018-02-07 16:27





Mijn favoriet is printf "\ec". Dit kan ook zijn printf "\033c" of printf "\x1bc". Dat is een ansi-escape-reeks die op miraculeuze wijze het scherm en de buffer voor de terminaluitvoer wist (voor de meeste standaardterminals waar ik in heb gewerkt lijkt het - ik weet dat het werkt zoals gnome-terminal, terminator, xterm, enz. Op Ubuntu-achtige Linuxes)

Ik weet dat dit werkt in Linux Mint en Ubuntu 14.04, dus ik weet niet waarom mensen dingen toevoegen en voorbereiden zoals clear && echo -ne "\033c. printf "\ec" heeft altijd voor me gewerkt.

Bovendien, in mijn .bashrc Ik heb een binding zoals deze:

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

Nu druk ik op ctrlt altijd.


5
2018-05-01 09:32



Weet u hoe een toewijzing kan worden gemaakt met behulp van de Windows-toets? Dit fragment is echt geweldig, werkt precies zoals Command-K op mac. Dank je. - Niloct
@Niloct je kunt zien of de terminal dit ondersteunt xev (typ gewoon xev in een terminal binnen een x-sessie). Van wat ik kon zien, ondersteunt urxvt het niet; terwijl ik het niet in een tiet probeerde, heb ik er vertrouwen in dat het niet zou worden ondersteund. Ik betwijfel ook of xterm of gnome-terminal dit zou ondersteunen. Het is lastig met ansi-escapes. Proost en sorry voor het late antwoord. - dylnmc
Oke @ dylnmc, dat waardeer ik. Bedankt voor de opmerking. - Niloct


Ik heb geconstateerd dat het volgende vrij succesvol is met Kubuntu:

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

Je kunt gebruiken cls om de Windows-traditie bij te houden, gebruik de Matlab-versie clcof een van uzelf. Succes!


3
2018-04-29 22:26