Журнал на тысячи строк не читают целиком: обычно нужно начало, конец или то, что допишется прямо сейчас.
cat выводит файл целиком: так удобно читать короткий конфиг. У журнала на тысячи строк начало уйдёт за край экрана. Длинный файл читают в less из урока «Как удобно работать в терминале» или по частям:
Без -n обе команды показывают по 10 строк. Последние строки — последние по положению в файле. Журнал дописывает новые записи в конец, поэтому свежие события обычно там.
tail -f (от follow — «следить») показывает конец файла и не завершается: ждёт, пока в файл допишут строки, и сразу их печатает. Если новых записей нет, терминал выглядит замершим: tail ждёт. Выйти — Ctrl+C.
В журнале службы 50 000 строк. Коллега сейчас перезапустит службу, и тебе нужно увидеть, что она при этом запишет. Что запустишь?
-
cat напечатает все 50 000 строк, и записи о перезапуске придётся искать в конце вывода. Ждать новые строки cat не умеет: она печатает файл и завершается.
-
Покажет последние строки на этот момент, а записи о перезапуске появятся позже. Строки по мере записи печатает
tail -f. -
head показывает начало файла, а новые записи журнал дописывает в конец. Сравни
head -n 2 service.logиtail -n 2 service.log.
tail -f показывает конец журнала и печатает строки, которые служба допишет потом. Когда увидишь нужное, выйди через Ctrl+C.