journalctl: comment empêcher le texte de se tronquer dans le terminal


60

Comment puis-je empêcher les longues chaînes de tronquer dans le terminal? Par exemple si je cours

journalctl -xn

Il y a beaucoup de texte que je ne peux pas lire. Je suis ouvert à l'utilisation d'autres programmes / outils.


Utilisez journalctl -x, -npar défaut , 10 lignes dans le journal uniquement.
cuonglm

Réponses:


63

De la journalctlpage de manuel:

   The output is paged through less by default, and long lines are
   "truncated" to screen width. The hidden part can be viewed by using the
   left-arrow and right-arrow keys. Paging can be disabled; see the
   --no-pager option and the "Environment" section below.

Si vous ne voulez pas utiliser constamment les flèches gauche et droite, dirigez-le directement vers less:

$ journalctl -xn | less

Cela encapsulera les lignes trop longues pour votre terminal (le comportement par défaut de less, qui journalctlécrase).

Ou bien sûr, si cela ne vous dérange pas de devoir utiliser le défilement arrière de votre terminal, vous pouvez ne pas utiliser de pagette du tout:

$ journalctl -xn --no-pager

Ah oui. J'ai vu.
jeudi

3
C'est vraiment frustrant. Si pager est défini sur lesset LESSn'inclut pas -S, journalctl ne devrait pas s'appliquer -Sà l'invocation de less!! En d'autres termes, définir PAGER = less et LESS = $ x (où $ x est une chaîne ne contenant pas S) devrait donner le comportement souhaité.
William Pursell

1
C'est-à-dire que journalctl doit respecter LESS et que l'utilisateur ne doit pas également définir SYSTEMD_LESS! (Excuses, poignée de porte, c'est un coup de gueule qui n'appartient probablement pas à votre réponse)
William Pursell

Silly William. M. Pottering sait ce qui est le mieux pour vous, et si vous ne l'aimez pas, vous avez évidemment tort. </ Rant>
dannysauer

15

Je fais aussi:

journalctl -xn | less

Mais vous pouvez également définir la SYSTEMD_LESSvariable d'environnement:

SYSTEMD_LESS=FRXMK journalctl -xn
# Or even
# SYSTEMD_LESS="" journalctl -xn
# The environment variable needs to be there, but can be the empty string

Je l'ai eu de: [systemd-devel] [PATCH] pager: retourne les longues lignes par défaut

Réglez-le dans votre .bashrc et faites-le! :-)

Cela systemddoit être lessspécialement configuré et ne fait pas qu'honorer les moins de défauts et l' LESSenvironnement me semble un peu arrogant, mais bon, ça marche ...


La prise en charge de SYSTEMD_LESS n’a été ajoutée que récemment, par exemple CentOS 7 n’a pas de version qui la
prenne en

Fonctionne au moins sur CentOS 7.5.
Vertigo

Excellente solution, j'ai également ajouté Defaults env_keep += "LESS SYSTEMD_LESS"à /etc/sudoers. C'est pour ces moments où je mets accidentellement sudodevant, par exemple systemctl status.
Metamorphic

Ce n'est pas simplement "un peu arrogant", c'est incroyablement ennuyeux. J'espère que ce n'est pas l'arrogance, mais l'ignorance qui motive ce comportement.
William Pursell

J'ai jeté un coup d'œil au code source. Remplacer spécifiquement le choix de l'utilisateur dans LESS est tout simplement stupide. Je ne sais toujours pas si c'est de l'arrogance ou de l'ignorance, mais probablement une combinaison saine des deux.
William Pursell

2

Si le programme utilise déjà less(si ce n’est pas le cas, dirige la sortie vers lui), vous pouvez activer / désactiver le retour à la ligne en tapant -S(dans less), cela fonctionne également pour les autres lessoptions.


0

Notez également que:

journalctl -f

vous montrera toutes les dernières nouvelles au fur et à mesure qu’il entre et se termine comme tout être humain normal (ou même administrateur système) s’attendrait à permettre une lecture facile, un copier-coller et tout le reste.


-1

Je tape dans le terminal,
journalctl | morefonctionne très bien pour moi, puis j'utilise les flèches vers le haut ou le bas.

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.