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.


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

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 ...


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.


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.


-1

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.