← Back to course

Чтение и Поиск в Файлах

Чтение и Поиск в Файлах

С возвращением.

В предыдущем уроке ты научился создавать, копировать, перемещать, переименовывать и удалять файлы.

Теперь пора заглянуть внутрь.

Потому что файлы — это не декорации. Это контейнеры с информацией.

Иногда полезной информацией.

Иногда логами.

Иногда конфигурационным файлом, который выглядит так, будто его писал волшебник во время грозы.

Что Ты Изучишь

В этом уроке ты научишься:

Миссия

Твоя миссия простая:

Создать несколько текстовых файлов, прочитать их, проверить и найти внутри нужную информацию.

Мы превращаем терминал в инструмент детектива.

Лупа не нужна.

Драматическая шляпа — по желанию.

Создай Файл для Практики

Сначала перейди в папку для практики:

cd ~/terminal-practice

Если папки ещё нет, создай её:

mkdir -p ~/terminal-practice
cd ~/terminal-practice

Теперь создай файл story.txt:

touch story.txt

Можешь открыть его в текстовом редакторе или быстро создать из терминала:

echo "Linux is powerful." > story.txt
echo "The terminal is direct." >> story.txt
echo "Practice makes everything easier." >> story.txt
echo "Errors are messages, not monsters." >> story.txt

Теперь у тебя есть файл с несколькими строками текста.

Чтение Файла с Помощью cat

Чтобы вывести весь файл в терминал, используй:

cat story.txt

Ты должен увидеть:

Linux is powerful.
The terminal is direct.
Practice makes everything easier.
Errors are messages, not monsters.

cat полезен для маленьких файлов.

Для больших файлов он может залить терминал текстом так, будто кто-то открыл макаронную фабрику прямо в экране.

Используй его с умом.

Чтение Длинных Файлов с Помощью less

Для длинных файлов используй:

less story.txt

Внутри less можно перемещаться так:

Да, q означает quit.

Это важно.

Многие люди были заперты внутри less дольше, чем готовы признать.

Посмотреть Начало с Помощью head

Чтобы увидеть первые строки файла, используй:

head story.txt

По умолчанию head показывает первые 10 строк.

Чтобы показать только первые 2 строки:

head -n 2 story.txt

Это полезно, когда хочешь быстро понять, о чём файл.

Как прочитать первую страницу инструкции перед тем, как полностью её проигнорировать.

Посмотреть Конец с Помощью tail

Чтобы увидеть последние строки файла, используй:

tail story.txt

Чтобы показать только последние 2 строки:

tail -n 2 story.txt

tail очень полезен для логов, потому что новая информация обычно появляется в конце.

Например:

tail -f app.log

Опция -f следит за файлом в реальном времени.

Она показывает новые строки, когда они появляются.

Очень полезно.

И немного гипнотически.

Поиск в Файле с Помощью grep

Чтобы найти текст в файле, используй grep.

Найди слово terminal:

grep "terminal" story.txt

Ты должен увидеть:

The terminal is direct.

Найди Errors:

grep "Errors" story.txt

Ты должен увидеть:

Errors are messages, not monsters.

grep — одна из самых полезных команд терминала.

Он быстро находит текст.

Как Ctrl+F, но с более крепким кофе.

Поиск Без Учёта Регистра

По умолчанию grep учитывает большие и маленькие буквы.

Это значит, что errors и Errors — разные вещи.

Попробуй:

grep "errors" story.txt

Возможно, ты ничего не увидишь.

Теперь попробуй:

grep -i "errors" story.txt

Опция -i игнорирует регистр.

Гораздо лучше.

Linux строгий, но иногда можно попросить его расслабиться.

Показать Номера Строк

Чтобы показать номера строк, используй:

grep -n "terminal" story.txt

Можешь увидеть:

2:The terminal is direct.

Это полезно, когда нужно понять, где именно что-то находится.

Особенно в конфигурационных файлах, логах или коде.

Поиск в Нескольких Файлах

Создай ещё один файл:

echo "The terminal can search many files." > notes.txt
echo "Learning Linux step by step is smart." >> notes.txt

Теперь ищи во всех .txt файлах:

grep "terminal" *.txt

Можешь увидеть результаты из нескольких файлов.

Здесь grep начинает выглядеть как суперсила.

Не яркая суперсила.

Скорее тихий библиотекарь, который находит что угодно за три секунды.

Частые Ошибки

Использовать cat на огромных файлах

Это может быть неприятно:

cat very-large-file.log

Если файл огромный, терминал может заполниться бесконечным текстом.

Используй:

less very-large-file.log

или:

tail very-large-file.log

Будь умным. Не сражайся с драконом логов ложкой.

Забыть кавычки

Это хорошо:

grep "terminal" story.txt

Для простых слов может сработать и так:

grep terminal story.txt

Но если текст поиска содержит пробелы, используй кавычки:

grep "Practice makes" story.txt

Кавычки держат слова вместе.

Без кавычек shell может понять тебя неправильно.

Shell мощный, но не телепат.

Искать с неправильным регистром

Если это ничего не находит:

grep "errors" story.txt

попробуй:

grep -i "errors" story.txt

Регистр имеет значение, если ты не скажешь grep его игнорировать.

Практика

Попробуй это:

cd ~/terminal-practice
cat story.txt
less story.txt
head -n 2 story.txt
tail -n 2 story.txt
grep "terminal" story.txt
grep -i "errors" story.txt
grep -n "Practice" story.txt

Потом ответь:

  1. Какая команда показывает весь файл?
  2. Какая команда лучше для длинных файлов?
  3. Какая команда показывает первые строки?
  4. Какая команда показывает последние строки?
  5. Какая команда ищет текст в файлах?

Мини-Задание

Создай файл linux-notes.txt с такими строками:

Linux is stable.
The terminal is useful.
Commands can be combined.
Practice every day.
Do not fear errors.

Потом:

  1. Покажи весь файл.
  2. Покажи только первые 2 строки.
  3. Покажи только последние 2 строки.
  4. Найди слово terminal.
  5. Найди слово errors, игнорируя регистр.
  6. Покажи номер строки, где появляется Practice.

Используй только команды терминала.

Без мышки.

Мышка начинает чувствовать себя безработной.

Итог

Сегодня ты узнал, что:

Теперь ты можешь читать и искать в файлах из терминала.

Это большой шаг.

Потому что когда ты умеешь искать, ты перестаёшь теряться и начинаешь быть опасным.

В хорошем смысле.

В основном.

Следующий Урок

В следующем уроке мы поговорим о правах доступа и sudo.

Именно там Linux начинает говорить:

“Нет.”

А мы учимся понимать почему.