journalctl: jak zapobiec obcinaniu tekstu w terminalu

60

Jak mogę zapobiec przycinaniu długich łańcuchów w terminalu? Na przykład jeśli biegnę

journalctl -xn

Jest dużo tekstu, którego nie mogę przeczytać. Jestem otwarty na używanie innych programów / narzędzi.

P.Brian.Mackey
źródło
Użyj journalctl -x, -ndomyślnie do 10 linii tylko w dzienniku.
cuonglm

Odpowiedzi:

63

Z strony journalctlpodręcznika:

   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.

Jeśli nie chcesz ciągle używać lewego i prawego klawisza strzałki, po prostu potokuj go bezpośrednio do less:

$ journalctl -xn | less

Spowoduje to zawinięcie linii, które są zbyt długie dla twojego terminala (domyślne zachowanie less, które journalctlzastępuje).

Lub, oczywiście, jeśli nie masz nic przeciwko konieczności użycia przewijania terminala, możesz w ogóle nie korzystać z pagera:

$ journalctl -xn --no-pager
Klamka
źródło
O tak. Widziałem.
cuonglm
3
To jest naprawdę frustrujące. Jeśli pager jest ustawiony na lessi LESSnie obejmuje -S, dziennik nie powinien mieć zastosowania -Sdo wywołania less!! Oznacza to, że ustawienie PAGER = mniej i LESS = $ x (gdzie $ x jest dowolnym ciągiem niezawierającym S) powinno dać pożądane zachowanie.
William Pursell
1
Oznacza to, że dziennik powinien honorować MNIEJ, a użytkownik nie powinien także ustawiać SYSTEMD_LESS! (Przepraszam, klamka, to trochę rant, który prawdopodobnie nie należy do komentarza do twojej odpowiedzi)
William Pursell
Głupi William. Pan Pottering wie, co jest dla ciebie najlepsze, a jeśli ci się nie podoba, to oczywiście się mylisz. </rant>
dannysauer
15

Robię również:

journalctl -xn | less

Ale możesz również ustawić SYSTEMD_LESSzmienną środowiskową:

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

Dostałem to z: [systemd-devel] [PATCH] pager: domyślnie zawijaj długie linie

Ustaw go w swoim .bashrc i gotowe! :-)

To systemdwymaga lessspecjalnej konfiguracji i nie tylko honoruje mniej domyślne, a LESSśrodowisko wydaje mi się trochę aroganckie, ale hej, to działa ...

Peter V. Mørch
źródło
Obsługa SYSTEMD_LESS została niedawno dodana, np. CentOS 7 nie ma wersji, która ją obsługuje
jnas
Działa przynajmniej na CentOS 7.5.
Zawroty głowy
Świetne rozwiązanie, dodałem także Defaults env_keep += "LESS SYSTEMD_LESS"do /etc/sudoers. To na te czasy, kiedy przypadkowo stawiam sudoprzed np systemctl status.
Metamorphic
To nie jest tylko „trochę arogancki”, to niezwykle denerwujące. Mam nadzieję, że to nie arogancja, ale ignorancja napędza to zachowanie.
William Pursell
Spojrzał na kod źródłowy. W szczególności przesłonięcie wyboru użytkownika w LESS jest po prostu głupie. Nadal nie jestem pewien, czy to arogancja czy ignorancja, ale prawdopodobnie zdrowa kombinacja tych dwóch.
William Pursell
2

Jeśli program już korzysta less(jeśli nie, podłącz do niego dane wyjściowe), możesz włączyć / wyłączyć zawijanie wiersza, wpisując -S(in less), Działa to również w przypadku innych lessopcji.

Thomas Erker
źródło
0

Uwaga:

journalctl -f

pokaże Ci wszystkie najnowsze informacje, jak tylko się pojawi i zawinie, tak jak każdy normalny człowiek (lub nawet sysadmin) spodziewałby się, że umożliwi łatwe czytanie, kopiowanie i wklejanie oraz wszystko inne.

mlncn
źródło
-1

Wpisuję terminal,
journalctl | moredziała świetnie dla mnie, następnie używam strzałek w górę lub w dół.

użytkownik309707
źródło