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.

P.Brian.Mackey
la source
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
Poignée de porte
la source
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 ...

Peter V. Mørch
la source
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.

Thomas Erker
la source
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.

mlncn
la source
-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.

utilisateur309707
la source