journalctl: como impedir que o texto seja truncado no terminal


60

Como posso impedir que seqüências longas truncem no terminal? Por exemplo, se eu correr

journalctl -xn

Há muito texto que não consigo ler. Estou aberto a usar outros programas / ferramentas.


Use journalctl -x, -npadrão de 10 linhas em apenas log.
cuonglm

Respostas:


63

Na página de journalctlmanual:

   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.

Se você não deseja usar constantemente as teclas de seta esquerda e direita, basta direcioná-lo diretamente para less:

$ journalctl -xn | less

Isso envolverá linhas muito longas para o seu terminal (o comportamento padrão de less, que journalctlsubstitui).

Ou, é claro, se você não se importa de ter que usar o scrollback do seu terminal, não pode usar nenhum pager:

$ journalctl -xn --no-pager

Ah sim. Eu vi.
cuonglm

3
Isso é realmente frustrante. Se o pager estiver definido como lesse LESSnão incluir -S, journalctl não deverá ser aplicado -Sà chamada de less!! Ou seja, definir PAGER = less e LESS = $ x (onde $ x é qualquer sequência que não contenha S) deve fornecer o comportamento desejado.
William Pursell

11
Ou seja, o journalctl deve respeitar LESS e o usuário também não precisa definir SYSTEMD_LESS! (Apologies, maçaneta, isso é um pouco de um discurso que provavelmente não pertence como um comentário à sua resposta)
William Pursell

William bobo. O Sr. Pottering sabe o que é melhor para você, e se você não gosta, está obviamente errado. </rant>
dannysauer

15

Eu também faço:

journalctl -xn | less

Mas você também pode definir a SYSTEMD_LESSvariável de ambiente:

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

Eu obtive isso em: [systemd-devel] [PATCH] pager: quebra longas linhas por padrão

Coloque-o no seu .bashrc e termine com ele! :-)

Isso systemdprecisa ser configurado lessespecialmente e não apenas respeita os menos padrões e o LESSambiente parece um pouco arrogante para mim, mas, ei, isso funciona ...


O suporte ao SYSTEMD_LESS foi adicionado recentemente, por exemplo, o CentOS 7 não possui uma versão que o suporte
jnas

Funciona pelo menos no CentOS 7.5.
Vertigo

Grande solução, eu também acrescentou Defaults env_keep += "LESS SYSTEMD_LESS"a /etc/sudoers. É para aqueles momentos em que acidentalmente coloco sudona frente de, por exemplo systemctl status.
Metamórfico

Não é apenas "um pouco arrogante", é incrivelmente irritante. Espero que não seja arrogância, mas a ignorância que conduz esse comportamento.
William Pursell #

Olhou para o código fonte. Substituir especificamente a escolha do usuário no LESS é simplesmente estúpido. Ainda não tenho certeza se é arrogância ou ignorância, mas provavelmente uma combinação saudável dos dois.
William Pursell #

2

Se o programa já utiliza less(se não, canalize a saída para ele), você pode ativar / desativar a quebra de linha digitando -S(in less). Isso também funciona para outras lessopções.


0

Observe também que:

journalctl -f

irá mostrar-lhe todas as últimas como se trata de e enrole como qualquer ser humano (ou mesmo sysadmin) normal seria de esperar para permitir a fácil leitura, copiar-colar, e tudo o mais.


-1

Digito o terminal,
journalctl | morefunciona muito bem para mim e depois uso as setas para cima ou para baixo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.