635 votes

Comment effacer la sortie précédente dans Terminal sous Mac OS X ?

Je sais que le clear qui "efface" l'écran actuel, mais il le fait simplement en imprimant beaucoup de nouvelles lignes - le contenu effacé est simplement défilé vers le haut.

Existe-t-il un moyen d'effacer complètement toutes les sorties précédentes du terminal de sorte que je ne puisse pas les atteindre même en faisant défiler vers le haut ?

1 votes

Avez-vous trouvé un moyen de faire cela qui fonctionne dans un shell script ?

10 votes

@ZevEisenberg Je ne pense pas. De toute façon, je pense maintenant que je n'en ai pas du tout besoin. Je suis satisfait de Command+K .

0 votes

@ZevEisenberg ma réponse mise à jour (et une autre réponse) vous montre comment le faire à partir d'un script.

1267voto

Alok Singhal Points 33073

Pour effacer le terminal manuellement :

+ K

Command + K pour les claviers plus récents

Pour effacer le terminal à partir d'un shell script ;

/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'

0 votes

@fearless_fool apple.stackexchange.com/a/31887 pourrait le faire ? Si c'est le cas, faites-le moi savoir !

0 votes

Eh bien, oui, mais voir ci-dessous ( stackoverflow.com/a/26615036/558639 ) pour une meilleure façon de faire.

9 votes

Si vous appuyez accidentellement sur cette touche, comment faire pour afficher la mémoire tampon effacée ?

36voto

Mettez ceci dans votre .bash_profile ou .bashrc fichier :

function cls {
    osascript -e 'tell application "System Events" to keystroke "k" using command down'
}

1 votes

Cela devrait être la bonne réponse. AppleScript peut être désordonné, mais il permet de faire le travail. Merci.

0 votes

J'avais upvoted, mais une autre réponse note que cela efface tous les Windows !

0 votes

Cette réponse fonctionne toujours très bien à Big Sur ! Elle efface la sortie de l'onglet actuel du terminal (les autres fenêtres/onglets ne sont pas effacés).

22voto

SeaSide Points 71

Sur le Terminal Mac OS X, cette fonctionnalité est déjà intégrée à l'application Terminal sous forme de menu Voir Clear Scrollback (la valeur par défaut est CMD + K ).

Vous pouvez donc les réaffecter comme vous le souhaitez avec les raccourcis clavier d'Apple. Il suffit d'ajouter un nouveau raccourci pour Terminal avec la commande "Clear Scrollback". (J'utilise CMD + L parce que c'est similaire à Ctrl + L pour effacer le contenu de l'écran actuel, sans vider le tampon).

Je ne suis pas sûr de savoir comment vous utiliseriez ceci dans un script (peut-être AppleScript comme d'autres l'ont signalé).

1 votes

A partir de Yosemite (10.10), View->Clear Scrollback n'est plus présent dans le menu du Terminal. Le raccourci clavier CMD + K fonctionne toujours, cependant.

1 votes

@NicolasMiari On dirait que Clear Scrollback vient de passer de View à Edit à Yosemite.

9voto

user2897962 Points 39

Ou vous pouvez envoyer un saut de page (saut de page ASCII) en appuyant sur Ctrl + L .

Bien que, techniquement, cette méthode ne fasse que démarrer une nouvelle page, elle a le même effet net que toutes les autres méthodes, tout en étant beaucoup plus rapide (à l'exception de l'option Apple + K solution, bien sûr).

Et parce que c'est une commande de contrôle ASCII, et qu'elle fonctionne dans tous les shells.

1 votes

Cela efface l'écran mais laisse le tampon de défilement intact.

0 votes

Ce n'est pas la même chose si vous voulez utiliser cmd + f par exemple.

0voto

phil Points 207

En tapant ce qui suit dans le terminal effacer votre historique (ce qui signifie que l'utilisation de la flèche vers le haut ne vous apportera rien), mais elle n'effacera pas l'écran :

history -c

0 votes

Il le fait. @phil les supprime-t-il définitivement du disque, ou sont-ils encore récupérables d'une manière ou d'une autre ?

0 votes

En fait, il supprime le fichier ~/.bash_history, donc si vous pouvez le récupérer, vous pourrez récupérer les commandes qui ont été effacées.

0 votes

Non, cela ne fonctionne pas. L'historique défilé vers le haut existe toujours, et je peux le faire défiler vers le haut pour le voir à nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X