Comment puis-je arrêter la sortie de chat immédiatement malgré une sortie massive?


9

Je cherche en quelque sorte à arrêter la sortie vers STDOUT lorsque je me rends compte qu'une commande est incorrecte. Par exemple, si je cat accidentellement un très gros fichier. Habituellement, cela s'arrêtera éventuellement si vous maintenez la touche ctrl+c enfoncée , mais cela prend beaucoup de temps.

Existe-t-il un moyen d'arrêter la sortie plus immédiatement?

Réponses:


10

Vous pouvez exécuter ctl-z en arrière-plan, puis tuer le PID.

$ ctl z (pour le mettre en arrière-plan)

$ kill -9 {pid} 'du processus qui vient d'être mis en arrière-plan'


1
Pourquoi es-tu kill -9en train de travailler si ce n'est pas absolument nécessaire?
benjwadams

2

Souvent, les données ont déjà été envoyées à l'écran, et le "long temps" est le terminal essayant d'afficher les données. Faire quoi que ce soit à la tâche n'aidera pas (c'est-à-dire Ctrl+ Zou Ctrl+ C), vous aurez besoin d'un terminal plus rapide ou de quelque chose pour mettre les données en mémoire tampon.

Je dirige de grandes sorties lesset tailselon que je souhaite afficher le haut ou le bas du fichier, car les deux me permettent de contrôler facilement la quantité de données envoyées au terminal et de fermer le programme si ce n'est pas ce que je veux.


1

Passer à un autre terminal (via CTRL+ F1à F6en mode texte, ou ouvrir une nouvelle fenêtre screenvia via CTRL+ A, C) après avoir appuyé sur CTRL+ Zou CTRL+ Cfera sauter le terminal d'origine en essayant de faire tous les sauts de ligne et sautera directement à la dernière ligne de sortie dans un temps plus court


Est-ce que cela fonctionne lorsque le "long temps" est la sortie va dans un tampon réseau et prend beaucoup de temps pour transférer tout le texte vers le terminal de réception? Si oui, comment peut-on accomplir la même chose dans, disons, terminateur? Je passe à un autre onglet et rien. D'un autre côté, si je tue la session ssh en utilisant ~. puis il s'arrête immédiatement. Je préfère cependant ne pas tuer la session.
vontrapp

@vontrapp Bonne question (qui vaut probablement une nouvelle question ). Je suppose que cela ne fonctionnera pas, mais sur SSH pour les processus de longue durée en utilisant tmuxou screenest toujours une recommandation
Tobias Kienzler

0

Vous devriez pouvoir le diriger vers moreouless

cat large_file.txt | less

À quel moment vous pouvez parcourir la réponse et éclater avec un :q

Vous pouvez également utiliser greppour trier votre réponse si vous recherchez une erreur / un problème spécifique.

http://www.westwind.com/reference/os-x/commandline/pipes.html


1
CHK posant des questions sur la situation avec DÉJÀ commencé le processus. Vous ne pouvez pas utiliser moins / plus dans ce cas.
septembre

Bien qu'il ne s'agisse pas d'une réponse à la question directe, cela a de la valeur en ce qu'il indique comment éviter la situation avant qu'elle ne se produise.
TecBrat
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.