Чтение файлов и поиск: cat, less, head, tail и grep
Просмотр и поиск в файлах помогают быстро понять проект без открытия редактора. Это полезно, когда нужно проверить конфиг, найти ошибку в логах или посмотреть, где используется…
Просмотр и поиск в файлах помогают быстро понять проект без открытия редактора. Это полезно, когда нужно проверить конфиг, найти ошибку в логах или посмотреть, где используется конкретная строка.
cat выводит файл целиком. less открывает файл постранично. head показывает начало файла, tail - конец. grep ищет строки по шаблону.
Примеры команд
cat package.json
less README.md
head -20 server.log
tail -50 server.log
grep -n "TODO" README.mdФлаг -n у grep показывает номера строк. Это удобно, когда нужно быстро перейти к найденному месту в редакторе.
Поиск по проекту
В современных проектах часто используют rg - ripgrep. Он быстрее обычного grep и по умолчанию уважает .gitignore.
rg "fetchUser"
rg -n "API_URL" src
rg --filesrg --files показывает файлы проекта. Это хороший способ быстро оценить структуру репозитория.
Как читать логи
Для логов полезен tail.
tail -f app.logФлаг -f продолжает показывать новые строки по мере появления. Так можно наблюдать, что происходит после запуска приложения.
Как сузить поиск
Сначала решите, ищете ли вы регулярное выражение или буквальный текст. Флаг -F отключает специальное значение символов вроде точки и квадратных скобок. -g ограничивает набор файлов, а -C показывает контекст вокруг совпадения.
rg -n -F "request timed out" logs
rg -n "TODO|FIXME" -g '*.ts' src
rg -C 2 "status=500" app.logЕсли приложение сообщило request timed out, начните с точной фразы и каталога логов, затем изучите соседние строки по времени. Поиск по одному слову error во всём проекте часто выдаёт зависимости, тестовые данные и старые журналы, скрывая нужный эпизод.
Навык поиска экономит часы. Вместо ручного просмотра папок вы задаете точный вопрос терминалу и получаете места, где находится нужная информация.