Je connais la commande clear
qui "efface" l'écran actuel, mais cela se fait simplement en imprimant de nombreuses nouvelles lignes - le contenu effacé est simplement défilé.
Existe-t-il un moyen d'effacer complètement toutes les sorties précédentes du terminal afin que je ne puisse pas l'atteindre, même en faisant défiler vers le haut?
⌘+K
Command+K pour les nouveaux claviers
/usr/bin/osascript -e 'tell application "System Events" to tell process "Terminal" to keystroke "k" using command down'
Si vous utilisez l'application Terminal OSX (comme indiqué par l'OP), une meilleure approche (grâce à https://Apple.stackexchange.com/a/113168 ) est la suivante:
clear && printf '\e[3J'
qui efface le tampon de défilement. Et c'est plus rapide que d'utiliser AppleScript. Il existe également d'autres options, voir https://Apple.stackexchange.com/a/113168 pour plus d'informations.
La réponse AppleScript donnée dans ce fil fonctionne, MAIS elle a l’effet secondaire désagréable d’effacer TOUTE fenêtre de terminal active. Ceci est surprenant si vous exécutez le script dans une fenêtre et essayez de travailler dans une autre!
Vous évitez cela en affinant le script AppleScript pour effacer l'écran uniquement s'il est au premier plan (à partir de https://Apple.stackexchange.com/a/31887 ):
osascript -e 'if application "Terminal" is frontmost then tell application "System Events" to keystroke "k" using command down'
... mais comme quand ce n'est pas la fenêtre courante, la sortie va s'empiler jusqu'à ce qu'elle redevienne courante, ce qui n'est probablement pas ce que vous voulez.
La belle façon est printf '\33c\e[3J'
Mettez ceci dans votre .bash_profile ou .bashrc
function cls {
osascript -e 'tell application "System Events" to keystroke "k" using command down'
}
Sur Mac OS X Terminal, cette fonctionnalité est déjà intégrée à l’application Terminal sous le nom View->Clear Scrollback
(la valeur par défaut est CMD+K).
Ainsi, vous pouvez réaffecter cela à votre guise avec les raccourcis clavier d’Apple. Ajoutez simplement un nouveau raccourci pour Terminal avec la commande "Clear Scrollback". (J'utilise CMD+L, parce que c'est semblable à CTRL+L pour effacer le contenu actuel de l’écran, sans effacer le tampon.)
Je ne sais pas comment vous utiliseriez cela dans un script (peut-être AppleScript comme d'autres l'ont fait remarquer).
Avec Mac OS X, Yosemite (10.10) utilise Option + Command + K
pour effacer le défilement dans Terminal.app.
Ou vous pouvez envoyer un saut de page _ (alimentation de formulaire ASCII) en appuyant sur:
CTRL+L
Techniquement, cela commence simplement une nouvelle page, mais cela a le même effet net que toutes les autres méthodes, tout en étant beaucoup plus rapide (sauf pour la solution Apple + K, bien sûr).
Et comme il s'agit d'une commande de contrôle ASCII, cela fonctionne dans tous les shells.
clear && printf '\e[3J'
efface tout, fonctionne bien aussi sur osX. très propre
Taper ce qui suit dans le terminal effacera effacera votre historique (si vous utilisez la flèche vers le haut, vous n’obtiendrez rien), mais n’effacera pas l’écran:
history -c
Je ne pouvais obtenir aucun des éléments ci-dessus au travail (sur macOS).
Une combinaison a fonctionné pour moi -
IO.write "\e[H\e[2J\e[3J"
Cela efface le tampon et l'écran
Faire la bonne chose, faire la bonne chose!
Effacer la marque précédente:Command-L
Effacer le favori précédent:Option-Command-L
Effacer pour démarrer:Command-K
Aidez vos gars!
⌘+L
⌘+K