Polecenie less umożliwia przewijanie stron przez plik tekstowy, za każdym razem wyświetlając ekran pełen tekstu. Na pierwszy rzut oka wydaje się, że jest to jedno z najprostszych poleceń Linuksa, ale jest o wiele więcej, niż na pierwszy rzut oka.
Historia polecenia less
Wszystko w Linuksie – i Uniksie – ma swoją historię, bez zamierzonej gry słów. Program less jest oparty na programie more, który został pierwotnie wydany w 1978 roku w wersji 3.0 Berkeley Software Distribution Unix (3.0BSD). Program more pozwolił na stopniowe przeglądanie pliku tekstowego, wyświetlając jednocześnie ekran pełen tekstu.
Ze względu na konieczność, jako matka wynalazku, to niezdolność wczesnych wersji programu more do przewijania pliku do tyłu skłoniła Marka Nudelmana do rozwinięcia programu less i przezwyciężenia tego konkretnego problemu. Prace te rozpoczęły się w 1983 roku, a pierwsza wersja została wydana poza firmą, w której pracował, w 1985 roku. Od października 2019 roku jest nadal opiekunem programu less.
Zastanawiam się, czy jest użytkownik Linuksa, który nie używał programu less? Nawet jeśli nie użyli go do przejrzenia wybranego pliku tekstowego, prawdopodobnie użyli polecenia man, które również korzysta z less do wyświetlania stron podręcznika.
To polecenie ma wiele sztuczek w rękawie.
Dlaczego less znaczy lepiej niż more
Na przestrzeni lat systematycznie dodawano coraz więcej opcji do programu less. Ma on oszałamiającą ilość opcji wiersza polecenia oraz naciśnięć klawiszy. Zrób szybkie porównanie strony podręcznika programu less i strony podręcznika programu more, a zaczniesz dostrzegać, jak less absolutnie przewyższa more.
Program more przezwyciężył początkowy błąd polegający na niemożności przewijania tekstu wstecz, ale tylko w przypadku plików. Nie można przewijać wstecz przez wejście potokowe. Możesz to zrobić za pomocą programu less.
Dzięki elastyczności w nawigowaniu po plikach, przeglądaniu wielu plików, wyszukiwaniu tekstu, dodawaniu i powracaniu do zakładek oraz radzeniu sobie z danymi wejściowymi z potoku, less wygrywa. Używaj less zamiast more.
Czytanie pliku z less
Aby załadować plik do programu less, podaj nazwę pliku w linii poleceń:
less Dr-Jekyll-and-Mr-Hyde-001.txt
Plik zostanie załadowany i wyświetlony. Początek pliku jest pokazany w oknie terminala. Możesz użyć kółka myszy do przewijania tekstu do przodu i do tyłu.
Na klawiaturze użyj klawisza spacji lub klawisza Page Down, aby przejść do przodu po jednym ekranie tekstu na raz.
Klawisz Page Up powoduje przejście do tyłu pliku, a klawisze Home i End przenoszą cię bezpośrednio na początek i koniec pliku tekstowego.
Nazwa pliku jest wyświetlana w lewym dolnym rogu wyświetlacza. Kiedy zaczniesz poruszać się po pliku, dolna linia zostanie wyczyszczona. Służy do wyświetlania wiadomości oraz wprowadzania poleceń.
Naciśnij q, aby zakończyć program less.
Wyświetlanie numerów linii
Aby linie w pliku tekstowym były dla ciebie numerowane, użyj opcji -N (numery linii).
less -N Dr-Jekyll-and-Mr-Hyde-001.txt
Numery linii mogą być przydatne, aby poprowadzić cię z powrotem do określonych linii lub sekcji w plikach dziennika i innych plikach, które nie są napisane standardową prozą.
Wyszukiwanie w pliku za pomocą less
Aby przeszukać tekst pliku, naciśnij /, a następnie wpisz szukaną frazę. Wyszukiwanie rozróżnia wielkość liter. Wyszukiwana fraza jest wyświetlana w dolnym wierszu wyświetlacza. Naciśnij Enter, aby przeprowadzić wyszukiwanie.
W tym przykładzie wyszukiwanym hasłem jest Enfield, co można zobaczyć u dołu wyświetlacza.
Wyszukiwanie odbywa się od bieżącej strony do końca pliku tekstowego. Aby przeszukać cały plik, przejdź na początek pliku przed rozpoczęciem wyszukiwania.
Zostaniesz poinformowany, jeśli nie ma dopasowań. W przypadku znalezienia dopasowania wyświetlacz przesuwa się, aby wyświetlić znalezioną pozycję.
Aby znaleźć następny pasujący element, naciśnij n. Aby wyszukać poprzedni pasujący element, naciśnij N.
Aby wyszukiwać wstecz od aktualnej pozycji w pliku do początku pliku, naciśnij ? i wpisz wyszukiwane hasło. Aby znaleźć następny pasujący element, naciśnij n. Aby wyszukać poprzednią pasującą pozycję, naciśnij N.
Zwróć uwagę, że podczas wyszukiwania wstecz następny pasujący element (znaleziony za pomocą n) jest następny bliżej początku pliku, a N dla poprzedniego pasującego elementu szuka pasującego elementu bliżej dołu pliku. Innymi słowy, n i N odwracają kierunek wyszukiwania podczas wyszukiwania do tyłu.
Otwieranie pliku za pomocą wyszukiwanego hasła
Możesz użyć opcji -p (wzorzec), aby less przeszukał plik tekstowy i znalazł pierwszy pasujący element. Następnie wyświetli stronę z pasującym elementem wyszukiwania, zamiast pierwszej strony pliku, o ile oczywiście element wyszukiwania nie znajduje się na pierwszej stronie pliku.
Zauważ, że nie ma spacji między -p a wyszukiwanym hasłem.
less -pEnfield Dr-Jekyll-and-Mr-Hyde-001.txt
Plik jest wyświetlany z podświetlonym pierwszym pasującym hasłem wyszukiwania.
Poruszanie się w less: najbardziej przydatne klawisze
Użyj tych klawiszy, aby poruszać się i przeszukiwać plik tekstowy:
- Przejdź o jedną linię do przodu: strzałka w dół, Enter, e lub j
- Przejdź o jedną linię wstecz: strzałka w górę, y lub k
- Przejdź o jedną stronę do przodu: spacja lub Page Down
- Przejdź o jedną stronę wstecz: Page Up lub b
- Przewiń w prawo: strzałka w prawo
- Przewiń w lewo: strzałka w lewo
- Przejdź na początek pliku: Home lub g
- Przejdź na koniec pliku: End lub G
- Przejdź do określonej linii: wpisz numer linii, a następnie naciśnij „g”
- Przejdź do wartości procentowej w pliku: wpisz wartość procentową, a następnie naciśnij „p” lub „%”. Możesz nawet wprowadzić wartości dziesiętne, więc aby przeskoczyć do punktu 27,2 procent w pliku, wpisz „27,2”, a następnie naciśnij „p” lub „%”.
- Szukaj do przodu: naciśnij „/” i wpisz zapytanie, na przykład „/ Jekyll”, i naciśnij Enter
- Szukaj do tyłu: naciśnij „?” i wpisz zapytanie, np. „/ Hyde”, i naciśnij Enter
- Następny pasujący element wyszukiwania: n
- Poprzedni pasujący element wyszukiwania: N
- Zakończ: q
Ściśnij puste linie
Opcja -s (squeeze blank lines) usuwa serię pustych linii i zastępuje je pojedynczą pustą linią.
W naszym przykładowym pliku znajduje się kilka następujących po sobie pustych wierszy, zobaczmy, jak program less je traktuje, gdy używamy opcji -s:
less -s Dr-Jekyll-and-Mr-Hyde-001.txt
Wszystkie podwójne (lub więcej) puste wiersze zostały w każdym przypadku zastąpione jednym pustym wierszem.
Przeglądanie wielu plików
Program less może otworzyć dla ciebie wiele plików. Możesz przeskakiwać z pliku do pliku. Program less zapamięta twoją pozycję w każdym pliku.
less Dr-Jekyll-and-Mr-Hyde-001.txt Dr-Jekyll-and-Mr-Hyde-002.txt
Pliki zostaną otwarte i zostanie wyświetlony pierwszy plik. Zostaniesz pokazany, który plik przeglądasz i ile plików zostało załadowanych. Jest to podkreślone poniżej.
Aby wyświetlić następny plik, naciśnij :, a następnie naciśnij n.
Wyświetlacz zmieni się, aby pokazać drugi plik, a informacje w dolnym wierszu zostaną zaktualizowane, aby pokazać, że przeglądasz drugi plik.
Aby przejść do poprzedniego pliku, wpisz :, a następnie naciśnij p.
Korzystanie ze znacznika
Program less pozwala na upuszczenie znacznika, dzięki czemu możesz łatwo wrócić do oznaczonego miejsca. Każdy znacznik jest reprezentowany przez literę. Aby upuścić znacznik w najwyższym wyświetlanym wierszu, naciśnij m, a następnie naciśnij literę, której chcesz użyć, na przykład a.
Po naciśnięciu m w dolnym wierszu wyświetlacza pojawi się monit, oczekujący na naciśnięcie klawisza z literą.
Gdy tylko naciśniesz literę, monit zostanie usunięty.
Z dowolnego innego miejsca w pliku możesz łatwo wrócić do znaku, naciskając apostrof (lub pojedynczy cudzysłów) ’, a następnie naciskając literę znaku, do którego chcesz wrócić. Po naciśnięciu klawisza ’ zostaniesz poproszony o oznaczenie, do którego chcesz przejść.
Naciśnij literę znaku, do którego chcesz powrócić, a ta sekcja pliku tekstowego zostanie wyświetlona.
Używanie wejścia potokowego z less
Program less może wyświetlać informacje w postaci strumienia potokowanego tekstu, tak samo łatwo, jak gdyby był to plik.
Polecenie dmesg wyświetla plik komunikaty bufora pierścieniowego jądra. Możemy przesłać dane wyjściowe z dmesg do less za pomocą następującego polecenia:
dmesg | less
Wyświetlane są dane wyjściowe z dmesg.
Możesz stronicować i przeszukiwać dane wejściowe, tak jakby był to plik. Aby zobaczyć najnowsze wiadomości, naciśnij End, aby przejść na koniec pliku.
Gdy przychodzą nowe wiadomości, musisz naciskać End, aby wymusić wyświetlenie dolnej części pliku przez less. To nie jest zbyt wygodne. Aby less zawsze wyświetlał dolną część tekstu, nawet podczas dodawania nowych danych, użyj opcji +F (do przodu). Zwróć uwagę na użycie + i nie – jako flagi opcji.
dmesg | less +F
Flaga opcji + mówi less, aby traktować opcję tak, jakbyś użył tego polecenia w less. Więc jeśli zapomniałeś użyć opcji +F, naciśnij F wewnątrz programu less.
Program less wyświetla dół tekstu, który pokazuje najnowsze wiadomości z dmesg. Wyświetla komunikat, że oczekuje na więcej danych. Gdy pojawia się więcej komunikatów jądra, ekran przewija się, dzięki czemu zawsze można zobaczyć najnowsze komunikaty.
W tym trybie nie można przewijać ani stronicować; jest przeznaczony do wyświetlania dolnej części tekstu potokowego. Aby wyjść z jego trybu, naciśnij Ctrl + c, a powrócisz do zwykłego, mniej interaktywnego trybu.
Edycja plików za pomocą less
Możesz edytować pliki za pomocą less… cóż, w pewnym sensie. To polecenie nie może edytować plików, ale jeśli wpiszesz v podczas przeglądania pliku, plik zostanie przesłany do domyślnego edytora. Kiedy opuszczasz edytor, wracasz do programu less.
Naciśnij v podczas przeglądania pliku w less:
Plik jest ładowany do domyślnego edytora, w tym przypadku nano:
Kiedy zamkniesz edytor, wrócisz do programu less.
W podsumowaniu
Choć może się to wydawać sprzeczne z intuicją, w tym przypadku less jest zdecydowanie lepszym wyborem niż more.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.