head to malutkie, ale codzienne narzędzie, które wyświetla początek pliku — domyślnie pierwsze 10 linii. Zamiast otwierać 2-gigabajtowy log w edytorze i czekać, aż komputer się podda, robisz head plik.log i w mgnieniu widzisz nagłówek, format danych albo pierwsze wpisy. To idealny towarzysz do podglądania CSV, logów, konfiguracji i wszystkiego, czego nie chcesz wczytywać w całości. Świetnie łączy się z potokami, gdzie ucina strumień do kilku pierwszych wierszy.
Składnia i najważniejsze opcje
Podstawowa forma to head [OPCJE] [PLIK...]. Bez pliku head czyta ze standardowego wejścia, więc działa też po pionowej kresce w potoku.
-n N— wyświetl pierwsze N linii zamiast domyślnych 10 (np.-n 20).-c N— wyświetl pierwsze N bajtów zamiast linii; przyjmuje sufiksy jakK,M(np.-c 1K).-n -N— pokaż wszystko oprócz ostatnich N linii (rozszerzenie GNU, uwaga na minus).-q— tryb cichy: nie drukuj nagłówków z nazwami plików przy wielu plikach.-v— zawsze drukuj nagłówek z nazwą pliku, nawet dla jednego pliku.-z— separatorem linii jest bajt NUL zamiast znaku nowej linii (przydatne zfind -print0).
Przykłady użycia
head /var/log/syslog— pokazuje 10 pierwszych linii loga, żebyś szybko zobaczył jego format.head -n 1 dane.csv— wyciąga sam nagłówek pliku CSV, czyli nazwy kolumn.ps aux --sort=-%mem | head -n 5— pierwsze 5 procesów żrących najwięcej pamięci.head -c 500 obrazek.bin— wypisuje 500 pierwszych bajtów, idealne do podglądu nagłówka pliku binarnego.head -n 3 *.conf— początek każdego pliku.confw katalogu, z nagłówkiem oddzielającym kolejne pliki.
Częste błędy i pułapki
Największa pułapka to przenośność: head -n -5 plik (wszystko poza ostatnimi 5 liniami) to rozszerzenie GNU. Na macOS i BSD domyślny head tego nie obsłuży i rzuci błędem — tam zainstaluj coreutils przez Homebrew albo użyj sed/awk. Druga rzecz: -c liczy bajty, nie znaki, więc na tekście UTF-8 z polskimi znakami łatwo przetniesz literę w połowie i zobaczysz krzaki. I pamiętaj, że head tylko czyta — niczego nie zmienia w pliku, więc nie bój się go odpalać na produkcji.
Powiązane komendy: tail (koniec pliku, plus podgląd na żywo z -f), cat, less, sed oraz awk.