Bat: cat uskrzydlony

Polecenie cat odwala kawał naprawdę dobrej roboty. Ale kto powiedział, że tego, co jest robione dobrze nie można zrobić lepiej?

W systemie, w którym wszystko jest plikiem, przeglądanie zawartości plików to konieczność, a nie opcja. Czy będzie to konfiguracja, czy dokumenty, czy kod programu – raz na jakiś czas chcemy zobaczyć ich treść na ekranie.

Program cat, będący częścią basha (znajduje się w pakiecie coreutils) daje sobie radę doskonale. Kilka opcji takich jak -n (numerowanie linii) -s (usunięcie nadmiarowych pustych linii czy -b (numerowanie wyłącznie niepustych linii) czyni z niego bardzo przydatne narzędzie. Jednakże to, co można zrobić dobrze z reguły daje się zrobić jeszcze lepiej. Najwyraźniej z tego założenia wyszedł twórca programu bat, który został przez niego określony jako “cat na skrzydłach”, czego wyrazem jest ikona programu – więcej informacji można znaleźć na stronie projektu (https://github.com/sharkdp/bat).

Instalacja

Program znajduje się w repozytoriach wielu dystrybucji i można go zainstalować za pomocą menedżerów paczek każdej z nich:

Ubuntu, Alpine, Arch, Fedora, Funtoo, Gentoo, Void, Termux, openSUSE, a także FreeBSD, OpenBSD.

Jest dostępny również dla macOS przez Homebrew (Homebrew jest dostępny również w Linuksie i tą drogą też można zainstalować program) oraz przez MacPorts.

Nawet Windows doczekał się swojej wersji (trzeba tylko doinstalować kilka rzeczy).

Jednak obecne w repozytoriach paczki nie zawsze są najnowsze, dlatego najlepiej sięgnąć do strony z wydaniami (https://github.com/sharkdp/bat/releases) i ściągnąć najnowszą paczkę. Znajdują się tam pakiety linuksowe, instalator windowsowy oraz paczki dla Mac. Dla Ubuntu pakiet bat-musl.deb zawiera wszystkie zależności i ten właśnie jest najwłaściwszy. Dla innych dystrybucji znajdziemy tam archiwa *.zip i *.gz.

Jeśli jednak zdecydujemy się na instalację z domyślnego repozytorium naszej dystrybucji to trzeba wziąć pod uwagę, że nazwa “bat” jest… już zajęta. Zarezerwowano ją dla programu w pakiecie bacula (system tworzenia backupów). Dlatego też przeglądarka plików zostanie zainstalowana pod nazwą “batcat”. 

Eleganckim rozwiązaniem jest dopisanie w pliku .bashrc definicji aliasu:

alias bat='batcat'

Co oferuje bat

Ktoś mógłby zapytać – a po co w ogóle instalować ten program? W czym on jest lepszy od zwykłego cat’a?

Kolorowanie składni

Po pierwsze – kolorowanie składni. To się przyda nie tylko programistom – znacznie łatwiej czyta się pliki konfiguracyjne kiedy są oznaczone kolorami.

Pliki konfiguracyjne nabierają treści, kiedy są kolorowane

Lista rozpoznawanych typów plików jest imponująca i obejmuje ponad 150 rodzajów. Pełną listę można obejrzeć po wpisaniu polecenia

bat –list-languages.

Tematy kolorystyczne

Po drugie – kolory można dopasować do własnych upodobań dzięki tematom kolorystycznym. W podstawowej wersji jest ich 24, można dodawać własne. Lista tematów jest dostępna dzięki poleceniu

bat –list-themes

Dodatkowe schematy można pobrać choćby ze strony https://colorsublime.github.io/ – jest ich tam bardzo dużo i dla każdego znajdzie się jakiś odpowiedni zestaw. 

Każdy znajdzie odpowiednie kolory do swojego gustu i nastroju

Ściągnięte z internetu tematy należy umieścić w katalogu ~/.config/bat/themes/

Kolejną miłą rzeczą w tym programie jest format wyjścia – zawartość pliku jest ujęta w tabelę, której pierwszą kolumną są numery linii, które dodawane są domyślnie – odwrotnie niż w pierwowzorze. Na górze wyświetlana jest nazwa pliku oraz jego rozmiar.

Białe znaki

Program potrafi wyświetlić znaki niedrukowalne – wszelkiego rodzaju spacje, tabulatory itp. Niestety, traktuje jako “białe” wszystko, co nie mieści się w standardowym zestawie znaków, co oznacza, że polskie znaki diakrytyczne również trafiają na to sito.

Polskie teksty nie wyglądają najlepiej z tą opcją…

Stronicowanie

Wyjście programu bat jest stronicowane tzn. nie jest wyświetlany cały plik, a tylko tyle, ile mieści się na ekranie, a resztę można przewinąć. Ma to tę zaletę, że działa wyszukiwanie (klawisz /) Cat wymaga dodatkowego przekierowania do tzw. pagera, najczęściej programu less. W bacie mamy tę funkcję od razu, choć można ją wyłączyć za pomocą przełącznika –paging=never (lub krócej -P). Można również skorzystać z innego programu stronicującego np. more: –pager “more”.

Przewijanie myszą

Przewijanie podglądu pliku za pomocą klawiszy jest niewygodne. Na szczęście domyślny pager less ma możliwość wykorzystania kółka myszy. Wystarczy w pliku .bashrc dopisać linię:

export LESS=’–mouse –wheel-lines=3′

I już można przewijać tekst kółkiem myszy. Rzecz jasna zmiana w pliku .bashrc wymaga ponownego otworzenia konsoli.

Zakres linii

Jeśli mamy do czynienia z dużym plikiem, a jest mniej więcej znane miejsce, którego szukamy to można przekonać program bat do wyświetlenia tylko interesującego nas kawałka pliku:

    -r, –line-range A:B

Gdzie “A” i B” to numery linii. Można użyć następujących opcji:

A:B – od linii numer A do linii numer B

:B – od początku do linii numer B

A: – od linii numer A do końca

A:+10 – linia numer A i 10 następnych

B:-10 – linia numer B i 10 poprzednich

A – wyłącznie linia numer A

Oznaczenia git

Bat potrafi również współpracować z innymi programami – np. z gitem. Jeśli zostanie wykryte repozytorium git to na podglądzie pliku zobaczymy oznaczenia linii, które zostały zmienione od ostatniego commitu.

Bat potrafi pokazać zmiany od ostatniego commitu

Plik konfiguracyjny

To nie jest komplet parametrów, z jakimi można wywołać program bat. Wszystkie są bardzo dokładnie opisane – wystarczy wpisać bat –help.

Wobec takiego bogactwa aż prosi się o możliwość jakiejś stałej konfiguracji, zapisania najbardziej nam pasujących wartości i parametrów.

Program po zainstalowaniu działa na domyślnych wartościach i nie korzysta z pliku konfiguracyjnego. Można jednak taki plik sobie sprokurować, wydając polecenie:

bat –generate-config-file

Zostanie wypisana ścieżka do wygenerowanego pliku. Zawiera on kilka przykładowych ustawień. Jak ustawić inne – opis znajduje się w tekście helpa (trzeba przyznać, że od tej strony również program jest bardzo dobrze dopracowany.)

Jeśli program bat ma jakieś słabe strony to z pewnością jest to marketing. Na jego ślad trafiłem przypadkiem, przeglądając… zrzuty ekranowe w jakimś artykule. A przecież w środowisku linuksowym, w którym aż przelewa się od różnorakich plików konfiguracyjnych, systemowych itp. wygodne ich przeglądanie jest nie do przecenienia. Na moim dysku ten nietoperz znalazł sobie wygodne gniazdko i z pewnością zagości tu na dłużej. Mam nadzieję, że przyda się również wielu użytkownikom naszego ulubionego systemu.

6 komentarzy
  1. Nie wiem, po co bat do przeglądania plików konfiguracyjnych, skoro jest com.

  2. No tak, znów dużo po angielsku i zbyt wiele do ogarnięcia. Weźmy fragmencik w/w, taki swap. Partycja czy swapfile? [ciach]

    1. Osoby piszące komentarze nie na temat, bez podpisu i bez maila bardzo proszę o zaprzestanie tego procederu. Jeśli macie coś do napisania – w zakładce Społeczność jest opcja “Zostań redaktorem” – można się przysłużyć społeczności. Komentarze nie na temat będą w dalszym ciągu bezlitośnie usuwane.

Komentarze są wyłączone.

Poprzedni post
historia w bashu

To dopiero historia!

Następny post

Nala: nowy, lepszy apt

Powiązane posty