Effacer le terminal pendant que le processus actif produit du contenu

0

Disons que je suis en train d'exécuter un script qui génère beaucoup de contenu. À mi-parcours, je veux effacer la sortie afin que, si je fais défiler vers le haut, je ne voie que la sortie créée après ce point.

Sur Mac OS X Terminal, je peux simplement utiliser Command-K mais il ne semble pas y avoir d’équivalent pour le terminal Ubuntu.

Voici ce que j'ai trouvé:

  • clear && echo -en "\e[3]" envoie une réinitialisation et efface la totalité de la fenêtre, mais cela nécessite que j'ai accès à l'invite bash
  • Control-L efface le contenu actuel mais ne semble pas fonctionner pendant l'exécution d'un processus et cela fait seulement défiler la fenêtre vers le bas et n'efface pas le contenu précédent.

J'utilise actuellement le terminal par défaut inclus avec l'installation du sous-système Windows Ubuntu. Existe-t-il une commande que je puisse envoyer au terminal qui force tout à zéro?

Existe-t-il également un terminal tiers prenant en charge cette fonctionnalité, idéalement un terminal offrant également d'autres avantages, tels que des onglets et une amélioration du copier / coller de texte?

Jordan Reiter
la source
Qu'entendez-vous par "le terminal Ubuntu"? Est-ce gnome-terminal? konsole? xterm? ou ce que vous voyez après Ctrl + Alt + F1? Quoi qu’il en soit, après avoir découvert quoi tty ou pts le processus utilise pour la sortie ( readlink /proc/<PID>/fd/1 ), tu peux faire comme clear > /dev/pts/2 depuis une autre console pour l'affecter. C'est la manière Unix où "tout est un fichier"; Je ne sais pas si quelque chose de similaire fonctionne dans Windows Subsystem for Linux.
Kamil Maciorowski

Réponses:

-1

On dirait que le problème est qu’une commande / un script produit des choses qui ne vous intéressent pas et d’autres que vous faire se soucier de.

Je ne connais pas suffisamment Windows pour répondre à la question "Comment effacer une session de terminal avec une frappe", mais je connais assez de Linux en général pour donner quelques suggestions sur "Comment rendre la sortie plus lisible".

Avez-vous envisagé les solutions "Linux standard" suivantes pour résoudre ce problème?

A) Enregistrer la sortie

your_command >> output.txt

Cela rend la sortie plus permanente, vous pouvez également créer un fichier output1.txt, output2.txt, etc. et voir si certains changements font ce que vous voulez.

le >> L'opérateur bash changera la sortie de la commande / script de la console à un fichier dans le répertoire dans lequel vous travaillez. (Vous pouvez également spécifier un chemin si vous le souhaitez quelque part)

Mieux encore, si vous écrivez ou pouvez modifier le script, vous pouvez configurer la journalisation dans le script pour organiser la sortie en fichiers pertinents avec des noms de fichiers horodatés, etc.

B) Piping la sortie

your_command | less

C’est mieux si vous ne pensez pas avoir besoin de faire référence à plusieurs «versions» de la sortie et ne souhaitez pas connaître la sortie plus tard.

Dans le programme Less, vous pouvez passer directement au texte qui vous tient à cœur. (Recherche dans moins est / puis votre terme de recherche)

Justin Hill
la source